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
(** [functor_hfiber] on a pair of [O']-equivalences is an [O]-equivalence. *)
218
+
(** [functor_hfiber] on a pair of [O']-equivalences is an [O]-equivalence. Is this true when [h] is only assumed to be an [O]-equivalence? (See strengthened version of [OO_conn_map_isconnected] below.) *)
219
219
#[export] Instance OO_inverts_functor_hfiber
220
220
{A B C D : Type} {f : A -> B} {g : C -> D} {h : A -> C} {k : B -> D}
: O (hfiber f x) <~> O (hfiber (O_functor O' f) (to O' X x))
245
245
:= Build_Equiv _ _ _ (OO_inverts_functor_hfiber_to_O f x).
246
246
247
-
(** Theorem 3.1(iii) of RSS: any map between [O']-connected types is [O]-connected. (Part (ii) is just the version for dependent projections.) *)
247
+
(** Any map from an [O]-connected type to an [O']-connected type is [O]-connected. Taking [O = O'] gives Theorem 3.1(iii) of RSS. (Part (ii) is just the version for dependent projections.) *)
248
248
Definition OO_conn_map_isconnected
249
-
{Y X : Type} `{IsConnected O' Y, IsConnected O' X} (f : Y -> X)
249
+
{Y X : Type} `{IsConnected O Y, IsConnected O' X} (f : Y -> X)
250
250
: IsConnMap O f.
251
251
Proof.
252
-
intros x; exact (contr_equiv' _ (equiv_OO_functor_hfiber_to_O f x)^-1).
252
+
intros x; unfold IsConnected.
253
+
rapply (contr_equiv' (O Y)).
254
+
(* By the previous result, [O] of the fiber is equivalent to [O] of the fiber of [O_functor O' f]: *)
255
+
rhs' napply (equiv_OO_functor_hfiber_to_O f x).
256
+
(* And [O Y] is equivalent to [O (O' Y)]: *)
257
+
lhs' rapply (equiv_O_functor_to_O_O_leq O O' Y).
258
+
(* Finally, since [O' X] is contractible, the fiber is the same as the domain [O' Y]. *)
259
+
apply equiv_O_functor.
260
+
symmetry; rapply equiv_sigma_contr.
253
261
Defined.
254
262
255
263
Definition OO_isconnected_hfiber
256
-
{Y X : Type} `{IsConnected O' Y, IsConnected O' X} (f : Y -> X) (x : X)
264
+
{Y X : Type} `{IsConnected O Y, IsConnected O' X} (f : Y -> X) (x : X)
257
265
: IsConnected O (hfiber f x)
258
266
:= OO_conn_map_isconnected f x.
259
267
260
-
(** Theorem 3.1(iv) of RSS: an [O]-modal map between [O']-connected types is an equivalence. *)
268
+
(** An [O]-modal map from an [O]-connected type to an [O']-connected type is an equivalence. When [O = O'], this gives Theorem 3.1(iv) of RSS. *)
261
269
Definition OO_isequiv_mapino_isconnected
262
-
{Y X : Type} `{IsConnected O' Y, IsConnected O' X} (f : Y -> X) `{MapIn O _ _ f}
270
+
{Y X : Type} `{IsConnected O Y, IsConnected O' X} (f : Y -> X) `{MapIn O _ _ f}
263
271
: IsEquiv f.
264
272
Proof.
265
273
apply (isequiv_conn_ino_map O).
266
274
- apply OO_conn_map_isconnected.
267
275
- assumption.
268
276
Defined.
269
277
270
-
(** Theorem 3.1(vi) of RSS (and part (v) is just the analogue for dependent projections).*)
278
+
(** When [O = O'], this is Theorem 3.1(vi) of RSS. (Part (v) is just the analogue for dependent projections.)*)
271
279
Definition OO_conn_map_functor_hfiber {A B C D : Type}
272
280
{f : A -> B} {g : C -> D} {h : A -> C} {k : B -> D}
Copy file name to clipboardExpand all lines: theories/Truncations/Connectedness.v
+10-5Lines changed: 10 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -29,6 +29,14 @@ A handy benchmark: under our indexing, the map [S1 -> 1] is 0-connected but not
29
29
30
30
One reason for our choice is that this way, the n-truncated and n-connected maps are the modal and modally-connected maps for the n-truncation modality. Many of the basic lemmas about connected maps are in fact true for any modality, and can be found in [Modality.v]. Thus, here we consider mainly properties that involve the interaction of connectedness at different truncation levels. *)
31
31
32
+
(** ** Connectedness of maps between connected types *)
33
+
34
+
(** If [X] is n-connected and [Y] is (n+1)-connected, then any map [X -> Y] is n-connected. *)
(X Y : Type) `{IsConnected n X} `{IsConnected n.+1 Y} (f : X -> Y)
37
+
: IsConnMap n f
38
+
:= OO_conn_map_isconnected (Tr n.+1) (Tr n) f.
39
+
32
40
(** ** Truncatedness of the type of extensions *)
33
41
34
42
(** A key lemma on the interaction between connectedness and truncatedness: suppose one is trying to extend along an n-connected map, into a k-truncated family of types (k ≥ n). Then the space of possible extensions is (k–n–2)-truncated.
(** [conn_point_incl] can be made an instance, but at the time of writing, this doesn't cause any additional goals to be solved compared to making it an immediate hint, so we do the latter. *)
0 commit comments