You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: theories/WildCat/Core.v
+22-9Lines changed: 22 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -102,6 +102,8 @@ Class Is1Cat (A : Type) `{!IsGraph A, !Is2Graph A, !Is01Cat A} :=
102
102
is0functor_precomp : forall (a b c : A) (f : a $-> b), Is0Functor (cat_precomp c f) ;
103
103
cat_assoc : forall (a b c d : A) (f : a $-> b) (g : b $-> c) (h : c $-> d),
104
104
(h $o g) $o f $== h $o (g $o f);
105
+
cat_assoc_opp : forall (a b c d : A) (f : a $-> b) (g : b $-> c) (h : c $-> d),
106
+
h $o (g $o f) $== (h $o g) $o f;
105
107
cat_idl : forall (a b : A) (f : a $-> b), Id b $o f $== f;
106
108
cat_idr : forall (a b : A) (f : a $-> b), f $o Id a $== f;
107
109
}.
@@ -111,13 +113,23 @@ Global Existing Instance is0gpd_hom.
111
113
GlobalExistingInstance is0functor_postcomp.
112
114
GlobalExistingInstance is0functor_precomp.
113
115
Arguments cat_assoc {_ _ _ _ _ _ _ _ _} f g h.
116
+
Arguments cat_assoc_opp {_ _ _ _ _ _ _ _ _} f g h.
114
117
Arguments cat_idl {_ _ _ _ _ _ _} f.
115
118
Arguments cat_idr {_ _ _ _ _ _ _} f.
116
119
117
-
Definition cat_assoc_opp {A : Type} `{Is1Cat A}
118
-
{a b c d : A} (f : a $-> b) (g : b $-> c) (h : c $-> d)
119
-
: h $o (g $o f) $== (h $o g) $o f
120
-
:= (cat_assoc f g h)^$.
120
+
(** An alternate constructor that doesn't require the proof of [cat_assoc_opp]. This can be used for defining examples of wild categories, but shouldn't be used for the general theory of wild categories. *)
121
+
Definition Build_Is1Cat' (A : Type) `{!IsGraph A, !Is2Graph A, !Is01Cat A}
122
+
(is01cat_hom : forall a b : A, Is01Cat (a $-> b))
123
+
(is0gpd_hom : forall a b : A, Is0Gpd (a $-> b))
124
+
(is0functor_postcomp : forall (a b c : A) (g : b $-> c), Is0Functor (cat_postcomp a g))
125
+
(is0functor_precomp : forall (a b c : A) (f : a $-> b), Is0Functor (cat_precomp c f))
126
+
(cat_assoc : forall (a b c d : A) (f : a $-> b) (g : b $-> c) (h : c $-> d),
127
+
h $o g $o f $== h $o (g $o f))
128
+
(cat_idl : forall (a b : A) (f : a $-> b), Id b $o f $== f)
129
+
(cat_idr : forall (a b : A) (f : a $-> b), f $o Id a $== f)
130
+
: Is1Cat A
131
+
:= Build_Is1Cat A _ _ _ is01cat_hom is0gpd_hom is0functor_postcomp is0functor_precomp
132
+
cat_assoc (fun a b c d f g h => (cat_assoc a b c d f g h)^$) cat_idl cat_idr.
121
133
122
134
(** Whiskering and horizontal composition of 2-cells. *)
123
135
@@ -175,19 +187,18 @@ Class Is1Cat_Strong (A : Type)`{!IsGraph A, !Is2Graph A, !Is01Cat A} :=
175
187
cat_assoc_strong : forall (a b c d : A)
176
188
(f : a $-> b) (g : b $-> c) (h : c $-> d),
177
189
(h $o g) $o f = h $o (g $o f) ;
190
+
cat_assoc_opp_strong : forall (a b c d : A)
191
+
(f : a $-> b) (g : b $-> c) (h : c $-> d),
192
+
h $o (g $o f) = (h $o g) $o f ;
178
193
cat_idl_strong : forall (a b : A) (f : a $-> b), Id b $o f = f ;
179
194
cat_idr_strong : forall (a b : A) (f : a $-> b), f $o Id a = f ;
180
195
}.
181
196
182
197
Arguments cat_assoc_strong {_ _ _ _ _ _ _ _ _} f g h.
198
+
Arguments cat_assoc_opp_strong {_ _ _ _ _ _ _ _ _} f g h.
(* If in the future we make a [Build_Is1Cat_Strong'] that lets the user omit the second proof of associativity, this shows how it can be recovered from the original proof:
293
299
Definition dcat_assoc_opp_strong {A : Type} {D : A -> Type} `{IsD1Cat_Strong A D}
294
300
{a b c d : A} {f : a $-> b} {g : b $-> c} {h : c $-> d}
295
301
{a' : D a} {b' : D b} {c' : D c} {d' : D d}
@@ -300,13 +306,16 @@ Proof.
300
306
apply (moveR_transport_V (fun k => DHom k a' d') (cat_assoc_strong f g h) _ _).
301
307
exact ((dcat_assoc_strong f' g' h')^).
302
308
Defined.
309
+
*)
303
310
304
311
GlobalInstance isd1cat_isd1catstrong {A : Type} (D : A -> Type)
305
312
`{IsD1Cat_Strong A D} : IsD1Cat D.
306
313
Proof.
307
314
srapply Build_IsD1Cat.
308
315
- intros a b c d f g h a' b' c' d' f' g' h'.
309
316
exact (DHom_path (cat_assoc_strong f g h) (dcat_assoc_strong f' g' h')).
317
+
- intros a b c d f g h a' b' c' d' f' g' h'.
318
+
exact (DHom_path (cat_assoc_opp_strong f g h) (dcat_assoc_opp_strong f' g' h')).
0 commit comments