forked from leanprover-community/mathlib4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMonoidal.lean
More file actions
66 lines (46 loc) · 2.25 KB
/
Monoidal.lean
File metadata and controls
66 lines (46 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/-
Copyright (c) 2025 Dagur Asgeirsson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Dagur Asgeirsson
-/
module
public import Mathlib.Algebra.Category.ModuleCat.Monoidal.Closed
public import Mathlib.CategoryTheory.Monoidal.Braided.Reflection
public import Mathlib.CategoryTheory.Sites.Coherent.SheafComparison
public import Mathlib.CategoryTheory.Sites.Monoidal
public import Mathlib.Condensed.Light.CartesianClosed
public import Mathlib.Condensed.Light.Module
/-!
# Closed symmetric monoidal structure on light condensed modules
We define a symmetric monoidal structure on light condensed modules by localizing the symmetric
monoidal structure on the presheaf category. By Day's reflection theorem, we obtain a closed
structure.
-/
@[expose] public section
universe u
noncomputable section
open CategoryTheory Monoidal Sheaf MonoidalCategory MonoidalClosed MonoidalClosed.FunctorCategory
namespace LightCondensed
variable (R : Type u) [CommRing R]
instance : (coherentTopology LightProfinite.{u}).W (A := ModuleCat.{u} R) |>.IsMonoidal :=
GrothendieckTopology.W.transport_isMonoidal _ _
((equivSmallModel.{u} LightProfinite.{u}).inverse.inducedTopology
(coherentTopology LightProfinite.{u}))
(equivSmallModel.{u} LightProfinite.{u}).inverse
instance : MonoidalCategory (LightCondMod.{u} R) :=
monoidalCategory _ _
instance : MonoidalCategory (Sheaf (coherentTopology LightProfinite.{u}) (ModuleCat.{u} R)) :=
inferInstanceAs (MonoidalCategory (LightCondMod _))
instance : SymmetricCategory (LightCondMod.{u} R) :=
symmetricCategory _ _
instance : MonoidalClosed (LightProfinite.{u}ᵒᵖ ⥤ ModuleCat.{u} R) :=
.ofEquiv _ (equivSmallModel LightProfinite).op.congrLeft.toAdjunction
instance : MonoidalClosed (Sheaf (coherentTopology LightProfinite.{u}) (ModuleCat.{u} R)) :=
Reflective.monoidalClosed (sheafificationAdjunction _ _)
instance : MonoidalClosed (LightCondMod.{u} R) :=
inferInstanceAs (MonoidalClosed (Sheaf _ _))
instance : (presheafToSheaf (coherentTopology LightProfinite.{u}) (ModuleCat.{u} R)).Monoidal :=
inferInstance
set_option backward.isDefEq.respectTransparency false in
instance : (free R).Monoidal := inferInstanceAs (composeAndSheafify _ _).Monoidal
end LightCondensed