Multiplication-checkable witnesses for the common roots of an atom and a carrier polynomial. The atom and carrier themselves are external checker inputs, so certificate data cannot silently substitute different polynomials.
- gcd : ZPoly
Proposed common-root polynomial.
- atomFactor : ZPoly
Quotient witnessing that the common-root polynomial divides the atom.
- carrierFactor : ZPoly
Quotient witnessing that the common-root polynomial divides the carrier.
- atomCoeff : ZPoly
Atom coefficient in the scaled Bezout identity.
- carrierCoeff : ZPoly
Carrier coefficient in the scaled Bezout identity.
- scale : Int
Nonzero integer scale in the Bezout identity.
- replay : Option SturmReplay
Cached replay for a nonconstant common-root polynomial. A nonzero constant common-root polynomial uses
none.
Instances For
Validate the constant/nonconstant replay branch.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Proposition-level replay facts recovered from checkReplay.
Equations
- cert.ReplayValid = match cert.replay with | none => Hex.DensePoly.size cert.gcd = 1 | some replay => 0 < Hex.DensePoly.natDegree cert.gcd ∧ Hex.RCF.SturmReplay.check cert.gcd replay = true
Instances For
Check the divisibility and scaled Bezout identities against the external atom and carrier polynomials.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Proposition-level facts recovered from the common-root checker.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Soundness of the constant/nonconstant replay branch.
Soundness of the executable common-root checker.
A checked common-root polynomial is nonzero in both certificate branches.
Recover the checked replay in the nonconstant certificate branch.
Decide whether the cached common-root polynomial has a root in an interval. The constant branch is root-free. The nonconstant branch reads its shared generalized Sturm replay.