Skip to content

Instantly share code, notes, and snippets.

@ravachol70
Last active July 11, 2023 16:51
Show Gist options
  • Select an option

  • Save ravachol70/421039e013ea02bc515f6596c7b1f084 to your computer and use it in GitHub Desktop.

Select an option

Save ravachol70/421039e013ea02bc515f6596c7b1f084 to your computer and use it in GitHub Desktop.
Noetherian Rings in Solidity
pragma solidity ^0.8.0;
interface INoetherianRing {
function isNoetherian() external returns (bool);
function groebner(bytes calldata _polynomialIdeal) external returns (bytes memory);
function hilbertSeries() external returns (bytes memory);
function primaryDecomposition(bytes calldata _polynomialIdeal) external returns (bytes memory);
function minpoly(bytes calldata _algebraicElement) external returns (bytes memory);
function quo(bytes calldata _polynomialIdeal) external returns (address);
function radical(bytes calldata _polynomialIdeal) external returns (bytes memory);
function saturation(bytes calldata _polynomialIdeal) external returns (bytes memory);
function spectrum() external returns (bytes memory);
function syzygies(bytes calldata _polynomialIdeal) external returns (bytes memory);
}
contract NoetherianRing is INoetherianRing {
function isNoetherian() external override returns (bool) {
// implementation
}
function groebner(bytes calldata _polynomialIdeal) external override returns (bytes memory) {
// implementation
}
function hilbertSeries() external override returns (bytes memory) {
// implementation
}
function primaryDecomposition(bytes calldata _polynomialIdeal) external override returns (bytes memory) {
// implementation
}
function minpoly(bytes calldata _algebraicElement) external override returns (bytes memory) {
// implementation
}
function quo(bytes calldata _polynomialIdeal) external override returns (address) {
// implementation
}
function radical(bytes calldata _polynomialIdeal) external override returns (bytes memory) {
// implementation
}
function saturation(bytes calldata _polynomialIdeal) external override returns (bytes memory) {
// implementation
}
function spectrum() external override returns (bytes memory) {
// implementation
}
function syzygies(bytes calldata _polynomialIdeal) external override returns (bytes memory) {
// implementation
}
}
@ravachol70

ravachol70 commented Apr 29, 2023

Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment