Documentation

Mathlib.LinearAlgebra.Matrix.FixedDetMatrices

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.

def FixedDetMatrix (n : Type u_1) [DecidableEq n] [Fintype n] (R : Type u_2) [CommRing R] (m : R) :
Type (max 0 u_1 u_2)

The subtype of matrices with fixed determinant m

Equations
Instances For
    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) :
    A = B

    Extensionality theorem for FixedDetMatrix with respect to the underlying matrix, not entrywise.

    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) :
    A = B
    theorem FixedDetMatrices.ext_iff {n : Type u_1} [DecidableEq n] [Fintype n] {R : Type u_2} [CommRing R] {m : R} {A B : FixedDetMatrix n R m} :
    A = B ↔ ∀ (i j : n), ↑A i j = ↑B i j
    @[instance_reducible]
    Equations
    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) :
    g • A = ⟨↑g * ↑A, ⋯⟩
    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) :
    ↑(g • A) = ↑g * ↑A

    Set of representatives for the orbits under S and T

    Equations
    Instances For

      Reduction step for matrices in Δ m which moves the matrices towards reps

      Equations
      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
        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) :
            reduce A = ModularGroup.T ^ (-(↑A 0 1 / ↑A 1 1)) • A
            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) :
            theorem FixedDetMatrices.reps_entries_le_m' {m : ℤ} {A : FixedDetMatrix (Fin 2) ℤ m} (h : A ∈ reps m) (i j : Fin 2) :
            ↑A i j ∈ Finset.Icc (-|m|) |m|

            An auxiliary result bounding the size of the entries of the representatives in reps

            @[instance_reducible]
            noncomputable instance FixedDetMatrices.repsFintype (k : ℤ) :
            Fintype ↑(reps k)
            Equations
            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
            theorem FixedDetMatrices.reps_one_id (A : FixedDetMatrix (Fin 2) ℤ 1) (a1 : ↑A 1 0 = 0) (a4 : 0 < ↑A 0 0) (a6 : |↑A 0 1| < |↑A 1 1|) :
            A = 1