Documentation

DerivedAlgGeo.CategoryTheory.Triangulated.FourierMukai.Convolution

Convolution of Fourier--Mukai kernels #

Geometrically, for P ∈ D(X × Y) and Q ∈ D(Y × Z) the composite Φ_Q ∘ Φ_P is again a Fourier--Mukai transform, with kernel the convolution

Q ∗ P = Rπ_{XZ*}(π_{XY}^* P ⊗^L π_{YZ}^* Q) ∈ D(X × Z)

which is the classical composition law. Proving it from the three-projection description needs the projection formula and flat base change on a triple product, none of which the abstract Correspondence of FourierMukai.Basic carries.

So convolution enters here as supplied data, not as a theorem. A ConvolutionData names a kernel-level operation together with the family of isomorphisms that Prop. 5.10 asserts, for three correspondences that share their outer categories in the pattern 𝒳 → 𝒴 → 𝒵. What this file then proves are the consequences: that kernel functors are closed under composition, and that convolution is well behaved under isomorphism of either kernel.

This is the same division of labour as StabilityCondition.Families.Basic, where the geometric tests are supplied by a caller and the file proves what follows from them. The value is that a later geometric realization has one named obligation to discharge rather than an implicit one, and that everything downstream of Prop. 5.10 is already available once it is. For endocorrespondences whose kernels genuinely form a monoidal category, CoherentConvolutionData is the stable root: it makes the operation functorial and packages its associator, unitors, pentagon, and triangle together. It forgets one-way to ConvolutionData.

What this file does not assert #

structure CategoryTheory.Triangulated.FourierMukai.ConvolutionData {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] (C₁ : Correspondence 𝒳 𝒴 𝒲₁) (C₂ : Correspondence 𝒴 𝒵 𝒲₂) (C₃ : Correspondence 𝒳 𝒵 𝒲₃) :
Type (max (max (max (max t₁ t₂) t₃) u₁) v₃)

Convolution data for three correspondences arranged as 𝒳 → 𝒴 → 𝒵.

conv is the kernel-level operation and compIso is the classical composition law for it: composing the transform with kernel P and the transform with kernel Q gives the transform with kernel conv P Q. Both are supplied; neither is derived.

  • conv : 𝒲₁ → 𝒲₂ → 𝒲₃

    The convolution of two kernels.

  • compIso (P : 𝒲₁) (Q : 𝒲₂) : (C₁.transform P).comp (C₂.transform Q) ≅ C₃.transform (self.conv P Q)

    Prop. 5.10: the composite of the two transforms is the transform of the convolved kernel.

