@@ -43,6 +43,7 @@ Require Import TypeTheory.Auxiliary.CategoryTheoryImports.
4343
4444Require Import TypeTheory.Auxiliary.Auxiliary.
4545Require Import TypeTheory.Auxiliary.CategoryTheory.
46+ Require Import TypeTheory.Auxiliary.DisplayedCategories.
4647Require Import TypeTheory.Auxiliary.Pullbacks.
4748
4849Require Import TypeTheory.ALV1.TypeCat.
@@ -55,206 +56,6 @@ Require Import UniMath.CategoryTheory.DisplayedCats.Fibrations.
5556Require Import UniMath.CategoryTheory.DisplayedCats.Codomain.
5657Require Import UniMath.CategoryTheory.DisplayedCats.ComprehensionC.
5758
58- Section Auxiliary.
59-
60- (* TODO: move upstream? *)
61- Definition unique_lift_is_cartesian
62- {C : category}
63- {D : discrete_fibration C} {c c'}
64- (f : c' --> c) (d : D c)
65- : is_cartesian (pr2 (pr1 (unique_lift f d))).
66- Proof .
67- apply (pr2 (pr2 (fibration_from_discrete_fibration _ D _ _ f d))).
68- Defined .
69-
70- (* TODO: move upstream? *)
71- Definition unique_lift_explicit
72- {C : category}
73- {D : disp_cat C}
74- (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
75- {d : D c} {f : c' --> c} (d' : D c') (ff : d' -->[f] d)
76- : ∃! (d' : D c'), d' -->[f] d.
77- Proof .
78- exists (d' ,, ff).
79- intros X.
80- etrans. apply (pr2 (pr1 is_discrete_fibration_D _ _ f d)).
81- apply pathsinv0, (pr2 (pr1 is_discrete_fibration_D _ _ f d)).
82- Defined .
83-
84- (* TODO: move upstream? *)
85- Definition unique_lift_explicit_eq
86- {C : category}
87- {D : disp_cat C}
88- (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
89- {d : D c} {f : c' --> c} (d' : D c') (ff : d' -->[f] d)
90- : pr1 is_discrete_fibration_D _ _ f d
91- = unique_lift_explicit is_discrete_fibration_D d' ff.
92- Proof .
93- apply isapropiscontr.
94- Defined .
95-
96- (* TODO: move upstream? *)
97- Definition unique_lift_identity
98- {C : category}
99- {D : disp_cat C}
100- (is_discrete_fibration_D : is_discrete_fibration D) {c}
101- (d : D c)
102- : ∃! (d' : D c), d' -->[identity c] d.
103- Proof .
104- apply (unique_lift_explicit is_discrete_fibration_D d).
105- apply id_disp.
106- Defined .
107-
108- (* TODO: move upstream? *)
109- Definition unique_lift_id
110- {C : category}
111- {D : disp_cat C}
112- (is_discrete_fibration_D : is_discrete_fibration D) {c}
113- (d : D c)
114- : pr1 is_discrete_fibration_D _ _ (identity c) d
115- = unique_lift_identity is_discrete_fibration_D d.
116- Proof .
117- apply isapropiscontr.
118- Defined .
119-
120- (* TODO: move upstream? *)
121- Definition unique_lift_compose
122- {C : category}
123- {D : disp_cat C}
124- (is_discrete_fibration_D : is_discrete_fibration D) {c c' c''}
125- (f : c' --> c) (g : c'' --> c')
126- (d : D c)
127- : ∃! (d'' : D c''), d'' -->[g ;; f] d.
128- Proof .
129- set (d'ff := pr1 is_discrete_fibration_D _ _ f d).
130- set (d' := pr1 (pr1 d'ff)).
131- set (ff := pr2 (pr1 d'ff)).
132- set (d''gg := pr1 is_discrete_fibration_D _ _ g d').
133- set (d'' := pr1 (pr1 d''gg)).
134- set (gg := pr2 (pr1 d''gg)).
135-
136- use (unique_lift_explicit is_discrete_fibration_D d'' (gg ;; ff)%mor_disp).
137- Defined .
138-
139- (* TODO: move upstream? *)
140- Definition unique_lift_comp
141- {C : category}
142- {D : disp_cat C}
143- (is_discrete_fibration_D : is_discrete_fibration D) {c c' c''}
144- (f : c' --> c) (g : c'' --> c')
145- (d : D c)
146- : pr1 is_discrete_fibration_D _ _ (g ;; f) d
147- = unique_lift_compose is_discrete_fibration_D f g d.
148- Proof .
149- apply isapropiscontr.
150- Defined .
151-
152- (* TODO: move upstream? *)
153- Definition discrete_fibration_mor_weq
154- {C : category}
155- {D : disp_cat C}
156- (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
157- (f : c' --> c) (d : D c) (d' : D c')
158- : (d' -->[f] d) ≃ (pr1 (pr1 (pr1 is_discrete_fibration_D c c' f d)) = d').
159- Proof .
160- set (uf := pr1 is_discrete_fibration_D c c' f d).
161- use weq_iso.
162- - intros ff. apply (maponpaths pr1 (! pr2 uf (d' ,, ff))).
163- - intros p. apply (transportf _ p (pr2 (pr1 uf))).
164- - intros ff. simpl.
165- induction (! unique_lift_explicit_eq is_discrete_fibration_D d' ff
166- : unique_lift_explicit _ d' ff = uf).
167- simpl.
168- etrans. apply maponpaths_2, maponpaths, maponpaths.
169- apply pathsinv0r.
170- apply idpath.
171- - intros ?. apply (pr2 is_discrete_fibration_D).
172- Defined .
173-
174- (* TODO: move upstream? *)
175- Definition discrete_fibration_mor
176- {C : category}
177- {D : disp_cat C}
178- (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
179- (f : c' --> c) (d : D c) (d' : D c')
180- : (d' -->[f] d) = (pr1 (pr1 (pr1 is_discrete_fibration_D c c' f d)) = d').
181- Proof .
182- apply univalenceweq.
183- apply discrete_fibration_mor_weq.
184- Defined .
185-
186- (* TODO: move upstream? *)
187- Definition isaprop_mor_disp_of_discrete_fibration
188- {C : category}
189- {D : disp_cat C}
190- (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
191- (f : c' --> c) (d : D c) (d' : D c')
192- : isaprop (d' -->[f] d).
193- Proof .
194- induction (! discrete_fibration_mor is_discrete_fibration_D f d d').
195- apply (pr2 is_discrete_fibration_D).
196- Qed .
197-
198- (* TODO: move upstream? *)
199- Definition isaprop_disp_id_comp_of_discrete_fibration
200- {C : category}
201- {D : disp_cat C}
202- (is_discrete_fibration_D : is_discrete_fibration D)
203- : isaprop (disp_cat_id_comp C D).
204- Proof .
205- use isapropdirprod.
206- - apply impred_isaprop. intros ?.
207- apply impred_isaprop. intros ?.
208- apply isaprop_mor_disp_of_discrete_fibration.
209- apply is_discrete_fibration_D.
210- - apply impred_isaprop. intros ?.
211- apply impred_isaprop. intros ?.
212- apply impred_isaprop. intros ?.
213- apply impred_isaprop. intros ?.
214- apply impred_isaprop. intros ?.
215- apply impred_isaprop. intros ?.
216- apply impred_isaprop. intros ?.
217- apply impred_isaprop. intros ?.
218- apply impred_isaprop. intros ?.
219- apply impred_isaprop. intros ?.
220- apply isaprop_mor_disp_of_discrete_fibration.
221- apply is_discrete_fibration_D.
222- Qed .
223-
224- (* TODO: move upstream? *)
225- Definition isaprop_is_discrete_fibration
226- {C : category}
227- (D : disp_cat C)
228- : isaprop (is_discrete_fibration D).
229- Proof .
230- use isapropdirprod.
231- - apply impred_isaprop. intros ?.
232- apply impred_isaprop. intros ?.
233- apply impred_isaprop. intros ?.
234- apply impred_isaprop. intros ?.
235- apply isapropiscontr.
236- - apply impred_isaprop. intros ?.
237- apply isapropisaset.
238- Qed .
239-
240- (* TODO: move upstream? *)
241- Definition isaprop_is_cartesian_disp_functor
242- {C C' : category} {F : functor C C'}
243- {D : disp_cat C} {D' : disp_cat C'} {FF : disp_functor F D D'}
244- : isaprop (is_cartesian_disp_functor FF).
245- Proof .
246- apply impred_isaprop. intros c.
247- apply impred_isaprop. intros c'.
248- apply impred_isaprop. intros f.
249- apply impred_isaprop. intros d.
250- apply impred_isaprop. intros d'.
251- apply impred_isaprop. intros ff.
252- apply impred_isaprop. intros ff_is_cartesian.
253- apply isaprop_is_cartesian.
254- Qed .
255-
256- End Auxiliary.
257-
25859Section DiscreteComprehensionCatWithDefaultMor.
25960
26061 Section From_SplitTypeCat.
0 commit comments