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

Indiscrete precategories #896

Merged
merged 133 commits into from
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 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
83de40a
some links
fredrik-bakke Oct 26, 2023
02767e2
wide subprecategories
fredrik-bakke Oct 26, 2023
27bc663
cores of precategories
fredrik-bakke Oct 26, 2023
08a854f
Commuting squares of morphisms in nonunital precategories
fredrik-bakke Oct 26, 2023
fc2c5b6
nonunital functors
fredrik-bakke Oct 26, 2023
6559e6e
set-magmoids
fredrik-bakke Oct 26, 2023
14ff3e9
functors of set-magmoids
fredrik-bakke Oct 26, 2023
edc2ff2
`distributive-implicit-Π-Σ`
fredrik-bakke Oct 26, 2023
b87f0b0
small category of families of sets
fredrik-bakke Oct 26, 2023
ab28cba
WIP structure equivalences set magmoids
fredrik-bakke Oct 26, 2023
c9fbcde
pseudomonic functors
fredrik-bakke Oct 26, 2023
61c107d
pseudomonic functors are essentially injective
fredrik-bakke Oct 26, 2023
29b4524
essential fiber of functors
fredrik-bakke Oct 26, 2023
0b957ee
essentially surjective functors
fredrik-bakke Oct 26, 2023
8b3ee11
split essentially surjective functors
fredrik-bakke Oct 26, 2023
684ccf0
pre-commit
fredrik-bakke Oct 26, 2023
f0f1f62
conservative functors
fredrik-bakke Oct 26, 2023
e9fb166
various fixes
fredrik-bakke Oct 26, 2023
43a6ce3
essentially injective functors
fredrik-bakke Oct 26, 2023
38b9de8
restrictions functors cores precategories
fredrik-bakke Oct 26, 2023
8526eb5
fully faithful functors are pseudomonic
fredrik-bakke Oct 26, 2023
08afa33
pre-commit
fredrik-bakke Oct 26, 2023
cafb7ec
commuting squares in set-magmoids
fredrik-bakke Oct 26, 2023
3543407
small adjustments
fredrik-bakke Oct 27, 2023
99cdd98
refactor proof on essential inj ff
fredrik-bakke Oct 27, 2023
4864a41
pseudomonic functors are conservative
fredrik-bakke Oct 27, 2023
14a5d63
Fully faithful functors are conservative
fredrik-bakke Oct 27, 2023
a45483c
maps of set magmoids instead
fredrik-bakke Oct 27, 2023
efb6833
wip functors set-magmoids
fredrik-bakke Oct 27, 2023
373614c
refactor presheaf categories
fredrik-bakke Oct 27, 2023
78210bd
fix functors of set magmoids
fredrik-bakke Oct 27, 2023
b8d8690
refactor yoneda lemma yet again
fredrik-bakke Oct 27, 2023
5e90e6f
look at set truncations
fredrik-bakke Oct 27, 2023
5ab246b
delete code copies `universal-property-truncation`
fredrik-bakke Oct 27, 2023
e7dde5e
some more set truncation stuff
fredrik-bakke Oct 27, 2023
7def7da
pre-commit
fredrik-bakke Oct 27, 2023
574c05f
fixes
fredrik-bakke Oct 27, 2023
a5ab131
remove unused imports
fredrik-bakke Oct 27, 2023
d7903a6
fix links
fredrik-bakke Oct 28, 2023
81abb88
the last link
fredrik-bakke Oct 28, 2023
06fc5db
Merge branch 'master' into fun-with-functors
fredrik-bakke Oct 28, 2023
a3d0274
fix a line
fredrik-bakke Oct 28, 2023
d8e7c73
pre-commit
fredrik-bakke Oct 28, 2023
cbdad6a
Isomorphism-sets in replete subprecategories are equivalent to isomor…
fredrik-bakke Oct 28, 2023
682345f
Subcategories are categories
fredrik-bakke Oct 28, 2023
3f7e025
wide subcategories (are categories)
fredrik-bakke Oct 28, 2023
93bcec4
cores of categories
fredrik-bakke Oct 28, 2023
c661ef2
remove unused imports
fredrik-bakke Oct 28, 2023
095efd2
Merge branch 'master' into fun-with-functors
fredrik-bakke Oct 30, 2023
5d83cf5
wip terminal cat
fredrik-bakke Oct 30, 2023
bf1ed8c
terminal category
fredrik-bakke Oct 30, 2023
14543a5
yoneda lemma for representable functors
fredrik-bakke Oct 30, 2023
535d951
representing arrow _category_
fredrik-bakke Oct 30, 2023
83fe7c6
finish work on terminal category
fredrik-bakke Oct 30, 2023
745c327
indiscrete precategories
fredrik-bakke Oct 30, 2023
db78770
initial category
fredrik-bakke Oct 30, 2023
15a371f
remove unused imports
fredrik-bakke Oct 30, 2023
817cbda
words
fredrik-bakke Oct 30, 2023
1e50545
initial category is initial
fredrik-bakke Oct 30, 2023
f18ac8d
terminal category is terminal
fredrik-bakke Oct 30, 2023
c324c0f
the terminal category represents objects
fredrik-bakke Oct 30, 2023
583a984
indiscrete
fredrik-bakke Oct 31, 2023
65abf30
pre-commit
fredrik-bakke Oct 31, 2023
13b806c
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Oct 31, 2023
f39a60e
fix links
fredrik-bakke Oct 31, 2023
7d86faa
indiscrete precategories are pregroupoids
fredrik-bakke Oct 31, 2023
d03497d
pre-commit
fredrik-bakke Oct 31, 2023
910dc79
a space
fredrik-bakke Oct 31, 2023
edcd13a
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Nov 1, 2023
5831bd9
pre-commit
fredrik-bakke Nov 1, 2023
eb197b6
fix typo
fredrik-bakke Nov 1, 2023
1d8ed2b
fix typos categories
fredrik-bakke Nov 1, 2023
ebf77f4
merge conflict
fredrik-bakke Nov 1, 2023
113d050
the predicate of being indiscrete
fredrik-bakke Nov 2, 2023
d2b2258
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Nov 3, 2023
dcb8c9c
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Nov 6, 2023
d437e0a
Update src/foundation/set-truncations.lagda.md
fredrik-bakke Nov 6, 2023
84913c2
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Nov 9, 2023
cd3199f
Merge branch 'master' into initial-and-terminal-category
fredrik-bakke Nov 9, 2023
53b6d6f
$n$Lab*
fredrik-bakke Nov 9, 2023
78b3f88
Update src/category-theory/initial-category.lagda.md
EgbertRijke Nov 24, 2023
4dc75ce
Update src/category-theory/indiscrete-precategories.lagda.md
EgbertRijke Nov 24, 2023
018341f
Update src/category-theory/indiscrete-precategories.lagda.md
EgbertRijke Nov 24, 2023
8572342
Merge branch 'master' into initial-and-terminal-category
EgbertRijke Nov 24, 2023
aa19e45
Merge branch 'master' into initial-and-terminal-category
EgbertRijke Nov 24, 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: 3 additions & 0 deletions src/category-theory.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ open import category-theory.functors-set-magmoids 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.indiscrete-precategories public
open import category-theory.initial-category public
open import category-theory.initial-objects-large-categories public
open import category-theory.initial-objects-large-precategories public
open import category-theory.initial-objects-precategories public
Expand Down Expand Up @@ -143,6 +145,7 @@ open import category-theory.strict-categories public
open import category-theory.structure-equivalences-set-magmoids public
open import category-theory.subcategories public
open import category-theory.subprecategories public
open import category-theory.terminal-category public
open import category-theory.terminal-objects-precategories public
open import category-theory.wide-subcategories public
open import category-theory.wide-subprecategories public
Expand Down
10 changes: 7 additions & 3 deletions src/category-theory/categories.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,17 @@ module _
{l1 l2 : Level} (C : Category l1 l2)
where

