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

Computational identity types #1015

Merged
merged 41 commits into from
Feb 8, 2024
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
70559c6
Judgmentally involutive identity types
fredrik-bakke Jan 31, 2024
00feefb
fixes
fredrik-bakke Jan 31, 2024
3eacf4b
swap superscript `i` for superscript `-`
fredrik-bakke Jan 31, 2024
c6922b8
add `_∙ᵣ_`
fredrik-bakke Jan 31, 2024
3def29f
The judgmentally right unital concatenation operation on identifications
fredrik-bakke Jan 31, 2024
d0f41aa
judgmental left unit law for `_∙⁻_`
fredrik-bakke Jan 31, 2024
28d4a4b
Merge branch 'master' into compute-Id
fredrik-bakke Jan 31, 2024
43a71e3
pre-commit
fredrik-bakke Jan 31, 2024
1a9d35c
merge
fredrik-bakke Jan 31, 2024
c5a6004
naming fixes judgmentally involutive identity types
fredrik-bakke Feb 1, 2024
58dfbfc
Judgmentally compositional identity types
fredrik-bakke Feb 1, 2024
a588ece
vscode code snippets for equational reasoning
fredrik-bakke Feb 1, 2024
9d12fbf
The inversion operation on the judgmentally compositional identity ty…
fredrik-bakke Feb 1, 2024
3653073
The judgmentally right unital concatenation operation on the judgment…
fredrik-bakke Feb 1, 2024
9ffa4ca
`rconcat` -> `concatr`
fredrik-bakke Feb 1, 2024
5d43534
wip computational identity types
fredrik-bakke Feb 1, 2024
e181181
checks
fredrik-bakke Feb 1, 2024
fcee669
remove wrong text
fredrik-bakke Feb 1, 2024
470df2f
finish work?
fredrik-bakke Feb 2, 2024
332929c
remove unused imports
fredrik-bakke Feb 2, 2024
9541610
part of review
fredrik-bakke Feb 2, 2024
14f99fa
judgmental non-dependent eliminator
fredrik-bakke Feb 2, 2024
5503c12
wip compute id
fredrik-bakke Feb 6, 2024
50a779c
work yoneda identity types
fredrik-bakke Feb 7, 2024
ab3ab47
explanations for judgmentally involutive identity types
fredrik-bakke Feb 7, 2024
a93cc82
Headers are nice
fredrik-bakke Feb 7, 2024
019b5bd
explanations computational identity types
fredrik-bakke Feb 7, 2024
c12a6a1
Merge branch 'master' into compute-Id
fredrik-bakke Feb 7, 2024
051e804
fix merge conflicts
fredrik-bakke Feb 7, 2024
502a40f
rename judgmentally compositional ids to yoneda ids
fredrik-bakke Feb 7, 2024
aac9d2c
change judgmental to something else in many places
fredrik-bakke Feb 7, 2024
27234ae
update `identity-types` table
fredrik-bakke Feb 7, 2024
b9dfac0
common operations on computational identifications
fredrik-bakke Feb 7, 2024
2eda7ff
an unused import
fredrik-bakke Feb 7, 2024
1d295b5
self-review
fredrik-bakke Feb 7, 2024
92e35b5
fix link
fredrik-bakke Feb 7, 2024
f39c8a5
review
fredrik-bakke Feb 7, 2024
7687894
remainder of review
fredrik-bakke Feb 7, 2024
1a2694d
finishing touches
fredrik-bakke Feb 7, 2024
b1cd48a
fix mistakes
fredrik-bakke Feb 7, 2024
565137d
line break
fredrik-bakke Feb 7, 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
18 changes: 17 additions & 1 deletion .vscode/agda.code-snippets
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,27 @@
"Full width equals sign (=)": {
"body": ["="],
"description": "Full width equals sign",
"prefix": ["Id", "equals"]
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
"prefix": ["Id"]
},
"Yoneda embedding (ょ)": {
"body": ["ょ"],
"description": "Yoneda embedding",
"prefix": ["yoneda"]
},

"Equational reasoning": {
EgbertRijke marked this conversation as resolved.
Show resolved Hide resolved
"body": ["equational-reasoning ? = ? by ?"],
"description": "Equational reasoning",
"prefix": ["equational-reasoning"]
},
"Homotopy-reasoning": {
"body": ["homotopy-reasoning ? ~ ? by ?"],
"description": "Homotopy-reasoning",
"prefix": ["homotopy-reasoning"]
},
"Equivalence-reasoning": {
"body": ["equivalence-reasoning ? ≃ ? by ?"],
"description": "Equivalence-reasoning",
"prefix": ["equivalence-reasoning"]
}
}
2 changes: 1 addition & 1 deletion HOWTO-INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ To insert these symbols in the editor, follow these steps:
2. When the symbol appears as a greyed-out character in your editor, press `TAB`
to insert it.

