Documentation

HexBerlekampZassenhaus.Certificate

Reassemble normalization-prefix and square-free factors around the supplied factors of the square-free part, expanding each square-free factor q to its multiplicity in d.repeatedPart so the recorded Factorization carries the right exponents for higher-multiplicity inputs. Falls back to the un-expanded polynomialNormalizationPrefixFactors shape when the expansion does not fully consume repeatedPart (e.g. when the BZ computation emitted the raw primitive square-free part as a single square-free factor).

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Package a verified factor array as a factorization with collected multiplicities.

    Equations
    Instances For

      Per-prime modular irreducibility evidence for integer irreducibility certificates.

      The factor array records the modular factors observed at this prime. The degree list and Rabin certificates are zipped with those concrete factors so the checker can validate certificate metadata and the executable Rabin witness against the polynomial it is meant to certify.

      Instances For

        Evidence that a candidate integer factor degree is impossible for one recorded prime block.

        If an integer factor has degree targetDegree, then reducing modulo any good prime gives a product of modular irreducible factors whose degrees sum to targetDegree. The checker validates an obstruction by confirming that the referenced prime block has no subset of recorded factor degrees with this sum.

        • targetDegree : Nat

          The proposed integer factor degree ruled out by this obstruction.

        • primeIndex : Nat

          The index of the prime factorization whose subset sums rule it out.

        Instances For

          Checker-first certificate data for irreducibility over Z[x].

          Each entry groups all modular degree and irreducibility-certificate data for a single prime so the checker can validate the prime and degree metadata before the later proof layer interprets the degree obstruction mathematically.

          Instances For

            Sum the recorded modular factor degrees for one prime.

            Equations
            Instances For

              Ordered product of the recorded modular factors for one prime.

              Equations
              Instances For

                Does the recorded degree multiset contain n?

                Equations
                Instances For

                  Test whether a submultiset of the listed degrees sums to the target.

                  Equations
                  Instances For

                    Does some subset of this prime block's modular factor degrees sum to target?

                    Equations
                    Instances For

                      Check one nested finite-field irreducibility certificate against its degree slot and the concrete modular factor occupying that slot.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Check that nested certificates match the enclosing prime, degree array, and concrete modular factor array.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Check one prime block against the integer polynomial being certified.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Nontrivial integer factor degrees that must be ruled out for f.

                            Equations
                            Instances For

                              Look up a per-prime block by the index stored in an obstruction.

                              Equations
                              Instances For

                                Check one degree obstruction against the certificate's per-prime degree data.

                                The target must be one of the nontrivial candidate degrees for f, and the referenced prime block must have no subset of modular factor degrees summing to that target.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  Does the obstruction array contain a valid obstruction for targetDegree?

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    Check that every candidate nontrivial factor degree is ruled out.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

                                      Executable surface checker for integer-polynomial irreducibility certificates.

                                      This validates all computational alignment data available at this layer: every prime block must use an admissible prime for f, its recorded modular factors must multiply back to the modular image, each nested finite-field certificate must match the enclosing prime and its concrete factor, and every nontrivial integer factor degree must be excluded by explicit per-prime degree data.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Does this certificate establish integer irreducibility? Besides checking its modular factorizations and degree obstructions, this includes the three mathematical side conditions needed to interpret them: every modulus is prime, the polynomial is primitive, and its degree is positive.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          Kernel-reducible counterpart of checkCertAtFactor.

                                          Identical metadata alignment checks, but the nested Rabin certificate is replayed through Berlekamp.checkIrreducibilityCertificateLinearIncremental, whose pow-chain validation costs O(n · p) kernel multiplications per factor instead of the O(Σ p^k) recomputation against the committed FpPoly.frobeniusXPowMod. The incremental comparison is preferred over Berlekamp.checkIrreducibilityCertificateLinear because certificate replay targets degrees where p^n overwhelms any kernel budget while n · p stays cheap.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For

                                            Kernel-reducible counterpart of checkFactorCerts, replaying each nested certificate through checkCertAtFactorLinear.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For

                                              Kernel-reducible counterpart of checkForPolynomial, replaying the nested certificates through checkFactorCertsLinear.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                theorem Hex.PrimeFactorData.checkCertAtFactor_of_linear (d : PrimeFactorData) (degree : Nat) (factor : FpPoly d.p) (cert : Berlekamp.IrreducibilityCertificate) (hp : Nat.Prime d.p) (hcheck : d.checkCertAtFactorLinear degree factor cert = true) :
                                                d.checkCertAtFactor degree factor cert = true

                                                checkCertAtFactorLinear implies checkCertAtFactor once the block's prime is genuinely prime: the two differ only in the nested pow-chain replay, which Berlekamp.checkIrreducibilityCertificate_of_linearIncremental identifies with the committed checker.

                                                Kernel-reducible counterpart of checkIrreducibleCert: the same surface checks, with every nested Rabin certificate replayed through the incremental pow-chain checker so decide can reduce a literal certificate without re-running the committed FpPoly.frobeniusXPowMod in the kernel.

                                                Consumers discharge this checker on literal certificate data and cross to the committed checker (hence to checkIrreducibleCert's soundness theorem) via checkIrreducibleCert_of_linear.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  theorem Hex.checkIrreducibleCert_of_linear (f : ZPoly) (cert : ZPolyIrreducibilityCertificate) (hprime : ∀ (primeData : PrimeFactorData), primeData cert.perPrime.toListNat.Prime primeData.p) (hcheck : checkIrreducibleCertLinear f cert = true) :

                                                  The kernel-reducible integer checker implies the committed one, given that every recorded block prime is genuinely prime. Primality feeds the pow-chain recurrence X^(p^(k+1)) ≡ (X^(p^k))^p (mod f) that identifies the incremental replay with the committed Frobenius routine.