Paper XII · Lean source
DerivedHeckeAction.lean
Inherited / related evidence Coverage and evidence
The edition relies on earlier or related formal evidence. That evidence is not a fresh full-edition replay.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (2)
PaperXII/DerivedHeckeAction.lean116 lines
Original source path
core/publication/source/lean_guide/formal_release/lean/PaperXII/DerivedHeckeAction.leanSkip declarations and read code
1 import PaperXII.PerfectDerivedSupport
2 import PaperXII.HeckeFibers
3 import Mathlib.Algebra.Homology.Linear
4 import Mathlib.Algebra.Homology.ShortComplex.Linear
5
6 /-!
7 # Hecke operators on actual specialized cohomology
8
9 The operator starts as multiplication on the original cochain complex. We
10 extend that cochain map, localize it into the actual derived category, and
11 apply the actual cohomology functor. The scalar formula is proved from the
12 tensor relation and the natural comparison with cochain homology.
13 -/
14
15 noncomputable section
16
17 open CategoryTheory CategoryTheory.Limits
18 open scoped TensorProduct
19
20 universe u
21
22 attribute [local instance] HasDerivedCategory.standard
23
24 namespace PaperXII.DerivedHeckeAction
25
26 open ComplexBaseChange PerfectDerivedSupport
27
28 variable {T E : Type u} [CommRing T] [Field E]
29
30 /-- The original multiplication endomorphism of the whole cochain complex. -/
31 def cochainOperator (C : CochainComplex (ModuleCat.{u} T) ℤ) (t : T) : C ⟶ C :=
32 t • 𝟙 C
33
34 /-- Extension of the original module endomorphism satisfies the tensor scalar relation. -/
35 theorem extendScalars_smul_id (y : T →+* E) (M : ModuleCat.{u} T) (t : T) :
36 (ModuleCat.extendScalars y).map (t • 𝟙 M) =
37 y t • 𝟙 ((ModuleCat.extendScalars y).obj M) := by
38 let : Algebra T E := y.toAlgebra
39 apply ModuleCat.hom_ext
40 change HeckeFibers.heckeOperator (H := M) y t = y t • LinearMap.id
41 exact HeckeFibers.heckeOperator_eq_scalar y t
42
43 /-- The specialized cochain map is proved to be scalar multiplication in every degree. -/
44 theorem baseChange_cochainOperator (C : CochainComplex (ModuleCat.{u} T) ℤ)
45 (y : T →+* E) (t : T) :
46 (complexFunctor y).map (cochainOperator C t) = y t • 𝟙 (baseChange y C) := by
47 apply HomologicalComplex.Hom.ext
48 funext n
49 exact extendScalars_smul_id y (C.X n) t
50
51 /-- Homology of an actual cochain map preserves scalar multiplication. -/
52 theorem homologyMap_smul {C D : CochainComplex (ModuleCat.{u} E) ℤ}
53 (f : C ⟶ D) (a : E) (n : ℤ) :
54 HomologicalComplex.homologyMap (a • f) n =
55 a • HomologicalComplex.homologyMap f n := by
56 unfold HomologicalComplex.homologyMap
57 change ShortComplex.homologyMap
58 (a • (HomologicalComplex.shortComplexFunctor (ModuleCat E) (.up ℤ) n).map f) = _
59 exact ShortComplex.homologyMap_smul _ _
60
61 /-- The actual derived cohomology of the specialized complex. -/
62 abbrev specializedCohomology (C : CochainComplex (ModuleCat.{u} T) ℤ)
63 (y : T →+* E) (n : ℤ) : ModuleCat.{u} E :=
64 (DerivedCategory.homologyFunctor (ModuleCat E) n).obj
65 (DerivedCategory.Q.obj (baseChange y C))
66
67 /-- Apply scalar extension, derived localization, then cohomology to the original operator. -/
68 def cohomologyOperator (C : CochainComplex (ModuleCat.{u} T) ℤ)
69 (y : T →+* E) (n : ℤ) (t : T) :
70 specializedCohomology C y n ⟶ specializedCohomology C y n :=
71 (DerivedCategory.homologyFunctor (ModuleCat E) n).map
72 (DerivedCategory.Q.map ((complexFunctor y).map (cochainOperator C t)))
73
74 /-- The induced operator on actual derived cohomology is the prescribed scalar. -/
75 theorem cohomologyOperator_eq_scalar (C : CochainComplex (ModuleCat.{u} T) ℤ)
76 (y : T →+* E) (n : ℤ) (t : T) :
77 cohomologyOperator C y n t = y t • 𝟙 (specializedCohomology C y n) := by
78 unfold cohomologyOperator
79 rw [baseChange_cochainOperator]
80 apply (cancel_mono ((DerivedCategory.homologyFunctorFactors (ModuleCat E) n).hom.app
81 (baseChange y C))).mp
82 rw [DerivedCategory.homologyFunctorFactors_hom_naturality, homologyMap_smul,
83 HomologicalComplex.homologyMap_id]
84 ext v
85 exact map_smul ((DerivedCategory.homologyFunctorFactors (ModuleCat E) n).hom.app
86 (baseChange y C)).hom (y t) v |>.symm
87
88 /-- Every actual specialized cohomology vector has the resulting common eigenvalues. -/
89 theorem cohomologyOperator_apply (C : CochainComplex (ModuleCat.{u} T) ℤ)
90 (y : T →+* E) (n : ℤ) (t : T) (v : specializedCohomology C y n) :
91 cohomologyOperator C y n t v = y t • v := by
92 rw [cohomologyOperator_eq_scalar]
93 rfl
94
95 /-- The same induced operator for a perfect derived object, using its projective model. -/
96 abbrev perfectCohomologyOperator (P : PerfectComplex T) (y : T →+* E)
97 (n : ℤ) (t : T) :
98 (DerivedCategory.homologyFunctor (ModuleCat E) n).obj (P.baseChange y).object ⟶
99 (DerivedCategory.homologyFunctor (ModuleCat E) n).obj (P.baseChange y).object :=
100 cohomologyOperator P.model.complex y n t
101
102 /-- The actual operator on a perfect derived fiber is scalar on its cohomology. -/
103 theorem perfectCohomologyOperator_eq_scalar (P : PerfectComplex T) (y : T →+* E)
104 (n : ℤ) (t : T) :
105 perfectCohomologyOperator P y n t = y t •
106 𝟙 ((DerivedCategory.homologyFunctor (ModuleCat E) n).obj (P.baseChange y).object) :=
107 cohomologyOperator_eq_scalar P.model.complex y n t
108
109 /-- Vector form of the perfect derived specialization formula. -/
110 theorem perfectCohomologyOperator_apply (P : PerfectComplex T) (y : T →+* E)
111 (n : ℤ) (t : T)
112 (v : (DerivedCategory.homologyFunctor (ModuleCat E) n).obj (P.baseChange y).object) :
113 perfectCohomologyOperator P y n t v = y t • v :=
114 cohomologyOperator_apply P.model.complex y n t v
115
116 end PaperXII.DerivedHeckeAction
Original file and source record
This copy matches the recorded source file. Its publication here does not change the work’s review status.
SHA-256: b1cb976fcc30917465dca4044efbc67557ea590b19530007f078cfc72b66e3b5
Back to Paper XII: Patching Support, Hecke Packets, and Conditional Automorphic Completion