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

Opposite categories, gaunt categories, replete subprecategories, large Yoneda, and miscellaneous additions #880

Merged
merged 58 commits into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
c7315bb
yo
fredrik-bakke Oct 21, 2023
282b8db
Preunivalence holds in univalent foundations (#874)
fredrik-bakke Oct 21, 2023
ffe2dc7
Peano arithmetic (#876)
fredrik-bakke Oct 21, 2023
3a845b2
Iterated type families (#797)
EgbertRijke Oct 21, 2023
c9f2714
peano additions
fredrik-bakke Oct 22, 2023
23b995e
refactor yoneda lemma, generalize a universe level
fredrik-bakke Oct 22, 2023
78c0f23
wip yoneda
fredrik-bakke Oct 22, 2023
e2688a6
Merge remote-tracking branch 'upstream/master' into pct
fredrik-bakke Oct 22, 2023
7753dcf
lemmas about opposite precategories
fredrik-bakke Oct 22, 2023
e1c2d16
multivariable implicit homotopies
fredrik-bakke Oct 22, 2023
25f80fb
Merge remote-tracking branch 'upstream/master' into pct
fredrik-bakke Oct 22, 2023
d29c9cd
refactor implicit function extensionality
fredrik-bakke Oct 22, 2023
d66ecbf
opposite categories
fredrik-bakke Oct 22, 2023
1e2b453
manage some unfinished work
fredrik-bakke Oct 22, 2023
dbac747
rename `eq-pair(-Σ)-eq-pr2`
fredrik-bakke Oct 22, 2023
4e676f2
additions 1-types
fredrik-bakke Oct 23, 2023
1f8a184
computing truncation levels of total hom-types
fredrik-bakke Oct 23, 2023
3bcde6f
gaunt precategories
fredrik-bakke Oct 23, 2023
111f0e8
gaunt categories
fredrik-bakke Oct 23, 2023
367a69c
fix subprecategories hehe
fredrik-bakke Oct 23, 2023
ef6336e
opposite preunivalent categories
fredrik-bakke Oct 24, 2023
beaae3a
move proofs opposite categories
fredrik-bakke Oct 25, 2023
e8a8ef6
commuting pentagons of ids
fredrik-bakke Oct 25, 2023
d3ebfa3
iterated is-prop and is-contr for implicit Pis
fredrik-bakke Oct 25, 2023
b1f7f6f
categorical laws for functor composition
fredrik-bakke Oct 25, 2023
63a42e4
fix references
fredrik-bakke Oct 25, 2023
39be8f3
move isomorphisms in subprecategories to own file
fredrik-bakke Oct 25, 2023
95702a3
replete subprecategories
fredrik-bakke Oct 25, 2023
f3ee422
change naming `subobj`
fredrik-bakke Oct 25, 2023
75e2532
fix subcategories
fredrik-bakke Oct 25, 2023
2394a69
Merge branch 'master' into pct
fredrik-bakke Oct 25, 2023
57178d8
fixes
fredrik-bakke Oct 25, 2023
8a61341
commented code
fredrik-bakke Oct 25, 2023
5b02b8f
move a lemma
fredrik-bakke Oct 25, 2023
7eeaa35
remove a comma
fredrik-bakke Oct 25, 2023
ad0617d
fix links
fredrik-bakke Oct 25, 2023
f0dd4cc
remove unused imports
fredrik-bakke Oct 25, 2023
76ce297
fix title gaunt cats
fredrik-bakke Oct 25, 2023
91f6830
define rigid objects
fredrik-bakke Oct 25, 2023
bc1bf79
A category is gaunt if(f) every object is rigid
fredrik-bakke Oct 25, 2023
dc16e3d
comments
fredrik-bakke Oct 25, 2023
9c3d49e
`is-equiv-is-invertible`
fredrik-bakke Oct 25, 2023
36a9b5f
idk
fredrik-bakke Oct 25, 2023
b00e89e
subprecategories of categories are replete
fredrik-bakke Oct 25, 2023
922e1ef
fixes
fredrik-bakke Oct 25, 2023
220c1ee
Merge branch 'master' into pct
fredrik-bakke Oct 25, 2023
8d4041c
pre-commit
fredrik-bakke Oct 25, 2023
6b8c716
last fixes
fredrik-bakke Oct 25, 2023
2cc90bc
Merge branch 'master' into pct
fredrik-bakke Oct 28, 2023
05231ee
pre-commit
fredrik-bakke Oct 28, 2023
8dc6b59
merge stuff about yoneda to avoid double review
fredrik-bakke Oct 28, 2023
b0b9156
Isomorphism-sets in replete subprecategories are equivalent to isomor…
fredrik-bakke Oct 28, 2023
deb178c
Subcategories are categories
fredrik-bakke Oct 28, 2023
c65c242
Merge branch 'master' into pct
fredrik-bakke Oct 28, 2023
436ce32
Merge branch 'master' into pct
fredrik-bakke Oct 30, 2023
efbac8b
Update src/category-theory/subcategories.lagda.md
fredrik-bakke Oct 30, 2023
910b48b
Merge branch 'master' into pct
fredrik-bakke Oct 30, 2023
84a0eae
Merge branch 'master' into pct
EgbertRijke Nov 1, 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
3 changes: 1 addition & 2 deletions TEMPLATE.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,4 @@ concept-subconcept = ...

1. Univalent Foundations Project, _Homotopy Type Theory – Univalent Foundations
of Mathematics_ (2013) ([website](https://homotopytypetheory.org/book/),
[arXiv:1308.0729](https://arxiv.org/abs/1308.0729),
[DOI:10.48550](https://doi.org/10.48550/arXiv.1308.0729))
EgbertRijke marked this conversation as resolved.
Show resolved Hide resolved
[arXiv:1308.0729](https://arxiv.org/abs/1308.0729))
5 changes: 5 additions & 0 deletions src/category-theory.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ open import category-theory.functors-from-small-to-large-precategories public
open import category-theory.functors-large-categories public
open import category-theory.functors-large-precategories public
open import category-theory.functors-precategories public
open import category-theory.gaunt-categories public
open import category-theory.groupoids public
open import category-theory.homotopies-natural-transformations-large-precategories public
open import category-theory.initial-objects-large-categories public
Expand All @@ -70,6 +71,7 @@ open import category-theory.isomorphisms-in-categories public
open import category-theory.isomorphisms-in-large-categories public
open import category-theory.isomorphisms-in-large-precategories public
open import category-theory.isomorphisms-in-precategories public
open import category-theory.isomorphisms-in-subprecategories public
open import category-theory.large-categories public
open import category-theory.large-function-categories public
open import category-theory.large-function-precategories public
Expand Down Expand Up @@ -97,7 +99,9 @@ open import category-theory.natural-transformations-maps-from-small-to-large-pre
open import category-theory.natural-transformations-maps-precategories public
open import category-theory.nonunital-precategories public
open import category-theory.one-object-precategories public
open import category-theory.opposite-categories public
open import category-theory.opposite-precategories public
open import category-theory.opposite-preunivalent-categories public
open import category-theory.precategories public
open import category-theory.precategory-of-functors public
open import category-theory.precategory-of-functors-from-small-to-large-precategories public
Expand All @@ -109,6 +113,7 @@ open import category-theory.preunivalent-categories public
open import category-theory.products-in-precategories public
open import category-theory.products-of-precategories public
open import category-theory.pullbacks-in-precategories public
open import category-theory.replete-subprecategories public
open import category-theory.representable-functors-categories public
open import category-theory.representable-functors-large-precategories public
open import category-theory.representable-functors-precategories public
Expand Down
121 changes: 121 additions & 0 deletions src/category-theory/categories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ open import category-theory.precategories
open import category-theory.preunivalent-categories

open import foundation.1-types
open import foundation.cartesian-product-types
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.identity-types
open import foundation.propositions
open import foundation.sets
open import foundation.surjective-maps
open import foundation.universe-levels
```

Expand Down Expand Up @@ -56,6 +58,10 @@ module _

is-category-Precategory : UU (l1 ⊔ l2)
is-category-Precategory = type-Prop is-category-prop-Precategory

is-prop-is-category-Precategory : is-prop is-category-Precategory
is-prop-is-category-Precategory =
is-prop-type-Prop is-category-prop-Precategory
```

### The type of categories
Expand Down Expand Up @@ -156,6 +162,20 @@ module _
is-emb-is-equiv (is-category-Category C x y)
```

### The total hom-type of a preunivalent category

```agda
total-hom-Category :
{l1 l2 : Level} (C : Category l1 l2) → UU (l1 ⊔ l2)
total-hom-Category C = total-hom-Precategory (precategory-Category C)

obj-total-hom-Category :
{l1 l2 : Level} (C : Category l1 l2) →
total-hom-Category C →
obj-Category C × obj-Category C
obj-total-hom-Category C = obj-total-hom-Precategory (precategory-Category C)
```

### Equalities induce morphisms

```agda
Expand Down Expand Up @@ -207,3 +227,104 @@ module _
obj-1-type-Category =
obj-1-type-Preunivalent-Category (preunivalent-category-Category C)
```

### The total hom-type of a category is a 1-type

```agda
module _
{l1 l2 : Level} (C : Category l1 l2)
where

is-1-type-total-hom-Category :
is-1-type (total-hom-Category C)
is-1-type-total-hom-Category =
is-1-type-total-hom-Preunivalent-Category (preunivalent-category-Category C)

total-hom-1-type-Category : 1-Type (l1 ⊔ l2)
total-hom-1-type-Category =
total-hom-1-type-Preunivalent-Category (preunivalent-category-Category C)
```

### A preunivalent category is a category if and only if `iso-eq` is surjective

```agda
module _
{l1 l2 : Level} (C : Precategory l1 l2)
where

is-surjective-iso-eq-prop-Precategory : Prop (l1 ⊔ l2)
is-surjective-iso-eq-prop-Precategory =
Π-Prop
( obj-Precategory C)
( λ x →
Π-Prop
( obj-Precategory C)
( λ y →
is-surjective-Prop
( iso-eq-Precategory C x y)))

is-surjective-iso-eq-Precategory : UU (l1 ⊔ l2)
is-surjective-iso-eq-Precategory =
type-Prop is-surjective-iso-eq-prop-Precategory

is-prop-is-surjective-iso-eq-Precategory :
is-prop is-surjective-iso-eq-Precategory
is-prop-is-surjective-iso-eq-Precategory =
is-prop-type-Prop is-surjective-iso-eq-prop-Precategory
```

```agda
module _
{l1 l2 : Level} (C : Preunivalent-Category l1 l2)
where

is-category-is-surjective-iso-eq-Preunivalent-Category :
is-surjective-iso-eq-Precategory (precategory-Preunivalent-Category C) →
is-category-Precategory (precategory-Preunivalent-Category C)
is-category-is-surjective-iso-eq-Preunivalent-Category
is-surjective-iso-eq-C x y =
is-equiv-is-emb-is-surjective
( is-surjective-iso-eq-C x y)
( is-preunivalent-Preunivalent-Category C x y)

is-surjective-iso-eq-is-category-Preunivalent-Category :
is-category-Precategory (precategory-Preunivalent-Category C) →
is-surjective-iso-eq-Precategory (precategory-Preunivalent-Category C)
is-surjective-iso-eq-is-category-Preunivalent-Category
is-category-C x y =
is-surjective-is-equiv (is-category-C x y)

is-equiv-is-category-is-surjective-iso-eq-Preunivalent-Category :
is-equiv is-category-is-surjective-iso-eq-Preunivalent-Category
is-equiv-is-category-is-surjective-iso-eq-Preunivalent-Category =
is-equiv-is-prop
( is-prop-is-surjective-iso-eq-Precategory
( precategory-Preunivalent-Category C))
( is-prop-is-category-Precategory (precategory-Preunivalent-Category C))
( is-surjective-iso-eq-is-category-Preunivalent-Category)

is-equiv-is-surjective-iso-eq-is-category-Preunivalent-Category :
is-equiv is-surjective-iso-eq-is-category-Preunivalent-Category
is-equiv-is-surjective-iso-eq-is-category-Preunivalent-Category =
is-equiv-is-prop
( is-prop-is-category-Precategory (precategory-Preunivalent-Category C))
( is-prop-is-surjective-iso-eq-Precategory
( precategory-Preunivalent-Category C))
( is-category-is-surjective-iso-eq-Preunivalent-Category)

equiv-is-category-is-surjective-iso-eq-Preunivalent-Category :
is-surjective-iso-eq-Precategory (precategory-Preunivalent-Category C) ≃
is-category-Precategory (precategory-Preunivalent-Category C)
pr1 equiv-is-category-is-surjective-iso-eq-Preunivalent-Category =
is-category-is-surjective-iso-eq-Preunivalent-Category
pr2 equiv-is-category-is-surjective-iso-eq-Preunivalent-Category =
is-equiv-is-category-is-surjective-iso-eq-Preunivalent-Category

equiv-is-surjective-iso-eq-is-category-Preunivalent-Category :
is-category-Precategory (precategory-Preunivalent-Category C) ≃
is-surjective-iso-eq-Precategory (precategory-Preunivalent-Category C)
pr1 equiv-is-surjective-iso-eq-is-category-Preunivalent-Category =
is-surjective-iso-eq-is-category-Preunivalent-Category
pr2 equiv-is-surjective-iso-eq-is-category-Preunivalent-Category =
is-equiv-is-surjective-iso-eq-is-category-Preunivalent-Category
```
3 changes: 2 additions & 1 deletion src/category-theory/coproducts-in-precategories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ open import foundation.cartesian-product-types
open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.identity-types
open import foundation.iterated-dependent-product-types
open import foundation.propositions
open import foundation.unique-existence
open import foundation.universe-levels
Expand Down Expand Up @@ -121,7 +122,7 @@ module _
is-prop-is-coproduct-Precategory :
is-prop (is-coproduct-Precategory C x y p l r)
is-prop-is-coproduct-Precategory =
is-prop-Π³ (λ z f g → is-property-is-contr)
is-prop-iterated-Π 3 (λ z f g → is-property-is-contr)
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved

is-coproduct-prop-Precategory : Prop (l1 ⊔ l2)
pr1 is-coproduct-prop-Precategory = is-coproduct-Precategory C x y p l r
Expand Down
6 changes: 4 additions & 2 deletions src/category-theory/faithful-maps-precategories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ open import foundation.embeddings
open import foundation.equivalences
open import foundation.function-types
open import foundation.injective-maps
open import foundation.iterated-dependent-product-types
open import foundation.propositions
open import foundation.universe-levels
```
Expand Down Expand Up @@ -49,7 +50,8 @@ module _

is-prop-is-faithful-map-Precategory : is-prop is-faithful-map-Precategory
is-prop-is-faithful-map-Precategory =
is-prop-Π² (λ x y → is-prop-is-emb (hom-map-Precategory C D F {x} {y}))
is-prop-iterated-Π 2
( λ x y → is-property-is-emb (hom-map-Precategory C D F {x} {y}))

is-faithful-prop-map-Precategory : Prop (l1 ⊔ l2 ⊔ l4)
pr1 is-faithful-prop-map-Precategory = is-faithful-map-Precategory
Expand Down Expand Up @@ -110,7 +112,7 @@ module _
is-prop-is-injective-hom-map-Precategory :
is-prop is-injective-hom-map-Precategory
is-prop-is-injective-hom-map-Precategory =
is-prop-Π²
is-prop-iterated-Π 2
( λ x y →
is-prop-is-injective
( is-set-hom-Precategory C x y)
Expand Down
3 changes: 2 additions & 1 deletion src/category-theory/full-maps-precategories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ open import category-theory.precategories

open import foundation.dependent-pair-types
open import foundation.function-types
open import foundation.iterated-dependent-product-types
open import foundation.propositions
open import foundation.surjective-maps
open import foundation.universe-levels
Expand Down Expand Up @@ -45,7 +46,7 @@ module _

is-prop-is-full-map-Precategory : is-prop is-full-map-Precategory
is-prop-is-full-map-Precategory =
is-prop-Π²
is-prop-iterated-Π 2
( λ x y → is-prop-is-surjective (hom-map-Precategory C D F {x} {y}))

is-full-prop-map-Precategory : Prop (l1 ⊔ l2 ⊔ l4)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ open import category-theory.precategories
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.function-types
open import foundation.iterated-dependent-product-types
open import foundation.propositions
open import foundation.surjective-maps
open import foundation.universe-levels
Expand Down Expand Up @@ -50,7 +51,7 @@ module _
is-prop-is-fully-faithful-map-Precategory :
is-prop is-fully-faithful-map-Precategory
is-prop-is-fully-faithful-map-Precategory =
is-prop-Π²
is-prop-iterated-Π 2
( λ x y → is-property-is-equiv (hom-map-Precategory C D F {x} {y}))

is-fully-faithful-prop-map-Precategory : Prop (l1 ⊔ l2 ⊔ l4)
Expand Down
Loading
Loading