is-preunivalent-category-Category :
is-preunivalent-Precategory (precategory-Category C)
is-preunivalent-category-Category x y =
is-emb-is-equiv (is-category-Category C x y)

preunivalent-category-Category : Preunivalent-Category l1 l2
pr1 preunivalent-category-Category = precategory-Category C
pr2 preunivalent-category-Category x y =
is-emb-is-equiv (is-category-Category C x y)
pr2 preunivalent-category-Category = is-preunivalent-category-Category
```

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

```agda
total-hom-Category :
Expand Down
267 changes: 267 additions & 0 deletions src/category-theory/indiscrete-precategories.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
# Indiscrete precategories

```agda
module category-theory.indiscrete-precategories where
```

<details><summary>Imports</summary>

```agda
open import category-theory.composition-operations-on-binary-families-of-sets
open import category-theory.fully-faithful-functors-precategories
open import category-theory.isomorphisms-in-precategories
open import category-theory.precategories
open import category-theory.pregroupoids
open import category-theory.preunivalent-categories
open import category-theory.strict-categories
open import category-theory.terminal-category

open import foundation.action-on-identifications-functions
open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.embeddings
open import foundation.equivalences
open import foundation.function-types
open import foundation.fundamental-theorem-of-identity-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.iterated-dependent-product-types
open import foundation.propositions
open import foundation.sets
open import foundation.subtype-identity-principle
open import foundation.unit-type
open import foundation.universe-levels
```

