Documentation

HexNumberFieldMathlib.Presentation

Checked canonical construction of a rational algebraic number is total.

Checked canonical construction of a rational preserves its value.

Checked canonical addition is total.

Checked canonical addition preserves the represented complex value.

Checked canonical multiplication is total.

Checked canonical multiplication preserves the represented complex value.

Checked integer scaling is total.

A successful checked integer scaling has the expected value.

theorem Hex.AlgebraicPoly.Common.shift?_isSome (theta alpha : AlgebraicNumber) (c : ) :
(shift? theta alpha c).isSome = true

A checked primitive-element shift is total.

theorem Hex.AlgebraicPoly.Common.shift?_sound (theta alpha : AlgebraicNumber) (c : ) {candidate : AlgebraicNumber} (h : shift? theta alpha c = some candidate) :
candidate.toComplex = theta.toComplex + c * alpha.toComplex

A successful checked primitive-element shift has the expected value.

The executable degree is the degree of the rational minimal polynomial.

The complex value represented by a canonical algebraic number is algebraic over the rationals.

Every canonical algebraic number has positive degree.

The deterministic signed-shift enumeration never repeats a scalar.

The shift-retaining primitive search is total.

Retaining the producing shift does not change the selected primitive element.

The bounded maximum-degree primitive-element search is operationally total. Its field-generation invariant is established separately.

theorem Hex.AlgebraicPoly.Common.extendShift?_source (theta alpha : AlgebraicNumber) (shifted : ShiftCandidate) (h : extendShift? theta alpha = some shifted) :
shift? theta alpha shifted.shift = some shifted.value

The retained shift exactly produces the selected primitive candidate.

theorem Hex.AlgebraicPoly.Common.primitive?_isSome (coefficients : Array AlgebraicNumber) (hnonzero : acoefficients.toList, a.isZero = false) :
(primitive? coefficients).isSome = true

The primitive-element fold is total for any coefficient array containing a semantically nonzero entry.

The checked power table construction is total.

theorem Hex.AlgebraicPoly.Common.powers?_sound (gamma : AlgebraicNumber) (last : ) {powers : Array AlgebraicNumber} (h : powers? gamma last = some powers) :
powers.size = last + 1 ∀ (i : ) (hi : i < powers.size), powers[i].toComplex = gamma.toComplex ^ i

A successful checked power table contains exactly the requested initial powers of its generator.