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

Universal property of fibers #944

Merged
merged 40 commits into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
74e9d15
create universal property file
morphismz Nov 20, 2023
9f6ad0e
uniqueness
morphismz Nov 20, 2023
d019c97
Merge branch 'master' into universal-property-of-fibers
morphismz Nov 20, 2023
9ede5cb
uniqueness lemmas
morphismz Nov 20, 2023
4a8335a
finish universal property
morphismz Nov 21, 2023
f868ca2
Merge branch 'master' into universal-property-of-fibers
morphismz Nov 21, 2023
5ce8f57
Merge branch 'master' into universal-property-of-fibers
morphismz Nov 21, 2023
9f28219
merge conflics
morphismz Nov 25, 2023
97fcfbc
clean up
morphismz Nov 25, 2023
ecbf4be
imports
morphismz Nov 25, 2023
0a49f67
cleanup
morphismz Nov 25, 2023
669aeb2
pre-commit
morphismz Nov 25, 2023
a63321f
typo
morphismz Nov 25, 2023
4ce8502
typos
morphismz Nov 25, 2023
c9b1979
Apply suggestions from code review
morphismz Nov 28, 2023
13c201a
merge fixes
morphismz Nov 28, 2023
62901e0
dependent universal property of fibers
morphismz Nov 28, 2023
eb52420
fibers have the dependent universal property
morphismz Nov 29, 2023
854e29c
table
morphismz Nov 29, 2023
018f185
pre-commit
morphismz Nov 29, 2023
1eb88eb
Merge branch 'master' into universal-property-of-fibers
morphismz Nov 30, 2023
7ce23d5
minimize imports
morphismz Nov 30, 2023
e9a570d
imports
morphismz Nov 30, 2023
1902b69
Merge branch 'universal-property-of-fibers' of github.com:morphismz/a…
EgbertRijke Nov 30, 2023
bcefaa1
working through the universal property of fibers of maps
EgbertRijke Nov 30, 2023
512cd6a
work
EgbertRijke Dec 1, 2023
40fe613
Merge branch 'master' of github.com:UniMath/agda-unimath into univers…
EgbertRijke Dec 2, 2023
beb2c0f
everything compiles
EgbertRijke Dec 3, 2023
133fd8a
fix broken links, add entry to table
EgbertRijke Dec 3, 2023
bbce9e0
lifts and extensions of families of elements
EgbertRijke Dec 3, 2023
b1b9817
complete refactoring of Raymond's PR
EgbertRijke Dec 4, 2023
3340bda
refactoring double lifts and extensions of double lifts
EgbertRijke Dec 4, 2023
c65f4d7
complete refactoring
EgbertRijke Dec 4, 2023
ed218ff
typo
EgbertRijke Dec 4, 2023
a807504
Merge branch 'EgbertRijke-universal-property-fibers' into universal-p…
morphismz Dec 4, 2023
90bf5f6
Merge branch 'master' into universal-property-of-fibers
morphismz Dec 4, 2023
521f65b
typos
morphismz Dec 4, 2023
070f277
Merge branch 'master' into universal-property-of-fibers
morphismz Dec 5, 2023
68cd62c
Update tables/fibers-of-maps.md
morphismz Dec 5, 2023
fefd593
pre-commit
morphismz Dec 5, 2023
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
1 change: 1 addition & 0 deletions src/foundation-core.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ open import foundation-core.endomorphisms public
open import foundation-core.equality-dependent-pair-types public
open import foundation-core.equivalence-relations public
open import foundation-core.equivalences public
open import foundation-core.families-of-equivalences public
open import foundation-core.fibers-of-maps public
open import foundation-core.function-types public
open import foundation-core.functoriality-dependent-function-types public
Expand Down
103 changes: 103 additions & 0 deletions src/foundation-core/families-of-equivalences.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Families of equivalences

```agda
module foundation-core.families-of-equivalences where
```

<details><summary>Imports</summary>

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

