Skip to content

Commit 9a064be

Browse files
Merge branch 'master' into csbe
2 parents a1042ae + 41b9165 commit 9a064be

21 files changed

+610
-222
lines changed

.github/workflows/ci.yaml

+13-13
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ jobs:
3434
agda: ['2.7.0']
3535
steps:
3636
- name: Checkout our repository
37-
uses: actions/checkout@v3
37+
uses: actions/checkout@v4
3838
with:
3939
path: master
4040
- name: Setup Agda
4141
uses: wenkokke/[email protected]
4242
with:
4343
agda-version: ${{ matrix.agda }}
4444

45-
- uses: actions/cache/restore@v3
45+
- uses: actions/cache/restore@v4
4646
id: cache-agda-formalization
4747
name: Restore Agda formalization cache
4848
with:
@@ -61,13 +61,13 @@ jobs:
6161
make check
6262
6363
- name: Save Agda build cache
64-
uses: actions/cache/save@v3
64+
uses: actions/cache/save@v4
6565
with:
6666
path: master/_build
6767
key: '${{ steps.cache-agda-formalization.outputs.cache-primary-key }}'
6868

6969
# Install Python and friends for website generation only where needed
70-
- uses: actions/setup-python@v4
70+
- uses: actions/setup-python@v5
7171
if: ${{ matrix.os == 'ubuntu-latest' }}
7272
with:
7373
python-version: '3.8'
@@ -92,7 +92,7 @@ jobs:
9292
# keep the same key for a branch and update it on pushes.
9393
- name: Save pre-website cache
9494
if: ${{ matrix.os == 'ubuntu-latest' }}
95-
uses: actions/cache/save@v3
95+
uses: actions/cache/save@v4
9696
with:
9797
key: pre-website-${{ github.run_id }}
9898
path: master/docs
@@ -106,29 +106,29 @@ jobs:
106106
actions: write
107107
runs-on: ubuntu-latest
108108
steps:
109-
- uses: actions/checkout@v3
109+
- uses: actions/checkout@v4
110110
with:
111111
path: master
112112

113-
- uses: peaceiris/actions-mdbook@v1
113+
- uses: peaceiris/actions-mdbook@v2
114114
with:
115115
mdbook-version: '0.4.34'
116116

117-
- uses: baptiste0928/cargo-install@v2
117+
- uses: baptiste0928/cargo-install@v3
118118
with:
119119
crate: mdbook-linkcheck
120120
version: '0.7.7'
121121

122122
# Install Python and friends for website generation only where needed
123-
- uses: actions/setup-python@v4
123+
- uses: actions/setup-python@v5
124124
with:
125125
python-version: '3.8'
126126
check-latest: true
127127
cache: 'pip'
128128

129129
- run: python3 -m pip install -r master/scripts/requirements.txt
130130

131-
- uses: actions/cache/restore@v3
131+
- uses: actions/cache/restore@v4
132132
with:
133133
key: pre-website-${{ github.run_id }}
134134
path: master/docs
@@ -162,14 +162,14 @@ jobs:
162162
pre-commit:
163163
runs-on: ubuntu-latest
164164
steps:
165-
- uses: actions/checkout@v3
165+
- uses: actions/checkout@v4
166166

167-
- uses: actions/setup-python@v4
167+
- uses: actions/setup-python@v5
168168
with:
169169
python-version: '3.8'
170170
check-latest: true
171171
cache: 'pip'
172172

173173
- run: python3 -m pip install -r scripts/requirements.txt
174174

175-
- uses: pre-commit/[email protected].0
175+
- uses: pre-commit/[email protected].1

.github/workflows/clean-up.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- name: Check out code
12-
uses: actions/checkout@v3
12+
uses: actions/checkout@v4
1313

1414
- name: Cleanup
1515
run: |

.github/workflows/pages.yaml

+11-11
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
id-token: write # to verify the deployment originates from an appropriate source
3333
steps:
3434
- name: Checkout our repository
35-
uses: actions/checkout@v3
35+
uses: actions/checkout@v4
3636
with:
3737
path: master
3838
# We need the entire history for contributor information
@@ -43,7 +43,7 @@ jobs:
4343
with:
4444
agda-version: ${{ matrix.agda }}
4545

