- ringId : Nat
- checkCoeffDvd : Bool
If
checkCoeffDvdistrue, then when using a polynomialk*m - pto simplify.. + k'*m*m_2 + ..., the substitution is performed IFkdividesk', OR- Ring implements
NoNatZeroDivisors.
We need this check when simplifying disequalities. In this case, if we perform the simplification anyway, we may end up with a proof that
k * q = 0, but we cannot deduceq = 0since the ring does not implementNoNatZeroDivisorsSee comment atPolyDerivation.We also need it when destructively simplifying equations, i.e., when replacing an equation with its simplified form (
EqCnstr.simplifyandEqCnstr.simplifyBasis): the rewrite multiplies the equation byk₁ = k/gcd k k', and the result is weaker than the original equation whenk₁ ≠ ±1. See Note atEqCnstr.simplify.
Instances For
We don't want to keep carrying the RingId around.
Instances For
Instances For
Returns true if the current ring satisfies the property
∀ (k : Nat) (a : α), k ≠ 0 → OfNat.ofNat (α := α) k * a = 0 → a = 0
Instances For
Returns true if the current ring has a IsCharP instance.