Lattices #
Let A be an R-algebra and V an A-module. Then an R-submodule M of V is a lattice,
if M is finitely generated and spans V as an A-module.
The typical use case is A = K is the fraction field of an integral domain R and V = ι → K
for some finite ι. The scalar multiple a lattice by a unit in K is again a lattice. This gives
rise to a homothety relation.
When R is a DVR and ι = Fin 2, then by taking the quotient of the type of R-lattices in
ι → K by the homothety relation, one obtains the vertices of what is called the Bruhat-Tits tree
of GL 2 K.
Main definitions #
Submodule.IsLattice: AnR-submoduleMofVis a lattice, if it is finitely generated and itsA-span isV.
Main properties #
Let R be a PID and A = K its field of fractions.
Submodule.IsLattice.free: Every lattice inVisR-free.Basis.extendOfIsLattice: AnyR-basis of a latticeMinVdefines aK-basis ofV.Submodule.IsLattice.rank: TheR-rank of a lattice inVis equal to theK-rank ofV.Submodule.IsLattice.inf: The intersection of two lattices is a lattice.
Note #
In the case R = ℤ and A = K a field, there is also IsZLattice where the finitely
generated condition is replaced by having the discrete topology. This is for example used
for complex tori.
An R-submodule M of V is a lattice if it is finitely generated
and spans V as an A-module.
Note 1: A is marked as an outParam here. In practice this should not cause issues, since
R and A are fixed, where typically A is the fraction field of R.
Note 2: In the case R = ℤ and A = K a field, there is also IsZLattice where the finitely
generated condition is replaced by having the discrete topology.
- fg : M.FG
Instances
Any R-lattice is finite.
The action of Aˣ on R-submodules of V preserves IsLattice.
The supremum of two lattices is a lattice.
Any basis of an R-lattice in V defines a K-basis of V.
Equations
- Basis.extendOfIsLattice K b = Basis.mk ⋯ ⋯
Instances For
A finitely-generated R-submodule of V of rank at least the K-rank of V
is a lattice.
Any lattice over a PID is a free R-module.
Note that under our conditions, NoZeroSMulDivisors R K simply says that algebraMap R K is
injective.
Any lattice has R-rank equal to the K-rank of V.
Any R-lattice in ι → K has #ι as R-rank.
Module.finrank version of IsLattice.rank.
The intersection of two lattices is a lattice.