Equations
- Hex.ZMod64.instZero_hexPolyFp = { zero := Hex.ZMod64.zero }
Equations
Equations
Equations
Equations
Equations
- Hex.ZMod64.instDiv_hexPolyFp = { div := fun (a b : Hex.ZMod64 p) => a.mul b.inv }
Division by 1 is the identity on ZMod64 p. Callers normalizing a
value against a unit denominator (for example a leading coefficient already
equal to 1) can discharge the division outright.
The F_p[x] division law obligations used by quotient constructions.
These are the concrete finite-field instances of the generic DensePoly.DivModLaws proof
surface used by downstream quotient-ring code; the executable division operations
themselves are inherited from DensePoly.
The F_p[x] gcd law obligations used by finite-field inverse construction.
Executable dense polynomials over the prime-field candidate ZMod64 p.
Equations
- Hex.FpPoly p = Hex.DensePoly (Hex.ZMod64 p)
Instances For
Finite-field remainder with the divisor's coefficient inverse computed once for the whole long-division pass.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Caching the divisor-leading inverse leaves the executable remainder
unchanged. This equality is definitional for the ZMod64 division instance and
does not require primality of the modulus.
Euclidean GCD with one coefficient inverse per division rather than one per eliminated coefficient.
Equations
- r₀.gcdAuxCached r₁ 0 = r₀
- r₀.gcdAuxCached r₁ fuel_2.succ = if Hex.DensePoly.isZero r₁ = true then r₀ else r₁.gcdAuxCached (r₀.modCached r₁) fuel_2
Instances For
The inverse-cached loop computes the reference Euclidean remainder sequence exactly, including its unnormalised representative.
Inverse-cached finite-field polynomial GCD.
Equations
- f.gcdCached g = f.gcdAuxCached g (Hex.DensePoly.size f + Hex.DensePoly.size g + 1)
Instances For
The inverse-cached finite-field GCD returns the exact reference representative.