Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transport-split and preunivalent type families #1013

Merged
merged 30 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6196a04
equivalence injective type families
fredrik-bakke Jan 25, 2024
7ef885f
review
fredrik-bakke Jan 26, 2024
07d34f7
fix import
fredrik-bakke Jan 26, 2024
a4fda14
wip prose
fredrik-bakke Jan 27, 2024
c348a2f
add note about injective types
fredrik-bakke Jan 28, 2024
cf542b4
fix headers
fredrik-bakke Jan 28, 2024
4bbf1dd
Merge branch 'master' into injective
fredrik-bakke Jan 28, 2024
8090bd3
edits
fredrik-bakke Jan 28, 2024
4e9bee1
stuff
fredrik-bakke Jan 28, 2024
aba8002
Merge branch 'master' into transport-split
fredrik-bakke Jan 28, 2024
7e7cda2
remove a link
fredrik-bakke Jan 28, 2024
93372cb
transport split type families have properties
fredrik-bakke Jan 30, 2024
01b670a
`is-retraction-is-equivalence-injective-Fin`
fredrik-bakke Jan 30, 2024
1cb7c7a
`is-trunc-equiv-is-trunc(co)domain`
fredrik-bakke Jan 30, 2024
6f8cb30
`fundamental-theorem-id-retract`
fredrik-bakke Jan 30, 2024
06d25cb
Fin` is a preunivalent type family
fredrik-bakke Jan 30, 2024
4fbc681
Inclusions of subuniverses into the universe are univalent
fredrik-bakke Jan 30, 2024
e3cc8a2
wrap up
fredrik-bakke Jan 30, 2024
3a3f7d1
a typo
fredrik-bakke Jan 30, 2024
72dba7b
Preunivalent type families are faithful as maps
fredrik-bakke Jan 30, 2024
1da797c
pre-commit
fredrik-bakke Jan 30, 2024
5d60744
fix headers
fredrik-bakke Jan 30, 2024
0d812e0
Inclusions of subuniverses into the universe are preunivalent
fredrik-bakke Jan 30, 2024
92dd052
self-review
fredrik-bakke Jan 30, 2024
c4a9c75
fix links
fredrik-bakke Jan 30, 2024
b1ce1ff
renaming `equiv-Set`
fredrik-bakke Jan 30, 2024
cc299ce
review
fredrik-bakke Jan 30, 2024
58982b8
fix a header
fredrik-bakke Jan 30, 2024
541ed7d
Update src/foundation/propositional-extensionality.lagda.md
EgbertRijke Jan 30, 2024
b22da4a
Update src/foundation/propositional-extensionality.lagda.md
EgbertRijke Jan 30, 2024
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
4 changes: 2 additions & 2 deletions src/foundation-core/contractible-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ module _

- For the notion of biinvertible maps see
[`foundation.equivalences`](foundation.equivalences.md).
- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of path-split maps see
[`foundation.path-split-maps`](foundation.path-split-maps.md).
4 changes: 2 additions & 2 deletions src/foundation-core/equivalences.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -749,8 +749,8 @@ syntax step-equivalence-reasoning e Z f = e ≃ Z by f

## See also

- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of maps with contractible fibers see
[`foundation.contractible-maps`](foundation.contractible-maps.md).
Expand Down
10 changes: 5 additions & 5 deletions src/foundation-core/path-split-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ open import foundation-core.sections
## Idea

A map `f : A → B` is said to be **path split** if it has a
[section](foundation-core.sections.md) and its action on
[identity types](foundation-core.identity-types.md) `Id x y → Id (f x) (f y)`
has a section for each `x y : A`. By the
[section](foundation-core.sections.md) and its
[action on identifications](foundation.action-on-identifications-functions.md)
`x = y → f x = f y` has a section for each `x y : A`. By the
[fundamental theorem of identity types](foundation.fundamental-theorem-of-identity-types.md),
it follows that a map is path-split if and only if it is an
[equivalence](foundation-core.equivalences.md).
Expand Down Expand Up @@ -80,8 +80,8 @@ module _

- For the notion of biinvertible maps see
[`foundation.equivalences`](foundation.equivalences.md).
- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of maps with contractible fibers see
[`foundation.contractible-maps`](foundation.contractible-maps.md).
Expand Down
17 changes: 17 additions & 0 deletions src/foundation-core/sets.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,21 @@ abstract
{l1 l2 : Level} (A : UU l1) {B : UU l2} (e : A ≃ B) →
is-set A → is-set B
is-set-equiv' = is-trunc-equiv' zero-𝕋

abstract
is-set-equiv-is-set :
{l1 l2 : Level} {A : UU l1} {B : UU l2} →
is-set A → is-set B → is-set (A ≃ B)
is-set-equiv-is-set = is-trunc-equiv-is-trunc zero-𝕋

module _
{l1 l2 : Level} (A : Set l1) (B : Set l2)
where

type-equiv-Set : UU (l1 ⊔ l2)
type-equiv-Set = type-Set A ≃ type-Set B

equiv-Set : Set (l1 ⊔ l2)
pr1 equiv-Set = type-equiv-Set
pr2 equiv-Set = is-set-equiv-is-set (is-set-type-Set A) (is-set-type-Set B)
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
```
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ module _
```agda
tr-Id-left :
{l : Level} {A : UU l} {a b c : A} (q : b = c) (p : b = a) →
tr (_= a) q p = ((inv q) ∙ p)
tr (_= a) q p = (inv q ∙ p)
tr-Id-left refl p = refl
```

