Documentation

LeanPool.BruhatTits.Lattice.Basic

Definition of lattices #

Let K be a field and R a subring. Then an R-submodule M of ι → K is a lattice, if M is finitely generated and it spans ι → K as a K-module.

If R is a principal ideal domain, any lattice is a free R-module of rank cardinality of ι.

class IsLattice {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} (M : Submodule (↥R) (ιK)) :

An R-submodule M of ι → K is a lattice if it is finitely generated and spans ι → K as a K-module.

Instances
    instance IsLattice.finite {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} (M : Submodule (↥R) (ιK)) [IsLattice M] :
    Module.Finite R M

    Any R-lattice is finite.

    instance IsLattice.smul {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} (M : Submodule (↥R) (ιK)) [IsLattice M] (a : Kˣ) :

    The action of on R-submodules of ι → K preserves IsLattice.

    theorem IsLattice.of_le_of_isLattice {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsNoetherianRing R] {M L P : Submodule (↥R) (ιK)} [IsLattice M] [IsLattice P] (hML : M L) (hLP : L P) :
    instance Matrix.GeneralLinearGroup.toSubmodule_isLattice {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [Fintype ι] [DecidableEq ι] (g : GL ι K) :

    The submodule spanned by the columns of an invertible matrix is a lattice.

    instance Matrix.GeneralLinearGroup.instIsLatticeHSMulSubmoduleSubtypeMemSubringForall {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [Fintype ι] [DecidableEq ι] (g : GL ι K) (M : Submodule (↥R) (ιK)) [IsLattice M] :
    theorem Module.Basis.top_le_submodule_span_of_isLattice {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} {κ : Type u_3} [Finite κ] {M : Submodule (↥R) (ιK)} (b : Basis κ R M) [IsLattice M] :
    Submodule.span K (Set.range fun (i : κ) => (b i))
    noncomputable def Module.Basis.ofSubmodule {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] {M : Submodule (↥R) (ιK)} [IsLattice M] (b : Basis ι R M) :
    Basis ι K (ιK)

    Given an R-lattice M of ι → K and an R-basis of M, this basis is also a K basis of ι → K.

    Equations
    Instances For
      noncomputable def Module.Basis.toGeneralLinearGroup {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (b : Basis ι K (ιK)) :
      GL ι K

      Any K-basis of ι → K defines an element of GL ι K.

      Equations
      Instances For
        @[simp]
        theorem Module.Basis.toGeneralLinearGroup_apply {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (b : Basis ι K (ιK)) (i j : ι) :
        b.toGeneralLinearGroup i j = b j i
        noncomputable def Module.Basis.toGL {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] [DecidableEq ι] {M : Submodule (↥R) (ιK)} [IsLattice M] (b : Basis ι R M) :
        GL ι K

        Given an R-lattice M of ι → K and an R-basis b of M, the columns of b form an invertible K-matrix.

        Equations
        Instances For
          @[simp]
          theorem Module.Basis.toGL_apply {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] [DecidableEq ι] {M : Submodule (↥R) (ιK)} [IsLattice M] (b : Basis ι R M) (i j : ι) :
          b.toGL i j = (b j) i
          @[simp]
          theorem Module.Basis.transpose_toGL {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] [DecidableEq ι] {M : Submodule (↥R) (ιK)} [IsLattice M] (b : Basis ι R M) (i : ι) :
          (↑b.toGL).transpose i = (b i)
          theorem Module.Basis.toGL_toSubmodule {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] [DecidableEq ι] {M : Submodule (↥R) (ιK)} [IsLattice M] (b : Basis ι R M) :

          Lattices are free #

          In this section we prove that every lattice is a free R-module of finite rank the cardinality of ι and that every such R-module is a lattice.

          instance IsLattice.free {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsPrincipalIdealRing R] (M : Submodule (↥R) (ιK)) [IsLattice M] :
          Module.Free R M

          Any lattice is a free R-module.

          theorem IsLattice.rank' {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [IsPrincipalIdealRing R] [Fintype ι] (M : Submodule (↥R) (ιK)) [IsLattice M] :
          Module.rank R M = (Fintype.card ι)

          Any lattice has the cardinality of ι as R-rank.

          theorem IsLattice.rank {K : Type u_1} [Field K] {R : Subring K} [IsFractionRing (↥R) K] [IsPrincipalIdealRing R] {k : } (M : Submodule (↥R) (Fin kK)) [IsLattice M] :
          Module.rank R M = k

          Any R-lattice has rank k as an R-module.

          theorem IsLattice.finrank {K : Type u_1} [Field K] {R : Subring K} [IsFractionRing (↥R) K] [IsPrincipalIdealRing R] {k : } (M : Submodule (↥R) (Fin kK)) [IsLattice M] :
          Module.finrank R M = k

          FiniteDimensional.finrank version of IsLattice.rank.

          instance IsLattice.sup {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} (M N : Submodule (↥R) (ιK)) [IsLattice M] [IsLattice N] :
          IsLattice (MN)

          The supremum of two lattices is a lattice.

          theorem Submodule.span_eq_top_of_rank {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] {M : Submodule (↥R) (ιK)} (h : Module.rank R M = (Fintype.card ι)) :
          span K M =
          theorem IsLattice.of_rank {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [Fintype ι] {M : Submodule (↥R) (ιK)} (hfg : M.FG) (hr : Module.rank R M = (Fintype.card ι)) :

          An R-submodule of ι → K that is finitely generated and has rank the cardinality of ι is a lattice.

          theorem IsLattice.intersection {K : Type u_1} [Field K] {R : Subring K} {ι : Type u_2} [IsFractionRing (↥R) K] [IsPrincipalIdealRing R] (M N : Submodule (↥R) (ιK)) [Finite ι] [IsLattice M] [IsLattice N] :
          IsLattice (MN)

          The intersection of two lattices is a lattice.

          structure BruhatTits.Lattice {K : Type u_1} [Field K] (R : Subring K) :
          Type u_1

          An R-lattice is a submodule M of Fin 2 → K which satisfies IsLattice.

          Instances For
            theorem BruhatTits.Lattice.ext_iff {K : Type u_1} {inst✝ : Field K} {R : Subring K} {x y : Lattice R} :
            x = y x.M = y.M
            theorem BruhatTits.Lattice.ext {K : Type u_1} {inst✝ : Field K} {R : Subring K} {x y : Lattice R} (M : x.M = y.M) :
            x = y
            @[implicit_reducible]
            instance BruhatTits.Lattice.instSMulUnits {K : Type u_1} [Field K] (R : Subring K) :
            Equations
            @[simp]
            theorem BruhatTits.Lattice.smul_module {K : Type u_1} [Field K] (R : Subring K) (a : Kˣ) (L : Lattice R) :
            (a L).M = a L.M
            @[implicit_reducible]

            acts on R-lattices by acting on the submodule.

            Equations
            @[implicit_reducible]
            Equations
            theorem BruhatTits.Lattice.smul_M {K : Type u_1} [Field K] {R : Subring K} (g : GL (Fin 2) K) (L : Lattice R) :
            (g L).M = g L.M
            noncomputable def BruhatTits.Lattice.basis {K : Type u_1} [Field K] {R : Subring K} [IsFractionRing (↥R) K] [IsPrincipalIdealRing R] (L : Lattice R) :
            Module.Basis (Fin 2) R L.M

            Given a lattice, this is an arbitrary choice of a basis.

            Equations
            Instances For
              def BruhatTits.Lattice.IsSimilar {K : Type u_1} [Field K] (R : Subring K) (L N : Lattice R) :

              Two R-lattices L and N are similar, if N is a -multiple of L.

              Equations
              Instances For

                IsSimilar is an equivalence relation.

                theorem BruhatTits.Lattice.isSimilar_smul {K : Type u_1} [Field K] (R : Subring K) (L : Lattice R) (a : Kˣ) :
                IsSimilar R L (a L)
                theorem BruhatTits.Lattice.smul_isSimilar {K : Type u_1} [Field K] (R : Subring K) (L : Lattice R) (a : Kˣ) :
                IsSimilar R (a L) L
                @[implicit_reducible]
                Equations