Documentation

LeanPool.QuadraticIterates.ArchMath1992.DegreeCriterion

The relative degree [K_{n+1} : K_n] #

K_{n+1} is generated over K_n by square roots of the shifted roots β - a of f_n (rootShift), so its relative degree is 2 to the power of 2^n minus the dimension of the 𝔽₂-space of multiplicative relations among them (relfinrank_succ_eq_pow). The relation space is trivial exactly when c_{n+1} is not a square in K_n, which is Lemma 1.6 (degree_criterion); Lemma 1.5 (kummer_extension_criterion) then says which rationals stay non-squares in K_n.

Part of the formalization of M. Stoll, Galois groups over ℚ of some iterated polynomials, Arch. Math. 59 (1992), 239-244; see QuadraticIterates.ArchMath1992.

The relative degree [K_{n+1} : K_n] #

The shifted root β - a of f_n, as an element of K_n: these are the radicands whose square roots generate K_{n+1} over K_n.

Equations
Instances For
    @[simp]
    theorem QuadraticIterates.coe_rootShift (a : ℤ) (n : ℕ) (β : ↑((Polynomial.map (Int.castRingHom ℚ) (iteratedPoly a n)).rootSet (AlgebraicClosure ℚ))) :
    ↑(rootShift a n β) = ↑β - ↑a

    The relative degree [K_{n+1} : K_n] equals 2 ^ (2^n - d), where d is the 𝔽₂-dimension of the multiquadratic relations among the shifted roots β - a of f_n.

    The degree criterion and the Kummer extension criterion #

    If -a is not a rational square, K_1 = ℚ(√(-a)) has degree 2 over ℚ.

    Lemma 1.6: if f_n is irreducible over ℚ, then [K_{n+1} : K_n] = 2^{2^n} iff c_{n+1} is not a square in K_n.

    theorem QuadraticIterates.finrank_adjoin_range_eq_two_pow (a : ℤ) {n : ℕ} (hindep : TwoIndependent fun (i : Fin n) => ↑(cSeq a (↑i + 1))) {x : Fin n → ↥(splittingField a n)} (hx : ∀ (i : Fin n), x i ^ 2 = (algebraMap ℚ ↥(splittingField a n)) ↑(cSeq a (↑i + 1))) :
    theorem QuadraticIterates.finrank_adjoin_le_two_pow (a : ℤ) {n : ℕ} (hiso : Nonempty (GaloisGroup a n ≃* WreathPower n)) (t : Finset ↥(splittingField a n)) (ht : ∀ y ∈ t, ∃ (q : ℚ), y ^ 2 = (algebraMap ℚ ↥(splittingField a n)) q) :
    theorem QuadraticIterates.isSquare_algebraMap_iff_exists_sq_eq (a : ℤ) {n : ℕ} (hiso : Nonempty (GaloisGroup a n ≃* WreathPower n)) (hindep : TwoIndependent fun (i : Fin n) => ↑(cSeq a (↑i + 1))) {x : Fin n → ↥(splittingField a n)} (hx : ∀ (i : Fin n), x i ^ 2 = (algebraMap ℚ ↥(splittingField a n)) ↑(cSeq a (↑i + 1))) {c : ℚ} (hc : c ≠ 0) :

    If Ω_n ≅ [C_2]^n and the c_i are 2-independent with square roots x i in K_n, then for nonzero c : ℚ, the image of c in K_n is a square iff it is the square of some z ∈ IntermediateField.adjoin ℚ (Set.range x).

    theorem QuadraticIterates.isSquare_algebraMap_cSeq (a : ℤ) (n : ℕ) (hnsq : ¬IsSquare (-↑a)) (m : ℕ) (hm1 : 1 ≤ m) (hmn : m ≤ n) :
    IsSquare ((algebraMap ℚ ↥(splittingField a n)) ↑(cSeq a m))
    theorem QuadraticIterates.isSquare_algebraMap_iff_exists_mul_prod (a : ℤ) {n : ℕ} (hiso : Nonempty (GaloisGroup a n ≃* WreathPower n)) (hindep : TwoIndependent fun (i : Fin n) => ↑(cSeq a (↑i + 1))) {c : ℚ} (hc : c ≠ 0) :
    IsSquare ((algebraMap ℚ ↥(splittingField a n)) c) ↔ ∃ (S : Finset (Fin n)), IsSquare (c * ∏ i ∈ S, ↑(cSeq a (↑i + 1)))
    theorem QuadraticIterates.twoIndependent_snoc_iff {n : ℕ} {v : Fin n → ℚ} (hv : TwoIndependent v) {c : ℚ} (hc : c ≠ 0) :
    TwoIndependent (Fin.snoc v c) ↔ ∀ (S : Finset (Fin n)), ¬IsSquare (c * ∏ i ∈ S, v i)
    theorem QuadraticIterates.kummer_extension_criterion (a : ℤ) {n : ℕ} (hiso : Nonempty (GaloisGroup a n ≃* WreathPower n)) (hindep : TwoIndependent fun (i : Fin n) => ↑(cSeq a (↑i + 1))) {c : ℚ} (hc : c ≠ 0) :
    ¬IsSquare ((algebraMap ℚ ↥(splittingField a n)) c) ↔ TwoIndependent (Fin.snoc (fun (i : Fin n) => ↑(cSeq a (↑i + 1))) c)

    Lemma 1.5: if Ω_n ≅ [C_2]^n and c_1, …, c_n are 2-independent, then a nonzero c ∈ ℚ is a non-square in K_n iff c_1, …, c_n, c are 2-independent.