</details>

## Idea

Given a type `X`, we can define its associated **indiscrete precategory** as the
[precategory](category-theory.precategories.md) whose
hom-[sets](foundation-core.sets.md) are
[contractible](foundation-core.contractible-types.md) everywhere.

This construction demonstrates one essential aspect about precategories: While
it displays `obj-Precategory` as a [retraction](foundation-core.retractions.md),
up to weak categorical equivalence, every indiscrete precategory is subterminal.
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved

## Definitions

### The indiscrete precategory associated to a type

#### The objects and hom-sets of the indiscrete precategory associated to a type

```agda
module _
{l : Level} (X : UU l)
where

obj-indiscrete-Precategory : UU l
obj-indiscrete-Precategory = X

hom-set-indiscrete-Precategory :
obj-indiscrete-Precategory → obj-indiscrete-Precategory → Set lzero
hom-set-indiscrete-Precategory _ _ = unit-Set

hom-indiscrete-Precategory :
obj-indiscrete-Precategory → obj-indiscrete-Precategory → UU lzero
hom-indiscrete-Precategory x y = type-Set (hom-set-indiscrete-Precategory x y)
```

#### The precategory structure of the indiscrete precategory associated to a type

```agda
module _
{l : Level} (X : UU l)
where

comp-hom-indiscrete-Precategory :
{x y z : obj-indiscrete-Precategory X} →
hom-indiscrete-Precategory X y z →
hom-indiscrete-Precategory X x y →
hom-indiscrete-Precategory X x z
comp-hom-indiscrete-Precategory _ _ = star

associative-comp-hom-indiscrete-Precategory :
{x y z w : obj-indiscrete-Precategory X} →
(h : hom-indiscrete-Precategory X z w)
(g : hom-indiscrete-Precategory X y z)
(f : hom-indiscrete-Precategory X x y) →
comp-hom-indiscrete-Precategory {x} {y} {w}
( comp-hom-indiscrete-Precategory {y} {z} {w} h g)
( f) =
comp-hom-indiscrete-Precategory {x} {z} {w}
( h)
( comp-hom-indiscrete-Precategory {x} {y} {z} g f)
associative-comp-hom-indiscrete-Precategory h g f = refl

associative-composition-operation-indiscrete-Precategory :
associative-composition-operation-binary-family-Set
( hom-set-indiscrete-Precategory X)
pr1 associative-composition-operation-indiscrete-Precategory {x} {y} {z} =
comp-hom-indiscrete-Precategory {x} {y} {z}
pr2 associative-composition-operation-indiscrete-Precategory {x} {y} {z} {w} =
associative-comp-hom-indiscrete-Precategory {x} {y} {z} {w}

id-hom-indiscrete-Precategory :
{x : obj-indiscrete-Precategory X} → hom-indiscrete-Precategory X x x
id-hom-indiscrete-Precategory = star

left-unit-law-comp-hom-indiscrete-Precategory :
{x y : obj-indiscrete-Precategory X} →
(f : hom-indiscrete-Precategory X x y) →
comp-hom-indiscrete-Precategory {x} {y} {y}
( id-hom-indiscrete-Precategory {y})
( f) =
f
left-unit-law-comp-hom-indiscrete-Precategory f = refl

right-unit-law-comp-hom-indiscrete-Precategory :
{x y : obj-indiscrete-Precategory X} →
(f : hom-indiscrete-Precategory X x y) →
comp-hom-indiscrete-Precategory {x} {x} {y}
( f)
( id-hom-indiscrete-Precategory {x}) =
f
right-unit-law-comp-hom-indiscrete-Precategory f = refl

is-unital-composition-operation-indiscrete-Precategory :
is-unital-composition-operation-binary-family-Set
( hom-set-indiscrete-Precategory X)
( λ {x} {y} {z} → comp-hom-indiscrete-Precategory {x} {y} {z})
pr1 is-unital-composition-operation-indiscrete-Precategory x =
id-hom-indiscrete-Precategory {x}
pr1 (pr2 is-unital-composition-operation-indiscrete-Precategory) {x} {y} =
left-unit-law-comp-hom-indiscrete-Precategory {x} {y}
pr2 (pr2 is-unital-composition-operation-indiscrete-Precategory) {x} {y} =
right-unit-law-comp-hom-indiscrete-Precategory {x} {y}

indiscrete-Precategory : Precategory l lzero
pr1 indiscrete-Precategory = obj-indiscrete-Precategory X
pr1 (pr2 indiscrete-Precategory) = hom-set-indiscrete-Precategory X
pr1 (pr2 (pr2 indiscrete-Precategory)) =
associative-composition-operation-indiscrete-Precategory
pr2 (pr2 (pr2 indiscrete-Precategory)) =
is-unital-composition-operation-indiscrete-Precategory
```

