Skip to content

Commit 845e1f1

Browse files
chore: Fix two sections on connected/truncated maps (#1727)
A couple of section headers stated logical equivalences but only demonstrated one of the two directions.
1 parent 013ee80 commit 845e1f1

12 files changed

+287
-252
lines changed

src/foundation-core/truncated-maps.lagda.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,14 @@ module _
329329
{l1 l2 : Level} {k : 𝕋} {A : UU l1} {B : UU l2} {f : A → B}
330330
where
331331
332-
is-trunc-map-is-trunc-succ-codomain-is-contr-domain :
333-
is-contr A →
334-
is-trunc (succ-𝕋 k) B →
335-
is-trunc-map k f
336-
is-trunc-map-is-trunc-succ-codomain-is-contr-domain c tB u =
337-
is-trunc-equiv k
338-
( f (center c) = u)
339-
( left-unit-law-Σ-is-contr c (center c))
340-
( tB (f (center c)) u)
332+
abstract
333+
is-trunc-map-is-trunc-succ-codomain-is-contr-domain :
334+
is-contr A →
335+
is-trunc (succ-𝕋 k) B →
336+
is-trunc-map k f
337+
is-trunc-map-is-trunc-succ-codomain-is-contr-domain c tB u =
338+
is-trunc-equiv k
339+
( f (center c) = u)
340+
( left-unit-law-Σ-is-contr c (center c))
341+
( tB (f (center c)) u)
341342
```

src/foundation/connected-maps.lagda.md

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ open import foundation.iterated-successors-truncation-levels
1717
open import foundation.precomposition-dependent-functions
1818
open import foundation.structure-identity-principle
1919
open import foundation.subtype-identity-principle
20+
open import foundation.transport-along-identifications
2021
open import foundation.truncated-types
2122
open import foundation.truncation-levels
2223
open import foundation.truncations
@@ -497,38 +498,42 @@ module _
497498
dependent-universal-property-trunc
498499
```
499500

500-
### A map `f : A → B` is `k`-connected if and only if precomposing dependent functions into `k+n`-truncated types is an `n-2`-truncated map for all `n : ℕ`
501+
### Given a `k`-connected map `f` then precomposing dependent functions into `2+k+n`-truncated types by `f` is an `n`-truncated map
501502

502503
```agda
503-
abstract
504-
is-trunc-map-precomp-Π-is-connected-map :
505-
{l1 l2 l3 : Level} (k n : 𝕋) →
506-
{A : UU l1} {B : UU l2} {f : A → B} → is-connected-map k f →
507-
(P : B → Truncated-Type l3 (add+2-𝕋 n k)) →
508-
is-trunc-map
509-
( n)
510-
( precomp-Π f (λ b → type-Truncated-Type (P b)))
511-
is-trunc-map-precomp-Π-is-connected-map k neg-two-𝕋 H P =
512-
is-contr-map-is-equiv
513-
( dependent-universal-property-is-connected-map k H
514-
( λ b →
515-
pair
516-
( type-Truncated-Type (P b))
517-
( is-trunc-eq
518-
( left-unit-law-add+2-𝕋 k)
519-
( is-trunc-type-Truncated-Type (P b)))))
520-
is-trunc-map-precomp-Π-is-connected-map k (succ-𝕋 n) H P =
521-
is-trunc-map-succ-precomp-Π
522-
( λ g h →
523-
is-trunc-map-precomp-Π-is-connected-map k n H
524-
( λ b →
525-
pair
526-
( eq-value g h b)
527-
( is-trunc-eq
528-
( left-successor-law-add+2-𝕋 k n)
529-
( is-trunc-type-Truncated-Type (P b))
530-
( g b)
531-
( h b))))
504+
module _
505+
{l1 l2 : Level}
506+
{A : UU l1} {B : UU l2} {f : A → B}
507+
where
508+
509+
abstract
510+
is-trunc-map-precomp-Π-is-connected-map :
511+
(k n : 𝕋) →
512+
is-connected-map k f →
513+
{l3 : Level} (P : B → Truncated-Type l3 (add+2-𝕋 k n)) →
514+
is-trunc-map n (precomp-Π f (type-Truncated-Type ∘ P))
515+
is-trunc-map-precomp-Π-is-connected-map k neg-two-𝕋 H P =
516+
is-contr-map-is-equiv
517+
( dependent-universal-property-is-connected-map k H P)
518+
is-trunc-map-precomp-Π-is-connected-map k (succ-𝕋 n) H P =
519+
is-trunc-map-succ-precomp-Π
520+
( λ g h →
521+
is-trunc-map-precomp-Π-is-connected-map k n H
522+
( λ b → Id-Truncated-Type (P b) (g b) (h b)))
523+
524+
abstract
525+
is-trunc-map-precomp-Π-is-connected-map' :
526+
(k n : 𝕋) →
527+
is-connected-map k f →
528+
{l3 : Level} (P : B → Truncated-Type l3 (add+2-𝕋 n k)) →
529+
is-trunc-map n (precomp-Π f (type-Truncated-Type ∘ P))
530+
is-trunc-map-precomp-Π-is-connected-map' k n H P =
531+
is-trunc-map-precomp-Π-is-connected-map k n H
532+
( λ x →
533+
( type-Truncated-Type (P x)) ,
534+
( is-trunc-eq
535+
( commutative-add+2-𝕋 n k)
536+
( is-trunc-type-Truncated-Type (P x))))
532537
```
533538

534539
### Characterization of the identity type of `Connected-Map l2 k A`

src/foundation/epimorphisms-with-respect-to-sets.lagda.md

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,27 +80,21 @@ abstract
8080
{l1 l2 : Level} {A : UU l1} {B : UU l2} {f : A → B} →
8181
is-epimorphism-Set f → is-surjective f
8282
is-surjective-is-epimorphism-Set {l1} {l2} {A} {B} {f} H b =
83-
map-equiv
84-
( equiv-eq
85-
( ap
86-
( pr1)
87-
( htpy-eq
88-
( is-injective-is-emb
89-
( H (Prop-Set (l1 ⊔ l2)))
90-
{ g}
91-
{ h}
92-
( eq-htpy
93-
( λ a →
94-
eq-iff
95-
( λ _ → unit-trunc-Prop (pair a refl))
96-
( λ _ → raise-star))))
97-
( b))))
83+
map-eq
84+
( ap
85+
( pr1)
86+
( htpy-eq
87+
( is-injective-is-emb
88+
( H (Prop-Set (l1 ⊔ l2)))
89+
{ λ _ → raise-unit-Prop (l1 ⊔ l2)}
90+
{ λ y → exists-structure-Prop A (λ x → f x = y)}
91+
( eq-htpy
92+
( λ a →
93+
eq-iff
94+
( λ _ → unit-trunc-Prop (a , refl))
95+
( λ _ → raise-star))))
96+
( b)))
9897
( raise-star)
99-
where
100-
g : B → Prop (l1 ⊔ l2)
101-
g y = raise-unit-Prop (l1 ⊔ l2)
102-
h : B → Prop (l1 ⊔ l2)
103-
h y = exists-structure-Prop A (λ x → f x = y)
10498
```
10599

106100
### There is at most one extension of a map into a set along a surjection

src/foundation/epimorphisms-with-respect-to-truncated-types.lagda.md

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -262,13 +262,13 @@ module _
262262
We consider the commutative diagram for any `k`-type `X`:
263263

264264
```text
265-
horizontal-map-cocone
266-
(B → X) <---------------------------- cocone f f X
267-
| ≃ ∧
268-
id | ≃ ≃ | (universal property)
269-
∨ |
270-
(B → X) ------------------------> (pushout f f → X)
271-
precomp (codiagonal f)
265+
horizontal-map-cocone
266+
(B → X) <---------------------------- cocone f f X
267+
| ≃ ∧
268+
id | ≃ ≃ | (universal property)
269+
∨ |
270+
(B → X) ------------------------> (pushout f f → X)
271+
precomp (codiagonal f)
272272
```
273273

274274
Since the top (in case `f` is epic), left and right maps are all equivalences,
@@ -299,10 +299,8 @@ module _
299299
( f)
300300
( e)
301301
( X)))
302-
( is-equiv-htpy
303-
( id)
304-
( λ g → eq-htpy (λ b → ap g (compute-inl-codiagonal-map f b)))
305-
( is-equiv-id)))
302+
( is-equiv-htpy-id
303+
( λ g → eq-htpy (λ b → ap g (compute-inl-codiagonal-map f b)))))
306304
```
307305

308306
### A map is a `k`-epimorphism if its codiagonal is a `k`-equivalence
@@ -323,10 +321,8 @@ module _
323321
( horizontal-map-cocone f f)
324322
( ( map-equiv (equiv-up-pushout f f (type-Truncated-Type X))) ∘
325323
( precomp (codiagonal-map f) (type-Truncated-Type X)))
326-
( is-equiv-htpy
327-
( id)
328-
( λ g → eq-htpy (λ b → ap g (compute-inl-codiagonal-map f b)))
329-
( is-equiv-id))
324+
( is-equiv-htpy-id
325+
( λ g → eq-htpy (λ b → ap g (compute-inl-codiagonal-map f b))))
330326
( is-equiv-comp
331327
( map-equiv (equiv-up-pushout f f (type-Truncated-Type X)))
332328
( precomp (codiagonal-map f) (type-Truncated-Type X))
@@ -336,11 +332,10 @@ module _
336332
is-epimorphism-is-truncation-equivalence-codiagonal-map-Truncated-Type :
337333
is-truncation-equivalence k (codiagonal-map f) →
338334
is-epimorphism-Truncated-Type k f
339-
is-epimorphism-is-truncation-equivalence-codiagonal-map-Truncated-Type e X =
335+
is-epimorphism-is-truncation-equivalence-codiagonal-map-Truncated-Type e =
340336
is-epimorphism-is-equiv-horizontal-map-cocone-Truncated-Type k f
341337
( is-equiv-horizontal-map-cocone-is-truncation-equivalence-codiagonal-map
342338
( e))
343-
( X)
344339
```
345340

346341
### A map is a `k`-epimorphism if and only if its codiagonal is `k`-connected

src/foundation/iterating-functions.lagda.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -142,48 +142,53 @@ module _
142142
```agda
143143
module _
144144
{l : Level} {X : UU l} {f : X → X}
145-
where abstract
145+
where
146146
147-
is-equiv-iterate : (n : ℕ) → is-equiv f → is-equiv (iterate n f)
148-
is-equiv-iterate =
149-
is-in-function-class-iterate is-equiv-id (λ h g H G → is-equiv-comp h g G H)
147+
abstract
148+
is-equiv-iterate : (n : ℕ) → is-equiv f → is-equiv (iterate n f)
149+
is-equiv-iterate =
150+
is-in-function-class-iterate is-equiv-id
151+
( λ h g H G → is-equiv-comp h g G H)
150152
```
151153

152154
### Iterates of embeddings are embeddings
153155

154156
```agda
155157
module _
156158
{l : Level} {X : UU l} {f : X → X}
157-
where abstract
159+
where
158160
159-
is-emb-iterate : (n : ℕ) → is-emb f → is-emb (iterate n f)
160-
is-emb-iterate = is-in-function-class-iterate is-emb-id is-emb-comp
161+
abstract
162+
is-emb-iterate : (n : ℕ) → is-emb f → is-emb (iterate n f)
163+
is-emb-iterate = is-in-function-class-iterate is-emb-id is-emb-comp
161164
```
162165

163166
### Iterates of truncated maps are truncated
164167

165168
```agda
166169
module _
167170
{l : Level} (k : 𝕋) {X : UU l} {f : X → X}
168-
where abstract
171+
where
169172
170-
is-trunc-map-iterate :
171-
(n : ℕ) → is-trunc-map k f → is-trunc-map k (iterate n f)
172-
is-trunc-map-iterate =
173-
is-in-function-class-iterate (is-trunc-map-id k) (is-trunc-map-comp k)
173+
abstract
174+
is-trunc-map-iterate :
175+
(n : ℕ) → is-trunc-map k f → is-trunc-map k (iterate n f)
176+
is-trunc-map-iterate =
177+
is-in-function-class-iterate (is-trunc-map-id k) (is-trunc-map-comp k)
174178
```
175179

176180
### Iterates of propositional maps are propositional
177181

178182
```agda
179183
module _
180184
{l : Level} (k : 𝕋) {X : UU l} {f : X → X}
181-
where abstract
185+
where
182186
183-
is-prop-map-iterate :
184-
(n : ℕ) → is-prop-map f → is-prop-map (iterate n f)
185-
is-prop-map-iterate =
186-
is-in-function-class-iterate is-prop-map-id is-prop-map-comp
187+
abstract
188+
is-prop-map-iterate :
189+
(n : ℕ) → is-prop-map f → is-prop-map (iterate n f)
190+
is-prop-map-iterate =
191+
is-in-function-class-iterate is-prop-map-id is-prop-map-comp
187192
```
188193

189194
## External links

src/foundation/precomposition-dependent-functions.lagda.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -226,23 +226,42 @@ module _
226226
### Precomposing functions `Π B C` by `f : A → B` is `k+1`-truncated if and only if precomposing homotopies is `k`-truncated
227227

228228
```agda
229-
is-trunc-map-succ-precomp-Π :
229+
module _
230230
{l1 l2 l3 : Level} {k : 𝕋} {A : UU l1} {B : UU l2} {f : A → B}
231-
{C : B → UU l3} →
232-
((g h : (b : B) → C b) → is-trunc-map k (precomp-Π f (eq-value g h))) →
233-
is-trunc-map (succ-𝕋 k) (precomp-Π f C)
234-
is-trunc-map-succ-precomp-Π {k = k} {f = f} {C = C} H =
235-
is-trunc-map-succ-is-trunc-map-ap k (precomp-Π f C)
236-
( λ g h →
231+
{C : B → UU l3}
232+
where
233+
234+
abstract
235+
is-trunc-map-succ-precomp-Π :
236+
((g h : (b : B) → C b) → is-trunc-map k (precomp-Π f (eq-value g h))) →
237+
is-trunc-map (succ-𝕋 k) (precomp-Π f C)
238+
is-trunc-map-succ-precomp-Π H =
239+
is-trunc-map-succ-is-trunc-map-ap k (precomp-Π f C)
240+
( λ g h →
241+
is-trunc-map-top-is-trunc-map-bottom-is-equiv k
242+
( ap (precomp-Π f C))
243+
( htpy-eq)
244+
( htpy-eq)
245+
( precomp-Π f (eq-value g h))
246+
( coherence-htpy-eq-ap-precomp-Π f)
247+
( funext g h)
248+
( funext (g ∘ f) (h ∘ f))
249+
( H g h))
250+
251+
abstract
252+
is-trunc-map-precomp-Π-eq-value-is-trunc-map-succ-precomp-Π :
253+
is-trunc-map (succ-𝕋 k) (precomp-Π f C) →
254+
(g h : (b : B) → C b) → is-trunc-map k (precomp-Π f (eq-value g h))
255+
is-trunc-map-precomp-Π-eq-value-is-trunc-map-succ-precomp-Π H g h =
237256
is-trunc-map-top-is-trunc-map-bottom-is-equiv k
238-
( ap (precomp-Π f C))
239-
( htpy-eq)
240-
( htpy-eq)
241257
( precomp-Π f (eq-value g h))
242-
( coherence-htpy-eq-ap-precomp-Π f)
243-
( funext g h)
244-
( funext (g ∘ f) (h ∘ f))
245-
( H g h))
258+
( eq-htpy)
259+
( eq-htpy)
260+
( ap (precomp-Π f C))
261+
( coherence-eq-htpy-ap-precomp-Π f)
262+
( is-equiv-eq-htpy g h)
263+
( is-equiv-eq-htpy (g ∘ f) (h ∘ f))
264+
( is-trunc-map-ap-is-trunc-map-succ k (precomp-Π f C) H g h)
246265
```
247266

248267
### The dependent precomposition map at a dependent pair type

src/foundation/surjective-maps.lagda.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ is-trunc-map-precomp-Π-is-surjective :
631631
(P : B → Truncated-Type l3 (succ-𝕋 k)) →
632632
is-trunc-map k (precomp-Π f (λ b → type-Truncated-Type (P b)))
633633
is-trunc-map-precomp-Π-is-surjective k H =
634-
is-trunc-map-precomp-Π-is-connected-map
634+
is-trunc-map-precomp-Π-is-connected-map'
635635
( neg-one-𝕋)
636636
( k)
637637
( is-neg-one-connected-map-is-surjective H)

0 commit comments

Comments
 (0)