open import foundation-core.equivalences
open import foundation-core.type-theoretic-principle-of-choice
```

</details>

## Idea

A **family of equivalences** is a family

```text
eᵢ : A i ≃ B i
morphismz marked this conversation as resolved.
Show resolved Hide resolved
```

of [equivalences](foundation-core.equivalences.md). Families of equivalences are
also called **fiberwise equivalences**.

## Definitions

### The predicate of being a fiberwise equivalence

```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} {C : A → UU l3}
where

is-fiberwise-equiv : (f : (x : A) → B x → C x) → UU (l1 ⊔ l2 ⊔ l3)
is-fiberwise-equiv f = (x : A) → is-equiv (f x)
```

### Fiberwise equivalences

```agda
module _
{l1 l2 l3 : Level} {A : UU l1}
where

fiberwise-equiv : (B : A → UU l2) (C : A → UU l3) → UU (l1 ⊔ l2 ⊔ l3)
fiberwise-equiv B C = Σ ((x : A) → B x → C x) is-fiberwise-equiv

map-fiberwise-equiv :
{B : A → UU l2} {C : A → UU l3} →
fiberwise-equiv B C → (a : A) → B a → C a
map-fiberwise-equiv = pr1

is-fiberwise-equiv-fiberwise-equiv :
{B : A → UU l2} {C : A → UU l3} →
(e : fiberwise-equiv B C) →
is-fiberwise-equiv (map-fiberwise-equiv e)
is-fiberwise-equiv-fiberwise-equiv = pr2
```

### Families of equivalences

```agda
module _
{l1 l2 l3 : Level} {A : UU l1}
where

fam-equiv : (B : A → UU l2) (C : A → UU l3) → UU (l1 ⊔ l2 ⊔ l3)
fam-equiv B C = (x : A) → B x ≃ C x

module _
{l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} {C : A → UU l3}
(e : fam-equiv B C)
where

map-fam-equiv : (x : A) → B x → C x
map-fam-equiv x = map-equiv (e x)

is-equiv-map-fam-equiv : is-fiberwise-equiv map-fam-equiv
is-equiv-map-fam-equiv x = is-equiv-map-equiv (e x)
```

## Properties

### Families of equivalences are equivalent to fiberwise equivalences

```agda
equiv-fiberwise-equiv-fam-equiv :
{l1 l2 l3 : Level} {A : UU l1} (B : A → UU l2) (C : A → UU l3) →
fam-equiv B C ≃ fiberwise-equiv B C
equiv-fiberwise-equiv-fam-equiv B C = distributive-Π-Σ
```

## See also

- In
[Functoriality of dependent pair types](foundation-core.functoriality-dependent-pair-types.md)
we show that a family of maps is a fiberwise equivalence if and only if it
induces an equivalence on [total spaces](foundation.dependent-pair-types.md).
48 changes: 0 additions & 48 deletions src/foundation-core/fibers-of-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,54 +366,6 @@ module _
pr2 inv-compute-fiber-comp = is-equiv-inv-map-compute-fiber-comp
```

### When a product is taken over all fibers of a map, then we can equivalently take the product over the domain of that map

```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (f : A → B)
(C : (y : B) (z : fiber f y) → UU l3)
where

map-reduce-Π-fiber :
((y : B) (z : fiber f y) → C y z) → ((x : A) → C (f x) (x , refl))
map-reduce-Π-fiber h x = h (f x) (x , refl)

inv-map-reduce-Π-fiber :
((x : A) → C (f x) (x , refl)) → ((y : B) (z : fiber f y) → C y z)
inv-map-reduce-Π-fiber h .(f x) (x , refl) = h x

is-section-inv-map-reduce-Π-fiber :
(map-reduce-Π-fiber ∘ inv-map-reduce-Π-fiber) ~ id
is-section-inv-map-reduce-Π-fiber h = refl

is-retraction-inv-map-reduce-Π-fiber' :
(h : (y : B) (z : fiber f y) → C y z) (y : B) →
(inv-map-reduce-Π-fiber (map-reduce-Π-fiber h) y) ~ (h y)
is-retraction-inv-map-reduce-Π-fiber' h .(f z) (z , refl) = refl

is-retraction-inv-map-reduce-Π-fiber :
(inv-map-reduce-Π-fiber ∘ map-reduce-Π-fiber) ~ id
is-retraction-inv-map-reduce-Π-fiber h =
eq-htpy (eq-htpy ∘ is-retraction-inv-map-reduce-Π-fiber' h)

is-equiv-map-reduce-Π-fiber : is-equiv map-reduce-Π-fiber
is-equiv-map-reduce-Π-fiber =
is-equiv-is-invertible
( inv-map-reduce-Π-fiber)
( is-section-inv-map-reduce-Π-fiber)
( is-retraction-inv-map-reduce-Π-fiber)

reduce-Π-fiber' :
((y : B) (z : fiber f y) → C y z) ≃ ((x : A) → C (f x) (x , refl))
pr1 reduce-Π-fiber' = map-reduce-Π-fiber
pr2 reduce-Π-fiber' = is-equiv-map-reduce-Π-fiber

reduce-Π-fiber :
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (f : A → B) →
(C : B → UU l3) → ((y : B) → fiber f y → C y) ≃ ((x : A) → C (f x))
reduce-Π-fiber f C = reduce-Π-fiber' f (λ y z → C y)
```