46-
- uses: actions/cache/restore@v3
46+
- uses: actions/cache/restore@v4
4747
id: cache-agda-formalization
4848
name: Restore Agda formalization cache
4949
with:
@@ -56,35 +56,35 @@ jobs:
5656
5757
# Keep versions in sync with the Makefile
5858
- name: MDBook setup
59-
uses: peaceiris/actions-mdbook@v1
59+
uses: peaceiris/actions-mdbook@v2
6060
with:
6161
mdbook-version: '0.4.34'
6262

6363
- name: Install mdbook-pagetoc
64-
uses: baptiste0928/cargo-install@v2
64+
uses: baptiste0928/cargo-install@v3
6565
with:
6666
crate: mdbook-pagetoc
6767
version: '0.1.7'
6868

6969
- name: Install mdbook-katex
70-
uses: baptiste0928/cargo-install@v2
70+
uses: baptiste0928/cargo-install@v3
7171
with:
7272
crate: mdbook-katex
7373
version: '0.5.7'
7474

7575
- name: Install mdbook-linkcheck
76-
uses: baptiste0928/cargo-install@v2
76+
uses: baptiste0928/cargo-install@v3
7777
with:
7878
crate: mdbook-linkcheck
7979
version: '0.7.7'
8080

8181
- name: Install mdbook-catppuccin
82-
uses: baptiste0928/cargo-install@v2
82+
uses: baptiste0928/cargo-install@v3
8383
with:
8484
crate: mdbook-catppuccin
8585
version: '1.2.0'
8686

87-
- uses: actions/setup-python@v4
87+
- uses: actions/setup-python@v5
8888
with:
8989
python-version: '3.8'
9090
check-latest: true
@@ -100,21 +100,21 @@ jobs:
100100
make website
101101
102102
- name: Setup Pages
103-
uses: actions/configure-pages@v3
103+
uses: actions/configure-pages@v5
104104
if: >-
105105
github.ref == 'refs/heads/master' || github.event_name ==
106106
'workflow_dispatch'
107107
108108
- name: Upload artifact
109-
uses: actions/upload-pages-artifact@v1
109+
uses: actions/upload-pages-artifact@v3
110110
if: >-
111111
github.ref == 'refs/heads/master' || github.event_name ==
112112
'workflow_dispatch'
113113
with:
114114
path: master/book/html
115115

116116
- name: Deploy to GitHub Pages
117-
uses: actions/deploy-pages@v1
117+
uses: actions/deploy-pages@v4
118118
id: deployment
119119
if: >-
120120
github.ref == 'refs/heads/master' || github.event_name ==

.github/workflows/profiling.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919

2020
steps:
2121
- name: Checkout our repository
22-
uses: actions/checkout@v3
22+
uses: actions/checkout@v4
2323
with:
2424
path: repo
2525

agda-unimath.agda-lib

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
name: agda-unimath
22
include: src
3-
flags: --without-K --exact-split --no-import-sorts --auto-inline --no-require-unique-meta-solutions -WnoWithoutKFlagPrimEraseEquality
3+
flags: --without-K --exact-split --no-import-sorts --auto-inline --no-require-unique-meta-solutions -WnoWithoutKFlagPrimEraseEquality --no-postfix-projections

src/category-theory/conservative-functors-precategories.lagda.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ open import foundation.universe-levels
2222
## Idea
2323

