The K₀ twist is the Mukai reflection #
LinearAlgebra/Lattice/Mukai/Reflection.lean says in its own docstring that the
eventual reason it exists is the identity T_E ↦ ρ_{v(E)}. This file proves the
K₀ half of that identity: transported along a Mukai realization
v : K₀ C →+ MukaiLattice N, the twist τ_E of
SphericalTwist/GrothendieckGroup.lean is the reflection
ρ_{v[E]} of Reflection.lean,
v (τ_E x) = ρ_{v[E]} (v x).
No geometry, no tensor product, no functor, and no sphericity predicate is
involved. The autoequivalence T_E still does not exist anywhere in this
repository; what is identified here are two maps of abelian groups.
MukaiRealization is supplied, not proved #
Nothing in this file, and nothing in this repository, constructs a
MukaiRealization. Its third field is Mukai's theorem — Hirzebruch--Riemann--Roch
in the form χ(E,F) = -⟪v(E), v(F)⟫ — and it is exactly the external input that
AlgebraicGeometry/Numerical/GrothendieckGroup/MukaiVector.lean supplies as
IntegralMukaiData together with chi₂_eq_neg_pairing. The sign convention is
taken from there deliberately, so the two statements are the same statement.
The structure follows the repository's established supplied-data idiom
(Duality.Serre.DerivedStatement, IntegralMukaiData,
K3Surface.EulerRealization): a reader must not take availability of the
structure as evidence that any category has a Mukai realization.
Where symmetry is spent #
map_twistK₀ needs symmetry of b at exactly one point, Mukai.pairing_comm,
and the file is written so that point is visible. τ_E x subtracts a multiple
of [E] weighted by χ(E, x) — the Euler form with E on the left —
whereas ρ_s w adds a multiple of s weighted by ⟪w, s⟫ — the lattice
pairing with w on the left. The two weights agree only after commuting one of
them, and that is the whole content of the hypothesis. This matches
Reflection.lean's own accounting, where symmetry first appears at
pairing_reflect_reflect and not before.
map_twistK₀ carries no sphericity hypothesis, matching Mukai.reflect,
which is deliberately defined for arbitrary s.
Trap: which form is -2 #
Sphericity of a Mukai vector is Mukai.selfPairing b v = -2, that is
Mukai.IsSpherical. It is not Mukai.realForm b v = -2. realForm is
deliberately half the self-pairing — it is (1/2 : ℝ) • realBilin b — so that
polar (realForm b) = realPairing b on the nose, correcting for Mathlib's
polar being twice the bilinear form. Comparing a self-pairing against
realForm yields -1 where -2 is meant, and reflect_reflect then fails to
close. Everything here stays on the integral pairing; the real form belongs to
the wall chart, which this file does not touch.
Main results #
MukaiRealization— the supplied datumvtogether with symmetry ofband the Mukai/HRR identity.MukaiRealization.isSpherical_of_chi_eq_two—χ(E,E) = 2makesv [E]spherical in the lattice sense.MukaiRealization.map_twistK₀— the identification, with no hypothesis onE.MukaiRealization.map_twistK₀Equiv— the same at the level of the automorphisms, andchiK₀_twistK₀_twistK₀recovered fromMukai.pairing_reflect_reflectrather than reproved.
A Mukai realization of K₀ C in a lattice MukaiLattice N.
Supplied data, in the repository's established idiom, and not constructed anywhere. See the module docstring.
The three fields are independent and do different work:
vis the Mukai vector as an additive map — no compatibility withχis asked of it on its own;symmis symmetry of the underlying bilinear formb. It is a property of the lattice, not ofv, and it is whatMukai.pairing_commconsumes;chi_eq_neg_pairingis the external input: Mukai's theorem, equivalently Hirzebruch--Riemann--Roch in bilinear form. The sign matchesAlgebraicGeometry.Numerical.IntegralMukaiData.chi₂_eq_neg_pairing(χ(E,F) = -⟪v(E), v(F)⟫) deliberately; a realization built from that datum discharges this field on the nose.
The Mukai vector, as an additive map out of
K₀ C.Symmetry of the underlying bilinear form.
Mukai's theorem / HRR: the Euler form is minus the lattice pairing.
Instances For
χ(E, E) = 2 makes the Mukai vector of E spherical.
Immediate from chi_eq_neg_pairing: 2 = -⟪v[E], v[E]⟫ is ⟪v[E], v[E]⟫ = -2,
which is Mukai.IsSpherical by definition. Note this is a statement about the
vector; no sphericity predicate on the object E exists or is needed.
The K₀ twist is the Mukai reflection.
v (τ_E x) = ρ_{v[E]} (v x), with no hypothesis on E: Mukai.reflect is
defined for an arbitrary vector, and so is twistK₀.
Symmetry of b is spent exactly once, at Mukai.pairing_comm, to turn the
lattice weight ⟪v x, v[E]⟫ of reflect into the Euler weight
-χ(E, x) = ⟪v[E], v x⟫ of twistK₀. See the module docstring.
The twisted vector is spherical exactly when the original one is; a
corollary of map_twistK₀ and Mukai.IsSpherical.reflect, not a new proof.
The isotropic classes are preserved too, by the same route.
The expected dimension is a twist invariant, from Mukai.expectedDim_reflect.
The identification at the level of automorphisms: twistK₀Equiv composed
with v is v composed with Mukai.reflectEquiv.
Stated pointwise. reflectEquiv is a ≃ₗ[ℤ] and twistK₀Equiv is a ≃+, so
the two sides live in different bundled types and only their underlying
functions can be compared; writing it pointwise is what avoids inserting a
coercion that would have to be unfolded again at every use.
τ_E preserves χ, recovered from the lattice side.
This is chiK₀_twistK₀_twistK₀ of SphericalTwist/GrothendieckGroup.lean again,
obtained here from Mukai.pairing_reflect_reflect through the realization
rather than reproved. The point of stating it twice is that the two routes give
the same fact: the direct proof spends symmetry of χ on K₀, this one
spends symmetry of b on the lattice, and chi_eq_neg_pairing is what makes
those the same hypothesis.
The Euler form is symmetric on the image of a realization, since the lattice
pairing is. Recorded because chiK₀_twistK₀_twistK₀ in
SphericalTwist/GrothendieckGroup.lean takes symmetry of χ as a hypothesis,
and this is what discharges it for a realized category.