-
Notifications
You must be signed in to change notification settings - Fork 2
/
AdjointPointwise.v
70 lines (58 loc) · 2.7 KB
/
AdjointPointwise.v
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
67
68
69
70
Require Export Adjoint.
Require Import Notations Common FunctorCategoryFunctorial Duals TypeclassSimplification.
Set Implicit Arguments.
Generalizable All Variables.
Set Asymmetric Patterns.
Set Universe Polymorphism.
Section AdjointPointwise.
Context `(C : @SpecializedCategory objC).
Context `(D : @SpecializedCategory objD).
Context `(E : @SpecializedCategory objE).
Context `(C' : @SpecializedCategory objC').
Context `(D' : @SpecializedCategory objD').
Variable F : SpecializedFunctor C D.
Variable G : SpecializedFunctor D C.
Variable A : Adjunction F G.
Let A' : AdjunctionUnitCounit F G := A.
Variables F' G' : SpecializedFunctor C' D'.
(* Variable T' : SpecializedNaturalTransformation F' G'.*)
Definition AdjointPointwise_NT_Unit : SpecializedNaturalTransformation (IdentityFunctor (C ^ E))
(ComposeFunctors (G ^ IdentityFunctor E) (F ^ IdentityFunctor E)).
clearbody A'; clear A.
pose proof (A' : AdjunctionUnit _ _) as A''.
refine (NTComposeT _ (LiftIdentityPointwise _ _)).
refine (NTComposeT _ (projT1 A'' ^ (IdentityNaturalTransformation (IdentityFunctor E)))).
refine (NTComposeT (LiftComposeFunctorsPointwise _ _ (IdentityFunctor E) (IdentityFunctor E)) _).
refine (LiftNaturalTransformationPointwise (IdentityNaturalTransformation _) _).
exact (LeftIdentityFunctorNaturalTransformation2 _).
Defined.
Definition AdjointPointwise_NT_Counit : SpecializedNaturalTransformation (ComposeFunctors (F ^ IdentityFunctor E) (G ^ IdentityFunctor E))
(IdentityFunctor (D ^ E)).
clearbody A'; clear A.
pose proof (A' : AdjunctionCounit _ _) as A''.
refine (NTComposeT (LiftIdentityPointwise_Inverse _ _) _).
refine (NTComposeT (projT1 A'' ^ (IdentityNaturalTransformation (IdentityFunctor E))) _).
refine (NTComposeT _ (LiftComposeFunctorsPointwise_Inverse _ _ (IdentityFunctor E) (IdentityFunctor E))).
refine (LiftNaturalTransformationPointwise (IdentityNaturalTransformation _) _).
exact (LeftIdentityFunctorNaturalTransformation1 _).
Defined.
Definition AdjointPointwise : Adjunction (F ^ (IdentityFunctor E)) (G ^ (IdentityFunctor E)).
clearbody A'; clear A.
match goal with
| [ |- Adjunction ?F ?G ] =>
refine (_ : AdjunctionUnitCounit F G)
end.
exists AdjointPointwise_NT_Unit
AdjointPointwise_NT_Counit;
simpl;
abstract (
destruct A';
simpl in *;
nt_eq;
rsimplify_morphisms;
try match goal with
| [ H : _ |- _ ] => apply H
end
).
Defined.
End AdjointPointwise.