The total power-table wrapper is its successful checked computation.
theorem
Hex.QAdjoin.powerTable_spec
(a : AlgebraicNumber)
:
(powerTable a).size = 2 * AlgebraicPoly.Common.degree a - 1 ∧ ∀ (i : ℕ) (hi : i < (powerTable a).size), (powerTable a)[i].toComplex = a.toComplex ^ i
The shared table has the consecutive powers needed by the trace pairing.
Rational power-basis coordinates lie in the chosen simple extension.
Every coordinate value in a real-generated field is real.
The real-field rejection skips work without changing coordinate recovery.
theorem
Hex.QAdjoin.ofAlgebraic?_sound
(a b : AlgebraicNumber)
{c : QAdjoin a}
(h : ofAlgebraic? a b = some c)
:
Successful conversion recovers exactly the original canonical number.
Conversion succeeds exactly for elements of the chosen field.
@[simp]
@[simp]
theorem
Hex.QAdjoin.ofAlgebraics?_get
(a : AlgebraicNumber)
(bs : Array AlgebraicNumber)
(i : ℕ)
(hi : i < bs.size)
:
Batch conversion preserves the single-value membership decision at each index.
@[simp]
Each common-field coordinate converts back to its original input.