Data-structures, definitions and theorems for implementing the
grind solver and normalizer for commutative rings and its extensions (e.g., fields,
commutative semirings, etc.)
The solver uses proof-by-reflection.
Instances For
Instances For
A Poly.combine optimized for the kernel.
Instances For
Definitions for the IsCharP case
We considered using a single set of definitions parameterized by Option c or simply set c = 0 since
n % 0 = n in Lean, but decided against it to avoid unnecessary kernel‑reduction overhead.
Once we can specialize definitions before they reach the kernel,
we can merge the two versions. Until then, the IsCharP definitions will carry the C suffix.
We use them whenever we can infer the characteristic using type class instance synthesis.
Theorems for justifying the procedure for commutative rings in grind.
Theorems for justifying the procedure for commutative rings with a characteristic in grind.
Theorems for stepwise proof-term construction
Instances For
Instances For
Instances For
Instances For
Instances For
Instances For
IntModule interface
normEq0 helper theorems
Instances For
Instances For
Helper theorems for normalizing ring constraints in the grind order module.
Instances For
Instances For
Instances For
Instances For
Helper theorems for quick normalization