The Mukai extension of a symmetric bilinear lattice #
Given an additive group N carrying a symmetric ℤ-bilinear form b, the
Mukai extension is ℤ × N × ℤ with
⟪(r, c, s), (r', c', s')⟫ = b c c' - r * s' - r' * s.
This is not the Mukai lattice of a K3 surface. It is the abstract lattice
that lattice is an instance of. Taking N = NS(X) with the intersection form
recovers the algebraic Mukai lattice H⁰ ⊕ NS ⊕ H⁴, but that identification
needs D^b(Coh X), Chern characters and Hirzebruch–Riemann–Roch, none of which
exist in Mathlib at the pin. It is geometry, it lives in the assumption
frontier, and nothing here discharges it or depends on it.
This is the same discipline LinearAlgebra/Lattice/Numerical.lean applies to
Fin 2 → ℤ:
every theorem below is a theorem about an arbitrary symmetric bilinear
ℤ-lattice, and is true whether or not any surface exists.
Naming #
expectedDim v = ⟪v, v⟫ + 2 is a definition, not the Mukai dimension
theorem. The statement that a moduli space of stable objects with primitive
Mukai vector v has dimension ⟪v, v⟫ + 2 is geometry and is not asserted.
The name records which numerical quantity is being tracked, nothing more.
Main results #
pairing_comm— the extension is symmetric whenbis.even_selfPairing— the extension of an even lattice is even.pairing_rankUnit_corankUnit— the rank/co-rank plane is a hyperbolic plane: two isotropic generators pairing to-1.
The underlying group of the Mukai extension of N: triples (r, c, s).
The name is suggestive of the K3 case; the module docstring records that the identification with any geometric lattice is not made here.
Instances For
Bilinearity #
Proved directly from the definition rather than inherited, so that every downstream rewrite has a named lemma to hit.
linter.unusedSimpArgs is disabled for this section, and the suppression is
load-bearing rather than cosmetic. It flags LinearMap.add_apply and its
siblings in the four left-hand lemmas as unused; removing them on that advice
makes all four fail. The reason is asymmetry in the definition: on the right,
b u.2.1 (v.2.1 + w.2.1) is closed by map_add on the applied form alone,
whereas on the left b (u.2.1 + v.2.1) w.2.1 first becomes (b u.2.1 + b v.2.1) w.2.1
and needs LinearMap.add_apply to reach a goal ring can see. The linter
judges the simp only call in isolation and does not know a ring follows it.
Re-check this if the pin moves; do not delete the arguments on the warning
alone.
The quadratic refinement, over ℤ #
selfPairing itself is generic and lives above; these are the ℤ-lattice
facts about it.
The Mukai extension of an even lattice is even.
For a K3 surface the intersection form on NS(X) is even, and this is the
lattice-theoretic reason ⟪v, v⟫ is always even there. The hypothesis is
stated, never assumed from geometry.
Distinguished classes #
IsSpherical and IsIsotropic are the two numerical conditions the
wall-classification literature is organised around. Both are conditions on a
lattice vector alone.
⟪v, v⟫ = -2. In the K3 case these are the classes of spherical objects;
here it is a numerical condition and nothing more.
Equations
- Mukai.IsSpherical b v = (Mukai.selfPairing b v = -2)
Instances For
⟪v, v⟫ = 0.
Equations
- Mukai.IsIsotropic b v = (Mukai.selfPairing b v = 0)
Instances For
The numerical quantity ⟪v, v⟫ + 2.
A definition, not the Mukai dimension theorem. See the module docstring.
Equations
- Mukai.expectedDim b v = Mukai.selfPairing b v + 2
Instances For
The hyperbolic plane in the rank / co-rank coordinates #
The two outer summands span a copy of the hyperbolic plane U, independently
of b. This is the lattice-theoretic content of "the Mukai lattice contains
H⁰ ⊕ H⁴".
(1, 0, 0).
Instances For
(0, 0, 1).
Instances For
The two isotropic generators pair to -1: the outer plane is hyperbolic.
Bundled form #
The pairing packaged as a ℤ-bilinear map, for downstream use with Mathlib's
bilinear/quadratic-form API.
The Mukai pairing as a bundled bilinear map.
Equations
- Mukai.pairingBilin b = LinearMap.mk₂ ℤ (Mukai.pairing b) ⋯ ⋯ ⋯ ⋯