Documentation

DerivedAlgGeo.CategoryTheory.Triangulated.SphericalTwist.Definition

The spherical twist functor T_E: the interface and its K₀ shadow #

SphericalTwistData k C E is the data of the Seidel--Thomas functor T_E = Cone(Hom^•(E,-) ⊗_k E ⟶ id) on a k-linear pretriangulated category C:

The one theorem it buys is SphericalTwistData.map_eq_twistK₀: the induced map on K₀ is exactly twistK₀ k C E of SphericalTwist/GrothendieckGroup.lean. The lattice half of the lane is therefore a consequence of this geometry and not a parallel story.

Main definitions and results #

Encoding decision #

Hom^•(E,-) ⊗_k E is an object copowered by a complex of k-modules. It is neither the Fourier--Mukai kernel twist C.tensor.obj K of FourierMukai/Basic.lean nor the geometric HasDerivedTensor of AlgebraicGeometry/DerivedCategory/Tensor/BoundedCoherent.lean. Two routes construct it for a concrete category.

Route (b) discharges T.Additive, T.CommShift ℤ and T.IsTriangulated for a concrete T, and ObjectTwistData.lean checks it: both dg object twists, additive and scalar-linear, are SphericalTwistData given the Euler copower formula as a hypothesis. The cost of (b) is that its category is H⁰ of a dg category, so a geometric Dᵇ(Coh X) is reached only through an Enhancement. Route (a) is not taken and would not replace (b): it gives the tensor, not the cone.

This file takes neither route: it is the interface, in an arbitrary pretriangulated C, so that its consequences are stated once and every realization inherits them. It defines no tensor product and builds no cone, and must not: a tensor product defined here would duplicate the derived-tensor foundation and split it.

Why the functoriality and the instances are fields #

Cones are not functorial in a triangulated category, so T F := cone (ev F) does not define an endofunctor; Surface/Spherical.lean records the trap and Seidel--Thomas name it in §1c. The functoriality is here a supplied field, never a derived fact: T is a functor and the triangle is a natural family.

The three instance fields are not decoration. K₀.map has signature K₀.map (F : C ⥤ D) [F.Additive] [F.CommShift ℤ] [F.IsTriangulated]. A cone construction gives an object assignment, not a triangulated functor, so without the fields K₀.map T does not typecheck. They are registered with attribute [instance], in the shape GroupAction.TriEquiv uses.

The two external inputs, and the one thing proved #

What is not claimed #

No spherical object is exhibited, T_E is not constructed on Dᵇ(Coh X), and nothing says T is an autoequivalence: that is the separate supplied SphericalTwist.AutoequivalenceStatement. The identity on K₀ is far weaker than any functorial statement about T.

References #

Seidel--Thomas, Braid group actions on derived categories of coherent sheaves, arXiv:math/0001043v2. The triangle Hom^•(E,F) ⊗ E ⟶ F ⟶ T_E F is §1c. Their Definition 2.5 builds T_E on complexes of injectives, where it is functorial, which is the dg route (b) here.

The data of the Seidel--Thomas twist T_E, supplied rather than constructed.

copower is meant to be F ↦ Hom^•(E,F) ⊗_k E and ev the evaluation, but nothing ties either to E except the K₀ equation copower_class. So d.T is the Seidel--Thomas twist only when the supplied copower and evaluation are the genuine ones, as in ObjectTwistData.lean; the structure records no more than a triangulated cone-like functor with the right K₀ shadow. No tensor product is defined here, and no field says E is spherical.

Instances For

    The evaluation triangle as one functor C ⥤ Triangle C, Mathlib's Triangle.functorMk.

    Equations
    Instances For

      The class of T F: [T F] = [F] - [Hom^•(E,F) ⊗ E].

      The argument is K₀.of_triangle applied to the supplied evaluation triangle Hom^•(E,F) ⊗ E ⟶ F ⟶ T F ⟶ ·⟦1⟧, which says [F] = [Hom^•(E,F) ⊗ E] + [T F]. The shift in the third vertex never enters, so K₀.of_shift_int is not used.

      class_T with copower_class substituted: [T F] = [F] - χ(E,F)·[E]. Stated with chiRight, which needs no linearity of the shifts; chiK₀, and so twistK₀, does, which makes this the strongest form available before map_eq_twistK₀.

      copower_class read through chiK₀_of. It needs the shifts to be k-linear, which the field deliberately does not, and it is the form twistK₀ consumes.

      The functor induces the numerical twist on K₀: K₀.map T = twistK₀ k C E.

      A theorem, not a field. It needs the two halves of the module docstring and nothing else: class_T from triangle additivity and copower_class supplied.

      theorem CategoryTheory.Triangulated.SphericalTwist.map_comp_comp_eq_twistK₀ {k : Type w} [DivisionRing k] {C : Type u} [Category.{v, u} C] [Preadditive C] [Linear k C] [Limits.HasZeroObject C] [HasShift C ℤ] [∀ (n : ℤ), (shiftFunctor C n).Additive] [Pretriangulated C] [HomFiniteBounded k C] [∀ (n : ℤ), Functor.Linear k (shiftFunctor C n)] {E₁ E₂ E₃ : C} (d₁ : SphericalTwistData k C E₁) (d₂ : SphericalTwistData k C E₂) (d₃ : SphericalTwistData k C E₃) :
      K₀.map (d₁.T.comp (d₂.T.comp d₃.T)) = (twistK₀ k C E₃).comp ((twistK₀ k C E₂).comp (twistK₀ k C E₁))

      K₀.map of a three-fold composite of supplied twists, by K₀.map_comp and SphericalTwistData.map_eq_twistK₀. Applied to (dA, dB, dA) and to (dB, dA, dB) it gives the two sides of the braid relation.