Documentation

HexBerlekampZassenhaus.Classical.Search

Why the bounded direct classical engine declined.

  • noGoodPrime : DeclineReason

    No admissible modular factorization was found.

  • subsetBudget : DeclineReason

    The next complete subset-cardinality level exceeds the remaining budget.

  • liftFailure : DeclineReason

    The modular factors could not be lifted to the required precision.

  • largeSupport : DeclineReason

    The lifted support is routed to incremental partition replay.

  • cardinalityCap : DeclineReason

    Every configured unforced cardinality was exhausted without a split.

  • invalidCandidate : DeclineReason

    The search exhausted all allowed candidates without a valid split.

Instances For
    @[instance_reducible]
    Equations

    A short diagnostic name for a direct-search resource limit.

    Equations
    Instances For

      Statistics from a direct classical attempt. completedLevels records the fully exhausted head-forced subset cardinalities, in execution order.

      • prime : Nat

        The prime selected for the successful modular factorization, or zero.

      • primeProbes : Nat

        The number of prime candidates examined.

      • liftedFactorCount : Nat

        The number of lifted modular factors.

      • henselLifts : Nat

        The number of quadratic Hensel lifts performed.

      • candidatesTried : Nat

        The number of recombination candidates tested by exact division.

      • completedLevels : Array Nat

        Subset cardinalities exhausted completely, in execution order.

      • Stage counters from the unforced low-cardinality sweep.

      • unforcedCompletedLevels : Array Nat

        Unforced cardinalities exhausted completely, in execution order.

      • peeledFactorDegrees : Array Nat

        Degrees peeled by the unforced sweep, in discovery order.

      • peeledSupportSizes : Array Nat

        Selected lifted-support sizes of peeled factors.

      • peeledComplementSizes : Array Nat

        Complementary support sizes after each successful peel.

      • residualLiftedFactorCount : Nat

        Lifted factors left in the retained residual support.

      • remainingSubsetBudget : Nat

        Candidate budget retained for the residual problem.

      • unforcedDecline : Option DeclineReason

        Why the unforced sweep stopped, if it left a residual problem.

      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          inductive Hex.DirectHeadResult (basis : LiftData) :

          Internal result of a head search.

          Instances For
            def Hex.findDirectHead (coreLc : Int) (target : ZPoly) (basis : LiftData) (head : DirectLiftedIndex basis) (tail : List (DirectLiftedIndex basis)) (levels : List Nat) (budget candidates : Nat) (completed : Array Nat) :

            Search complete cardinality levels only. If the next level does not fit, decline before evaluating any member of it.

            Equations
            Instances For

              Internal recursive result.

              Instances For
                def Hex.searchDirectAux (coreLc : Int) (basis : LiftData) :

                Search recursively for direct-coordinate factors within the remaining budget.

                Equations
                Instances For
                  def Hex.searchDirect (coreLc : Int) (target : ZPoly) (basis : LiftData) (budget : Nat := defaultSubsetBudget) (stats : ClassicalStats := { }) :

                  Run the direct search with one shared top-level candidate budget.

                  Equations
                  Instances For
                    inductive Hex.DirectSweepResult (basis : LiftData) :

                    Result of one sequence of complete unforced cardinality sweeps.

                    Instances For
                      def Hex.findDirectSubset (coreLc : Int) (target : ZPoly) (basis : LiftData) (lift : LiftSupport basis) (image : TargetImage target) (support : List (DirectLiftedIndex basis)) (levels : List Nat) (budget : Nat) (stats : DirectCandidateStats) (completed : Array Nat) :

                      Search complete unforced cardinality levels without materializing subsets.

                      The whole cardinality schedule runs against one residual, so the one reduction of that residual is reused by every level.

                      Equations
                      Instances For

                        An exact partial factorization together with its indexed lifted support.

                        This is computational proposal state, not an irreducibility certificate. The public factorizer only consumes it after exact reconstruction and proved classical replay.

                        • factors : Array ZPoly

                          Exact factors already peeled from the original target.

                        • residual : ZPoly

                          Exact quotient remaining after the peeled factors.

                        • support : List (DirectLiftedIndex basis)

                          Complementary lifted support for residual.

                        • budget : Nat

                          Candidate budget not consumed by complete sweeps.

                        • Measurements accumulated by the partial search.

                        Instances For
                          def Hex.peelDirectAux (coreLc : Int) (basis : LiftData) (lift : LiftSupport basis) (repeatLevels : List Nat) :

                          Repeatedly peel exact factors from one lifted basis. levels controls the first sweep; after every split, the smaller repeatLevels schedule is restarted on the exact quotient and complementary support.

                          lift is the traversal data of the basis, which every sweep shares. The residual's image in F_q[X] is rebuilt here, once per nonunit residual reaching findDirectSubset: an exact split replaces the residual, so the previous reduction describes a polynomial the search has left behind. The reduction is built before that call rather than inside it, so a residual whose schedule is empty or whose first level does not fit the budget still pays for one.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Hex.peelDirect (coreLc : Int) (target : ZPoly) (basis : LiftData) (maxCardinality : Nat := 3) (repeatCardinality : Nat := 2) (budget : Nat := defaultSubsetBudget) (stats : ClassicalStats := { }) :

                            Retain every cheap exact factor exposed by one Hensel lift. The first sweep admits support sizes up to maxCardinality; subsequent sweeps use the smaller repeatCardinality cap so progress is reused without repeatedly paying for the widest combinatorial level. The basis is lifted once, so its traversal data is prepared once here and shared by every sweep.

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