Documentation

HexNumberFieldTowerMathlib.FactorGeneric.Complete

theorem Hex.NumberTower.factorSquarefree_isSome (levels : List Level) (_hvalid : LevelsValid levels) (_hinjective : LevelSemantics.DenoteInjective levels) (f : Array (Array )) :

Totality of the squarefree-component factorizer: on a certified squarefree nonconstant input the bounded shift search and every recursive call succeed, so Factor.factorSquarefree? returns a result.

theorem Hex.NumberTower.factorRaw_isSome (levels : List Level) (hvalid : LevelsValid levels) (hinjective : LevelSemantics.DenoteInjective levels) (f : Array (Array )) :

The complete raw Yun/Trager factorization pipeline cannot fail when coefficient denotation is injective.

Over the empty tower the executable irreducibility checker accepts exactly the monic inputs whose interpretation is irreducible.

With coefficient-denotation injectivity supplied explicitly, the recursive Boolean checker is exactly monic polynomial irreducibility. This generic form breaks the logical cycle used when validating the tower itself.

theorem Hex.NumberTower.factorRaw_check (levels : List Level) (hvalid : LevelsValid levels) (hinjective : LevelSemantics.DenoteInjective levels) (f : Array (Array )) (hcanonical : Factor.polyCoords (Factor.rawPoly levels f) = f) {raw : Factor.RawFactorization} (hresult : Factor.factorRaw? levels f = some raw) :
Factor.check levels f raw.scalar raw.factors = true

Every raw candidate produced by the complete Yun/Trager pipeline passes the executable certificate replay, provided the input coordinate array is in the canonical image of rawPoly.

Structural validity plus the recursive checker certificates imply injectivity of raw coefficient denotation at every tower depth.