- `=`: Type `Id` or `equals`
- `=`: Type `Id`
- `ょ`: Type `yoneda`
- `⧄`: Type `diagonal` or `lifting`

Expand Down
1 change: 0 additions & 1 deletion src/foundation-core.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ open import foundation-core.equivalence-relations public
open import foundation-core.equivalences public
open import foundation-core.families-of-equivalences public
open import foundation-core.fibers-of-maps public
open import foundation-core.function-extensionality public
open import foundation-core.function-types public
open import foundation-core.functoriality-dependent-function-types public
open import foundation-core.functoriality-dependent-pair-types public
Expand Down
25 changes: 0 additions & 25 deletions src/foundation-core/function-extensionality.lagda.md

This file was deleted.

31 changes: 29 additions & 2 deletions src/foundation-core/identity-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,33 @@ table given above.

### Concatenation of identifications

The
{{#concept "concatenation operation on identifications" Agda=_∙_ Agda=_∙'_ Agda=concat}}
is a map

```text
_∙_ : x = y → y = z → x = z
```

for all `x y z : A`. However, there are essentially three different ways we can
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved
define concatenation of identifications, all with different computational
behaviours.

1. We can define concatenation by induction on the equality `x = y`. This gives
us the computation rule `refl ∙ q = q`.
2. We can define concatenation by induction on the equality `y = z`. This gives
us the computation rule `p ∙ refl = p`.
3. We can define `_∙_` by induction on both `x = y` and `y = z`. This only
gives us the computation rule `refl ∙ refl = refl`.
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved

While the third option may be preferred by some for its symmetry, for practical
reasons, we use the first alternative by convention.

See also

- [The definitionally right unital concatenation operation on indentifications](foundation.definitionally-right-unital-concatenation-identifications.md)
- [The yoneda identity types](foundation.yoneda-identity-types.md)
fredrik-bakke marked this conversation as resolved.
Show resolved Hide resolved

```agda
module _
{l : Level} {A : UU l}
Expand Down Expand Up @@ -432,11 +459,11 @@ module _
where

is-injective-concat :
{x y z : A} (p : x = y) {q r : y = z} → (p ∙ q)(p ∙ r) → q = r
{x y z : A} (p : x = y) {q r : y = z} → p ∙ q = p ∙ r → q = r
is-injective-concat refl s = s

is-injective-concat' :
{x y z : A} (r : y = z) {p q : x = y} → (p ∙ r)(q ∙ r) → p = q
{x y z : A} (r : y = z) {p q : x = y} → p ∙ r = q ∙ r → p = q
is-injective-concat' refl s = (inv right-unit) ∙ (s ∙ right-unit)
```

Expand Down
4 changes: 4 additions & 0 deletions src/foundation.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ open import foundation.complements public
open import foundation.complements-subtypes public
open import foundation.composite-maps-in-inverse-sequential-diagrams public
open import foundation.composition-algebra public
open import foundation.computational-identity-types public
open import foundation.cones-over-cospan-diagrams public
open import foundation.cones-over-inverse-sequential-diagrams public
open import foundation.conjunction public
Expand Down Expand Up @@ -92,6 +93,7 @@ open import foundation.decidable-propositions public
open import foundation.decidable-relations public
open import foundation.decidable-subtypes public
open import foundation.decidable-types public
open import foundation.definitionally-right-unital-concatenation-identifications public
open import foundation.dependent-binary-homotopies public
open import foundation.dependent-binomial-theorem public
open import foundation.dependent-epimorphisms public
Expand Down Expand Up @@ -331,6 +333,7 @@ open import foundation.spans public
open import foundation.spans-families-of-types public
open import foundation.split-surjective-maps public
open import foundation.standard-apartness-relations public
open import foundation.strictly-involutive-identity-types public
open import foundation.strongly-extensional-maps public
open import foundation.structure public
open import foundation.structure-identity-principle public
Expand Down Expand Up @@ -428,4 +431,5 @@ open import foundation.whiskering-homotopies-composition public
open import foundation.whiskering-homotopies-concatenation public
open import foundation.whiskering-identifications-concatenation public
open import foundation.whiskering-operations public
open import foundation.yoneda-identity-types public
```
Loading
Loading