## Table of files about fibers of maps

The following table lists files that are about fibers of maps as a general
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ module foundation-core.functoriality-dependent-function-types where

```agda
open import foundation.dependent-pair-types
open import foundation.families-of-equivalences
open import foundation.function-extensionality
open import foundation.implicit-function-types
open import foundation.universe-levels

open import foundation-core.contractible-maps
open import foundation-core.contractible-types
open import foundation-core.equivalences
open import foundation-core.families-of-equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.functoriality-dependent-pair-types
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ module foundation-core.functoriality-dependent-pair-types where

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

open import foundation-core.contractible-maps
open import foundation-core.contractible-types
open import foundation-core.equality-dependent-pair-types
open import foundation-core.equivalences
open import foundation-core.families-of-equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.homotopies
Expand Down
2 changes: 1 addition & 1 deletion src/foundation-core/pullbacks.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ open import foundation.action-on-identifications-functions
open import foundation.cones-over-cospans
open import foundation.dependent-pair-types
open import foundation.equality-cartesian-product-types
open import foundation.families-of-equivalences
open import foundation.functoriality-cartesian-product-types
open import foundation.functoriality-fibers-of-maps
open import foundation.identity-types
Expand All @@ -23,6 +22,7 @@ open import foundation-core.cartesian-product-types
open import foundation-core.diagonal-maps-of-types
open import foundation-core.equality-dependent-pair-types
open import foundation-core.equivalences
open import foundation-core.families-of-equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.functoriality-dependent-pair-types
Expand Down
2 changes: 2 additions & 0 deletions src/foundation.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ open import foundation.powersets public
open import foundation.precomposition-dependent-functions public
open import foundation.precomposition-functions public
open import foundation.precomposition-functions-into-subuniverses public
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
Expand Down Expand Up @@ -349,6 +350,7 @@ open import foundation.universal-property-coproduct-types public
open import foundation.universal-property-dependent-pair-types public
open import foundation.universal-property-empty-type public
open import foundation.universal-property-equivalences public
open import foundation.universal-property-family-of-fibers-of-maps public
open import foundation.universal-property-fiber-products public
open import foundation.universal-property-identity-systems public
open import foundation.universal-property-identity-types public
Expand Down
3 changes: 2 additions & 1 deletion src/foundation/connected-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ open import foundation.truncation-levels
open import foundation.truncations
open import foundation.type-theoretic-principle-of-choice
open import foundation.univalence
open import foundation.universal-property-family-of-fibers-of-maps
open import foundation.universe-levels

open import foundation-core.contractible-maps
Expand Down Expand Up @@ -392,7 +393,7 @@ module _
( λ b →
function-dependent-universal-property-trunc
( Id-Truncated-Type' (trunc k (fiber f b)) _))
( inv-map-reduce-Π-fiber f
( extend-lift-family-of-elements-fiber f
( λ b u → _ = unit-trunc u)
( compute-center-is-connected-map-dependent-universal-property-connected-map))

Expand Down
2 changes: 1 addition & 1 deletion src/foundation/equality-fibers-of-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ module foundation.equality-fibers-of-maps where
```agda
open import foundation.action-on-identifications-functions
open import foundation.dependent-pair-types
open import foundation.families-of-equivalences
open import foundation.identity-types
open import foundation.transport-along-identifications
open import foundation.universe-levels

