Documentation

HexBerlekamp.FactorPolyElab

Literal List expression [x₁, …, xₙ] : List ty.

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

    The type FpPoly p × ZMod64 p × Berlekamp.IrreducibilityCertificate of a certified-cover entry, at a reified prime and bounds instance.

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

      Reify one certified-cover entry (m, c, cert).

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

        The untrusted factor search for f : FpPoly p: leading unit plus monic irreducible factors with repetition, in nondecreasing size order. Correctness is carried entirely by the emitted kernel checks.

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

          Deduplicate a factor list by coefficient equality (order-preserving).

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

            Build the certified-cover entries for the distinct factors: each factor is monic by construction, so the entry is (q, 1, cert). Errors if a Rabin certificate cannot be produced (the factors come from Berlekamp on square-free parts, so this indicates an internal error) or if a replay is over budget.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Hex.FactorTactic.mkFpFactored (tactic : String) (p : Nat) [ZMod64.Bounds p] (hpt : Nat.isPrimeTrial p = true) (pE boundsE RE zeroE decE fE : Lean.Expr) :

              Constructs the value emitted by factor_poly for f : FpPoly p: returns the Hex.FpPoly.Factored f value as a raw Expr over reified literal data.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Hex.FactorTactic.elabFactorPolyFp (tactic : String) (p : Nat) (pE boundsE RE zeroE decE fE : Lean.Expr) :

                Elaborate factor_poly f for f : FpPoly p: check primality and bounds for the literal modulus, then run the instance-carrying implementation.

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

                  Elaborate a factor_poly argument and produce the structure value, trying registered extensions for non-FpPoly input types.

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

                    factor_poly f elaborates to a certified irreducible factorization of f (a Hex.FpPoly.Factored f for f : FpPoly p; extensions add further input types), usable as obtain ⟨scalar, factors, factors_mul, factors_irred⟩ := factor_poly f.

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

                      Term elaborator for factor_poly f: runs the search in compiled code and returns the checked certificate term.

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

                        Introduce the four fields of a recognized factorization result as scalar/factors let bindings plus factors_mul/factors_irred hypotheses. Inspecting the result type rather than the emitted constructor lets extension assemblers return opaque Hex.FactoredPoly terms while exposing the same tactic interface as the executable FpPoly and ZPoly extensions. Unrecognized extension result types land as a single factored hypothesis. Shared by the factor_poly and factor_poly! tactic forms.

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

                          The tactic form of factor_poly: introduces scalar and factors as let bindings holding the literal factorization data, plus factors_mul and factors_irred hypotheses stated over them.

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

                            Tactic elaborator for factor_poly f: elaborates the certificate and introduces its four fields into the local context.

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