Skip to content
Draft
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9f38f3b
it's working with an unsolved meta currently. need to fill that hole …
djspacewhale Aug 28, 2025
2a9af33
this is growing
djspacewhale Aug 29, 2025
716cf96
workinonit
djspacewhale Aug 29, 2025
fc1ab8d
edits
djspacewhale Aug 29, 2025
adf81f0
edits
djspacewhale Aug 29, 2025
d91172d
I'm not convinced acyclic types have anything to do with cyclic group…
djspacewhale Aug 29, 2025
f9303ed
workinonit
djspacewhale Aug 29, 2025
e77977a
pre-commit hygeine
djspacewhale Aug 29, 2025
b24a60d
added link for mere equality
djspacewhale Aug 29, 2025
6f20331
fixed inference issue in bool equivalence
djspacewhale Aug 29, 2025
c270910
typo
djspacewhale Aug 29, 2025
0a174cf
with abstraction is being finnicky, surprised refl doesn't work here
djspacewhale Aug 29, 2025
7a1d589
anonymized unused lambda variable
djspacewhale Aug 29, 2025
4f972c9
Apply suggestions from code review
djspacewhale Aug 29, 2025
042ce86
acyclic/epimorphic maps are surjective
djspacewhale Aug 29, 2025
9e0028e
allowed unsolved metas, for the time being
djspacewhale Aug 29, 2025
b9cd785
Merge branch 'Acyclic-types-are-inhabited' of https://github.com/djsp…
djspacewhale Aug 29, 2025
6cdc190
qed
djspacewhale Aug 29, 2025
11b496a
formatting
djspacewhale Aug 29, 2025
13f94a0
Apply suggestions from code review
djspacewhale Aug 29, 2025
1d147b5
suspensions almost commute with propositional truncations
djspacewhale Aug 29, 2025
1bfd42e
making progress in suspensions of propositions on the almost-commutin…
djspacewhale Aug 29, 2025
4833e02
there remain some computations to do by hand
djspacewhale Aug 29, 2025
41a97e7
Merge branch 'Acyclic-types-are-inhabited' of https://github.com/djsp…
djspacewhale Aug 29, 2025
a42a827
back to this version
djspacewhale Aug 29, 2025
e830721
citation needed
djspacewhale Aug 29, 2025
509a7c2
Update src/foundation/surjective-maps.lagda.md
djspacewhale Aug 29, 2025
0dd07ae
Merge branch 'master' into Acyclic-types-are-inhabited
djspacewhale Aug 31, 2025
35fc025
typo
djspacewhale Sep 1, 2025
c667576
a bit of section infrastructure
djspacewhale Sep 1, 2025
d0337dc
from an injection to the leq
djspacewhale Sep 1, 2025
6602fd8
running into issues with implicit/explicit functions...
djspacewhale Sep 1, 2025
64c46c5
oof!
djspacewhale Sep 1, 2025
4c31c18
got it for 0, 1, 2!!
djspacewhale Sep 2, 2025
eac9ee3
makin progress
djspacewhale Sep 2, 2025
7bf58fe
lossy unification
djspacewhale Sep 2, 2025
e326b9b
got the prop!!
djspacewhale Sep 2, 2025
5d8e28d
a couple of the edits worked in; will get the rest later
djspacewhale Sep 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/foundation/connected-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -271,3 +271,18 @@ module _
( λ where refl → refl)
( center (K a x)))))
```

In particular, inhabited types are `-1`-connected; their identity types are
`-2`-connected, as all types are. This characterizes the `-1`-connected types,
i.e. `X` is `-1`-connected iff it's inhabited.

```agda
is-neg-one-connected-is-inhabited :
{l : Level} (A : UU l) → is-inhabited A → is-connected neg-one-𝕋 A
is-neg-one-connected-is-inhabited A a =
is-connected-succ-is-connected-eq a (λ x y → is-neg-two-connected (x = y))

is-inhabited-is-neg-one-connected :
{l : Level} (A : UU l) → is-connected neg-one-𝕋 A → is-inhabited A
is-inhabited-is-neg-one-connected A (a , _) = a
```
15 changes: 15 additions & 0 deletions src/foundation/set-truncations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -567,3 +567,18 @@ module _
triangle-distributive-trunc-product-Set =
pr2 (center distributive-trunc-product-Set)
```

### `X` is empty iff its set truncation is empty

```agda
module _
{l : Level} {X : UU l}
where

is-empty-set-truncation-is-empty : is-empty (type-trunc-Set X) → is-empty X
is-empty-set-truncation-is-empty p x = p (unit-trunc-Set x)

set-truncation-is-empty-is-empty : is-empty X → is-empty (type-trunc-Set X)
set-truncation-is-empty-is-empty p x =
apply-universal-property-trunc-Set empty-Set x p
```
13 changes: 13 additions & 0 deletions src/foundation/surjective-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ open import foundation.universe-levels
open import foundation-core.cartesian-product-types
open import foundation-core.constant-maps
open import foundation-core.contractible-maps
open import foundation-core.empty-types
open import foundation-core.equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
Expand Down Expand Up @@ -873,6 +874,18 @@ module _
is-inhabited-is-surjective (is-surjective-map-surjection f)
```

### When `X` is empty and `X` surjects onto `Y`, then `Y` is empty

```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2} (emp-A : is-empty A)
where

is-empty-surjection-empty : A ↠ B → is-empty B
is-empty-surjection-empty (f , p) b =
rec-trunc-Prop empty-Prop (λ (a , q) → emp-A a) (p b)
```

### The type of surjections `A ↠ B` is equivalent to the type of families `P` of inhabited types over `B` equipped with an equivalence `A ≃ Σ B P`

> This remains to be shown.
Expand Down
14 changes: 13 additions & 1 deletion src/synthetic-homotopy-theory/acyclic-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ module synthetic-homotopy-theory.acyclic-types where
<details><summary>Imports</summary>

```agda
open import foundation.0-connected-types
open import foundation.contractible-types
open import foundation.equivalences
open import foundation.inhabited-types
open import foundation.propositional-truncations
open import foundation.propositions
open import foundation.retracts-of-types
open import foundation.unit-type
Expand Down Expand Up @@ -80,7 +83,16 @@ is-acyclic-unit = is-acyclic-is-contr unit is-contr-unit

### Acyclic types are inhabited

> TODO
Proof: `Σ X` is 0-connected if and only if `X` is inhabited, and contractible
types are of course 0-connected.

```agda
is-inhabited-is-acyclic : {l : Level} (A : UU l) → is-acyclic A → is-inhabited A
is-inhabited-is-acyclic A ac =
is-inhabited-suspension-is-0-connected
( A)
( is-0-connected-is-contr (suspension A) ac)
```

## See also

Expand Down
Loading