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

Basic properties of orthogonal maps #979

Merged
merged 83 commits into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
0374ec6
misc. nitpickery
fredrik-bakke Dec 10, 2023
3bbdc5e
pasting properties up pullbacks
fredrik-bakke Dec 10, 2023
58cd1e6
Computing the pullback-hom of a composite
fredrik-bakke Dec 10, 2023
268a3ea
equivalent definitions of orthogonal maps
fredrik-bakke Dec 10, 2023
aab7f49
moving some things around `local-types`
fredrik-bakke Dec 10, 2023
d513fa8
rename `local-families` to `local-families-of-types`
fredrik-bakke Dec 10, 2023
41547aa
being null is a property
fredrik-bakke Dec 10, 2023
a10e0ce
composition and cancellation properties of orthogonal maps
fredrik-bakke Dec 10, 2023
ad87e3c
code edit
fredrik-bakke Dec 10, 2023
996c49d
a typo
fredrik-bakke Dec 16, 2023
d086089
another typo
fredrik-bakke Dec 16, 2023
f113617
Pullbacks are closed under different products
fredrik-bakke Dec 16, 2023
ae3dd85
The small pullback condition of being orthogonal maps
fredrik-bakke Dec 16, 2023
ffb6853
Merge branch 'master' into orthogonal-maps
fredrik-bakke Dec 16, 2023
da453ed
fix
fredrik-bakke Dec 16, 2023
3cb5b7f
use pullback condition
fredrik-bakke Dec 17, 2023
951e725
Local types are closed under equivalences
fredrik-bakke Dec 17, 2023
1e9c9b3
A type is `f`-local if it is null at every fiber of `f`
fredrik-bakke Dec 17, 2023
8af6a62
A type `B` is `f`-local if and only if the terminal map `B → unit` is…
fredrik-bakke Dec 17, 2023
e8aa8d8
computation lemmas fibers of maps of function types
fredrik-bakke Dec 17, 2023
4b5f832
rename `map-fiber-cone` to `map-fiber-vertical-cone`
fredrik-bakke Dec 17, 2023
4edd701
pre-commit
fredrik-bakke Dec 17, 2023
0f1a2a0
The dependent product of a family of maps that are right orthogonal t…
fredrik-bakke Dec 19, 2023
b8d350f
more tidying and diagrams for pullbacks
fredrik-bakke Dec 19, 2023
7a22536
superfluous variable
fredrik-bakke Dec 19, 2023
7105ce5
If `g` is right orthogonal to `f` then postcomposition by `g` is righ…
fredrik-bakke Dec 19, 2023
0212eb6
If `g` and `h` are right orthogonal to `f` then `map-prod g h` is rig…
fredrik-bakke Dec 19, 2023
223a106
Merge branch 'master' into orthogonal-maps
fredrik-bakke Dec 19, 2023
0ba89d4
rename `map-prod-comp` to `preserves-comp-map-prod`
fredrik-bakke Dec 19, 2023
b1d820a
define coproduct recursion
fredrik-bakke Dec 19, 2023
bd08b9c
`is-injective-inx` is the inverse to `ap inx`
fredrik-bakke Dec 19, 2023
6cd82d4
coproducts of pullbacks are pullbacks
fredrik-bakke Dec 19, 2023
c33dda9
Left orthogonality is preserved by coproducts
fredrik-bakke Dec 19, 2023
258a85e
correct direction of proof `is-orthogonal-pullback-condition-right-prod`
fredrik-bakke Dec 19, 2023
7664794
Merge branch 'master' into orthogonal-maps
fredrik-bakke Dec 19, 2023
81f2273
`id-cone`
fredrik-bakke Dec 20, 2023
ba4225a
some renamings pullback lemmas
fredrik-bakke Dec 20, 2023
8866588
some prose
fredrik-bakke Dec 20, 2023
9b3c278
some more renamings pullback lemmas
fredrik-bakke Dec 20, 2023
e946703
some more renamings pullback lemmas
fredrik-bakke Dec 20, 2023
a76ea79
Left orthogonality is preserved by dependent sums
fredrik-bakke Dec 20, 2023
4c015f9
another written proof
fredrik-bakke Dec 20, 2023
8e06c57
fix some text
fredrik-bakke Dec 20, 2023
014c639
use `htpy-precomp` and `htpy-postcomp` where applicable
fredrik-bakke Dec 21, 2023
02f2355
Commutativity between whiskering with `precomp` and `postcomp` homoto…
fredrik-bakke Dec 21, 2023
ca2c01f
Orthogonality is preserved by homotopies
fredrik-bakke Dec 21, 2023
bb2e1a2
Equivalences are orthogonal to every map
fredrik-bakke Dec 21, 2023
2fdafba
Local dependent types are closed under equivalences
fredrik-bakke Dec 21, 2023
827be86
Locality is preserved by homotopies
fredrik-bakke Dec 21, 2023
a924a0d
reference _Synthetic fibered (∞, 1)-category
fredrik-bakke Dec 24, 2023
5d0787e
Cartesian morphisms of arrows
fredrik-bakke Dec 24, 2023
bdfa312
more infrastructure (co)cartesian morphisms of arrows
fredrik-bakke Dec 25, 2023
7ac9294
Merge branch 'master' into orthogonal-maps
fredrik-bakke Dec 25, 2023
27058bf
pre-commit
fredrik-bakke Dec 25, 2023
e6b3537
move definitions to avoid cyclic dependencies
fredrik-bakke Dec 25, 2023
043109b
If the domain and codomain of `g` are `f`-local, then `g` is right or…
fredrik-bakke Dec 25, 2023
2a37cc8
Right orthogonality is preserved under base change
fredrik-bakke Dec 26, 2023
267de44
equivalences of arrows
fredrik-bakke Dec 26, 2023
e2c149c
A type is `f`-local if and only if the terminal map is `f`-orthogonal
fredrik-bakke Dec 26, 2023
2d0aa8b
A map is `f`-local if it is `f`-orthogonal
fredrik-bakke Dec 26, 2023
d63167a
If the codomain of `g` is `f`-local, then `g` is `f`-orthogonal if an…
fredrik-bakke Dec 29, 2023
dbbc12b
Update src/foundation/equivalences-arrows.lagda.md
fredrik-bakke Dec 29, 2023
3f65242
a little self-review
fredrik-bakke Jan 2, 2024
f1df046
Merge branch 'master' into orthogonal-maps
fredrik-bakke Jan 14, 2024
cb643df
merge conflicts
fredrik-bakke Jan 14, 2024
e36df04
remove imports
fredrik-bakke Jan 14, 2024
65a7317
use `is-section/retraction`
fredrik-bakke Jan 14, 2024
ed8e032
fix link and a comment
fredrik-bakke Jan 14, 2024
02c35cd
Merge branch 'master' into orthogonal-maps
fredrik-bakke Jan 16, 2024
4c7130c
Merge branch 'master' into orthogonal-maps
fredrik-bakke Jan 20, 2024
d550cf1
review `foundation-core.pullbacks`
fredrik-bakke Jan 20, 2024
a36f737
Merge branch 'master' into orthogonal-maps
fredrik-bakke Jan 23, 2024
abcbeb2
Update src/foundation-core/function-types.lagda.md
fredrik-bakke Jan 23, 2024
ce3e3a8
review `perfect-images`
fredrik-bakke Jan 23, 2024
68e12c1
review pullbacks
fredrik-bakke Jan 23, 2024
69adf88
Update src/foundation/precomposition-functions.lagda.md
fredrik-bakke Jan 23, 2024
68f4b81
Update src/orthogonal-factorization-systems/local-maps.lagda.md
fredrik-bakke Jan 23, 2024
1f80238
Pullbacks are closed under exponentiation
fredrik-bakke Jan 23, 2024
9069d0f
short informal note - Computations of the fibers of `postcomp`
fredrik-bakke Jan 23, 2024
5853ca7
standard gap
fredrik-bakke Jan 23, 2024
b6c47a6
less parentheses
fredrik-bakke Jan 23, 2024
1bde1b0
further fixes `perfect-images`
fredrik-bakke Jan 23, 2024
bdbedad
`vertical-map-cone`
fredrik-bakke Jan 25, 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
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,8 @@ module _
where

