theorem
Hex.AlgebraicPoly.Common.degree_dvd_of_mem
(gamma a : AlgebraicNumber)
(ha : a.toComplex ∈ ℚ⟮gamma.toComplex⟯)
:
The degree of an algebraic number lying in a primitive field divides the degree of that 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⟯)
:
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)
:
Successful coordinate recovery represents the original algebraic value at the selected primitive embedding.