2424
A [functor](category-theory.functors-precategories.md) `F : C → D` between
25-
[precategories](category-theory.precategories.md) is **conservative** if every
26-
morphism that is mapped to an
25+
[precategories](category-theory.precategories.md) is
26+
{{#concept "conservative" Disambiguation="functor of set-level precategories" WDID=Q23808682 WD="conservative functor" Agda=is-conservative-functor-Precategory Agda=conservative-functor-Precategory}}
27+
if every morphism that is mapped to an
2728
[isomorphism](category-theory.isomorphisms-in-precategories.md) in `D` is an
2829
isomorphism in `C`.
2930

src/category-theory/essentially-surjective-functors-precategories.lagda.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ open import foundation.universe-levels
2222
## Idea
2323

2424
A [functor](category-theory.functors-precategories.md) `F : C → D` between
25-
[precategories](category-theory.precategories.md) is **essentially surjective**
25+
[precategories](category-theory.precategories.md) is
26+
{{#concept "essentially surjective" Disambiguation="functor between set-level precategories" WDID=Q140283 WD="essentially surjective functor" Agda=is-essentially-surjective-functor-Precategory Agda=essentially-surjective-functor-Precategory}}
2627
if there for every object `y : D`
2728
[merely exists](foundation.existential-quantification.md) an object `x : C` such
2829
that `F x ≅ y`.

src/category-theory/pseudomonic-functors-precategories.lagda.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Pseudomonic functors present
4343
is the "right notion" of subcategory with respect to the _principle of
4444
invariance under equivalences_.
4545

46-
## Definition
46+
## Definitions
4747

4848
### The predicate on isomorphisms of being full
4949

src/category-theory/split-essentially-surjective-functors-precategories.lagda.md

+113-6
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,26 @@ module category-theory.split-essentially-surjective-functors-precategories where
77
<details><summary>Imports</summary>
88

99
```agda
10+
open import category-theory.categories
11+
open import category-theory.cores-precategories
1012
open import category-theory.essential-fibers-of-functors-precategories
1113
open import category-theory.essentially-surjective-functors-precategories
14+
open import category-theory.fully-faithful-functors-precategories
1215
open import category-theory.functors-precategories
16+
open import category-theory.isomorphisms-in-categories
1317
open import category-theory.isomorphisms-in-precategories
1418
open import category-theory.precategories
19+
open import category-theory.pseudomonic-functors-precategories
1520
21+
open import foundation.contractible-types
1622
open import foundation.dependent-pair-types
23+
open import foundation.equivalences
1724
open import foundation.function-types
1825
open import foundation.functoriality-dependent-pair-types
1926
open import foundation.propositional-truncations
27+
open import foundation.propositions
28+
open import foundation.retracts-of-types
29+
open import foundation.sections
2030
open import foundation.universe-levels
2131
```
2232

@@ -25,8 +35,9 @@ open import foundation.universe-levels
2535
## Idea
2636

2737
A [functor](category-theory.functors-precategories.md) `F : C → D` between
28-
[precategories](category-theory.precategories.md) is **split essentially
29-
surjective** if there is a section of the
38+
[precategories](category-theory.precategories.md) is
39+
{{#concept "split essentially surjective" Disambiguation="functor between set-level precategories" Agda=is-split-essentially-surjective-functor-Precategory Agda=split-essentially-surjective-functor-Precategory}}
40+
if there is a section of the
3041
[essential fiber](category-theory.essential-fibers-of-functors-precategories.md)
3142
over every object of `D`.
3243

@@ -166,14 +177,110 @@ module _
166177
( is-essentially-surjective-is-split-essentially-surjective-functor-Precategory)
167178
```
168179

169-
### Being split essentially surjective is a property of fully faithful functors when the codomain is a category
180+
### Being split essentially surjective is a property of fully faithful functors when the domain is a category
170181

171-
This remains to be shown. This is Lemma 6.8 of _Univalent Categories and the
172-
Rezk completion_.
182+
This is Lemma 6.8 of {{#cite AKS15}}, although we give a different proof.
183+
184+
**Proof.** Let `F : 𝒞 → 𝒟` be a functor of precategories, where `𝒞` is
185+
univalent. It suffices to assume `F` is fully faithful on the
186+
[core](category-theory.cores-categories.md) of `𝒞`. Then, to show that
187+
`is-split-essentially-surjective` is a proposition, i.e., that
188+
189+
```text
190+
(d : 𝒟₀) → Σ (x : 𝒞₀), (Fx ≅ d)
191+
```
192+
193+
is a proposition it is equivalent to show that if it has an element it is
194+
contractible, so assume `F` is split essentially surjective. Then, it suffices
195+
to show that for every `d : 𝒟₀`, the type `Σ (x : 𝒞₀), (Fx ≅ d)` is
196+
contractible. By split essential surjectivity there is an element `y : 𝒞₀` such
197+
that `Fy ≅ d` and since postcomposing by an isomorphism is an equivalence of
198+
isomorphism-sets, we have
199+
200+
```text
201+
(Fx ≅ d) ≃ (Fx ≅ Fy) ≃ (x ≅ y)
202+
```
203+
204+
so `(Σ (x : 𝒞₀), (Fx ≅ d)) ≃ (Σ (x : 𝒞₀), (x ≅ y))`, and the latter is
205+
contractible by univalence.
206+
207+
```agda
208+
module _
209+
{l1 l2 l3 l4 : Level}
210+
(C : Precategory l1 l2) (D : Precategory l3 l4)
211+
(F : functor-Precategory C D)
212+
(c : is-category-Precategory C)
213+
where
214+
215+
is-proof-irrelevant-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory :
216+
( (x y : obj-Precategory C) →
217+
section (preserves-iso-functor-Precategory C D F {x} {y})) →
218+
is-proof-irrelevant
219+
( is-split-essentially-surjective-functor-Precategory C D F)
220+
is-proof-irrelevant-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory
221+
H s =
222+
is-contr-Π
223+
( λ d →
224+
is-contr-retract-of
225+
( Σ (obj-Category (C , c)) (iso-Category (C , c) (pr1 (s d))))
226+
( retract-tot
227+
( λ x →
228+
comp-retract
229+
( retract-section
230+
( preserves-iso-functor-Precategory C D F)
231+
( H (pr1 (s d)) x))
232+
( retract-equiv
233+
( equiv-inv-iso-Precategory D ∘e
234+
equiv-postcomp-hom-iso-Precategory
235+
( core-precategory-Precategory D)
236+
( map-equiv
237+
( compute-iso-core-Precategory D)
238+
( inv-iso-Precategory D (pr2 (s d))))
239+
( obj-functor-Precategory C D F x)))))
240+
( is-torsorial-iso-Category (C , c) (pr1 (s d))))
241+
242+
is-prop-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory :
243+
( (x y : obj-Precategory C) →
244+
section (preserves-iso-functor-Precategory C D F {x} {y})) →
245+
is-prop
246+
( is-split-essentially-surjective-functor-Precategory C D F)
247+
is-prop-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory
248+
=
249+
is-prop-is-proof-irrelevant ∘
250+
is-proof-irrelevant-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory
251+
252+
is-prop-is-split-essentially-surjective-is-fully-faithful-on-isos-functor-is-category-domain-Precategory :
253+
( (x y : obj-Precategory C) →
254+
is-equiv (preserves-iso-functor-Precategory C D F {x} {y})) →
255+
is-prop (is-split-essentially-surjective-functor-Precategory C D F)
256+
is-prop-is-split-essentially-surjective-is-fully-faithful-on-isos-functor-is-category-domain-Precategory
257+
H =
258+
is-prop-is-split-essentially-surjective-has-section-on-isos-functor-is-category-domain-Precategory
259+
( λ x y → section-is-equiv (H x y))
260+
261+
is-prop-is-split-essentially-surjective-is-pseudomonic-functor-is-category-domain-Precategory :
262+
is-pseudomonic-functor-Precategory C D F →
263+
is-prop (is-split-essentially-surjective-functor-Precategory C D F)
264+
is-prop-is-split-essentially-surjective-is-pseudomonic-functor-is-category-domain-Precategory
265+
H =
266+
is-prop-is-split-essentially-surjective-is-fully-faithful-on-isos-functor-is-category-domain-Precategory
267+
( λ x y →
268+
is-equiv-preserves-iso-is-pseudomonic-functor-Precategory C D F H
269+
{ x}
270+
{ y})
271+
272+
is-prop-is-split-essentially-surjective-is-fully-faithful-functor-is-category-domain-Precategory :
273+
is-fully-faithful-functor-Precategory C D F →
274+
is-prop (is-split-essentially-surjective-functor-Precategory C D F)
275+
is-prop-is-split-essentially-surjective-is-fully-faithful-functor-is-category-domain-Precategory
276+
H =
277+
is-prop-is-split-essentially-surjective-is-pseudomonic-functor-is-category-domain-Precategory
278+
( is-pseudomonic-is-fully-faithful-functor-Precategory C D F H)
279+
```
173280

174281
## References
175282

176-
{{#bibliography}} {{#reference AKS15}}
283+
{{#bibliography}}
177284

178285
## External links
179286

0 commit comments

Comments
 (0)