is-essentially-surjective-is-split-essentially-surjective-functor-Precategory :
(F : functor-Precategory C D)
(is-split-ess-surj-F :
is-split-essentially-surjective-functor-Precategory C D F) →
(F : functor-Precategory C D) →
is-split-essentially-surjective-functor-Precategory C D F →
is-essentially-surjective-functor-Precategory C D F
is-essentially-surjective-is-split-essentially-surjective-functor-Precategory
F is-split-ess-surj-F =
Expand All @@ -179,7 +178,7 @@ Rezk completion_.
([arXiv:1303.0584](https://arxiv.org/abs/1303.0584),
[DOI:10.1017/S0960129514000486](https://doi.org/10.1017/S0960129514000486))

## External link
## External links

- [Essential Fibres](https://1lab.dev/Cat.Functor.Properties.html#essential-fibres)
at 1lab
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -748,8 +748,7 @@ is-in-prime-decomposition-is-nontrivial-prime-divisor-ℕ x H nil D y d p =
( 1)
( inv (is-decomposition-list-is-prime-decomposition-list-ℕ x nil D))))
is-in-prime-decomposition-is-nontrivial-prime-divisor-ℕ x H (cons z l) D y d p =
ind-coprod
( λ _ → y ∈-list (cons z l))
rec-coprod
( λ e → tr (λ w → w ∈-list (cons z l)) (inv e) (is-head z l))
( λ e →
is-in-tail
Expand Down Expand Up @@ -947,7 +946,7 @@ pr2 (fundamental-theorem-arithmetic-list-ℕ x H) d =
```agda
is-prime-list-concat-list-ℕ :
(p q : list ℕ) → is-prime-list-ℕ p → is-prime-list-ℕ q →
is-prime-list-ℕ (concat-list p q)
is-prime-list-ℕ (concat-list p q)
is-prime-list-concat-list-ℕ nil q Pp Pq = Pq
is-prime-list-concat-list-ℕ (cons x p) q Pp Pq =
pr1 Pp , is-prime-list-concat-list-ℕ p q (pr2 Pp) Pq
Expand Down
15 changes: 15 additions & 0 deletions src/foundation-core/coproduct-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,33 @@ of `A` and `B`.

## Definition

### Coproduct types

```agda
infixr 10 _+_

data _+_ {l1 l2 : Level} (A : UU l1) (B : UU l2) : UU (l1 ⊔ l2)
where
inl : A → A + B
inr : B → A + B
```

### The induction principle for coproduct types

```agda
ind-coprod :
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (C : A + B → UU l3) →
((x : A) → C (inl x)) → ((y : B) → C (inr y)) →
(t : A + B) → C t
ind-coprod C f g (inl x) = f x
ind-coprod C f g (inr x) = g x
```

### The recursion principle for coproduct types

```agda
rec-coprod :
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} →
(A → C) → (B → C) → (A + B) → C
rec-coprod {C = C} = ind-coprod (λ _ → C)
```
52 changes: 30 additions & 22 deletions src/foundation-core/fibers-of-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ open import foundation-core.equivalences
open import foundation-core.function-types
open import foundation-core.homotopies
open import foundation-core.identity-types
open import foundation-core.retractions
open import foundation-core.sections
open import foundation-core.transport-along-identifications
```

Expand Down Expand Up @@ -79,11 +81,13 @@ module _
eq-Eq-fiber α β = eq-Eq-fiber-uncurry (α , β)

is-section-eq-Eq-fiber :
{s t : fiber f b} → Eq-eq-fiber {s} {t} ∘ eq-Eq-fiber-uncurry {s} {t} ~ id
{s t : fiber f b} →
is-section (Eq-eq-fiber {s} {t}) (eq-Eq-fiber-uncurry {s} {t})
is-section-eq-Eq-fiber (refl , refl) = refl

is-retraction-eq-Eq-fiber :
{s t : fiber f b} → eq-Eq-fiber-uncurry {s} {t} ∘ Eq-eq-fiber {s} {t} ~ id
{s t : fiber f b} →
is-retraction (Eq-eq-fiber {s} {t}) (eq-Eq-fiber-uncurry {s} {t})
is-retraction-eq-Eq-fiber refl = refl

abstract
Expand Down Expand Up @@ -144,12 +148,12 @@ module _

is-section-eq-Eq-fiber' :
{s t : fiber' f b} →
Eq-eq-fiber' {s} {t}eq-Eq-fiber-uncurry' {s} {t} ~ id
is-section (Eq-eq-fiber' {s} {t}) (eq-Eq-fiber-uncurry' {s} {t})
is-section-eq-Eq-fiber' {x , refl} (refl , refl) = refl

is-retraction-eq-Eq-fiber' :
{s t : fiber' f b} →
eq-Eq-fiber-uncurry' {s} {t} ∘ Eq-eq-fiber' {s} {t} ~ id
is-retraction (Eq-eq-fiber' {s} {t}) (eq-Eq-fiber-uncurry' {s} {t})
is-retraction-eq-Eq-fiber' {x , refl} refl = refl

abstract
Expand Down Expand Up @@ -187,17 +191,19 @@ module _
where

map-equiv-fiber : fiber f y → fiber' f y
pr1 (map-equiv-fiber (x , refl)) = x
pr2 (map-equiv-fiber (x , refl)) = refl
pr1 (map-equiv-fiber (x , _)) = x
pr2 (map-equiv-fiber (x , p)) = inv p

map-inv-equiv-fiber : fiber' f y → fiber f y
pr1 (map-inv-equiv-fiber (x , refl)) = x
pr2 (map-inv-equiv-fiber (x , refl)) = refl
pr1 (map-inv-equiv-fiber (x , _)) = x
pr2 (map-inv-equiv-fiber (x , p)) = inv p

is-section-map-inv-equiv-fiber : map-equiv-fiber ∘ map-inv-equiv-fiber ~ id
is-section-map-inv-equiv-fiber :
is-section map-equiv-fiber map-inv-equiv-fiber
is-section-map-inv-equiv-fiber (x , refl) = refl

is-retraction-map-inv-equiv-fiber : map-inv-equiv-fiber ∘ map-equiv-fiber ~ id
is-retraction-map-inv-equiv-fiber :
is-retraction map-equiv-fiber map-inv-equiv-fiber
is-retraction-map-inv-equiv-fiber (x , refl) = refl

is-equiv-map-equiv-fiber : is-equiv map-equiv-fiber
Expand Down Expand Up @@ -227,19 +233,21 @@ module _
pr2 (pr1 (map-inv-fiber-pr1 b)) = b
pr2 (map-inv-fiber-pr1 b) = refl

is-section-map-inv-fiber-pr1 : (map-inv-fiber-pr1 ∘ map-fiber-pr1) ~ id
is-section-map-inv-fiber-pr1 ((.a , y) , refl) = refl
is-section-map-inv-fiber-pr1 :
is-section map-fiber-pr1 map-inv-fiber-pr1
is-section-map-inv-fiber-pr1 b = refl

is-retraction-map-inv-fiber-pr1 : (map-fiber-pr1 ∘ map-inv-fiber-pr1) ~ id
is-retraction-map-inv-fiber-pr1 b = refl
is-retraction-map-inv-fiber-pr1 :
is-retraction map-fiber-pr1 map-inv-fiber-pr1
is-retraction-map-inv-fiber-pr1 ((.a , y) , refl) = refl

abstract
is-equiv-map-fiber-pr1 : is-equiv map-fiber-pr1
is-equiv-map-fiber-pr1 =
is-equiv-is-invertible
map-inv-fiber-pr1
is-retraction-map-inv-fiber-pr1
is-section-map-inv-fiber-pr1
is-retraction-map-inv-fiber-pr1

equiv-fiber-pr1 : fiber (pr1 {B = B}) a ≃ B a
pr1 equiv-fiber-pr1 = map-fiber-pr1
Expand All @@ -250,8 +258,8 @@ module _
is-equiv-map-inv-fiber-pr1 =
is-equiv-is-invertible
map-fiber-pr1
is-section-map-inv-fiber-pr1
is-retraction-map-inv-fiber-pr1
is-section-map-inv-fiber-pr1

inv-equiv-fiber-pr1 : B a ≃ fiber (pr1 {B = B}) a
pr1 inv-equiv-fiber-pr1 = map-inv-fiber-pr1
Expand All @@ -265,10 +273,10 @@ module _
{l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
where

map-equiv-total-fiber : (Σ B (fiber f)) → A
map-equiv-total-fiber : Σ B (fiber f) → A
map-equiv-total-fiber t = pr1 (pr2 t)

triangle-map-equiv-total-fiber : pr1 ~ (f ∘ map-equiv-total-fiber)
triangle-map-equiv-total-fiber : pr1 ~ f ∘ map-equiv-total-fiber
triangle-map-equiv-total-fiber t = inv (pr2 (pr2 t))

map-inv-equiv-total-fiber : A → Σ B (fiber f)
Expand All @@ -277,11 +285,11 @@ module _
pr2 (pr2 (map-inv-equiv-total-fiber x)) = refl

is-retraction-map-inv-equiv-total-fiber :
(map-inv-equiv-total-fiber map-equiv-total-fiber) ~ id
is-retraction map-equiv-total-fiber map-inv-equiv-total-fiber
is-retraction-map-inv-equiv-total-fiber (.(f x) , x , refl) = refl

is-section-map-inv-equiv-total-fiber :
(map-equiv-total-fiber map-inv-equiv-total-fiber) ~ id
is-section map-equiv-total-fiber map-inv-equiv-total-fiber
is-section-map-inv-equiv-total-fiber x = refl

abstract
Expand Down Expand Up @@ -329,11 +337,11 @@ module _
pr2 (inv-map-compute-fiber-comp t) = ap g (pr2 (pr2 t)) ∙ pr2 (pr1 t)

is-section-inv-map-compute-fiber-comp :
(map-compute-fiber-comp inv-map-compute-fiber-comp) ~ id
is-section map-compute-fiber-comp inv-map-compute-fiber-comp
is-section-inv-map-compute-fiber-comp ((.(h a) , refl) , (a , refl)) = refl

is-retraction-inv-map-compute-fiber-comp :
(inv-map-compute-fiber-comp map-compute-fiber-comp) ~ id
is-retraction map-compute-fiber-comp inv-map-compute-fiber-comp
is-retraction-inv-map-compute-fiber-comp (a , refl) = refl

abstract
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@ compute-fiber-map-Π :
{l1 l2 l3 : Level} {I : UU l1} {A : I → UU l2} {B : I → UU l3}
(f : (i : I) → A i → B i) (h : (i : I) → B i) →
((i : I) → fiber (f i) (h i)) ≃ fiber (map-Π f) h
compute-fiber-map-Π f h =
equiv-tot (λ _ → equiv-eq-htpy) ∘e distributive-Π-Σ
compute-fiber-map-Π f h = equiv-tot (λ _ → equiv-eq-htpy) ∘e distributive-Π-Σ

compute-fiber-map-Π' :
{l1 l2 l3 l4 : Level} {I : UU l1} {A : I → UU l2} {B : I → UU l3}
Expand Down Expand Up @@ -109,7 +108,7 @@ module _
compute-inv-equiv-Π-equiv-family :
(e : (x : A) → B x ≃ C x) →
( map-inv-equiv (equiv-Π-equiv-family e)) ~
( map-equiv (equiv-Π-equiv-family λ x → (inv-equiv (e x))))
( map-equiv (equiv-Π-equiv-family (λ x → inv-equiv (e x))))
compute-inv-equiv-Π-equiv-family e f =
is-injective-map-equiv
( equiv-Π-equiv-family e)
Expand Down
Loading
Loading