@@ -136,15 +136,44 @@ End Displayed_Equivalences.
136136
137137Section Discrete_Fibrations.
138138
139+ (* Some access functions missing upstream *)
140+ Definition make_discrete_fibration {C} {D} (H : is_discrete_fibration D)
141+ : discrete_fibration C := (D,,H).
142+
143+ Coercion discrete_fibration_property {C} {D : discrete_fibration C}
144+ : is_discrete_fibration D := pr2 D.
145+
146+ (* arguments tweaked from upstream version, for easier applicability *)
147+ Definition unique_lift {C} {D : disp_cat C} (H_D : is_discrete_fibration D)
148+ {c c'} (f : c' --> c) (d : D c)
149+ : ∃! d' : D c', d' -->[f] d
150+ := pr1 H_D c c' f d.
151+
152+ Definition lift_source {C} {D : disp_cat C} (H_D : is_discrete_fibration D)
153+ {c c'} (f : c' --> c) (d : D c)
154+ : D c'
155+ := pr1 (iscontrpr1 (unique_lift H_D f d)).
156+
157+ Definition lift {C} {D : disp_cat C} (H_D : is_discrete_fibration D)
158+ {c c'} (f : c' --> c) (d : D c)
159+ : lift_source H_D f d -->[f] d
160+ := pr2 (iscontrpr1 (unique_lift H_D f d)).
161+
162+ Definition isaset_fiber_is_discrete_fibration
163+ {C} {D : disp_cat C} (H_D : is_discrete_fibration D) (c : C)
164+ : isaset (D c)
165+ := pr2 H_D c.
166+
139167 Definition unique_lift_is_cartesian
140168 {C : category}
141169 {D : discrete_fibration C} {c c'}
142170 (f : c' --> c) (d : D c)
143- : is_cartesian (pr2 (pr1 (unique_lift f d))).
171+ : is_cartesian (pr2 (pr1 (unique_lift D f d))).
144172 Proof .
145- apply (pr2 (pr2 (fibration_from_discrete_fibration _ D _ _ f d ))).
173+ apply (pr2 (pr2 (fibration_from_discrete_fibration _ D _ _ _ _ ))).
146174 Defined .
147175
176+ (* useful for situations when a particularly canonical lift is known *)
148177 Definition unique_lift_explicit
149178 {C : category}
150179 {D : disp_cat C}
@@ -154,8 +183,7 @@ Section Discrete_Fibrations.
154183 Proof .
155184 exists (d' ,, ff).
156185 intros X.
157- etrans. apply (pr2 (pr1 is_discrete_fibration_D _ _ f d)).
158- apply pathsinv0, (pr2 (pr1 is_discrete_fibration_D _ _ f d)).
186+ apply isapropifcontr, unique_lift, is_discrete_fibration_D.
159187 Defined .
160188
161189 Definition unique_lift_explicit_eq
@@ -185,7 +213,7 @@ Section Discrete_Fibrations.
185213 {D : disp_cat C}
186214 (is_discrete_fibration_D : is_discrete_fibration D) {c}
187215 (d : D c)
188- : pr1 is_discrete_fibration_D _ _ (identity c) d
216+ : unique_lift is_discrete_fibration_D (identity c) d
189217 = unique_lift_identity is_discrete_fibration_D d.
190218 Proof .
191219 apply isapropiscontr.
@@ -199,14 +227,8 @@ Section Discrete_Fibrations.
199227 (d : D c)
200228 : ∃! (d'' : D c''), d'' -->[g ;; f] d.
201229 Proof .
202- set (d'ff := pr1 is_discrete_fibration_D _ _ f d).
203- set (d' := pr1 (pr1 d'ff)).
204- set (ff := pr2 (pr1 d'ff)).
205- set (d''gg := pr1 is_discrete_fibration_D _ _ g d').
206- set (d'' := pr1 (pr1 d''gg)).
207- set (gg := pr2 (pr1 d''gg)).
208-
209- use (unique_lift_explicit is_discrete_fibration_D d'' (gg ;; ff)%mor_disp).
230+ eapply unique_lift_explicit; try assumption.
231+ refine (_;;_)%mor_disp; apply (lift is_discrete_fibration_D).
210232 Defined .
211233
212234 Definition unique_lift_comp
@@ -215,7 +237,7 @@ Section Discrete_Fibrations.
215237 (is_discrete_fibration_D : is_discrete_fibration D) {c c' c''}
216238 (f : c' --> c) (g : c'' --> c')
217239 (d : D c)
218- : pr1 is_discrete_fibration_D _ _ (g ;; f) d
240+ : unique_lift is_discrete_fibration_D (g ;; f) d
219241 = unique_lift_compose is_discrete_fibration_D f g d.
220242 Proof .
221243 apply isapropiscontr.
@@ -226,28 +248,23 @@ Section Discrete_Fibrations.
226248 {D : disp_cat C}
227249 (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
228250 (f : c' --> c) (d : D c) (d' : D c')
229- : (d' -->[f] d) ≃ (pr1 (pr1 (pr1 is_discrete_fibration_D c c' f d)) = d').
251+ : (d' -->[f] d) ≃ (lift_source is_discrete_fibration_D f d = d').
230252 Proof .
231- set (uf := pr1 is_discrete_fibration_D c c' f d).
253+ set (uf := unique_lift is_discrete_fibration_D f d).
232254 use weq_iso.
233255 - intros ff. apply (maponpaths pr1 (! pr2 uf (d' ,, ff))).
234256 - intros p. apply (transportf _ p (pr2 (pr1 uf))).
235257 - intros ff. simpl.
236- induction (! unique_lift_explicit_eq is_discrete_fibration_D d' ff
237- : unique_lift_explicit _ d' ff = uf).
238- simpl.
239- etrans. apply maponpaths_2, maponpaths, maponpaths.
240- apply pathsinv0r.
241- apply idpath.
242- - intros ?. apply (pr2 is_discrete_fibration_D).
258+ refine (@fiber_paths _ (λ d'', d'' -->[ f] d) _ (_,,_) _).
259+ - intros ?. apply isaset_fiber_is_discrete_fibration; assumption.
243260 Defined .
244261
245262 Definition discrete_fibration_mor
246263 {C : category}
247264 {D : disp_cat C}
248265 (is_discrete_fibration_D : is_discrete_fibration D) {c c'}
249266 (f : c' --> c) (d : D c) (d' : D c')
250- : (d' -->[f] d) = (pr1 (pr1 (pr1 is_discrete_fibration_D c c' f d)) = d').
267+ : (d' -->[f] d) = (lift_source is_discrete_fibration_D f d = d').
251268 Proof .
252269 apply univalenceweq.
253270 apply discrete_fibration_mor_weq.
@@ -260,8 +277,8 @@ Section Discrete_Fibrations.
260277 (f : c' --> c) (d : D c) (d' : D c')
261278 : isaprop (d' -->[f] d).
262279 Proof .
263- induction (! discrete_fibration_mor is_discrete_fibration_D f d d').
264- apply (pr2 is_discrete_fibration_D) .
280+ eapply isofhlevelweqb. { use discrete_fibration_mor_weq; assumption. }
281+ apply isaset_fiber_is_discrete_fibration; eassumption .
265282 Qed .
266283
267284 Definition isaprop_disp_id_comp_of_discrete_fibration
@@ -271,22 +288,10 @@ Section Discrete_Fibrations.
271288 : isaprop (disp_cat_id_comp C D).
272289 Proof .
273290 use isapropdirprod.
274- - apply impred_isaprop. intros ?.
275- apply impred_isaprop. intros ?.
276- apply isaprop_mor_disp_of_discrete_fibration.
277- apply is_discrete_fibration_D.
278- - apply impred_isaprop. intros ?.
279- apply impred_isaprop. intros ?.
280- apply impred_isaprop. intros ?.
281- apply impred_isaprop. intros ?.
282- apply impred_isaprop. intros ?.
283- apply impred_isaprop. intros ?.
284- apply impred_isaprop. intros ?.
285- apply impred_isaprop. intros ?.
286- apply impred_isaprop. intros ?.
287- apply impred_isaprop. intros ?.
288- apply isaprop_mor_disp_of_discrete_fibration.
289- apply is_discrete_fibration_D.
291+ - repeat (apply impred_isaprop; intro).
292+ apply isaprop_mor_disp_of_discrete_fibration; assumption.
293+ - repeat (apply impred_isaprop; intro).
294+ apply isaprop_mor_disp_of_discrete_fibration; assumption.
290295 Qed .
291296
292297 Definition isaprop_is_discrete_fibration
@@ -295,12 +300,9 @@ Section Discrete_Fibrations.
295300 : isaprop (is_discrete_fibration D).
296301 Proof .
297302 use isapropdirprod.
298- - apply impred_isaprop. intros ?.
299- apply impred_isaprop. intros ?.
300- apply impred_isaprop. intros ?.
301- apply impred_isaprop. intros ?.
303+ - repeat (apply impred_isaprop; intro).
302304 apply isapropiscontr.
303- - apply impred_isaprop. intros ? .
305+ - apply impred_isaprop; intro .
304306 apply isapropisaset.
305307 Qed .
306308
0 commit comments