@@ -10,8 +10,6 @@ import Mathlib.CategoryTheory.Monoidal.Rigid.Basic
1010-/
1111
1212
13- noncomputable section
14-
1513namespace CategoryTheory
1614
1715open MonoidalCategory Functor.LaxMonoidal Functor.OplaxMonoidal
@@ -22,7 +20,7 @@ variable {C D : Type*} [Category C] [Category D] [MonoidalCategory C] [MonoidalC
2220/-- Given candidate data for an exact pairing,
2321which is sent by a faithful monoidal functor to an exact pairing,
2422the equations holds automatically. -/
25- def exactPairingOfFaithful [F.Faithful] {X Y : C} (eval : Y ⊗ X ⟶ 𝟙_ C)
23+ def ExactPairing.ofFaithful [F.Faithful] {X Y : C} (eval : Y ⊗ X ⟶ 𝟙_ C)
2624 (coeval : 𝟙_ C ⟶ X ⊗ Y) [ExactPairing (F.obj X) (F.obj Y)]
2725 (map_eval : F.map eval = (δ F _ _) ≫ ε_ _ _ ≫ ε F)
2826 (map_coeval : F.map coeval = (η F) ≫ η_ _ _ ≫ μ F _ _) : ExactPairing X Y where
@@ -40,22 +38,29 @@ def exactPairingOfFaithful [F.Faithful] {X Y : C} (eval : Y ⊗ X ⟶ 𝟙_ C)
4038/-- Given a pair of objects which are sent by a fully faithful functor to a pair of objects
4139with an exact pairing, we get an exact pairing.
4240-/
43- def exactPairingOfFullyFaithful [F.Full] [F.Faithful] (X Y : C)
41+ noncomputable def ExactPairing.ofFullyFaithful [F.Full] [F.Faithful] (X Y : C)
4442 [ExactPairing (F.obj X) (F.obj Y)] : ExactPairing X Y :=
45- exactPairingOfFaithful F (F.preimage (δ F _ _ ≫ ε_ _ _ ≫ (ε F)))
43+ .ofFaithful F (F.preimage (δ F _ _ ≫ ε_ _ _ ≫ (ε F)))
4644 (F.preimage (η F ≫ η_ _ _ ≫ μ F _ _)) (by simp) (by simp)
4745
46+ @[deprecated (since := "2025-10-17")] alias exactPairingOfFaithful := ExactPairing.ofFaithful
47+
48+ @[deprecated (since := "2025-10-17")]
49+ alias exactPairingOfFullyFaithful := ExactPairing.ofFullyFaithful
50+
4851variable {F}
4952variable {G : D ⥤ C} (adj : F ⊣ G) [F.IsEquivalence]
5053
54+ noncomputable section
55+
5156/-- Pull back a left dual along an equivalence. -/
5257def hasLeftDualOfEquivalence (X : C) [HasLeftDual (F.obj X)] :
5358 HasLeftDual X where
5459 leftDual := G.obj (ᘁ(F.obj X))
5560 exact := by
5661 letI := exactPairingCongrLeft (X := F.obj (G.obj ᘁ(F.obj X)))
5762 (X' := ᘁ(F.obj X)) (Y := F.obj X) (adj.toEquivalence.counitIso.app ᘁ(F.obj X))
58- apply exactPairingOfFullyFaithful F
63+ apply ExactPairing.ofFullyFaithful F
5964
6065/-- Pull back a right dual along an equivalence. -/
6166def hasRightDualOfEquivalence (X : C) [HasRightDual (F.obj X)] :
@@ -64,7 +69,7 @@ def hasRightDualOfEquivalence (X : C) [HasRightDual (F.obj X)] :
6469 exact := by
6570 letI := exactPairingCongrRight (X := F.obj X) (Y := F.obj (G.obj (F.obj X)ᘁ))
6671 (Y' := (F.obj X)ᘁ) (adj.toEquivalence.counitIso.app (F.obj X)ᘁ)
67- apply exactPairingOfFullyFaithful F
72+ apply ExactPairing.ofFullyFaithful F
6873
6974/-- Pull back a left rigid structure along an equivalence. -/
7075def leftRigidCategoryOfEquivalence [LeftRigidCategory D] :
@@ -79,4 +84,6 @@ def rigidCategoryOfEquivalence [RigidCategory D] : RigidCategory C where
7984 leftDual X := hasLeftDualOfEquivalence adj X
8085 rightDual X := hasRightDualOfEquivalence adj X
8186
87+ end
88+
8289end CategoryTheory
0 commit comments