Integral lattices in a real vector space #
The combinatorics of a toric variety takes place in a real vector space V carrying a
distinguished additive map i : N →+ V from an abelian group of integral vectors. For that
picture to determine anything, N has to be finite free over ℤ and V has to be the real
scalar extension of N along i: the latter is exactly Mathlib's IsBaseChange ℝ condition on
the ℤ-linear map underlying i, and TauCeti.Toric.IsIntegralLattice is the name this
development gives this interface.
Injectivity of i together with a full real span is strictly weaker and is not enough. The map
ℤ² →+ ℝ, (a, b) ↦ a + √2 * b, is injective and its image spans ℝ, yet its image is dense,
so its positive image has arbitrarily small elements and a ray has no least positive lattice
vector to serve as its "primitive generator". The scalar-extension condition rules this out by
forcing the integral and real ranks to agree.
Main declarations #
TauCeti.Toric.IsIntegralLattice: for finite freeN, the scalar-extension condition oni : N →+ V, stated as Mathlib'sIsBaseChange ℝfor the underlyingℤ-linear map.isIntegralLattice_iffis the equivalent formulation by anℝ-linear equivalenceℝ ⊗[ℤ] N ≃ₗ[ℝ] Vrestricting toi.TauCeti.Toric.isIntegralLattice_of_basis: an integral basis ofNwhose image is a real basis ofVexhibits an integral lattice.TauCeti.Toric.IsIntegralLattice.injective,TauCeti.Toric.IsIntegralLattice.span_range_eq_topandTauCeti.Toric.IsIntegralLattice.finrank_eq: an integral lattice is injective with full real span, and the integral rank ofNequals the real dimension ofV.TauCeti.Toric.linearIndependent_comp_iff_of_liftBaseChange_injective: when the real-linear mapℝ ⊗[ℤ] N →ₗ[ℝ] Vinduced byiis injective (as it is wheniextends scalars fromℤtoℝ, byIsBaseChange.liftBaseChange_injective), a family of integral vectors is linearly independent overℤexactly when its image is linearly independent overℝ.TauCeti.Toric.IsIntegralLattice.linearIndependent_basis: the images of the vectors of an integral basis are linearly independent over the reals.TauCeti.Toric.IsIntegralLattice.extendandTauCeti.Toric.IsIntegralLattice.eq_extend: a map of integral vectors extends to a unique real-linear map, so the real-linear map accompanying a map of lattices is determined by it rather than being extra data.TauCeti.Toric.IsIntegralLattice.realCharacterandTauCeti.Toric.IsIntegralLattice.eq_realCharacter: an integral character extends to a unique real-linear functional, additively in the character.TauCeti.Toric.IsIntegralLattice.exists_realCharacter_apply_eq: every additive real-valued function on the integral characters is evaluation at a point ofV.TauCeti.Toric.IsIntegralLattice.prod: products of integral lattices are integral lattices for the componentwise lattice map.TauCeti.Toric.IsIntegralLattice.isZLattice: in a normed space the image of an integral lattice is discrete, hence aZLatticein Mathlib's sense.TauCeti.Toric.isIntegralLattice_subtype_of_isZLattice: conversely, a fullZLatticein a finite-dimensional space is an integral lattice for its inclusion.
Implementation notes #
IsIntegralLattice packages finite freeness of the source with a named specialization of
IsBaseChange: it fixes the ring extension ℤ → ℝ, takes the bare additive map i that the
ambient cone geometry uses, and is the vocabulary in which toric cones, fans and their morphisms
are stated. The IsIntegralLattice.isBaseChange projection is the interface that downstream
modules use to reach the whole of Mathlib's base-change API.
References #
The mathematics is §1.2 of D. Cox, J. Little and H. Schenck, Toric Varieties, and §1.2 of W. Fulton, Introduction to Toric Varieties.
An additive map i : N →+ V from a finite free ℤ-module into a real vector space is an
integral lattice when it exhibits V as the extension of scalars of N from ℤ to ℝ.
- free : Module.Free ℤ N
The module of integral vectors is free.
- finite : Module.Finite ℤ N
The module of integral vectors is finitely generated.
- isBaseChange : IsBaseChange ℝ i.toIntLinearMap
Extending scalars from
ℤtoℝalongigives the ambient real vector space.
Instances For
An integral lattice, spelled by the scalar-extension equivalence it provides.
An integral basis of N whose image under i is a real basis of V exhibits i as an
integral lattice.
An integral lattice is injective.
When the real-linear map ℝ ⊗[ℤ] N →ₗ[ℝ] V induced by i is injective (for instance when
i extends scalars from ℤ to ℝ, by IsBaseChange.liftBaseChange_injective), a family of
integral vectors is linearly independent over ℤ exactly when its image under i is linearly
independent over ℝ: a real linear relation among lattice vectors forces an integral one. The
image of i need not span V.
The image of an integral lattice spans the ambient real vector space.
The integral rank of the lattice equals the real dimension of the ambient space.
An integral lattice sits in a finite-dimensional real vector space.
The range of an integral lattice is the ℤ-span of the real basis attached to an integral
basis of N.
The images of the vectors of an integral basis of an integral lattice are linearly independent over the reals.
Maps of lattices #
The real-linear map extending a map f : N →+ N' of integral vectors.
Instances For
A real-linear map compatible with a map of integral vectors is the extension of it. This is what makes the real-linear part of a map of lattices determined rather than chosen.
The real-linear extension of an integral character. Extension is additive in the character, so this is bundled as an additive homomorphism into the real dual space.
Instances For
Extending an integral character and evaluating it on a lattice point recovers the integer value of the character, viewed as a real number.
A real-linear functional agreeing with an integral character on lattice points is the real extension of that character.
The real extension of an integral coordinate character is the corresponding coordinate of the real basis attached to an integral basis.
A real-linear functional is the real extension of an integral character exactly when it takes integer values at every lattice point.
Real extension of integral characters is injective.
Every additive real-valued function on the integral characters is evaluation at a point of
the ambient real space: the real extensions of the characters identify V with the real-valued
additive functions on N →+ ℤ.
Real extension commutes with a compatible map of lattices.
Being an integral lattice transfers along an isomorphism of the integral vectors together with a compatible real-linear equivalence.
The product of two integral lattices is an integral lattice for the componentwise map.
Real extension of the sum of characters on the two factors of a product lattice is the sum of their real extensions.
Discreteness #
The image of an integral lattice is a discrete subgroup of a normed real vector space; this is what fails for an injective map with dense image.
The image of an integral lattice is a ℤ-lattice in Mathlib's sense.
Conversely, a full ℤ-lattice in Mathlib's sense, in a finite-dimensional normed real vector
space, is an integral lattice for its inclusion: the space is the real scalar extension of the
lattice.
The standard lattice #
The standard lattice ℤ^n ⊆ ℝ^n given by the coordinatewise integer cast.