Expand Down
2 changes: 2 additions & 0 deletions src/foundation.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ open import foundation.precomposition-type-families public
open import foundation.preidempotent-maps public
open import foundation.preimages-of-subtypes public
open import foundation.preunivalence public
open import foundation.preunivalent-type-families public
open import foundation.principle-of-omniscience public
open import foundation.product-decompositions public
open import foundation.product-decompositions-subuniverse public
Expand Down Expand Up @@ -352,6 +353,7 @@ open import foundation.transport-along-equivalences public
open import foundation.transport-along-higher-identifications public
open import foundation.transport-along-homotopies public
open import foundation.transport-along-identifications public
open import foundation.transport-split-type-families public
open import foundation.transposition-span-diagrams public
open import foundation.trivial-relaxed-sigma-decompositions public
open import foundation.trivial-sigma-decompositions public
Expand Down
4 changes: 2 additions & 2 deletions src/foundation/contractible-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ module _

- For the notion of biinvertible maps see
[`foundation.equivalences`](foundation.equivalences.md).
- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of path-split maps see
[`foundation.path-split-maps`](foundation.path-split-maps.md).
6 changes: 3 additions & 3 deletions src/foundation/embeddings.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,9 +322,9 @@ module _

abstract
is-emb-section-ap :
((x y : A) → section (ap f {x = x} {y = y})) → is-emb f
is-emb-section-ap section-ap-f x y =
fundamental-theorem-id-section x (λ y → ap f {y = y}) (section-ap-f x) y
((x y : A) → section (ap f {x} {y})) → is-emb f
is-emb-section-ap section-ap-f x =
fundamental-theorem-id-section x (λ y → ap f) (section-ap-f x)
```

### If there is an equivalence `(f x = f y) ≃ (x = y)` that sends `refl` to `refl`, then f is an embedding
Expand Down
5 changes: 5 additions & 0 deletions src/foundation/equivalences-maybe.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,11 @@ equiv-equiv-Maybe :
{l1 l2 : Level} {X : UU l1} {Y : UU l2} → (Maybe X ≃ Maybe Y) → (X ≃ Y)
pr1 (equiv-equiv-Maybe e) = map-equiv-equiv-Maybe e
pr2 (equiv-equiv-Maybe e) = is-equiv-map-equiv-equiv-Maybe e

compute-equiv-equiv-Maybe-id-equiv :
{l1 : Level} {X : UU l1} →
equiv-equiv-Maybe id-equiv = id-equiv {A = X}
compute-equiv-equiv-Maybe-id-equiv = eq-htpy-equiv refl-htpy
```

### For any set `X`, the type of automorphisms on `X` is equivalent to the type of automorphisms on `Maybe X` that fix the exception
Expand Down
4 changes: 2 additions & 2 deletions src/foundation/equivalences.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -805,8 +805,8 @@ module _

## See also

- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of maps with contractible fibers see
[`foundation.contractible-maps`](foundation.contractible-maps.md).
Expand Down
48 changes: 30 additions & 18 deletions src/foundation/fundamental-theorem-of-identity-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ module foundation.fundamental-theorem-of-identity-types where

