-
Notifications
You must be signed in to change notification settings - Fork 70
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Hofmann-Streicher universes for graphs and globular types (#1196)
This pull request is part of the formalization of higher category theory project with Ivan. Here we construct Hofmann-Streicher universes for: - directed graphs - reflexive directed graphs - globular types - reflexive globular types Additionally, we add some computations for dependent Pi-types in those toposes, and some infrastructure is streamlined.
- Loading branch information
1 parent
e392dc5
commit 3ae1f7c
Showing
126 changed files
with
14,710 additions
and
1,687 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
src/foundation/action-on-identifications-binary-dependent-functions.lagda.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# The binary action on identifications of binary dependent functions | ||
|
||
```agda | ||
module foundation.action-on-identifications-binary-dependent-functions where | ||
``` | ||
|
||
<details><summary>Imports</summary> | ||
|
||
```agda | ||
open import foundation.action-on-identifications-dependent-functions | ||
open import foundation.binary-dependent-identifications | ||
open import foundation.universe-levels | ||
|
||
open import foundation-core.identity-types | ||
``` | ||
|
||
</details> | ||
|
||
## Idea | ||
|
||
Given a binary dependent function `f : (x : A) (y : B) → C x y` and | ||
[identifications](foundation-core.identity-types.md) `p : x = x'` in `A` and | ||
`q : y = y'` in `B`, we obtain a | ||
[binary dependent identification](foundation.binary-dependent-identifications.md) | ||
|
||
```text | ||
apd-binary f p q : binary-dependent-identification p q (f x y) (f x' y') | ||
``` | ||
|
||
we call this the | ||
{{#concept "binary action on identifications of dependent binary functions" Agda=apd-binary}}. | ||
|
||
## Definitions | ||
|
||
### The binary action on identifications of binary dependent functions | ||
|
||
```agda | ||
module _ | ||
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : A → B → UU l3} | ||
(f : (x : A) (y : B) → C x y) | ||
where | ||
|
||
apd-binary : | ||
{x x' : A} (p : x = x') {y y' : B} (q : y = y') → | ||
binary-dependent-identification C p q (f x y) (f x' y') | ||
apd-binary refl refl = refl | ||
``` | ||
|
||
## See also | ||
|
||
- [Action of functions on identifications](foundation.action-on-identifications-functions.md) | ||
- [Action of functions on higher identifications](foundation.action-on-higher-identifications-functions.md). | ||
- [Action of dependent functions on identifications](foundation.action-on-identifications-dependent-functions.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Binary dependent identifications | ||
|
||
```agda | ||
module foundation.binary-dependent-identifications where | ||
``` | ||
|
||
<details><summary>Imports</summary> | ||
|
||
```agda | ||
open import foundation.binary-transport | ||
open import foundation.identity-types | ||
open import foundation.universe-levels | ||
``` | ||
|
||
</details> | ||
|
||
## Idea | ||
|
||
Consider a family of types `C x y` indexed by `x : A` and `y : B`, and consider | ||
[identifications](foundation-core.identity-types.md) `p : x = x'` and | ||
`q : y = y'` in `A` and `B`, respectively. A | ||
{{#concept "binary dependent identification" Agda=binary-dependent-identification}} | ||
from `c : C x y` to `c' : C x' y'` over `p` and `q` is a | ||
[dependent identification](foundation.dependent-identifications.md) | ||
|
||
```text | ||
r : dependent-identification (C x') p (tr (λ t → C t y) p c) c'. | ||
``` | ||
|
||
## Definitions | ||
|
||
### Binary dependent identifications | ||
|
||
```agda | ||
module _ | ||
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (C : A → B → UU l3) | ||
where | ||
|
||
binary-dependent-identification : | ||
{x x' : A} (p : x = x') {y y' : B} (q : y = y') → | ||
C x y → C x' y' → UU l3 | ||
binary-dependent-identification p q c c' = binary-tr C p q c = c' | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
109 changes: 109 additions & 0 deletions
109
src/foundation/globular-type-of-dependent-functions.lagda.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
# The globular type of dependent functions | ||
|
||
```agda | ||
{-# OPTIONS --guardedness #-} | ||
|
||
module foundation.globular-type-of-dependent-functions where | ||
``` | ||
|
||
<details><summary>Imports</summary> | ||
|
||
```agda | ||
open import foundation.universe-levels | ||
|
||
open import foundation-core.homotopies | ||
|
||
open import globular-types.globular-types | ||
open import globular-types.reflexive-globular-types | ||
open import globular-types.transitive-globular-types | ||
``` | ||
|
||
</details> | ||
|
||
## Idea | ||
|
||
The | ||
{{#concept "globular type of dependent functions" Agda=dependent-function-type-Globular-Type}} | ||
is the [globular type](globular-types.globular-types.md) consisting of | ||
[dependent functions](foundation.dependent-function-types.md) and | ||
[homotopies](foundation-core.homotopies.md) between them. Since homotopies are | ||
themselves defined to be certain dependent functions, they directly provide a | ||
globular structure on dependent function types. | ||
|
||
The globular type of dependent functions of a type family `B` over `A` is | ||
[reflexive](globular-types.reflexive-globular-types.md) and | ||
[transitive](globular-types.transitive-globular-types.md), so it is a | ||
[noncoherent wild higher precategory](wild-category-theory.noncoherent-wild-higher-precategories.md). | ||
|
||
The structures defined in this file are used to define the | ||
[noncoherent large wild higher precategory of types](foundation.wild-category-of-types.md). | ||
|
||
## Definitions | ||
|
||
### The globular type of dependent functions | ||
|
||
```agda | ||
dependent-function-type-Globular-Type : | ||
{l1 l2 : Level} (A : UU l1) (B : A → UU l2) → | ||
Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) | ||
0-cell-Globular-Type (dependent-function-type-Globular-Type A B) = | ||
(x : A) → B x | ||
1-cell-globular-type-Globular-Type | ||
( dependent-function-type-Globular-Type A B) f g = | ||
dependent-function-type-Globular-Type A (eq-value f g) | ||
``` | ||
|
||
## Properties | ||
|
||
### The globular type of dependent functions is reflexive | ||
|
||
```agda | ||
is-reflexive-dependent-function-type-Globular-Type : | ||
{l1 l2 : Level} {A : UU l1} {B : A → UU l2} → | ||
is-reflexive-Globular-Type (dependent-function-type-Globular-Type A B) | ||
is-reflexive-1-cell-is-reflexive-Globular-Type | ||
is-reflexive-dependent-function-type-Globular-Type f = | ||
refl-htpy | ||
is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type | ||
is-reflexive-dependent-function-type-Globular-Type = | ||
is-reflexive-dependent-function-type-Globular-Type | ||
|
||
dependent-function-type-Reflexive-Globular-Type : | ||
{l1 l2 : Level} (A : UU l1) (B : A → UU l2) → | ||
Reflexive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) | ||
globular-type-Reflexive-Globular-Type | ||
( dependent-function-type-Reflexive-Globular-Type A B) = | ||
dependent-function-type-Globular-Type A B | ||
refl-Reflexive-Globular-Type | ||
( dependent-function-type-Reflexive-Globular-Type A B) = | ||
is-reflexive-dependent-function-type-Globular-Type | ||
``` | ||
|
||
### The globular type of dependent functions is transitive | ||
|
||
```agda | ||
is-transitive-dependent-function-type-Globular-Type : | ||
{l1 l2 : Level} {A : UU l1} {B : A → UU l2} → | ||
is-transitive-Globular-Type (dependent-function-type-Globular-Type A B) | ||
comp-1-cell-is-transitive-Globular-Type | ||
is-transitive-dependent-function-type-Globular-Type K H = | ||
H ∙h K | ||
is-transitive-1-cell-globular-type-is-transitive-Globular-Type | ||
is-transitive-dependent-function-type-Globular-Type = | ||
is-transitive-dependent-function-type-Globular-Type | ||
|
||
dependent-function-type-Transitive-Globular-Type : | ||
{l1 l2 : Level} (A : UU l1) (B : A → UU l2) → | ||
Transitive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) | ||
globular-type-Transitive-Globular-Type | ||
( dependent-function-type-Transitive-Globular-Type A B) = | ||
dependent-function-type-Globular-Type A B | ||
is-transitive-Transitive-Globular-Type | ||
( dependent-function-type-Transitive-Globular-Type A B) = | ||
is-transitive-dependent-function-type-Globular-Type | ||
``` | ||
|
||
## See also | ||
|
||
- [The globular type of functions](foundation.globular-type-of-functions.md) | ||
- [The wild category of types](foundation.wild-category-of-types.md) |
Oops, something went wrong.