Documentation

HexBerlekampZassenhausMathlib.FactorTactic

Match a (whnfR-normalized) type against Polynomial.

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

    Certify a scalar equality (k : ℤ) = c by decide, checking at elaboration time that the Boolean actually reduces to true.

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

      Combine two parsed children through a binary transport lemma: given child results (va, vaE, pa)/(vb, vbE, pb) with pa : toPolynomial vaE = a (and likewise pb), produce the node value v, the executable expression vaE ⋄ vbE, and the chained proof toPolynomial (vaE ⋄ vbE) = a ⋄ b.

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

        Build a constant leaf from the evaluated coefficient k: value DensePoly.C k, its literal expression, and the transport proof against the Mathlib scalar cRhsE (certified by decide), chained through hTail : Polynomial.C cRhsE = e when the leaf is not literally a C application.

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

          The parser-with-proof over Polynomial expressions: interpret X / C / numerals / + / - / * / neg / ^ (Nat literal) (with named defs unfolded one delta step at a time under a fuel guard), returning the executable value v : Hex.ZPoly, an executable expression vE denoting it (built from reified literals and executable operations), and a proof toPolynomial vE = e (up to definitional equality on the right). Structural heads are matched on the raw term: whnf would unfold Polynomial.C/X/numerals into their Finsupp normal form and defeat the match.

          Parse the full input with parsePolynomial, then recombine the parsed expression with the flat reified literal of its value through one eq_of_beqCoeffs kernel check, yielding (f, fLit, hP) with hP : toPolynomial fLit = e.

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

            The decline diagnostic for factors outside both certificate languages.

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

              Search a mixed certificate cover for a factor list: a free-layer IrredWitness per distinct factor where one exists, a multi-prime degree-obstruction certificate otherwise. Returns the decline diagnostic when some factor has neither.

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

                Reify a (factor, IrredWitness) list as a literal Expr.

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

                  Reify a (factor, multi-prime certificate) list as a literal Expr.

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

                    The untrusted factor search shared by both factor_poly arms: factors with repetition in nondecreasing size order, plus the scalar, self-checked against the input.

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

                      One irreducibility witness of either kind for a single polynomial.

                      Instances For

                        Search a single-polynomial witness: free-layer first, multi-prime fallback; decline diagnostic for balanced inputs outside both languages, targeted errors for zero/unit/reducible inputs.

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

                          Emit irreducible_ofZ P fLit certified multiPrime (Eq.refl true) hP for a single-polynomial witness of either kind.

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

                            Emit the free-layer proof Hex.ZPoly.Irreducible fE for a witness of either kind.

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

                              The factor_poly arm for Polynomial: parse with proof, factorize as untrusted search, certify the cover, and emit a reified Hex.FactoredPoly.ofZ application.

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

                                The irreducibility arm for Polynomial.

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

                                  The strong Hex.ZPoly factor_poly arm: checked after the free extension, so it certifies covers the free layer declines (balanced factors) through the multi-prime certificates, emitting a Hex.ZPoly.Factored whose factors_irred is one irreducible_of_checkMultiPrimeCover check.

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

                                    The strong Hex.ZPoly irreducibility arm: free-layer conclusion Hex.ZPoly.Irreducible fE, certified through the multi-prime checker when the free extension declined.

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

                                      Match HexPolyZMathlib.toPolynomial f (or the unfolded HexPolyMathlib.toPolynomial at R = ℤ) and return f.

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

                                        Certify proof against the goal up to definitional equality and report success.

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

                                          Goal mode: close Hex.ZPoly.Irreducible e (free-layer statement), Irreducible (toPolynomial f), and Irreducible P for parseable P : Polynomial.

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

                                            The Polynomial / strong Hex.ZPoly extension, checked by name from Hex.FactorTactic.extensionNames; the integration tests fail if a rename makes the extension undiscoverable. Checked after the free Hex.ZPoly extension, so its ZPoly arms only see inputs the free layer declined.

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