You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor category theory to use strictly involutive identity types (#1052)
### Summary
- Refactors the definition of categories to use the new and more general
strictly involutive identity types for their associativity witnesses.
- Refactor definitions of some instances of large and small
precategories to use a new `make-(Large-)?-Precategory` constructor.
- Defines the underlying large precategory of a large subprecategory.
- Change some prose regarding basic definitions in category theory.
- Refactors all appropriate instances of large precategories to be
(full) large subprecategories.
- Rename `is-group` to `is-group-Semigroup`.
The last item was appropriate to make the handling of
`involutive-eq-associative-comp-hom-***-Large-Precategory` systematic.
Improves on what was implemented in #945.
Copy file name to clipboardExpand all lines: src/category-theory/composition-operations-on-binary-families-of-sets.lagda.md
+79-67
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ open import foundation.identity-types
14
14
open import foundation.iterated-dependent-product-types
15
15
open import foundation.propositions
16
16
open import foundation.sets
17
+
open import foundation.strictly-involutive-identity-types
17
18
open import foundation.subtypes
18
19
open import foundation.universe-levels
19
20
```
@@ -22,22 +23,24 @@ open import foundation.universe-levels
22
23
23
24
## Idea
24
25
25
-
Given a type `A`, a **composition operation on a binary family of sets**
26
-
`hom : A → A → Set ` is a map
26
+
Given a type `A`, a
27
+
{{#concept "composition operation" Disambiguation="on binary families of sets" Agda=composition-operation-binary-family-Set}}
28
+
on a binary family of [sets](foundation-core.sets.md)`hom : A → A → Set` is a
29
+
map
27
30
28
31
```text
29
-
hom y z → hom x y → hom x z
32
+
_∘_ : hom y z → hom x y → hom x z
30
33
```
31
34
32
35
for every triple of elements `x y z : A`.
33
36
34
37
For such operations, we can consider
35
-
[properties](foundation-core.propositions.md) such as **associativity** and
36
-
**unitality**.
38
+
[properties](foundation-core.propositions.md) such as _associativity_ and
39
+
_unitality_.
37
40
38
41
## Definitions
39
42
40
-
### Composition operations in binary families of sets
43
+
### Composition operations on binary families of sets
41
44
42
45
```agda
43
46
module _
@@ -50,14 +53,30 @@ module _
50
53
type-Set (hom-set y z) → type-Set (hom-set x y) → type-Set (hom-set x z)
51
54
```
52
55
53
-
### Associative composition operations in binary families of sets
56
+
### Associative composition operations on binary families of sets
54
57
55
-
We give a slightly nonstandard definition of associativity, requiring an
56
-
associativity witness in each direction. This is of course redundant as `inv` is
57
-
a [fibered involution](foundation.fibered-involutions.md) on
58
-
[identity types](foundation-core.identity-types.md). However, by recording both
59
-
directions we maintain a definitional double inverse law which is practical in
60
-
defining the [opposite category](category-theory.opposite-categories.md).
58
+
A composition operation
59
+
60
+
```text
61
+
_∘_ : hom y z → hom x y → hom x z
62
+
```
63
+
64
+
on a binary family of sets of morphisms is called
65
+
{{#concept "associative" Disambiguation="composition operation on a binary family of sets" Agda=is-associative-composition-operation-binary-family-Set}}
66
+
if, for every triple of composable morphisms we have
67
+
68
+
```text
69
+
(h ∘ g) ∘ f = h ∘ (g ∘ f).
70
+
```
71
+
72
+
We give a slightly nonstandard definition of associativity using the
0 commit comments