Instances For
    structure CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] (C : Correspondence 𝒳 𝒳 𝒲₁) :
    Type (max (max (max t₁ u₁) v₁) w₁)

    Coherent convolution for endocorrespondences.

    Unlike ConvolutionData, whose kernel operation is a bare function, this root carries an explicit Mathlib MonoidalCategory presentation of the kernel category. Consequently the associator, both unitors, their naturality, the pentagon, and the triangle are one inseparable datum. The presentation is an explicit field rather than a global instance, so two convolution presentations on the same kernel category can coexist.

    toConvolutionData below is the one-way compatibility map to the older, law-free interface.

    Instances For
      def CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.conv {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P Q : 𝒲₁) :
      𝒲₁

      Kernel convolution selected by a coherent presentation.

      Equations
      Instances For

        The coherent convolution unit.

        Equations
        Instances For
          def CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.assocIso {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P Q R : 𝒲₁) :
          D.conv (D.conv P Q) R ≅ D.conv P (D.conv Q R)

          The convolution associator, derived from the coherent root.

          Equations
          Instances For
            def CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.leftUnitIso {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P : 𝒲₁) :
            D.conv D.unit P ≅ P

            The left convolution unitor, derived from the coherent root.

            Equations
            Instances For

              The right convolution unitor, derived from the coherent root.

              Equations
              Instances For
                def CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.Pentagon {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P Q R T : 𝒲₁) :

                The pentagon proposition for a coherent convolution presentation.

                Equations
                Instances For
                  theorem CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.pentagon {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P Q R T : 𝒲₁) :
                  D.Pentagon P Q R T

                  Every coherent convolution presentation satisfies the pentagon.

                  The triangle proposition for a coherent convolution presentation.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem CategoryTheory.Triangulated.FourierMukai.CoherentConvolutionData.triangle {𝒳 : Type u₁} {𝒲₁ : Type t₁} [Category.{v₁, u₁} 𝒳] [Category.{w₁, t₁} 𝒲₁] {C : Correspondence 𝒳 𝒳 𝒲₁} (D : CoherentConvolutionData C) (P Q : 𝒲₁) :
                    D.Triangle P Q

                    Every coherent convolution presentation satisfies the triangle.

                    Forget coherent convolution to the legacy operation-and-comparison interface. No adapter exists in the opposite direction.

                    Equations
                    Instances For
                      theorem CategoryTheory.Triangulated.FourierMukai.ConvolutionData.isKernelFunctor_transform_comp {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒳 𝒵 𝒲₃} (D : ConvolutionData C₁ C₂ C₃) (P : 𝒲₁) (Q : 𝒲₂) :
                      C₃.IsKernelFunctor ((C₁.transform P).comp (C₂.transform Q))

                      The composite of two transforms is a kernel functor for the third correspondence, witnessed by the convolved kernel.

                      theorem CategoryTheory.Triangulated.FourierMukai.ConvolutionData.isKernelFunctor_comp {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒳 𝒵 𝒲₃} (D : ConvolutionData C₁ C₂ C₃) {Φ : Functor 𝒳 𝒴} {Ψ : Functor 𝒴 𝒵} (hΦ : C₁.IsKernelFunctor Φ) (hΨ : C₂.IsKernelFunctor Ψ) :
                      C₃.IsKernelFunctor (Φ.comp Ψ)

                      Kernel functors are closed under composition. This is the reason to name ConvolutionData at all: the property of being of Fourier--Mukai type, rather than any particular transform, is what composes.

                      def CategoryTheory.Triangulated.FourierMukai.ConvolutionData.transformMapConvIso {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒳 𝒵 𝒲₃} (D : ConvolutionData C₁ C₂ C₃) {P P' : 𝒲₁} (eP : P ≅ P') {Q Q' : 𝒲₂} (eQ : Q ≅ Q') :
                      C₃.transform (D.conv P Q) ≅ C₃.transform (D.conv P' Q')

                      Isomorphic kernels convolve to kernels with isomorphic transforms.

                      This is weaker than conv P Q ≅ conv P' Q', and deliberately so: recovering that would need a kernel to be determined by its transform, which is Orlov's uniqueness statement and is not available here.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Triangulated.FourierMukai.ConvolutionData.transformMapConvIso_refl {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒳 𝒵 𝒲₃} (D : ConvolutionData C₁ C₂ C₃) (P : 𝒲₁) (Q : 𝒲₂) :

                        Convolving with isomorphisms that are both the identity leaves the transform alone.

                        def CategoryTheory.Triangulated.FourierMukai.convolutionTransformAssoc {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {𝒱 : Type u₄} [Category.{v₄, u₄} 𝒱] {𝒲₁₂ : Type t₁₂} {𝒲₂₃ : Type t₂₃} {𝒲 : Type t₀} [Category.{w₁₂, t₁₂} 𝒲₁₂] [Category.{w₂₃, t₂₃} 𝒲₂₃] [Category.{w₀, t₀} 𝒲] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒵 𝒱 𝒲₃} {C₁₂ : Correspondence 𝒳 𝒵 𝒲₁₂} {C₂₃ : Correspondence 𝒴 𝒱 𝒲₂₃} {C : Correspondence 𝒳 𝒱 𝒲} (D₁₂ : ConvolutionData C₁ C₂ C₁₂) (D₂₃ : ConvolutionData C₂ C₃ C₂₃) (Dl : ConvolutionData C₁₂ C₃ C) (Dr : ConvolutionData C₁ C₂₃ C) (P : 𝒲₁) (Q : 𝒲₂) (R : 𝒲₃) :
                        C.transform (Dl.conv (D₁₂.conv P Q) R) ≅ C.transform (Dr.conv P (D₂₃.conv Q R))

                        Associativity of convolution at the transform level — a theorem, not data.

                        For three composable correspondences with convolution data for both bracketings landing in a common outer correspondence, the transforms of the two associated kernels are isomorphic: each side is isomorphic to Φ_P ⋙ Φ_Q ⋙ Φ_R by Prop. 5.10 twice. No input beyond the four compIso families is consumed.

                        What this does not give is an isomorphism of the kernels themselves; that is ConvolutionAssocData, and the gap between the two is genuine — see its docstring.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          structure CategoryTheory.Triangulated.FourierMukai.ConvolutionAssocData {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒵 : Type u₃} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{v₃, u₃} 𝒵] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {𝒱 : Type u₄} [Category.{v₄, u₄} 𝒱] {𝒲₁₂ : Type t₁₂} {𝒲₂₃ : Type t₂₃} {𝒲 : Type t₀} [Category.{w₁₂, t₁₂} 𝒲₁₂] [Category.{w₂₃, t₂₃} 𝒲₂₃] [Category.{w₀, t₀} 𝒲] {C₁ : Correspondence 𝒳 𝒴 𝒲₁} {C₂ : Correspondence 𝒴 𝒵 𝒲₂} {C₃ : Correspondence 𝒵 𝒱 𝒲₃} {C₁₂ : Correspondence 𝒳 𝒵 𝒲₁₂} {C₂₃ : Correspondence 𝒴 𝒱 𝒲₂₃} {C : Correspondence 𝒳 𝒱 𝒲} (D₁₂ : ConvolutionData C₁ C₂ C₁₂) (D₂₃ : ConvolutionData C₂ C₃ C₂₃) (Dl : ConvolutionData C₁₂ C₃ C) (Dr : ConvolutionData C₁ C₂₃ C) :
                          Type (max (max (max t₁ t₂) t₃) w₀)

                          Associativity of convolution at the kernel level — supplied data.

                          An isomorphism (P ∗ Q) ∗ R ≅ P ∗ (Q ∗ R) between the two bracketings, in the kernel category of the common outer correspondence.

                          Strictly stronger than convolutionTransformAssoc, and the gap is Orlov's uniqueness statement: the transforms of the two kernels are always isomorphic (the theorem above), but recovering an isomorphism of the kernels from an isomorphism of their transforms needs a kernel to be determined by its transform, which nothing in this repository provides.

                          Geometrically the classical proof works on the quadruple product, by the same projection-formula and base-change arguments that derive Prop. 5.10 on the triple product. That derivation is the geometric ledger's future work, and this structure is the layer it would discharge. Nothing here constructs one, and no result in this file depends on it.

                          • assocIso (P : 𝒲₁) (Q : 𝒲₂) (R : 𝒲₃) : Dl.conv (D₁₂.conv P Q) R ≅ Dr.conv P (D₂₃.conv Q R)

                            The two bracketings of three kernels agree at the kernel level.

                          Instances For
                            def CategoryTheory.Triangulated.FourierMukai.convolutionTransformUnitLeft {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒳 𝒳 𝒲₁} {C₂ : Correspondence 𝒳 𝒴 𝒲₂} {C₃ : Correspondence 𝒳 𝒴 𝒲₃} (D : ConvolutionData C₁ C₂ C₃) (U : 𝒲₁) (unitIso : Functor.id 𝒳 ≅ C₁.transform U) (P : 𝒲₂) :
                            C₃.transform (D.conv U P) ≅ C₂.transform P

                            The left unit law at the transform level — a theorem, not data.

                            Given convolution data composing a self-correspondence with C₂, and a kernel presenting the identity as a transform of the self-correspondence, the transform of conv U P is the transform of P. Free from compIso and the unit witness; no constraint on the outer correspondence.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def CategoryTheory.Triangulated.FourierMukai.convolutionTransformUnitRight {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} {𝒲₃ : Type t₃} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] [Category.{w₃, t₃} 𝒲₃] {C₁ : Correspondence 𝒴 𝒴 𝒲₁} {C₂ : Correspondence 𝒳 𝒴 𝒲₂} {C₃ : Correspondence 𝒳 𝒴 𝒲₃} (D : ConvolutionData C₂ C₁ C₃) (U : 𝒲₁) (unitIso : Functor.id 𝒴 ≅ C₁.transform U) (P : 𝒲₂) :
                              C₃.transform (D.conv P U) ≅ C₂.transform P

                              The right unit law at the transform level — a theorem, not data. The mirror of convolutionTransformUnitLeft.

                              Equations
                              Instances For
                                structure CategoryTheory.Triangulated.FourierMukai.ConvolutionLeftUnitData {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] {C₁ : Correspondence 𝒳 𝒳 𝒲₁} {C₂ : Correspondence 𝒳 𝒴 𝒲₂} (D : ConvolutionData C₁ C₂ C₂) (U : 𝒲₁) :
                                Type (max t₂ w₂)

                                The left unit law at the kernel level — supplied data.

                                conv U P ≅ P for a convolution datum whose outer correspondence is C₂. Strictly stronger than convolutionTransformUnitLeft for the same Orlov gap as ConvolutionAssocData: the transforms are always isomorphic, but recovering an isomorphism of kernels needs a kernel to be determined by its transform. Nothing here constructs one, and no result depends on it.

                                • leftUnitIso (P : 𝒲₂) : D.conv U P ≅ P

                                  Convolving with the unit kernel on the left is the identity.

                                Instances For
                                  structure CategoryTheory.Triangulated.FourierMukai.ConvolutionRightUnitData {𝒳 : Type u₁} {𝒴 : Type u₂} {𝒲₁ : Type t₁} {𝒲₂ : Type t₂} [Category.{v₁, u₁} 𝒳] [Category.{v₂, u₂} 𝒴] [Category.{w₁, t₁} 𝒲₁] [Category.{w₂, t₂} 𝒲₂] {C₁ : Correspondence 𝒴 𝒴 𝒲₁} {C₂ : Correspondence 𝒳 𝒴 𝒲₂} (D : ConvolutionData C₂ C₁ C₂) (U : 𝒲₁) :
                                  Type (max t₂ w₂)

                                  The right unit law at the kernel level — supplied data. The mirror of ConvolutionLeftUnitData; same gap, same caveats.

                                  • rightUnitIso (P : 𝒲₂) : D.conv P U ≅ P

                                    Convolving with the unit kernel on the right is the identity.

                                  Instances For

                                    Forget coherent convolution to the legacy kernel associativity layer.

                                    Equations
                                    Instances For

                                      Forget coherent convolution to the legacy left-unit layer.

                                      Equations
                                      Instances For

                                        Forget coherent convolution to the legacy right-unit layer.

                                        Equations
                                        Instances For