ℤ-lattices #
Let E
be a finite dimensional vector space over a NormedLinearOrderedField
K
with a solid
norm that is also a FloorRing
, e.g. ℝ
. A (full) ℤ
-lattice L
of E
is a discrete
subgroup of E
such that L
spans E
over K
.
A ℤ
-lattice L
can be defined in two ways:
- For
b
a basis ofE
, thenL = Submodule.span ℤ (Set.range b)
is a ℤ-lattice ofE
- As an
AddSubgroup E
with the additional properties:DiscreteTopology L
, that isL
is discreteSubmodule.span ℝ (L : Set E) = ⊤
, that isL
spansE
overK
.
Results about the first point of view are in the Zspan
namespace and results about the second
point of view are in the Zlattice
namespace.
Main results #
Zspan.isAddFundamentalDomain
: for a ℤ-latticeSubmodule.span ℤ (Set.range b)
, proves that the set defined byZspan.fundamentalDomain
is a fundamental domain.Zlattice.module_free
: an AddSubgroup ofE
that is discrete and spansE
overK
is a freeℤ
-moduleZlattice.rank
: an AddSubgroup ofE
that is discrete and spansE
overK
is a freeℤ
-module ofℤ
-rank equal to theK
-rank ofE
The fundamental domain of the ℤ-lattice spanned by b
. See Zspan.isAddFundamentalDomain
for the proof that it is a fundamental domain.
Equations
- Zspan.fundamentalDomain b = {m : E | ∀ (i : ι), (b.repr m) i ∈ Set.Ico 0 1}
Instances For
The map that sends a vector of E
to the element of the ℤ-lattice spanned by b
obtained
by rounding down its coordinates on the basis b
.
Equations
- Zspan.floor b m = Finset.sum Finset.univ fun (i : ι) => ⌊(b.repr m) i⌋ • (Basis.restrictScalars ℤ b) i
Instances For
The map that sends a vector of E
to the element of the ℤ-lattice spanned by b
obtained
by rounding up its coordinates on the basis b
.
Equations
- Zspan.ceil b m = Finset.sum Finset.univ fun (i : ι) => ⌈(b.repr m) i⌉ • (Basis.restrictScalars ℤ b) i
Instances For
The map that sends a vector E
to the fundamentalDomain
of the lattice,
see Zspan.fract_mem_fundamentalDomain
, and fractRestrict
for the map with the codomain
restricted to fundamentalDomain
.
Equations
- Zspan.fract b m = m - ↑(Zspan.floor b m)
Instances For
The map fract
with codomain restricted to fundamentalDomain
.
Equations
- Zspan.fractRestrict b x = { val := Zspan.fract b x, property := (_ : Zspan.fract b x ∈ Zspan.fundamentalDomain b) }
Instances For
The map Zspan.fractRestrict
defines an equiv map between E ⧸ span ℤ (Set.range b)
and Zspan.fundamentalDomain b
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : DiscreteTopology ↥(Submodule.span ℤ (Set.range ⇑b))) = (_ : DiscreteTopology ↥(Submodule.span ℤ (Set.range ⇑b)))
For a ℤ-lattice Submodule.span ℤ (Set.range b)
, proves that the set defined
by Zspan.fundamentalDomain
is a fundamental domain.