Modular group and congruence subgroups
TheoremMembership in a subgroup joined with a central involution#✓fully proved
Membership in the join of a subgroup with the cyclic subgroup generated by a central involution.
This is the computation behind "up to sign" arguments: for a subgroup
Γ of SL(2, ℤ), an element lies in Γ adjoined with -1 exactly when
it or its negative lies in Γ. The same pattern recurs for any group with
a central involution: spin groups, dihedral groups, and congruence
subgroups.
theorem mem_sup_zpowers_iff_of_central_sq_eq_one {G : Type*} [Group G]
(Γ : Subgroup G) {c : G} (hc : c ∈ Subgroup.center G) (hc2 : c ^ 2 = 1)
(g : G) :
g ∈ Γ ⊔ Subgroup.zpowers c ↔ g ∈ Γ ∨ c * g ∈ Γ
TheoremReduction mod p maps Γ(N) onto SL(2, ℤ/pℤ) when p does not divide N#✓fully proved
If p does not divide N, then reduction modulo p maps Γ(N) onto
SL(2, ZMod p).
theorem exists_mem_Gamma_map_eq_of_not_dvd
(N p : ℕ) [NeZero N] [Fact p.Prime] (hpN : ¬ p ∣ N) :
∀ g : SL(2, ZMod p), ∃ γ : SL(2, ℤ), γ ∈ CongruenceSubgroup.Gamma N ∧
Matrix.SpecialLinearGroup.map (Int.castRingHom (ZMod p)) γ = g
Theorem−1 lies in Γ₁(N) exactly when N ≤ 2#✓fully proved
-1 lies in Γ₁(N) if and only if N ≤ 2.
theorem neg_one_mem_Gamma1_iff (N : ℕ) [NeZero N] :
(-1 : SL(2, ℤ)) ∈ CongruenceSubgroup.Gamma1 N ↔ N ≤ 2
TheoremParabolic elements of SL(2, ℤ) are conjugate to ± powers of T#✓fully proved
Every element of SL(2, ℤ) whose trace squares to 4 is, up to a sign,
conjugate to a power of the translation T.
theorem exists_eq_conj_T_zpow_of_trace_sq_eq_four (γ : SL(2, ℤ))
(hγ : ((γ : Matrix (Fin 2) (Fin 2) ℤ).trace) ^ 2 = 4) :
∃ (ε δ : SL(2, ℤ)) (h : ℤ), (ε = 1 ∨ ε = -1) ∧
γ = ε * (δ * ModularGroup.T ^ h * δ⁻¹)
Theorem1 is a strict period of Γ₀(N)#✓fully proved
1 is a strict period of Γ₀(N): the translation matrix T lies in
Γ₀(N), and the strict periods then contain the integer multiples of 1.
theorem CongruenceSubgroup.one_mem_strictPeriods_Gamma0 (N : ℕ) :
(1 : ℝ) ∈ (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ)
(CongruenceSubgroup.Gamma0 N)).strictPeriods
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.