TauLib.BookI.Boundary.Galois
TauLib.Boundary.Galois
Internal Galois theory on the primorial tower.
Registry Cross-References
-
[I.D95a] Galois Automorphism —
GaloisAut,galois_aut_check -
[I.D96a] Galois Group of Primorial Stage —
galois_group_order -
[I.T49a] Fundamental Theorem (Internal) —
galois_fundamental_check -
[I.P43a] CRT-Galois Decomposition —
galois_crt_check
Mathematical Content
I.D95a (Galois Automorphism): At stage k, an automorphism of Z/M_k Z is a map σ_a : x ↦ ax mod M_k where gcd(a, M_k) = 1. The automorphism preserves the ring structure: σ_a(x+y) = σ_a(x) + σ_a(y), σ_a(xy) = σ_a(x)σ_a(y).
I.D96a (Galois Group of Primorial Stage): The Galois group at stage k is Gal_k = (Z/M_k Z)× — the group of units of the primorial ring. Its order is Euler’s totient φ(M_k) = ∏_{p≤p_k} (p-1).
I.T49a (Fundamental Theorem): There is a bijective correspondence between subgroups of Gal_k and intermediate rings (subrings of Z/M_k Z that contain the image of Z). At primorial level, the CRT decomposition gives the explicit structure: Gal_k ≅ ∏_{i=1}^{k} (Z/p_i Z)×.
I.P43a (CRT-Galois Decomposition): The Galois group decomposes via CRT into a product of cyclic groups: Gal_k ≅ (Z/2Z)× × (Z/3Z)× × (Z/5Z)× × … This is the φ-function product: φ(M_k) = 1 × 2 × 4 × … × (p_k - 1).
Tau.Boundary.GaloisAut
source structure Tau.Boundary.GaloisAut :Type
[I.D95a] A Galois automorphism at stage k: multiplication by a unit.
- stage : ℕ
- multiplier : ℕ Instances For
Tau.Boundary.instReprGaloisAut
source instance Tau.Boundary.instReprGaloisAut :Repr GaloisAut
Equations
- Tau.Boundary.instReprGaloisAut = { reprPrec := Tau.Boundary.instReprGaloisAut.repr }
Tau.Boundary.instReprGaloisAut.repr
source def Tau.Boundary.instReprGaloisAut.repr :GaloisAut → ℕ → Std.Format
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.instDecidableEqGaloisAut
source instance Tau.Boundary.instDecidableEqGaloisAut :DecidableEq GaloisAut
Equations
- Tau.Boundary.instDecidableEqGaloisAut = Tau.Boundary.instDecidableEqGaloisAut.decEq
Tau.Boundary.instDecidableEqGaloisAut.decEq
source def Tau.Boundary.instDecidableEqGaloisAut.decEq (x✝ x✝¹ : GaloisAut) :Decidable (x✝ = x✝¹)
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.is_unit_mod
source def Tau.Boundary.is_unit_mod (a m : ℕ) :Bool
[I.D95a] Check that a multiplier is a unit (coprime to primorial). Equations
- Tau.Boundary.is_unit_mod a m = (a.gcd m == 1) Instances For
Tau.Boundary.galois_apply
source **def Tau.Boundary.galois_apply (σ : GaloisAut)
(x : ℕ) :ℕ**
[I.D95a] Apply a Galois automorphism to an element. Equations
- Tau.Boundary.galois_apply σ x = σ.multiplier * x % Tau.Polarity.primorial σ.stage Instances For
Tau.Boundary.galois_aut_check
source def Tau.Boundary.galois_aut_check (σ : GaloisAut) :Bool
[I.D95a] Check that σ is a valid automorphism (unit multiplier). Equations
- Tau.Boundary.galois_aut_check σ = Tau.Boundary.is_unit_mod σ.multiplier (Tau.Polarity.primorial σ.stage) Instances For
Tau.Boundary.galois_compose
source def Tau.Boundary.galois_compose (σ τ_aut : GaloisAut) :autoParam (σ.stage = τ_aut.stage) galois_compose._auto_1 → GaloisAut
[I.D95a] Compose two Galois automorphisms. Equations
- Tau.Boundary.galois_compose σ τ_aut x✝ = { stage := σ.stage, multiplier := σ.multiplier * τ_aut.multiplier % Tau.Polarity.primorial σ.stage } Instances For
Tau.Boundary.galois_id
source def Tau.Boundary.galois_id (k : ℕ) :GaloisAut
[I.D95a] The identity automorphism. Equations
- Tau.Boundary.galois_id k = { stage := k, multiplier := 1 } Instances For
Tau.Boundary.galois_inv
source def Tau.Boundary.galois_inv (σ_aut : GaloisAut) :GaloisAut
[I.D95a] The inverse of an automorphism (modular inverse). Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_inv.go
source@[irreducible]
def Tau.Boundary.galois_inv.go (mult a pk fuel : ℕ) :ℕ
Equations
- Tau.Boundary.galois_inv.go mult a pk fuel = if fuel = 0 then 0 else if (mult * a % pk == 1) = true then a else Tau.Boundary.galois_inv.go mult (a + 1) pk (fuel - 1) Instances For
Tau.Boundary.galois_group_order
source def Tau.Boundary.galois_group_order (k : ℕ) :ℕ
[I.D96a] Order of the Galois group at stage k = φ(M_k). Equations
- Tau.Boundary.galois_group_order k = Tau.Boundary.euler_totient (Tau.Polarity.primorial k) Instances For
Tau.Boundary.galois_order_expected
source def Tau.Boundary.galois_order_expected (k : ℕ) :ℕ
[I.D96a] Expected order via prime factorization: ∏(p_i - 1). Equations
- Tau.Boundary.galois_order_expected k = Tau.Boundary.galois_order_expected.go 1 k 1 Instances For
Tau.Boundary.galois_order_expected.go
source@[irreducible]
def Tau.Boundary.galois_order_expected.go (i kmax acc : ℕ) :ℕ
Equations
- Tau.Boundary.galois_order_expected.go i kmax acc = if i > kmax then acc else have p := Tau.Polarity.nth_prime i; Tau.Boundary.galois_order_expected.go (i + 1) kmax (acc * (p - 1)) Instances For
Tau.Boundary.galois_group_order_check
source def Tau.Boundary.galois_group_order_check (k : ℕ) :Bool
[I.D96a] Check that φ(M_k) = ∏(p_i - 1). Equations
- Tau.Boundary.galois_group_order_check k = (Tau.Boundary.galois_group_order k == Tau.Boundary.galois_order_expected k) Instances For
Tau.Boundary.galois_additive_check
source def Tau.Boundary.galois_additive_check (σ : GaloisAut) :Bool
[I.D95a] Check that σ_a preserves addition: σ(x+y) = σ(x)+σ(y). Equations
- Tau.Boundary.galois_additive_check σ = Tau.Boundary.galois_additive_check.go σ 0 (Tau.Polarity.primorial σ.stage) (Tau.Polarity.primorial σ.stage) Instances For
Tau.Boundary.galois_additive_check.go
source@[irreducible]
**def Tau.Boundary.galois_additive_check.go (σ : GaloisAut)
(x pk fuel : ℕ) :Bool**
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_additive_check.go_inner
source@[irreducible]
**def Tau.Boundary.galois_additive_check.go_inner (σ : GaloisAut)
(x y pk fuel : ℕ) :Bool**
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_root_preserving_check
source def Tau.Boundary.galois_root_preserving_check (σ : GaloisAut) :Bool
[I.D95a] Check that σ_a preserves roots of unity: if z^n ≡ 1 mod m, then (σ_a(z))^n ≡ 1 mod m, where σ_a(z) = z^a. Equations
- Tau.Boundary.galois_root_preserving_check σ = Tau.Boundary.galois_root_preserving_check.go σ 0 (Tau.Polarity.primorial σ.stage) (Tau.Polarity.primorial σ.stage) Instances For
Tau.Boundary.galois_root_preserving_check.go
source@[irreducible]
**def Tau.Boundary.galois_root_preserving_check.go (σ : GaloisAut)
(z pk fuel : ℕ) :Bool**
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_root_preserving_check.go_n
source@[irreducible]
def Tau.Boundary.galois_root_preserving_check.go_n (z a n pk fuel : ℕ) :Bool
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.unit_group_closed_check
source def Tau.Boundary.unit_group_closed_check (k : ℕ) :Bool
[I.D95a] Check that the unit group is closed under multiplication mod M_k. Equations
- Tau.Boundary.unit_group_closed_check k = Tau.Boundary.unit_group_closed_check.go 1 (Tau.Polarity.primorial k) (Tau.Polarity.primorial k) Instances For
Tau.Boundary.unit_group_closed_check.go
source@[irreducible]
def Tau.Boundary.unit_group_closed_check.go (a pk fuel : ℕ) :Bool
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.unit_group_closed_check.go_inner
source@[irreducible]
def Tau.Boundary.unit_group_closed_check.go_inner (a b pk fuel : ℕ) :Bool
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_crt_check
source def Tau.Boundary.galois_crt_check (k : ℕ) :Bool
[I.P43a] Verify the CRT decomposition: the Galois group at stage k decomposes as a product of (Z/p_i Z)× for i=1..k. Check by verifying the order equality. Equations
- Tau.Boundary.galois_crt_check k = Tau.Boundary.galois_group_order_check k Instances For
Tau.Boundary.galois_fundamental_check
source def Tau.Boundary.galois_fundamental_check (k : ℕ) :Bool
[I.T49a] Check that every unit generates a valid Galois action: preserves addition (as ring endomorphism) and preserves roots of unity (as field automorphism on cyclotomic extension). Verified at stage k. Equations
- Tau.Boundary.galois_fundamental_check k = (Tau.Boundary.unit_group_closed_check k && Tau.Boundary.galois_fundamental_check.go k 1 (Tau.Polarity.primorial k) (Tau.Polarity.primorial k)) Instances For
Tau.Boundary.galois_fundamental_check.go
source@[irreducible]
def Tau.Boundary.galois_fundamental_check.go (k a pk fuel : ℕ) :Bool
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.galois_order_1
source theorem Tau.Boundary.galois_order_1 :galois_group_order 1 = 1
[I.D96a] φ(2) = 1.
Tau.Boundary.galois_order_2
source theorem Tau.Boundary.galois_order_2 :galois_group_order 2 = 2
[I.D96a] φ(6) = 2.
Tau.Boundary.galois_order_3
source theorem Tau.Boundary.galois_order_3 :galois_group_order 3 = 8
[I.D96a] φ(30) = 8.
Tau.Boundary.galois_order_check_1
source theorem Tau.Boundary.galois_order_check_1 :galois_group_order_check 1 = true
[I.D96a] Order matches prime product at stage 1.
Tau.Boundary.galois_order_check_2
source theorem Tau.Boundary.galois_order_check_2 :galois_group_order_check 2 = true
[I.D96a] Order matches prime product at stage 2.
Tau.Boundary.galois_order_check_3
source theorem Tau.Boundary.galois_order_check_3 :galois_group_order_check 3 = true
[I.D96a] Order matches prime product at stage 3.
Tau.Boundary.galois_fundamental_2
source theorem Tau.Boundary.galois_fundamental_2 :galois_fundamental_check 2 = true
[I.T49a] All units at stage 2 are valid ring automorphisms.
Tau.Boundary.galois_crt_3
source theorem Tau.Boundary.galois_crt_3 :galois_crt_check 3 = true
[I.P43a] CRT decomposition verified at stage 3.
Tau.Boundary.galois_id_valid_1
source theorem Tau.Boundary.galois_id_valid_1 :galois_aut_check (galois_id 1) = true
[I.D95a] Identity is always a valid automorphism at stage 1.
Tau.Boundary.galois_id_valid_2
source theorem Tau.Boundary.galois_id_valid_2 :galois_aut_check (galois_id 2) = true
[I.D95a] Identity is always a valid automorphism at stage 2.
Tau.Boundary.galois_id_valid_3
source theorem Tau.Boundary.galois_id_valid_3 :galois_aut_check (galois_id 3) = true
[I.D95a] Identity is always a valid automorphism at stage 3.