```agda
open import foundation.dependent-pair-types
open import foundation.retracts-of-types
open import foundation.universe-levels

open import foundation-core.contractible-types
open import foundation-core.equivalences
open import foundation-core.families-of-equivalences
open import foundation-core.function-types
open import foundation-core.functoriality-dependent-pair-types
open import foundation-core.homotopies
open import foundation-core.identity-types
Expand Down Expand Up @@ -87,7 +89,7 @@ module _

abstract
fundamental-theorem-id-J' :
(is-fiberwise-equiv (ind-Id a (λ x p → B x) b)) → is-torsorial B
is-fiberwise-equiv (ind-Id a (λ x p → B x) b) → is-torsorial B
fundamental-theorem-id-J' H =
is-contr-is-equiv'
( Σ A (Id a))
Expand All @@ -105,18 +107,29 @@ module _

abstract
fundamental-theorem-id-retraction :
(i : (x : A) → B x → a = x) → (R : (x : A) → retraction (i x)) →
(i : (x : A) → B x → a = x) →
((x : A) → retraction (i x)) →
is-fiberwise-equiv i
fundamental-theorem-id-retraction i R =
is-fiberwise-equiv-is-equiv-tot
( is-equiv-is-contr (tot i)
( is-contr-retract-of (Σ _ (λ y → a = y))
( pair (tot i)
( pair (tot λ x → pr1 (R x))
( ( inv-htpy (preserves-comp-tot i (λ x → pr1 (R x)))) ∙h
( ( tot-htpy λ x → pr2 (R x)) ∙h (tot-id B)))))
( is-contr-retract-of
( Σ _ (λ y → a = y))
( ( tot i) ,
( tot (λ x → pr1 (R x))) ,
( ( inv-htpy (preserves-comp-tot i (pr1 ∘ R))) ∙h
( tot-htpy (pr2 ∘ R)) ∙h
( tot-id B)))
( is-torsorial-path a))
( is-torsorial-path a))

fundamental-theorem-id-retract :
(R : (x : A) → (B x) retract-of (a = x)) →
is-fiberwise-equiv (inclusion-retract ∘ R)
fundamental-theorem-id-retract R =
fundamental-theorem-id-retraction
( inclusion-retract ∘ R)
( retraction-retract ∘ R)
```

### The fundamental theorem of identity types, using sections
Expand All @@ -128,19 +141,18 @@ module _

abstract
fundamental-theorem-id-section :
(f : (x : A) → a = x → B x) → ((x : A) → section (f x)) →
(f : (x : A) → a = x → B x) →
((x : A) → section (f x)) →
is-fiberwise-equiv f
fundamental-theorem-id-section f section-f x =
is-equiv-section-is-equiv (f x) (section-f x) (is-fiberwise-equiv-i x)
where
i : (x : A) → B x → a = x
i = λ x → pr1 (section-f x)
retraction-i : (x : A) → retraction (i x)
pr1 (retraction-i x) = f x
pr2 (retraction-i x) = pr2 (section-f x)
is-fiberwise-equiv-i : is-fiberwise-equiv i
is-fiberwise-equiv-i =
fundamental-theorem-id-retraction a i retraction-i
is-equiv-section-is-equiv
( f x)
( section-f x)
( fundamental-theorem-id-retraction
( a)
( λ x → map-section (f x) (section-f x))
( λ x → (f x , is-section-map-section (f x) (section-f x)))
( x))
```

## See also
Expand Down
9 changes: 5 additions & 4 deletions src/foundation/identity-systems.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ open import foundation.universe-levels
open import foundation-core.contractible-types
open import foundation-core.families-of-equivalences
open import foundation-core.identity-types
open import foundation-core.propositions
open import foundation-core.sections
open import foundation-core.torsorial-type-families
open import foundation-core.transport-along-identifications
Expand Down Expand Up @@ -59,11 +60,11 @@ module _

```agda
module _
{l1 l2 : Level} {A : UU l1} (B : A → UU l2) (a : A) (b : B a)
where
{l1 l2 : Level} {A : UU l1} (B : A → UU l2) (a : A) (b : B a)
where

is-identity-system : UUω
is-identity-system = {l : Level} → is-identity-system-Level l B a b
is-identity-system : UUω
is-identity-system = {l : Level} → is-identity-system-Level l B a b
```

## Properties
Expand Down
4 changes: 2 additions & 2 deletions src/foundation/path-split-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ module _

- For the notion of biinvertible maps see
[`foundation.equivalences`](foundation.equivalences.md).
- For the notions of inverses and coherently invertible maps, also known as
half-adjoint equivalences, see
- For the notion of coherently invertible maps, also known as half-adjoint
equivalences, see
[`foundation.coherently-invertible-maps`](foundation.coherently-invertible-maps.md).
- For the notion of maps with contractible fibers see
[`foundation.contractible-maps`](foundation.contractible-maps.md).
Expand Down
1 change: 1 addition & 0 deletions src/foundation/preunivalence.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,5 @@ preunivalence = preunivalence-axiom-univalence-axiom univalence
- Preunivalence is sufficient to prove that `Id : A → (A → 𝒰)` is an embedding.
This fact is proven in
[`foundation.universal-property-identity-types`](foundation.universal-property-identity-types.md)
- [Preunivalent type families](foundation.preunivalent-type-families.md)
- [Preunivalent categories](category-theory.preunivalent-categories.md)
Loading
Loading