Documentation

HexNumberFieldMathlib.Coordinates

The degree of an algebraic number lying in a primitive field divides the degree of that field.

Trace succeeds whenever the input belongs to the stated primitive field.

theorem Hex.AlgebraicPoly.Common.trace?_sound (gamma a : AlgebraicNumber) (ha : a.toComplex gamma.toComplex) {t : } (h : trace? (degree gamma) a = some t) :

A successful executable trace is the field trace from the primitive ambient field.

theorem Hex.AlgebraicPoly.Common.coordinates?_isSome (gamma a : AlgebraicNumber) (powers : Array AlgebraicNumber) (hsize : powers.size = 2 * degree gamma - 1) (hvalues : ∀ (i : ) (hi : i < powers.size), powers[i].toComplex = gamma.toComplex ^ i) (ha : a.toComplex gamma.toComplex) :
(coordinates? gamma a powers).isSome = true

Coordinate recovery succeeds for an element of the primitive field when the supplied table contains the required consecutive powers.

theorem Hex.AlgebraicPoly.Common.coordinates?_sound (gamma a : AlgebraicNumber) (powers : Array AlgebraicNumber) {coordinate : PolyQuot gamma.p gamma.x} (h : coordinates? gamma a powers = some coordinate) :
coordinate.toComplex gamma.rep = a.toComplex

Successful coordinate recovery represents the original algebraic value at the selected primitive embedding.