Matrices with fixed determinant #
This file defines the type of matrices with fixed determinant m
and proves some basic results
about them.
We also prove that the subgroup of SL(2,ℤ)
generated by S
and T
is the whole group.
Note: Some of this was done originally in Lean 3 in the kbb (https://github.com/kim-em/kbb/tree/master) repository, so credit to those authors.
theorem
FixedDetMatrices.ext'
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
{m : R}
{A B : FixedDetMatrix n R m}
(h : ↑A = ↑B)
:
Extensionality theorem for FixedDetMatrix
with respect to the underlying matrix, not
entriwise.
theorem
FixedDetMatrices.ext
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
{m : R}
{A B : FixedDetMatrix n R m}
(h : ∀ (i j : n), ↑A i j = ↑B i j)
:
instance
FixedDetMatrices.instSMulSpecialLinearGroupFixedDetMatrix
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
(m : R)
:
SMul (Matrix.SpecialLinearGroup n R) (FixedDetMatrix n R m)
Equations
- FixedDetMatrices.instSMulSpecialLinearGroupFixedDetMatrix n R m = { smul := fun (g : Matrix.SpecialLinearGroup n R) (A : FixedDetMatrix n R m) => ⟨↑g * ↑A, ⋯⟩ }
theorem
FixedDetMatrices.smul_def
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
(m : R)
(g : Matrix.SpecialLinearGroup n R)
(A : FixedDetMatrix n R m)
:
instance
FixedDetMatrices.instMulActionSpecialLinearGroupFixedDetMatrix
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
(m : R)
:
MulAction (Matrix.SpecialLinearGroup n R) (FixedDetMatrix n R m)
Equations
theorem
FixedDetMatrices.smul_coe
(n : Type u_1)
[DecidableEq n]
[Fintype n]
(R : Type u_2)
[CommRing R]
(m : R)
(g : Matrix.SpecialLinearGroup n R)
(A : FixedDetMatrix n R m)
:
def
FixedDetMatrices.reduceStep
{m : ℤ}
(A : FixedDetMatrix (Fin 2) ℤ m)
:
FixedDetMatrix (Fin 2) ℤ m
Reduction step for matrices in Δ m
which moves the matrices towards reps
Equations
- FixedDetMatrices.reduceStep A = ModularGroup.S • ModularGroup.T ^ (-(↑A 0 0 / ↑A 1 0)) • A
Instances For
@[irreducible]
def
FixedDetMatrices.reduce_rec
{m : ℤ}
{C : FixedDetMatrix (Fin 2) ℤ m → Sort u_3}
(base : (A : FixedDetMatrix (Fin 2) ℤ m) → ↑A 1 0 = 0 → C A)
(step : (A : FixedDetMatrix (Fin 2) ℤ m) → ↑A 1 0 ≠ 0 → C (reduceStep A) → C A)
(A : FixedDetMatrix (Fin 2) ℤ m)
:
C A
Reduction lemma for integral FixedDetMatrices.
Equations
- FixedDetMatrices.reduce_rec base step A = if h : ↑A 1 0 = 0 then base A h else step A h (FixedDetMatrices.reduce_rec base step (FixedDetMatrices.reduceStep A))
Instances For
@[irreducible]
Map from Δ m → Δ m
which reduces a FixedDetMatrix
towards a representative element
in reps
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
FixedDetMatrices.reduce_of_pos
{m : ℤ}
{A : FixedDetMatrix (Fin 2) ℤ m}
(hc : ↑A 1 0 = 0)
(ha : 0 < ↑A 0 0)
:
theorem
FixedDetMatrices.reduce_of_not_pos
{m : ℤ}
{A : FixedDetMatrix (Fin 2) ℤ m}
(hc : ↑A 1 0 = 0)
(ha : ¬0 < ↑A 0 0)
:
@[simp]
theorem
FixedDetMatrices.reduce_reduceStep
{m : ℤ}
{A : FixedDetMatrix (Fin 2) ℤ m}
(hc : ↑A 1 0 ≠ 0)
:
Equations
- FixedDetMatrices.repsFintype k = Fintype.ofInjective (fun (M : ↑(FixedDetMatrices.reps k)) (i j : Fin 2) => ⟨↑↑M i j, ⋯⟩) ⋯
@[simp]
@[simp]
theorem
FixedDetMatrices.induction_on
{m : ℤ}
{C : FixedDetMatrix (Fin 2) ℤ m → Prop}
{A : FixedDetMatrix (Fin 2) ℤ m}
(hm : m ≠ 0)
(h0 : ∀ (A : FixedDetMatrix (Fin 2) ℤ m), ↑A 1 0 = 0 → 0 < ↑A 0 0 → 0 ≤ ↑A 0 1 → |↑A 0 1| < |↑A 1 1| → C A)
(hS : ∀ (B : FixedDetMatrix (Fin 2) ℤ m), C B → C (ModularGroup.S • B))
(hT : ∀ (B : FixedDetMatrix (Fin 2) ℤ m), C B → C (ModularGroup.T • B))
:
C A
SL(2, ℤ)
is generated by S
and T
.