#### The pregroupoid structure of the indiscrete precategory associated to a type

```agda
module _
{l : Level} (X : UU l)
where

is-iso-hom-indiscrete-Precategory :
{x y : obj-indiscrete-Precategory X}
(f : hom-indiscrete-Precategory X x y) →
is-iso-Precategory (indiscrete-Precategory X) {x} {y} f
pr1 (is-iso-hom-indiscrete-Precategory _) = star
pr1 (pr2 (is-iso-hom-indiscrete-Precategory _)) = refl
pr2 (pr2 (is-iso-hom-indiscrete-Precategory _)) = refl

iso-obj-indiscrete-Precategory :
(x y : obj-indiscrete-Precategory X) →
iso-Precategory (indiscrete-Precategory X) x y
pr1 (iso-obj-indiscrete-Precategory x y) = star
pr2 (iso-obj-indiscrete-Precategory x y) =
is-iso-hom-indiscrete-Precategory {x} {y} star

is-pregroupoid-indiscrete-Precategory :
is-pregroupoid-Precategory (indiscrete-Precategory X)
is-pregroupoid-indiscrete-Precategory x y =
is-iso-hom-indiscrete-Precategory {x} {y}

indiscrete-Pregroupoid : Pregroupoid l lzero
pr1 indiscrete-Pregroupoid = indiscrete-Precategory X
pr2 indiscrete-Pregroupoid = is-pregroupoid-indiscrete-Precategory
```

### The predicate on a precategory of being indiscrete

For completeness, we also record the predicate on a precategory of being
indiscrete.

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

is-indiscrete-Precategory : UU (l1 ⊔ l2)
is-indiscrete-Precategory =
(x y : obj-Precategory C) → is-contr (hom-Precategory C x y)

is-prop-is-indiscrete-Precategory : is-prop is-indiscrete-Precategory
is-prop-is-indiscrete-Precategory =
is-prop-iterated-Π 2 (λ x y → is-property-is-contr)

is-indiscrete-prop-Precategory : Prop (l1 ⊔ l2)
pr1 is-indiscrete-prop-Precategory = is-indiscrete-Precategory
pr2 is-indiscrete-prop-Precategory = is-prop-is-indiscrete-Precategory
```

#### The indiscrete precategory associated to a type is indiscrete

```agda
module _
{l : Level} (X : UU l)
where

is-indiscrete-indiscrete-Precategory :
is-indiscrete-Precategory (indiscrete-Precategory X)
is-indiscrete-indiscrete-Precategory x y = is-contr-unit
```

## Properties

### If an indiscrete precategory is preunivalent then it is a strict category

```agda
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
module _
{l : Level} (X : UU l)
where

is-strict-category-is-preunivalent-indiscrete-Precategory :
is-preunivalent-Precategory (indiscrete-Precategory X) →
is-strict-category-Precategory (indiscrete-Precategory X)
is-strict-category-is-preunivalent-indiscrete-Precategory H x y =
is-prop-is-emb
( iso-eq-Precategory (indiscrete-Precategory X) x y)
( H x y)
( is-prop-Σ
( is-prop-unit)
( is-prop-is-iso-Precategory (indiscrete-Precategory X) {x} {y}))
```

### The construction of `indiscrete-Precategory` is a section of `obj-Precategory`

```agda
is-section-indiscrete-Precategory :
{l : Level} → obj-Precategory ∘ indiscrete-Precategory {l} ~ id
is-section-indiscrete-Precategory X = refl
```

### The terminal projection functor is fully faithful

```agda
module _
{l : Level} (X : UU l)
where

is-fully-faithful-terminal-functor-indiscrete-Precategory :
is-fully-faithful-functor-Precategory
( indiscrete-Precategory X)
( terminal-Precategory)
( terminal-functor-Precategory (indiscrete-Precategory X))
is-fully-faithful-terminal-functor-indiscrete-Precategory x y = is-equiv-id
```

## External links

- [indiscrete category](https://ncatlab.org/nlab/show/indiscrete+category) at
$n$Lab
- [Indiscrete category](https://en.wikipedia.org/wiki/Indiscrete_category) at
Wikipedia

A wikidata identifier was not available for this concept.
Loading