Documentation

LeanPool.QuadraticIterates.ArchMath1992.Main

The main theorems #

The integer factors b_n of the c-sequence — integral, pairwise coprime, and recovering c_n by Möbius inversion (Lemma 1.1 b) — and the three results of the paper: section1_equiv (Ω_n ≅ [C₂]ⁿ iff the c_i are 2-independent iff the b_i are), section1_squarefree (no |b_k| a square forces Ω_n ≅ [C₂]ⁿ) and section3_main (the congruence conditions on a that guarantee this for every 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 integer factors b_n #

theorem QuadraticIterates.cSeq_ne_zero (a : ) (ha : ¬IsSquare (-a)) {n : } (hn : 1 n) :
cSeq a n 0
theorem QuadraticIterates.cSeq_factorization_shape (a : ) (ha : ¬IsSquare (-a)) (q : ) :
Prime qnormalize q = qm1, ∃ (E : ), k1, (factorization (cSeq a k)) q = if m k then E else 0

The constant-valuation shape for c: the specialization of factorization_gammaSeq_shape to X² + a, ε = -1, in the form consumed by moebiusFactorR_isRelPrime.

theorem QuadraticIterates.intCast_bSeq (a : ) (ha : ¬IsSquare (-a)) {n : } (hn : 1 n) :
(bSeq a n) = moebiusFactor (cSeq a) n

The image of b_n in is the Möbius product ∏_{ed = n} c_d^{μ(e)} (Lemma 1.1 b): the Möbius product of the c-sequence is the integer b_n, since c is a strong divisibility sequence.

theorem QuadraticIterates.bSeq_ne_zero (a : ) (ha : ¬IsSquare (-a)) {n : } (hn : 1 n) :
bSeq a n 0
theorem QuadraticIterates.cSeq_eq_prod_bSeq (a : ) (ha : ¬IsSquare (-a)) {n : } (hn : 1 n) :
cSeq a n = dn.divisors, bSeq a d

Möbius inversion for the integer factors (Lemma 1.1 b): c_n = ∏_{d ∣ n} b_d.

theorem QuadraticIterates.isCoprime_bSeq (a : ) (ha : ¬IsSquare (-a)) {m n : } (hm : 1 m) (hn : 1 n) (hmn : m n) :
IsCoprime (bSeq a m) (bSeq a n)

The integer factors b_n are pairwise coprime (Lemma 1.1 b): the valuation of b_n at each prime is supported on a single index, so no prime divides two distinct factors.

The main theorems #

theorem QuadraticIterates.section1_a_iff_b (a : ) (ha : ¬IsSquare (-a)) (n : ) :
Nonempty (GaloisGroup a n ≃* WreathPower n) TwoIndependent fun (i : Fin n) => (cSeq a (i + 1))

Section 1, (a) ↔ (b): Ω_n ≅ [C₂]ⁿ iff c_1, …, c_n are 2-independent.

theorem QuadraticIterates.sqClass_cSeq_eq_sum_divisors (a : ) (ha : ¬IsSquare (-a)) {m : } (hm : 1 m) :
sqClass (cSeq a m) = dm.divisors, sqClass (bSeq a d)

In ℚˣ/(ℚˣ)², the class of c_m is the sum of the classes of the b_d over d ∣ m.

In ℚˣ/(ℚˣ)², the class of b_m is the Möbius-weighted sum of the classes of the c_d.

theorem QuadraticIterates.section1_b_iff_c (a : ) (ha : ¬IsSquare (-a)) (n : ) :
(TwoIndependent fun (i : Fin n) => (cSeq a (i + 1))) TwoIndependent fun (i : Fin n) => (bSeq a (i + 1))

Section 1, (b) ↔ (c): c_1, …, c_n are 2-independent iff b_1, …, b_n are 2-independent.

theorem QuadraticIterates.section1_equiv (a : ) (ha : ¬IsSquare (-a)) (n : ) :
[Nonempty (GaloisGroup a n ≃* WreathPower n), TwoIndependent fun (i : Fin n) => (cSeq a (i + 1)), TwoIndependent fun (i : Fin n) => (bSeq a (i + 1))].TFAE

Theorem (Section 1), part 1: Ω_n ≅ [C_2]^n iff c_1, …, c_n are 2-independent iff b_1, …, b_n are 2-independent.

theorem QuadraticIterates.section1_squarefree (a : ) (ha : ¬IsSquare (-a)) (n : ) (h : k2, k n¬IsSquare |bSeq a k|) :

Theorem (Section 1), part 2: if none of |b_2|, …, |b_n| is a square in , then Ω_n ≅ [C_2]^n.

theorem QuadraticIterates.gammaSeq_normPoly_pos (a : ) (ha : ¬IsSquare (-a)) (d : ) :
d 10 < gammaSeq (normPoly a) a.sign d
theorem QuadraticIterates.abs_bSeq_eq_betaSeq (a : ) (ha : ¬IsSquare (-a)) (n : ) :
n 2|bSeq a n| = betaSeq (normPoly a) a.sign n
theorem QuadraticIterates.section3_main (a : ) (hcase : 0 < a a % 4 = 1 0 < a a % 4 = 2 a < 0 a % 4 = 0 ¬IsSquare (-a)) (n : ) :

Section 3, main result: if a > 0 and a ≡ 1 or 2 mod 4, or a < 0, a ≡ 0 mod 4 and -a is not a square, then Gal(f_n/ℚ) ≅ [C_2]^n for all n ≥ 1.