open import foundation-core.equality-dependent-pair-types
open import foundation-core.equivalences
open import foundation-core.families-of-equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.functoriality-dependent-pair-types
Expand Down
1 change: 1 addition & 0 deletions src/foundation/equivalences.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ open import foundation-core.commuting-triangles-of-maps
open import foundation-core.contractible-maps
open import foundation-core.contractible-types
open import foundation-core.embeddings
open import foundation-core.families-of-equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.functoriality-dependent-pair-types
Expand Down
61 changes: 10 additions & 51 deletions src/foundation/families-of-equivalences.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@

```agda
module foundation.families-of-equivalences where

open import foundation-core.families-of-equivalences public
```

<details><summary>Imports</summary>

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

open import foundation-core.equivalences
open import foundation-core.type-theoretic-principle-of-choice
open import foundation-core.propositions
```

</details>
Expand All @@ -27,61 +28,19 @@ A **family of equivalences** is a family
of [equivalences](foundation-core.equivalences.md). Families of equivalences are
also called **fiberwise equivalences**.

## Definitions

### The predicate of being a fiberwise equivalence

```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} {C : A → UU l3}
where

is-fiberwise-equiv : (f : (x : A) → B x → C x) → UU (l1 ⊔ l2 ⊔ l3)
is-fiberwise-equiv f = (x : A) → is-equiv (f x)
```

### Fiberwise equivalences

```agda
module _
{l1 l2 l3 : Level} {A : UU l1}
where

fiberwise-equiv : (B : A → UU l2) (C : A → UU l3) → UU (l1 ⊔ l2 ⊔ l3)
fiberwise-equiv B C = Σ ((x : A) → B x → C x) is-fiberwise-equiv
```
## Properties

### Families of equivalences
### Being a fiberwise equivalence is a proposition

```agda
module _
{l1 l2 l3 : Level} {A : UU l1}
where

fam-equiv : (B : A → UU l2) (C : A → UU l3) → UU (l1 ⊔ l2 ⊔ l3)
fam-equiv B C = (x : A) → B x ≃ C x

module _
{l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} {C : A → UU l3}
(e : fam-equiv B C)
where

map-fam-equiv : (x : A) → B x → C x
map-fam-equiv x = map-equiv (e x)

is-equiv-map-fam-equiv : is-fiberwise-equiv map-fam-equiv
is-equiv-map-fam-equiv x = is-equiv-map-equiv (e x)
```

## Properties

### Families of equivalences are equivalent to fiberwise equivalences

```agda
equiv-fiberwise-equiv-fam-equiv :
{l1 l2 l3 : Level} {A : UU l1} (B : A → UU l2) (C : A → UU l3) →
fam-equiv B C ≃ fiberwise-equiv B C
equiv-fiberwise-equiv-fam-equiv B C = distributive-Π-Σ
is-property-is-fiberwise-equiv :
(f : (a : A) → B a → C a) → is-prop (is-fiberwise-equiv f)
is-property-is-fiberwise-equiv f =
is-prop-Π (λ a → is-property-is-equiv (f a))
```

## See also
Expand Down
13 changes: 13 additions & 0 deletions src/foundation/function-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,19 @@ module _
( eq-htpy-refl-htpy (h (i s))))
```

### Composing families of functions

```agda
module _
{l1 l2 l3 l4 : Level} {A : UU l1} {B : A → UU l2} {C : A → UU l3}
{D : A → UU l4}
where

dependent-comp :
((a : A) → C a → D a) → ((a : A) → B a → C a) → (a : A) → B a → D a
dependent-comp g f a b = g a (f a b)
```

morphismz marked this conversation as resolved.
Show resolved Hide resolved
## See also

### Table of files about function types, composition, and equivalences
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ module foundation.fundamental-theorem-of-identity-types where

```agda
open import foundation.dependent-pair-types
open import foundation.families-of-equivalences
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.functoriality-dependent-pair-types
open import foundation-core.homotopies
open import foundation-core.identity-types
Expand Down
Loading