From 645fdb907f02516c6a1fcb02a5a5020118b6d449 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 24 Sep 2024 09:47:45 -0400 Subject: [PATCH 01/42] work on universal objects --- references.bib | 17 ++ src/graph-theory/directed-graphs.lagda.md | 4 + src/graph-theory/reflexive-graphs.lagda.md | 1 + .../universal-directed-graph.lagda.md | 82 +++++++++ .../universal-reflexive-graph.lagda.md | 112 ++++++++++++ src/structured-types.lagda.md | 2 +- .../binary-globular-maps.lagda.md | 60 +++++++ ...position-structure-globular-types.lagda.md | 72 ++++++++ .../exponents-globular-types.lagda.md | 77 ++++++++ .../globular-homotopies.lagda.md | 28 +++ ...-types.lagda.md => globular-maps.lagda.md} | 86 ++++----- src/structured-types/globular-types.lagda.md | 166 ++++++++++-------- .../maps-large-globular-types.lagda.md | 10 +- ...oducts-families-of-globular-types.lagda.md | 101 +++++++++++ .../transitive-globular-types.lagda.md | 4 + .../universal-globular-type.lagda.md | 130 ++++++++++++++ ...universal-reflexive-globular-type.lagda.md | 117 ++++++++++++ ...t-large-wild-higher-precategories.lagda.md | 4 +- ...oherent-wild-higher-precategories.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 14 +- ...oherent-wild-higher-precategories.lagda.md | 14 +- 21 files changed, 966 insertions(+), 139 deletions(-) create mode 100644 src/graph-theory/universal-directed-graph.lagda.md create mode 100644 src/graph-theory/universal-reflexive-graph.lagda.md create mode 100644 src/structured-types/binary-globular-maps.lagda.md create mode 100644 src/structured-types/composition-structure-globular-types.lagda.md create mode 100644 src/structured-types/exponents-globular-types.lagda.md create mode 100644 src/structured-types/globular-homotopies.lagda.md rename src/structured-types/{maps-globular-types.lagda.md => globular-maps.lagda.md} (51%) create mode 100644 src/structured-types/products-families-of-globular-types.lagda.md create mode 100644 src/structured-types/universal-globular-type.lagda.md create mode 100644 src/structured-types/universal-reflexive-globular-type.lagda.md diff --git a/references.bib b/references.bib index 723dd550cc..d6feb315d6 100644 --- a/references.bib +++ b/references.bib @@ -16,6 +16,23 @@ @article{AKS15 langid = {english} } +@ARTICLE{Awodey22, + author = {{Awodey}, Steve}, + title = "{On Hofmann-Streicher universes}", + journal = {arXiv e-prints}, + keywords = {Mathematics - Category Theory, Mathematics - Logic}, + year = 2022, + month = may, + eid = {arXiv:2205.10917}, + pages = {arXiv:2205.10917}, + doi = {10.48550/arXiv.2205.10917}, +archivePrefix = {arXiv}, + eprint = {2205.10917}, + primaryClass = {math.CT}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2022arXiv220510917A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + @online{BCDE21, title = {Free groups in HoTT/UF in Agda}, author = {Bezem, Marc and Coquand, Thierry and Dybjer, Peter and Escardó, Martín}, diff --git a/src/graph-theory/directed-graphs.lagda.md b/src/graph-theory/directed-graphs.lagda.md index 9e74e28643..c531c0259f 100644 --- a/src/graph-theory/directed-graphs.lagda.md +++ b/src/graph-theory/directed-graphs.lagda.md @@ -133,6 +133,10 @@ module equiv {l1 l2 : Level} where Σ E (λ e → (Id (st e) x) × (Id (tg e) y)) ``` +## See also + +- [The universal directed graph](graph-theory.universal-directed-graph.md) + ## External links - [Digraph](https://ncatlab.org/nlab/show/digraph) at $n$Lab diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index bc0a4e872b..90fe7c4d3b 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -48,6 +48,7 @@ module _ ## See also - [Large reflexive graphs](graph-theory.large-reflexive-graphs.md) +- [The universal reflexive graph](graph-theory.universal-reflexive-graph.md) ## External links diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md new file mode 100644 index 0000000000..e4b8080ee2 --- /dev/null +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -0,0 +1,82 @@ +# The universal directed graph + +```agda +module graph-theory.universal-directed-graph where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.directed-graphs +``` + +
+ +## Idea + +The {{#concpept "universal directed graph"}} `𝒢 l` at [universe level](foundation.universe-levels.md) `l` has the universe `UU l` as its type of vertices, and spans between types as its edges. + +Specifically, the universal directed graph is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the representing pair of arrows + +```text + s + -----> + 0 -----> 1 + t +``` + +The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf + +```text + 𝒰_𝒞 I := Presheaf 𝒞/I + El_𝒞 I A := A *, +``` + +where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. + +We compute a the instances of the slice category `⇉/I`: + +- The slice category `⇉/0` is the terminal category. +- The slice category `⇉/1` is the representing cospan + + ```text + s t + s -----> 1 <----- t + ``` + + The functors `s t : ⇉/0 → ⇉/1` are given by `* ↦ s` and `* ↦ t`, respectively. + +This means that: + +- The type of vertices of the universal directed graph is the universe of types `UU l`. +- The type of edges from `X` to `Y` of the universal directed graph is the type of spans from `X` to `Y`. + +## Definitions + +```agda +module _ + (l1 l2 : Level) + where + + vertex-universal-Directed-Graph : UU (lsuc l1) + vertex-universal-Directed-Graph = UU l1 + + edge-universal-Directed-Graph : + (X Y : vertex-universal-Directed-Graph) → UU (l1 ⊔ lsuc l2) + edge-universal-Directed-Graph X Y = X → Y → UU l2 + + universal-Directed-Graph : Directed-Graph (lsuc l1) (l1 ⊔ lsuc l2) + pr1 universal-Directed-Graph = vertex-universal-Directed-Graph + pr2 universal-Directed-Graph = edge-universal-Directed-Graph +``` + +## Formalization target + +There is a _directed graph duality theorem_, which asserts that for any directed graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal directed graph is equivalent to the type of pairs `(H , f)` consisting of a directed graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should be formalized in a new file called `directed-graph-duality`. + +## See also + +- [The universal reflexive graph](graph-theory.universal-reflexive-graph.md) diff --git a/src/graph-theory/universal-reflexive-graph.lagda.md b/src/graph-theory/universal-reflexive-graph.lagda.md new file mode 100644 index 0000000000..d50e281f8d --- /dev/null +++ b/src/graph-theory/universal-reflexive-graph.lagda.md @@ -0,0 +1,112 @@ +# The universal reflexive graph + +```agda +module graph-theory.universal-reflexive-graph where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +The {{#concpept "universal reflexive graph"}} `𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the reflexive graph category `Γʳ` + +```text + s + -----> + 0 <-r--- 1, + -----> + t +``` + +in which we have `rs = id` and `rt = id`. The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf + +```text + 𝒰_𝒞 I := Presheaf 𝒞/I + El_𝒞 I A := A *, +``` + +where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. + +We compute a few instances of the slice category `Γʳ/I`: + +- The category Γʳ/0 is the category + + ```text + s + -----> + 1 <-r--- r + -----> + t + ``` + + in which we have `rs = id` and `rt = id`. In other words, we have an isomorphism of categories `Γʳ/0 ≅ Γʳ`. + +- The category Γʳ/1 is the category + + ```text + s s + <----- -----> + rs --r--> s -----> 1 <----- t <-r--- rt + <----- -----> + t t + ``` + + in which we have `rs = id` and `rt = id`. + +This means that the universal reflexive graph `𝒰` can be defined as follows: + +- The type of vertices of `𝒰` is the type of reflexive graphs. +- The type of edges from `G` to `H` is the type + + ```text + G₀ → H₀ → Type + ``` + + of binary relations from the type `G₀` of vertices of `G` to the type `H₀` of vertices of `H`. +- The proof of reflexivity of a reflexive graph `G` is the relation + + ```text + G₁ : G₀ → G₀ → Type + ``` + + of edges of `G`. + +## Definitions + +### The universal reflexive graph + +```agda +module _ + (l1 l2 : Level) + where + + vertex-universal-Reflexive-Graph : UU (lsuc l1 ⊔ lsuc l2) + vertex-universal-Reflexive-Graph = Reflexive-Graph l1 l2 + + edge-universal-Reflexvie-Graph : + (G H : vertex-universal-Reflexive-Graph) → UU (l1 ⊔ lsuc l2) + edge-universal-Reflexvie-Graph G H = + vertex-Reflexive-Graph G → vertex-Reflexive-Graph H → UU l2 + + refl-universal-Reflexive-Graph : + (G : vertex-universal-Reflexive-Graph) → + edge-universal-Reflexvie-Graph G G + refl-universal-Reflexive-Graph G = + edge-Reflexive-Graph G +``` + +## Formalization target + +There is a _reflexive graph duality theorem_, which asserts that for any reflexive graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal reflexive graph is equivalent to the type of pairs `(H , f)` consisting of a reflexive graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should be formalized in a new file called `reflexive-graph-duality`. + +## See also + +- [The universal directed graph](graph-theory.universal-directed-graph.md) diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 1d28c6ef9e..f95582f318 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -46,7 +46,7 @@ open import structured-types.large-reflexive-globular-types public open import structured-types.large-symmetric-globular-types public open import structured-types.large-transitive-globular-types public open import structured-types.magmas public -open import structured-types.maps-globular-types public +open import structured-types.globular-maps public open import structured-types.maps-large-globular-types public open import structured-types.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public diff --git a/src/structured-types/binary-globular-maps.lagda.md b/src/structured-types/binary-globular-maps.lagda.md new file mode 100644 index 0000000000..ed5b96437e --- /dev/null +++ b/src/structured-types/binary-globular-maps.lagda.md @@ -0,0 +1,60 @@ +# Binary globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.binary-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider three [globular types](structured-types.globular-types.md) `G`, `H`, and `K`. A {{#concept "binary globular map" Agda=binary-globular-map}} `f : G → H → K` consists of a binary map + +```text + f₀ : G₀ → H₀ → K₀ +``` + +and for every `x x' : G₀`, `y y' : H₀` a binary globular map + +```text + f' : G' x x' → H' y y' → K (f x y) (f x' y') +``` + +on the `1`-cells of `G` and `H`. + +## Definitions + +### Binary globular maps + +```agda +record + binary-globular-map + {l1 l2 l3 l4 l5 l6 : Level} + (G : Globular-Type l1 l2) (H : Globular-Type l3 l4) + (K : Globular-Type l5 l6) : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + where + coinductive + field + 0-cell-binary-globular-map : + 0-cell-Globular-Type G → 0-cell-Globular-Type H → + 0-cell-Globular-Type K + 1-cell-binary-globular-map-binary-globular-map : + {x x' : 0-cell-Globular-Type G} + {y y' : 0-cell-Globular-Type H} → + binary-globular-map + ( 1-cell-globular-type-Globular-Type G x x') + ( 1-cell-globular-type-Globular-Type H y y') + ( 1-cell-globular-type-Globular-Type K + ( 0-cell-binary-globular-map x y) + ( 0-cell-binary-globular-map x' y')) +``` diff --git a/src/structured-types/composition-structure-globular-types.lagda.md b/src/structured-types/composition-structure-globular-types.lagda.md new file mode 100644 index 0000000000..0d4afaf278 --- /dev/null +++ b/src/structured-types/composition-structure-globular-types.lagda.md @@ -0,0 +1,72 @@ +# Composition structure on globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.composition-structure-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.binary-globular-maps +open import structured-types.globular-types +``` + +
+ +## Idea + +A {{#concept "composition structure" Disambiguation="globular type" Agda=composition-Globular-Type}} on a [globular type](structured-types.globular-types.md) `G` consists of a [binary globular map] + +```text + - ∘ - : G' y z → G' x y → G' x z, +``` + +and for any two `0`-cells `x y : G₀` a composition structure on the globular type `G' x y` of `1`-cells of `G`. More explicitly, a composition structure consists of binary operations + +```text + - ∘ - : (𝑛+1)-Cell G y z → (𝑛+1)-Cell G x y → (𝑛+1)-Cell G x z, +``` + +each of which preserve all higher cells of the globular type `G`. Globular composition structure is therefore a strengthening of the [transitivity structure](structured-types.transitive-globular-types.md) on globular types. + +## Definitions + +### Globular composition structure + +```agda +record + composition-Globular-Type + {l1 l2 : Level} (G : Globular-Type l1 l2) : UU (l1 ⊔ l2) + where + coinductive + field + comp-binary-globular-map-composition-Globular-Type : + {x y z : 0-cell-Globular-Type G} → + binary-globular-map + ( 1-cell-globular-type-Globular-Type G y z) + ( 1-cell-globular-type-Globular-Type G x y) + ( 1-cell-globular-type-Globular-Type G x z) + composition-1-cell-globular-type-Globular-Type : + {x y : 0-cell-Globular-Type G} → + composition-Globular-Type + ( 1-cell-globular-type-Globular-Type G x y) + +open composition-Globular-Type public +``` + +### Globular maps preserving globular composition structure + +```agda +record + preserves-composition-globular-map + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (c : composition-Globular-Type G) (d : composition-Globular-Type H) : + UU ? + where + coinductive + field +``` diff --git a/src/structured-types/exponents-globular-types.lagda.md b/src/structured-types/exponents-globular-types.lagda.md new file mode 100644 index 0000000000..e7c2e13d9e --- /dev/null +++ b/src/structured-types/exponents-globular-types.lagda.md @@ -0,0 +1,77 @@ +# Exponents of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.exponents-globular-types where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.globular-types +open import structured-types.products-families-of-globular-types +``` + +
+ +## Idea + +Consider a family `G : I → Globular-Type` of [globular types](structured-types.globular-types.md) indexed by a type `I`. We construct a globular type `Π_I G`. + +## Definitions + +### Exponents of globular types + +```agda +module _ + {l1 l2 l3 : Level} (A : UU l1) (G : Globular-Type l2 l3) + where + + 0-cell-exponent-Globular-Type : UU (l1 ⊔ l2) + 0-cell-exponent-Globular-Type = + 0-cell-indexed-product-Globular-Type (λ (x : A) → G) + + 1-cell-exponent-Globular-Type : + (x y : 0-cell-exponent-Globular-Type) → UU (l1 ⊔ l3) + 1-cell-exponent-Globular-Type = + 1-cell-indexed-product-Globular-Type (λ (x : A) → G) + + globular-structure-0-cell-exponent-Globular-Type : + globular-structure (l1 ⊔ l3) 0-cell-exponent-Globular-Type + globular-structure-0-cell-exponent-Globular-Type = + globular-structure-0-cell-indexed-product-Globular-Type (λ (x : A) → G) + + exponent-Globular-Type : Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) + exponent-Globular-Type = indexed-product-Globular-Type (λ (x : A) → G) +``` + +### Double exponentials of globular types + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : UU l1) (B : UU l2) (G : Globular-Type l3 l4) + where + + 0-cell-double-exponent-Globular-Type : UU (l1 ⊔ l2 ⊔ l3) + 0-cell-double-exponent-Globular-Type = + 0-cell-double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) + + 1-cell-double-exponent-Globular-Type : + (x y : 0-cell-double-exponent-Globular-Type) → UU (l1 ⊔ l2 ⊔ l4) + 1-cell-double-exponent-Globular-Type = + 1-cell-double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) + + globular-structure-0-cell-double-exponent-Globular-Type : + globular-structure (l1 ⊔ l2 ⊔ l4) 0-cell-double-exponent-Globular-Type + globular-structure-0-cell-double-exponent-Globular-Type = + globular-structure-0-cell-double-indexed-product-Globular-Type + ( λ (x : A) (y : B) → G) + + double-exponent-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + double-exponent-Globular-Type = + double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) +``` diff --git a/src/structured-types/globular-homotopies.lagda.md b/src/structured-types/globular-homotopies.lagda.md new file mode 100644 index 0000000000..888524f649 --- /dev/null +++ b/src/structured-types/globular-homotopies.lagda.md @@ -0,0 +1,28 @@ +# Globular homotopies + +```agda +module structured-types.globular-homotopies where +``` + +
Imports + +```agda + +``` + +
+ +## Idea + +Consider two [globular maps](structured-types.globular-maps.md) `f g : G → H` into a [transitive globular type](structured-types.transitive-globular-types.md) `H`. There are two notions of globular homotopy between them, which aren't equivalent even though both generalize the notion of ordinary [homotopy](foundation-core.homotopies.md) in the case of viewing types as [globular types](structured-types.md) via the [identity type](foundation-core.identity-types.md). + +### Standard globular homotopies + +A {{#concept "standard globular homotopy"}} between `H : f ~ g` consists of + +```text + h₀ : {x y : G₀} → G' x y → H' (f₀ x) (g₀ y) + h' : {x y : G₀} → h₀ x y ∘ f' x y ~ g' x y +``` + +where `f'` and `g'` are the globular maps between the [globular types](structured types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` diff --git a/src/structured-types/maps-globular-types.lagda.md b/src/structured-types/globular-maps.lagda.md similarity index 51% rename from src/structured-types/maps-globular-types.lagda.md rename to src/structured-types/globular-maps.lagda.md index 897076319b..56b9538d22 100644 --- a/src/structured-types/maps-globular-types.lagda.md +++ b/src/structured-types/globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.maps-globular-types where +module structured-types.globular-maps where ```
Imports @@ -21,13 +21,13 @@ open import structured-types.globular-types ## Idea -A {{#concept "map" Disambiguation="globular types" Agda=map-Globular-Type}} `f` +A {{#concept "map" Disambiguation="globular types" Agda=globular-map}} `f` between [globular types](structured-types.globular-types.md) `A` and `B` is a map `F₀` of $0$-cells, and for every pair of $n$-cells `x` and `y`, a map of $(n+1)$-cells ```text - Fₙ₊₁ : (𝑛+1)-Cell A x y → (𝑛+1)-Cell B (Fₙ x) (Fₙ y). + F_{𝑛+1} : (𝑛+1)-Cell A x y → (𝑛+1)-Cell B (F_𝑛 x) (F_𝑛 y). ``` ## Definitions @@ -36,101 +36,101 @@ $(n+1)$-cells ```agda record - map-Globular-Type + globular-map {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) where coinductive field - 0-cell-map-Globular-Type : + 0-cell-globular-map : 0-cell-Globular-Type A → 0-cell-Globular-Type B - globular-type-1-cell-map-Globular-Type : + globular-type-1-cell-globular-map : {x y : 0-cell-Globular-Type A} → - map-Globular-Type + globular-map ( 1-cell-globular-type-Globular-Type A x y) ( 1-cell-globular-type-Globular-Type B - ( 0-cell-map-Globular-Type x) - ( 0-cell-map-Globular-Type y)) + ( 0-cell-globular-map x) + ( 0-cell-globular-map y)) -open map-Globular-Type public +open globular-map public module _ {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : map-Globular-Type A B) + (F : globular-map A B) where - 1-cell-map-Globular-Type : + 1-cell-globular-map : {x y : 0-cell-Globular-Type A} → 1-cell-Globular-Type A x y → 1-cell-Globular-Type B - ( 0-cell-map-Globular-Type F x) - ( 0-cell-map-Globular-Type F y) - 1-cell-map-Globular-Type = - 0-cell-map-Globular-Type (globular-type-1-cell-map-Globular-Type F) + ( 0-cell-globular-map F x) + ( 0-cell-globular-map F y) + 1-cell-globular-map = + 0-cell-globular-map (globular-type-1-cell-globular-map F) module _ {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : map-Globular-Type A B) + (F : globular-map A B) where - 2-cell-map-Globular-Type : + 2-cell-globular-map : {x y : 0-cell-Globular-Type A} {f g : 1-cell-Globular-Type A x y} → 2-cell-Globular-Type A f g → 2-cell-Globular-Type B - ( 1-cell-map-Globular-Type F f) - ( 1-cell-map-Globular-Type F g) - 2-cell-map-Globular-Type = - 1-cell-map-Globular-Type (globular-type-1-cell-map-Globular-Type F) + ( 1-cell-globular-map F f) + ( 1-cell-globular-map F g) + 2-cell-globular-map = + 1-cell-globular-map (globular-type-1-cell-globular-map F) module _ {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : map-Globular-Type A B) + (F : globular-map A B) where - 3-cell-map-Globular-Type : + 3-cell-globular-map : {x y : 0-cell-Globular-Type A} {f g : 1-cell-Globular-Type A x y} → {H K : 2-cell-Globular-Type A f g} → 3-cell-Globular-Type A H K → 3-cell-Globular-Type B - ( 2-cell-map-Globular-Type F H) - ( 2-cell-map-Globular-Type F K) - 3-cell-map-Globular-Type = - 2-cell-map-Globular-Type (globular-type-1-cell-map-Globular-Type F) + ( 2-cell-globular-map F H) + ( 2-cell-globular-map F K) + 3-cell-globular-map = + 2-cell-globular-map (globular-type-1-cell-globular-map F) ``` ### The identity map on a globular type ```agda -id-map-Globular-Type : - {l1 l2 : Level} (A : Globular-Type l1 l2) → map-Globular-Type A A -id-map-Globular-Type A = +id-globular-map : + {l1 l2 : Level} (A : Globular-Type l1 l2) → globular-map A A +id-globular-map A = λ where - .0-cell-map-Globular-Type → id - .globular-type-1-cell-map-Globular-Type {x} {y} → - id-map-Globular-Type (1-cell-globular-type-Globular-Type A x y) + .0-cell-globular-map → id + .globular-type-1-cell-globular-map {x} {y} → + id-globular-map (1-cell-globular-type-Globular-Type A x y) ``` ### Composition of maps of globular types ```agda -comp-map-Globular-Type : +comp-globular-map : {l1 l2 l3 l4 l5 l6 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} {C : Globular-Type l5 l6} → - map-Globular-Type B C → map-Globular-Type A B → map-Globular-Type A C -comp-map-Globular-Type g f = + globular-map B C → globular-map A B → globular-map A C +comp-globular-map g f = λ where - .0-cell-map-Globular-Type → - 0-cell-map-Globular-Type g ∘ 0-cell-map-Globular-Type f - .globular-type-1-cell-map-Globular-Type → - comp-map-Globular-Type - ( globular-type-1-cell-map-Globular-Type g) - ( globular-type-1-cell-map-Globular-Type f) + .0-cell-globular-map → + 0-cell-globular-map g ∘ 0-cell-globular-map f + .globular-type-1-cell-globular-map → + comp-globular-map + ( globular-type-1-cell-globular-map g) + ( globular-type-1-cell-globular-map f) ``` diff --git a/src/structured-types/globular-types.lagda.md b/src/structured-types/globular-types.lagda.md index 64ffb4d0cb..b84a30620a 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/structured-types/globular-types.lagda.md @@ -132,83 +132,105 @@ module _ ### The type of globular types ```agda -Globular-Type : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) -Globular-Type l1 l2 = Σ (UU l1) (globular-structure l2) +record + Globular-Type + (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) + where + coinductive + field + 0-cell-Globular-Type : UU l1 + 1-cell-globular-type-Globular-Type : + (x y : 0-cell-Globular-Type) → Globular-Type l2 l2 + +open Globular-Type public module _ {l1 l2 : Level} (A : Globular-Type l1 l2) where - 0-cell-Globular-Type : UU l1 - 0-cell-Globular-Type = pr1 A - - globular-structure-0-cell-Globular-Type : - globular-structure l2 0-cell-Globular-Type - globular-structure-0-cell-Globular-Type = pr2 A - - 1-cell-Globular-Type : (x y : 0-cell-Globular-Type) → UU l2 - 1-cell-Globular-Type = - 1-cell-globular-structure globular-structure-0-cell-Globular-Type - - globular-structure-1-cell-Globular-Type : - (x y : 0-cell-Globular-Type) → - globular-structure l2 (1-cell-Globular-Type x y) - globular-structure-1-cell-Globular-Type = - globular-structure-1-cell-globular-structure - ( globular-structure-0-cell-Globular-Type) - - 1-cell-globular-type-Globular-Type : - (x y : 0-cell-Globular-Type) → Globular-Type l2 l2 - 1-cell-globular-type-Globular-Type x y = - ( 1-cell-Globular-Type x y , globular-structure-1-cell-Globular-Type x y) + 1-cell-Globular-Type : + (x y : 0-cell-Globular-Type A) → UU l2 + 1-cell-Globular-Type x y = + 0-cell-Globular-Type (1-cell-globular-type-Globular-Type A x y) 2-cell-Globular-Type : - {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → UU l2 - 2-cell-Globular-Type = - 2-cell-globular-structure globular-structure-0-cell-Globular-Type - - globular-structure-2-cell-Globular-Type : - {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → - globular-structure l2 (2-cell-Globular-Type f g) - globular-structure-2-cell-Globular-Type = - globular-structure-2-cell-globular-structure - ( globular-structure-0-cell-Globular-Type) - - 2-cell-globular-type-Globular-Type : - {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → - Globular-Type l2 l2 - 2-cell-globular-type-Globular-Type f g = - ( 2-cell-Globular-Type f g , globular-structure-2-cell-Globular-Type f g) - - 3-cell-Globular-Type : - {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} - (H K : 2-cell-Globular-Type f g) → UU l2 - 3-cell-Globular-Type = - 3-cell-globular-structure globular-structure-0-cell-Globular-Type - - 4-cell-Globular-Type : - {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} - {H K : 2-cell-Globular-Type f g} (α β : 3-cell-Globular-Type H K) → UU l2 - 4-cell-Globular-Type = - 4-cell-globular-structure globular-structure-0-cell-Globular-Type -``` - -## Examples - -### The globular structure on a type given by its identity types - -```agda -globular-structure-Id : {l : Level} (A : UU l) → globular-structure l A -globular-structure-Id A = - λ where - .1-cell-globular-structure x y → - x = y - .globular-structure-1-cell-globular-structure x y → - globular-structure-Id (x = y) -``` - -## See also + {x y : 0-cell-Globular-Type A} + (f g : 1-cell-Globular-Type x y) → UU l2 + 2-cell-Globular-Type = ? + +globular-structure-0-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) → + globular-structure l2 (0-cell-Globular-Type A) +1-cell-globular-structure + ( globular-structure-0-cell-Globular-Type A) = + 1-cell-Globular-Type A +globular-structure-1-cell-globular-structure + ( globular-structure-0-cell-Globular-Type A) x y = + globular-structure-0-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A x y) -- [Reflexive globular types](structured-types.reflexive-globular-types.md) -- [Symmetric globular types](structured-types.symmetric-globular-types.md) -- [Transitive globular types](structured-types.transitive-globular-types.md) +module _ + {l1 l2 : Level} (A : Globular-Type l1 l2) + where + +-- 1-cell-Globular-Type : (x y : 0-cell-Globular-Type) → UU l2 +-- 1-cell-Globular-Type = +-- 1-cell-globular-structure globular-structure-0-cell-Globular-Type + +-- globular-structure-1-cell-Globular-Type : +-- (x y : 0-cell-Globular-Type) → +-- globular-structure l2 (1-cell-Globular-Type x y) +-- globular-structure-1-cell-Globular-Type = +-- globular-structure-1-cell-globular-structure +-- ( globular-structure-0-cell-Globular-Type) + +-- 2-cell-Globular-Type : +-- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → UU l2 +-- 2-cell-Globular-Type = +-- 2-cell-globular-structure globular-structure-0-cell-Globular-Type + +-- globular-structure-2-cell-Globular-Type : +-- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → +-- globular-structure l2 (2-cell-Globular-Type f g) +-- globular-structure-2-cell-Globular-Type = +-- globular-structure-2-cell-globular-structure +-- ( globular-structure-0-cell-Globular-Type) + +-- 2-cell-globular-type-Globular-Type : +-- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → +-- Globular-Type l2 l2 +-- 2-cell-globular-type-Globular-Type f g = +-- ( 2-cell-Globular-Type f g , globular-structure-2-cell-Globular-Type f g) + +-- 3-cell-Globular-Type : +-- {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} +-- (H K : 2-cell-Globular-Type f g) → UU l2 +-- 3-cell-Globular-Type = +-- 3-cell-globular-structure globular-structure-0-cell-Globular-Type + +-- 4-cell-Globular-Type : +-- {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} +-- {H K : 2-cell-Globular-Type f g} (α β : 3-cell-Globular-Type H K) → UU l2 +-- 4-cell-Globular-Type = +-- 4-cell-globular-structure globular-structure-0-cell-Globular-Type +-- ``` + +-- ## Examples + +-- ### The globular structure on a type given by its identity types + +-- ```agda +-- globular-structure-Id : {l : Level} (A : UU l) → globular-structure l A +-- globular-structure-Id A = +-- λ where +-- .1-cell-globular-structure x y → +-- x = y +-- .globular-structure-1-cell-globular-structure x y → +-- globular-structure-Id (x = y) +-- ``` + +-- ## See also + +-- - [Reflexive globular types](structured-types.reflexive-globular-types.md) +-- - [Symmetric globular types](structured-types.symmetric-globular-types.md) +-- - [Transitive globular types](structured-types.transitive-globular-types.md) diff --git a/src/structured-types/maps-large-globular-types.lagda.md b/src/structured-types/maps-large-globular-types.lagda.md index be0963436a..38bc916a3f 100644 --- a/src/structured-types/maps-large-globular-types.lagda.md +++ b/src/structured-types/maps-large-globular-types.lagda.md @@ -15,7 +15,7 @@ open import foundation.universe-levels open import structured-types.globular-types open import structured-types.large-globular-types -open import structured-types.maps-globular-types +open import structured-types.globular-maps ```
@@ -51,7 +51,7 @@ record {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} → - map-Globular-Type + globular-map ( globular-type-1-cell-Large-Globular-Type A x y) ( globular-type-1-cell-Large-Globular-Type B ( 0-cell-map-Large-Globular-Type x) @@ -74,7 +74,7 @@ module _ ( 0-cell-map-Large-Globular-Type F x) ( 0-cell-map-Large-Globular-Type F y) 1-cell-map-Large-Globular-Type = - 0-cell-map-Globular-Type (globular-type-1-cell-map-Large-Globular-Type F) + 0-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) module _ {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} @@ -92,7 +92,7 @@ module _ ( 1-cell-map-Large-Globular-Type F f) ( 1-cell-map-Large-Globular-Type F g) 2-cell-map-Large-Globular-Type = - 1-cell-map-Globular-Type (globular-type-1-cell-map-Large-Globular-Type F) + 1-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) module _ {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} @@ -111,5 +111,5 @@ module _ ( 2-cell-map-Large-Globular-Type F H) ( 2-cell-map-Large-Globular-Type F K) 3-cell-map-Large-Globular-Type = - 2-cell-map-Globular-Type (globular-type-1-cell-map-Large-Globular-Type F) + 2-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) ``` diff --git a/src/structured-types/products-families-of-globular-types.lagda.md b/src/structured-types/products-families-of-globular-types.lagda.md new file mode 100644 index 0000000000..4a28a424b9 --- /dev/null +++ b/src/structured-types/products-families-of-globular-types.lagda.md @@ -0,0 +1,101 @@ +# Products of families of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.products-families-of-globular-types where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider a family `G : I → Globular-Type` of [globular types](structured-types.globular-types.md) indexed by a type `I`. The {{#concept "indexed product" Disambiguation="family of globular types" Agda=indexed-product-Globular-Type}} `Π_I G` is the globular type given by + +```text + (Π_I G)₀ := (i : I) → (G i)₀ + (Π_I G)' x y := Π_I (λ i → (G i)' (x i) (y i)). +``` + +## Definitions + +### Indexed products of globular types + +```agda +module _ + {l1 : Level} {I : UU l1} + where + + 0-cell-indexed-product-Globular-Type : + {l2 l3 : Level} (G : I → Globular-Type l2 l3) → UU (l1 ⊔ l2) + 0-cell-indexed-product-Globular-Type G = + (i : I) → 0-cell-Globular-Type (G i) + + 1-cell-indexed-product-Globular-Type : + {l2 l3 : Level} (G : I → Globular-Type l2 l3) + (x y : 0-cell-indexed-product-Globular-Type G) → UU (l1 ⊔ l3) + 1-cell-indexed-product-Globular-Type G x y = + (i : I) → 1-cell-Globular-Type (G i) (x i) (y i) + + globular-structure-0-cell-indexed-product-Globular-Type : + {l2 l3 : Level} (G : I → Globular-Type l2 l3) → + globular-structure (l1 ⊔ l3) (0-cell-indexed-product-Globular-Type G) + 1-cell-globular-structure + ( globular-structure-0-cell-indexed-product-Globular-Type G) = + 1-cell-indexed-product-Globular-Type G + globular-structure-1-cell-globular-structure + ( globular-structure-0-cell-indexed-product-Globular-Type G) x y = + globular-structure-0-cell-indexed-product-Globular-Type + ( λ i → 1-cell-globular-type-Globular-Type (G i) (x i) (y i)) + + indexed-product-Globular-Type : + {l2 l3 : Level} (G : I → Globular-Type l2 l3) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) + pr1 (indexed-product-Globular-Type G) = + 0-cell-indexed-product-Globular-Type G + pr2 (indexed-product-Globular-Type G) = + globular-structure-0-cell-indexed-product-Globular-Type G +``` + +### Double indexed products of families of globular types + +```agda +module _ + {l1 l2 l3 l4 : Level} {I : UU l1} {J : I → UU l2} + (G : (i : I) (j : J i) → Globular-Type l3 l4) + where + + 0-cell-double-indexed-product-Globular-Type : UU (l1 ⊔ l2 ⊔ l3) + 0-cell-double-indexed-product-Globular-Type = + 0-cell-indexed-product-Globular-Type + ( λ i → indexed-product-Globular-Type (G i)) + + 1-cell-double-indexed-product-Globular-Type : + (x y : 0-cell-double-indexed-product-Globular-Type) → UU (l1 ⊔ l2 ⊔ l4) + 1-cell-double-indexed-product-Globular-Type = + 1-cell-indexed-product-Globular-Type + ( λ i → indexed-product-Globular-Type (G i)) + + globular-structure-0-cell-double-indexed-product-Globular-Type : + globular-structure + ( l1 ⊔ l2 ⊔ l4) + ( 0-cell-double-indexed-product-Globular-Type) + globular-structure-0-cell-double-indexed-product-Globular-Type = + globular-structure-0-cell-indexed-product-Globular-Type + ( λ i → indexed-product-Globular-Type (G i)) + + double-indexed-product-Globular-Type : + Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + double-indexed-product-Globular-Type = + indexed-product-Globular-Type + ( λ i → indexed-product-Globular-Type (G i)) +``` diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 798d612054..1daa674db4 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -136,3 +136,7 @@ transitive-globular-structure-Id : transitive-globular-structure-Id A = ( globular-structure-Id A , is-transitive-globular-structure-Id A) ``` + +## See also + +- [Composition structure on globular types](structured-types.composition-structure-globular-types.md) diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md new file mode 100644 index 0000000000..c6076d62b6 --- /dev/null +++ b/src/structured-types/universal-globular-type.lagda.md @@ -0,0 +1,130 @@ +# The universal globular type + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.universal-globular-type where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.spans +open import foundation.universe-levels + +open import structured-types.globular-types +``` + +
+ +## Idea + +The {{#concpept "universal globular type"}} `𝒢 l` at [universe level](foundation.universe-levels.md) `l` has the universe `UU l` as its type of `0`-cells, and uses iterated binary relations for its globular structure. + +Specifically, the universal globular type is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the globular category `Γ` + +```text + s₀ s₁ s₂ + -----> -----> -----> + 0 -----> 1 -----> 2 -----> ⋯. + t₀ t₁ t₂ +``` + +The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf + +```text + 𝒰_𝒞 I := Presheaf 𝒞/I + El_𝒞 I A := A *, +``` + +where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. + +We compute a few instances of the slice category `Γ/I`: + +- The slice category `Γ/0` is the terminal category. +- The slice category `Γ/1` is the representing cospan + + ```text + s₀ t₀ + s₀ -----> 1 <----- t₀ + ``` + + The functors `s₀ t₀ : Γ/0 → Γ/1` are given by `* ↦ s₀` and `* ↦ t₀`, respectively. + +- The slice category `Γ/2` is the free category on the graph + + ```text + s₁s₀ t₁s₀ + | | + | | + ∨ ∨ + s₁ -----> 1 <----- t₁ + ∧ ∧ + | | + | | + s₁t₀ t₁t₀ + ``` + + and so on. The functors `s₁ t₁ : Γ/1 → Γ/2` are given by + + ```text + s₀ ↦ s₁s₀ s₀ ↦ t₁s₀ + 1 ↦ s₁ and 1 ↦ t₁ + t₀ ↦ s₁t₀ t₀ ↦ t₁t₀ + ``` + + respectively. + +This means that: + +- The type `0`-cells of the universal globular type is the universe of types `UU l`. +- The type of `1`-cells from `X` to `Y` of the universal globular type is the type of spans from `X` to `Y`. +- The type of `2`-cells + +## Definitions + +### Iterated binary relations + +```agda +record + iterated-binary-relation + {l1 : Level} (l2 : Level) (X Y : UU l1) : UU (l1 ⊔ lsuc l2) + where + coinductive + field + rel-iterated-binary-relation : (x : X) (y : Y) → UU l2 + iterated-binary-relation-rel-iterated-binary-relation : + (x x' : X) (y y' : Y) → + iterated-binary-relation l2 + ( rel-iterated-binary-relation x y) + ( rel-iterated-binary-relation x' y') + +open iterated-binary-relation public +``` + +### The universal globular type + +```agda +0-cell-universal-Globular-Type : (l1 l2 : Level) → UU (lsuc l1) +0-cell-universal-Globular-Type l1 l2 = UU l1 + +globular-structure-universal-Globular-Type : + (l1 l2 : Level) → + globular-structure (l1 ⊔ lsuc l2) (0-cell-universal-Globular-Type l1 l2) +1-cell-globular-structure + ( globular-structure-universal-Globular-Type l1 l2) X Y = + X → Y → UU l2 +globular-structure-1-cell-globular-structure + ( globular-structure-universal-Globular-Type l1 l2) X Y = + {!globular-structure-universal-Globular-Type ? ?!} + +universal-Globular-Type : (l1 l2 : Level) → Globular-Type (lsuc l1) {!!} +pr1 (universal-Globular-Type l1 l2) = 0-cell-universal-Globular-Type l1 l2 +pr2 (universal-Globular-Type l1 l2) = {!!} + +``` + +## References + +{{#bibliography}} diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md new file mode 100644 index 0000000000..ee85ed337c --- /dev/null +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -0,0 +1,117 @@ +# The universal reflexive globular type + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.universal-reflexive-globular-type where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +The {{#concpept "universal reflexive globular type"}} `𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the reflexive globular category `Γʳ` + +```text + s₀ s₁ s₂ + -----> -----> -----> + 0 <-r₀-- 1 <-r₁-- 2 <-r₂-- ⋯, + -----> -----> -----> + t₀ t₁ t₂ +``` + +in which the _reflexive globular identities_ + +```text + rs = id + rt = id + ss = ts + tt = st +``` + +hold. + +The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf +obtained by apply the functoriality of the right adjoint `ν : Cat → Psh 𝒞` of +the _category of elements functor_ `∫_𝒞 : Psh 𝒞 → Cat` to the universal +discrete fibration `π : Pointed-Type → Type`. More specifically, the +Hofmann-Streicher universe `(𝒰_𝒞 , El_𝒞)` is given by + +```text + 𝒰_𝒞 I := Presheaf 𝒞/I + El_𝒞 I A := A *, +``` + +where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. + +We compute a few instances of the slice category `Γʳ/I`: + +- The category Γʳ/0 is the category + + ```text + s₀ s₁ s₂ + -----> -----> -----> + 1 <-r₀-- r₀ <-r₁-- r₀r₁ <-r₂-- ⋯. + -----> -----> -----> + t₀ t₁ t₂ + ``` + + In other words, we have an isomorphism of categories `Γʳ/0 ≅ Γʳ`. + +- The category Γʳ/1 is the category + + ```text + ⋮ + r₁r₂ + ∧|∧ + ||| + |∨| + r₁ + ∧|∧ + s₁ s₀ ||| s₀ s₁ + <----- <----- s₀ |∨| t₀ -----> -----> + ⋯ s₀r₀r₁ --r₁-> s₀r₀ --r₀-> s₀ -----> 1 <----- t₀ <-r₀-- t₀r₀ <-r₁-- t₀r₀r₁ ⋯. + <----- <----- -----> -----> + t₁ t₀ t₀ t₁ + ``` + +## Definitions + +```agda +module _ + (l1 l2 : Level) + where + + 0-cell-universal-Reflexive-Globular-Type : UU (lsuc l1 ⊔ lsuc l2) + 0-cell-universal-Reflexive-Globular-Type = + Reflexive-Globular-Type l1 l2 + + 1-cell-reflexive-globular-type-universal-Reflexive-Globular-Type : + (G H : 0-cell-universal-Reflexive-Globular-Type) → + Reflexive-Globular-Type {!!} {!!} + 1-cell-reflexive-globular-type-universal-Reflexive-Globular-Type G H = + {!!} +``` + +## See also + +- [The universal directed graph](graph-theory.universal-directed-graph.md) +- [The universal globular type](structured-types.universal-globular-type.md) +- [The universal reflexive graph](graph-theory.universal-reflexive-graph.md) + +## External links + +- [Globular sets](https://ncatlab.org/nlab/show/globular+set) at the $n$Lab. + +## References + +{{#bibliography}} diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index 6e923d8faa..56f78347cb 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -15,7 +15,7 @@ open import foundation.identity-types open import foundation.universe-levels open import structured-types.globular-types -open import structured-types.maps-globular-types +open import structured-types.globular-maps open import wild-category-theory.colax-functors-noncoherent-wild-higher-precategories open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories @@ -190,7 +190,7 @@ record {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → - map-Globular-Type + globular-map ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 0c5b5f044f..2b2c9c1495 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -15,7 +15,7 @@ open import foundation.identity-types open import foundation.universe-levels open import structured-types.globular-types -open import structured-types.maps-globular-types +open import structured-types.globular-maps open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-wild-higher-precategories @@ -175,7 +175,7 @@ module _ hom-globular-type-map-colax-functor-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → - map-Globular-Type + globular-map ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index 292ce8a8b0..ff8e2d21f0 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -16,7 +16,7 @@ open import foundation.universe-levels open import structured-types.globular-types open import structured-types.large-globular-types -open import structured-types.maps-globular-types +open import structured-types.globular-maps open import structured-types.maps-large-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories @@ -67,7 +67,7 @@ record {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → - map-Globular-Type + globular-map ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) @@ -91,7 +91,7 @@ module _ ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F x) ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F y) hom-map-Noncoherent-Large-Wild-Higher-Precategory = - 0-cell-map-Globular-Type + 0-cell-globular-map ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory : @@ -104,7 +104,7 @@ module _ ( hom-map-Noncoherent-Large-Wild-Higher-Precategory f) ( hom-map-Noncoherent-Large-Wild-Higher-Precategory g) 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory = - 1-cell-map-Globular-Type + 1-cell-globular-map ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory : @@ -126,7 +126,7 @@ module _ .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Large-Wild-Higher-Precategory .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - globular-type-1-cell-map-Globular-Type + globular-type-1-cell-globular-map ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) ``` @@ -145,7 +145,7 @@ module _ .obj-map-Noncoherent-Large-Wild-Higher-Precategory → id .hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory → - id-map-Globular-Type _ + id-globular-map _ ``` ### Composition of maps of noncoherent large wild higher precategories @@ -170,7 +170,7 @@ module _ obj-map-Noncoherent-Large-Wild-Higher-Precategory G ∘ obj-map-Noncoherent-Large-Wild-Higher-Precategory F .hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory → - comp-map-Globular-Type + comp-globular-map ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory G) ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) ``` diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 051aa89d16..17c9964575 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -15,7 +15,7 @@ open import foundation.identity-types open import foundation.universe-levels open import structured-types.globular-types -open import structured-types.maps-globular-types +open import structured-types.globular-maps open import wild-category-theory.noncoherent-wild-higher-precategories ``` @@ -60,7 +60,7 @@ record hom-globular-type-map-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → - map-Globular-Type + globular-map ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ ( obj-map-Noncoherent-Wild-Higher-Precategory x) @@ -82,7 +82,7 @@ module _ ( obj-map-Noncoherent-Wild-Higher-Precategory F x) ( obj-map-Noncoherent-Wild-Higher-Precategory F y) hom-map-Noncoherent-Wild-Higher-Precategory = - 0-cell-map-Globular-Type + 0-cell-globular-map ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) 2-hom-map-Noncoherent-Wild-Higher-Precategory : @@ -93,7 +93,7 @@ module _ ( hom-map-Noncoherent-Wild-Higher-Precategory f) ( hom-map-Noncoherent-Wild-Higher-Precategory g) 2-hom-map-Noncoherent-Wild-Higher-Precategory = - 1-cell-map-Globular-Type + 1-cell-globular-map ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory : @@ -113,7 +113,7 @@ module _ .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Wild-Higher-Precategory .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - globular-type-1-cell-map-Globular-Type + globular-type-1-cell-globular-map ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) ``` @@ -131,7 +131,7 @@ module _ .obj-map-Noncoherent-Wild-Higher-Precategory → id .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - id-map-Globular-Type _ + id-globular-map _ ``` ### Composition of maps between noncoherent wild higher precategories @@ -154,7 +154,7 @@ module _ obj-map-Noncoherent-Wild-Higher-Precategory G ∘ obj-map-Noncoherent-Wild-Higher-Precategory F .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - comp-map-Globular-Type + comp-globular-map ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory G) ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) ``` From 3e17ca80c503c25c6c62823b7cdbc16bda418206 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sat, 28 Sep 2024 14:15:00 -0400 Subject: [PATCH 02/42] adding infrastructure for globular types --- src/foundation/binary-relations.lagda.md | 3 + ...ependent-reflexive-globular-types.lagda.md | 39 +- src/structured-types/globular-maps.lagda.md | 16 +- src/structured-types/globular-types.lagda.md | 241 ++++++--- .../large-globular-types.lagda.md | 170 ++++-- .../large-reflexive-globular-types.lagda.md | 46 ++ .../large-transitive-globular-types.lagda.md | 74 ++- .../maps-large-globular-types.lagda.md | 12 +- .../reflexive-globular-types.lagda.md | 48 +- .../transitive-globular-types.lagda.md | 110 +++- .../wild-category-of-pointed-types.lagda.md | 485 +++++++++++------- ...t-large-wild-higher-precategories.lagda.md | 2 +- ...oherent-wild-higher-precategories.lagda.md | 2 +- ...t-large-wild-higher-precategories.lagda.md | 303 +++++++---- ...oherent-wild-higher-precategories.lagda.md | 17 +- 15 files changed, 1063 insertions(+), 505 deletions(-) diff --git a/src/foundation/binary-relations.lagda.md b/src/foundation/binary-relations.lagda.md index faeb08166c..b60855cc61 100644 --- a/src/foundation/binary-relations.lagda.md +++ b/src/foundation/binary-relations.lagda.md @@ -146,6 +146,9 @@ module _ is-transitive : UU (l1 ⊔ l2) is-transitive = (x y z : A) → R y z → R x y → R x z + + is-transitive' : UU (l1 ⊔ l2) + is-transitive' = {x y z : A} → R y z → R x y → R x z ``` ### The predicate of being a transitive relation valued in propositions diff --git a/src/structured-types/dependent-reflexive-globular-types.lagda.md b/src/structured-types/dependent-reflexive-globular-types.lagda.md index 3f7100064f..8c4798d598 100644 --- a/src/structured-types/dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/dependent-reflexive-globular-types.lagda.md @@ -156,42 +156,19 @@ construction makes essential use of the reflexivity elements of the base reflexive globular type. ```agda -globular-structure-family-globular-types-Dependent-Reflexive-Globular-Type : - {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} - (H : Dependent-Reflexive-Globular-Type l3 l4 G) - (x : 0-cell-Reflexive-Globular-Type G) → - globular-structure l4 (0-cell-Dependent-Reflexive-Globular-Type H x) -1-cell-globular-structure - ( globular-structure-family-globular-types-Dependent-Reflexive-Globular-Type - { G = G} - ( H) - ( x)) - ( u) - ( v) = - 1-cell-Dependent-Reflexive-Globular-Type H u v - ( refl-0-cell-Reflexive-Globular-Type G) -globular-structure-1-cell-globular-structure - ( globular-structure-family-globular-types-Dependent-Reflexive-Globular-Type - { G = G} - ( H) - ( x)) - ( u) - ( v) = - globular-structure-family-globular-types-Dependent-Reflexive-Globular-Type - ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type - H u v) - ( refl-0-cell-Reflexive-Globular-Type G) - family-globular-types-Dependent-Reflexive-Globular-Type : {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} (H : Dependent-Reflexive-Globular-Type l3 l4 G) → 0-cell-Reflexive-Globular-Type G → Globular-Type l3 l4 -pr1 (family-globular-types-Dependent-Reflexive-Globular-Type H x) = +0-cell-Globular-Type + ( family-globular-types-Dependent-Reflexive-Globular-Type H x) = 0-cell-Dependent-Reflexive-Globular-Type H x -pr2 (family-globular-types-Dependent-Reflexive-Globular-Type H x) = - globular-structure-family-globular-types-Dependent-Reflexive-Globular-Type - ( H) - ( x) +1-cell-globular-type-Globular-Type + ( family-globular-types-Dependent-Reflexive-Globular-Type {G = G} H x) y z = + family-globular-types-Dependent-Reflexive-Globular-Type + ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type + H y z) + ( refl-0-cell-Reflexive-Globular-Type G) is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type : {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} diff --git a/src/structured-types/globular-maps.lagda.md b/src/structured-types/globular-maps.lagda.md index 56b9538d22..bcbd04c4c1 100644 --- a/src/structured-types/globular-maps.lagda.md +++ b/src/structured-types/globular-maps.lagda.md @@ -45,7 +45,7 @@ record 0-cell-globular-map : 0-cell-Globular-Type A → 0-cell-Globular-Type B - globular-type-1-cell-globular-map : + 1-cell-globular-map-globular-map : {x y : 0-cell-Globular-Type A} → globular-map ( 1-cell-globular-type-Globular-Type A x y) @@ -68,7 +68,7 @@ module _ ( 0-cell-globular-map F x) ( 0-cell-globular-map F y) 1-cell-globular-map = - 0-cell-globular-map (globular-type-1-cell-globular-map F) + 0-cell-globular-map (1-cell-globular-map-globular-map F) module _ {l1 l2 l3 l4 : Level} @@ -84,7 +84,7 @@ module _ ( 1-cell-globular-map F f) ( 1-cell-globular-map F g) 2-cell-globular-map = - 1-cell-globular-map (globular-type-1-cell-globular-map F) + 1-cell-globular-map (1-cell-globular-map-globular-map F) module _ {l1 l2 l3 l4 : Level} @@ -101,7 +101,7 @@ module _ ( 2-cell-globular-map F H) ( 2-cell-globular-map F K) 3-cell-globular-map = - 2-cell-globular-map (globular-type-1-cell-globular-map F) + 2-cell-globular-map (1-cell-globular-map-globular-map F) ``` ### The identity map on a globular type @@ -112,7 +112,7 @@ id-globular-map : id-globular-map A = λ where .0-cell-globular-map → id - .globular-type-1-cell-globular-map {x} {y} → + .1-cell-globular-map-globular-map {x} {y} → id-globular-map (1-cell-globular-type-Globular-Type A x y) ``` @@ -129,8 +129,8 @@ comp-globular-map g f = λ where .0-cell-globular-map → 0-cell-globular-map g ∘ 0-cell-globular-map f - .globular-type-1-cell-globular-map → + .1-cell-globular-map-globular-map → comp-globular-map - ( globular-type-1-cell-globular-map g) - ( globular-type-1-cell-globular-map f) + ( 1-cell-globular-map-globular-map g) + ( 1-cell-globular-map-globular-map f) ``` diff --git a/src/structured-types/globular-types.lagda.md b/src/structured-types/globular-types.lagda.md index b84a30620a..688cd12f7d 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/structured-types/globular-types.lagda.md @@ -74,7 +74,7 @@ record open globular-structure public ``` -#### Iterated projections for globular structures +#### Infrastructure for globular structures ```agda module _ @@ -144,19 +144,104 @@ record open Globular-Type public -module _ +make-Globular-Type : + {l1 l2 : Level} {A : UU l1} → + globular-structure l2 A → Globular-Type l1 l2 +0-cell-Globular-Type + ( make-Globular-Type {A = A} B) = A +1-cell-globular-type-Globular-Type + ( make-Globular-Type B) + x y = + make-Globular-Type + ( globular-structure-1-cell-globular-structure B x y) + +globular-type-1-cell-globular-structure : + {l1 l2 : Level} {A : UU l1} (B : globular-structure l2 A) → + (x y : A) → Globular-Type l2 l2 +globular-type-1-cell-globular-structure B x y = + make-Globular-Type + ( globular-structure-1-cell-globular-structure B x y) + +globular-type-2-cell-globular-structure : + {l1 l2 : Level} {A : UU l1} (B : globular-structure l2 A) → + {x y : A} (f g : 1-cell-globular-structure B x y) → Globular-Type l2 l2 +globular-type-2-cell-globular-structure B f g = + make-Globular-Type + ( globular-structure-2-cell-globular-structure B f g) + +1-cell-Globular-Type : {l1 l2 : Level} (A : Globular-Type l1 l2) - where + (x y : 0-cell-Globular-Type A) → UU l2 +1-cell-Globular-Type A x y = + 0-cell-Globular-Type (1-cell-globular-type-Globular-Type A x y) + +2-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + (f g : 1-cell-Globular-Type A x y) → UU l2 +2-cell-Globular-Type A = + 1-cell-Globular-Type (1-cell-globular-type-Globular-Type A _ _) - 1-cell-Globular-Type : - (x y : 0-cell-Globular-Type A) → UU l2 - 1-cell-Globular-Type x y = - 0-cell-Globular-Type (1-cell-globular-type-Globular-Type A x y) +3-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + (s t : 2-cell-Globular-Type A f g) → UU l2 +3-cell-Globular-Type A = + 2-cell-Globular-Type (1-cell-globular-type-Globular-Type A _ _) - 2-cell-Globular-Type : - {x y : 0-cell-Globular-Type A} - (f g : 1-cell-Globular-Type x y) → UU l2 - 2-cell-Globular-Type = ? +4-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + (u v : 3-cell-Globular-Type A s t) → UU l2 +4-cell-Globular-Type A = + 3-cell-Globular-Type (1-cell-globular-type-Globular-Type A _ _) + +5-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + {u v : 3-cell-Globular-Type A s t} + (α β : 4-cell-Globular-Type A u v) → UU l2 +5-cell-Globular-Type A = + 4-cell-Globular-Type (1-cell-globular-type-Globular-Type A _ _) + +2-cell-globular-type-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + (f g : 1-cell-Globular-Type A x y) → Globular-Type l2 l2 +2-cell-globular-type-Globular-Type A = + 1-cell-globular-type-Globular-Type (1-cell-globular-type-Globular-Type A _ _) + +3-cell-globular-type-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + (s t : 2-cell-Globular-Type A f g) → Globular-Type l2 l2 +3-cell-globular-type-Globular-Type A = + 1-cell-globular-type-Globular-Type (2-cell-globular-type-Globular-Type A _ _) + +4-cell-globular-type-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + (u v : 3-cell-Globular-Type A s t) → Globular-Type l2 l2 +4-cell-globular-type-Globular-Type A = + 1-cell-globular-type-Globular-Type (3-cell-globular-type-Globular-Type A _ _) + +5-cell-globular-type-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + {u v : 3-cell-Globular-Type A s t} + (α β : 4-cell-Globular-Type A u v) → Globular-Type l2 l2 +5-cell-globular-type-Globular-Type A = + 1-cell-globular-type-Globular-Type (4-cell-globular-type-Globular-Type A _ _) globular-structure-0-cell-Globular-Type : {l1 l2 : Level} (A : Globular-Type l1 l2) → @@ -169,68 +254,74 @@ globular-structure-1-cell-globular-structure globular-structure-0-cell-Globular-Type ( 1-cell-globular-type-Globular-Type A x y) -module _ +globular-structure-1-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) (x y : 0-cell-Globular-Type A) → + globular-structure l2 (1-cell-Globular-Type A x y) +globular-structure-1-cell-Globular-Type A x y = + globular-structure-0-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A x y) + +globular-structure-2-cell-Globular-Type : {l1 l2 : Level} (A : Globular-Type l1 l2) - where - --- 1-cell-Globular-Type : (x y : 0-cell-Globular-Type) → UU l2 --- 1-cell-Globular-Type = --- 1-cell-globular-structure globular-structure-0-cell-Globular-Type - --- globular-structure-1-cell-Globular-Type : --- (x y : 0-cell-Globular-Type) → --- globular-structure l2 (1-cell-Globular-Type x y) --- globular-structure-1-cell-Globular-Type = --- globular-structure-1-cell-globular-structure --- ( globular-structure-0-cell-Globular-Type) - --- 2-cell-Globular-Type : --- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → UU l2 --- 2-cell-Globular-Type = --- 2-cell-globular-structure globular-structure-0-cell-Globular-Type - --- globular-structure-2-cell-Globular-Type : --- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → --- globular-structure l2 (2-cell-Globular-Type f g) --- globular-structure-2-cell-Globular-Type = --- globular-structure-2-cell-globular-structure --- ( globular-structure-0-cell-Globular-Type) - --- 2-cell-globular-type-Globular-Type : --- {x y : 0-cell-Globular-Type} (f g : 1-cell-Globular-Type x y) → --- Globular-Type l2 l2 --- 2-cell-globular-type-Globular-Type f g = --- ( 2-cell-Globular-Type f g , globular-structure-2-cell-Globular-Type f g) - --- 3-cell-Globular-Type : --- {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} --- (H K : 2-cell-Globular-Type f g) → UU l2 --- 3-cell-Globular-Type = --- 3-cell-globular-structure globular-structure-0-cell-Globular-Type - --- 4-cell-Globular-Type : --- {x y : 0-cell-Globular-Type} {f g : 1-cell-Globular-Type x y} --- {H K : 2-cell-Globular-Type f g} (α β : 3-cell-Globular-Type H K) → UU l2 --- 4-cell-Globular-Type = --- 4-cell-globular-structure globular-structure-0-cell-Globular-Type --- ``` - --- ## Examples - --- ### The globular structure on a type given by its identity types - --- ```agda --- globular-structure-Id : {l : Level} (A : UU l) → globular-structure l A --- globular-structure-Id A = --- λ where --- .1-cell-globular-structure x y → --- x = y --- .globular-structure-1-cell-globular-structure x y → --- globular-structure-Id (x = y) --- ``` - --- ## See also - --- - [Reflexive globular types](structured-types.reflexive-globular-types.md) --- - [Symmetric globular types](structured-types.symmetric-globular-types.md) --- - [Transitive globular types](structured-types.transitive-globular-types.md) + {x y : 0-cell-Globular-Type A} + (f g : 1-cell-Globular-Type A x y) → + globular-structure l2 (2-cell-Globular-Type A f g) +globular-structure-2-cell-Globular-Type A = + globular-structure-1-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A _ _) + +globular-structure-3-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + (s t : 2-cell-Globular-Type A f g) → + globular-structure l2 (3-cell-Globular-Type A s t) +globular-structure-3-cell-Globular-Type A = + globular-structure-2-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A _ _) + +globular-structure-4-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + (u v : 3-cell-Globular-Type A s t) → + globular-structure l2 (4-cell-Globular-Type A u v) +globular-structure-4-cell-Globular-Type A = + globular-structure-3-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A _ _) + +globular-structure-5-cell-Globular-Type : + {l1 l2 : Level} (A : Globular-Type l1 l2) + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + {s t : 2-cell-Globular-Type A f g} + {u v : 3-cell-Globular-Type A s t} + (α β : 4-cell-Globular-Type A u v) → + globular-structure l2 (5-cell-Globular-Type A α β) +globular-structure-5-cell-Globular-Type A = + globular-structure-4-cell-Globular-Type + ( 1-cell-globular-type-Globular-Type A _ _) +``` + +## Examples + +### The globular structure on a type given by its identity types + +```agda +globular-type-Type : {l : Level} → UU l → Globular-Type l l +0-cell-Globular-Type (globular-type-Type A) = A +1-cell-globular-type-Globular-Type (globular-type-Type A) x y = + globular-type-Type (x = y) + +globular-structure-Id : {l : Level} (A : UU l) → globular-structure l A +1-cell-globular-structure (globular-structure-Id A) x y = x = y +globular-structure-1-cell-globular-structure (globular-structure-Id A) x y = + globular-structure-Id (x = y) +``` + +## See also + +- [Reflexive globular types](structured-types.reflexive-globular-types.md) +- [Symmetric globular types](structured-types.symmetric-globular-types.md) +- [Transitive globular types](structured-types.transitive-globular-types.md) diff --git a/src/structured-types/large-globular-types.lagda.md b/src/structured-types/large-globular-types.lagda.md index 04675ce811..26aaa51d6c 100644 --- a/src/structured-types/large-globular-types.lagda.md +++ b/src/structured-types/large-globular-types.lagda.md @@ -141,11 +141,27 @@ record field 0-cell-Large-Globular-Type : (l : Level) → UU (α l) - globular-structure-0-cell-Large-Globular-Type : - large-globular-structure β 0-cell-Large-Globular-Type + 1-cell-globular-type-Large-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Globular-Type l1) + (y : 0-cell-Large-Globular-Type l2) → + Globular-Type (β l1 l2) (β l1 l2) open Large-Globular-Type public +make-Large-Globular-Type : + {α : Level → Level} {β : Level → Level → Level} → + {A : (l : Level) → UU (α l)} → + large-globular-structure β A → Large-Globular-Type α β +0-cell-Large-Globular-Type + ( make-Large-Globular-Type {A = A} B) = + A +1-cell-globular-type-Large-Globular-Type + ( make-Large-Globular-Type B) + x y = + make-Globular-Type + ( globular-structure-1-cell-large-globular-structure B x y) + module _ {α : Level → Level} {β : Level → Level → Level} (A : Large-Globular-Type α β) where @@ -155,36 +171,102 @@ module _ (x : 0-cell-Large-Globular-Type A l1) (y : 0-cell-Large-Globular-Type A l2) → UU (β l1 l2) - 1-cell-Large-Globular-Type = - 1-cell-large-globular-structure - ( globular-structure-0-cell-Large-Globular-Type A) + 1-cell-Large-Globular-Type x y = + 0-cell-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A x y) - globular-structure-1-cell-Large-Globular-Type : + 2-cell-Large-Globular-Type : {l1 l2 : Level} - (x : 0-cell-Large-Globular-Type A l1) - (y : 0-cell-Large-Globular-Type A l2) → - globular-structure (β l1 l2) (1-cell-Large-Globular-Type x y) - globular-structure-1-cell-Large-Globular-Type = - globular-structure-1-cell-large-globular-structure - ( globular-structure-0-cell-Large-Globular-Type A) + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + (f g : 1-cell-Large-Globular-Type x y) → UU (β l1 l2) + 2-cell-Large-Globular-Type = + 1-cell-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A _ _) - globular-type-1-cell-Large-Globular-Type : + 3-cell-Large-Globular-Type : {l1 l2 : Level} - (x : 0-cell-Large-Globular-Type A l1) - (y : 0-cell-Large-Globular-Type A l2) → + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type x y} + (s t : 2-cell-Large-Globular-Type f g) → UU (β l1 l2) + 3-cell-Large-Globular-Type = + 2-cell-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A _ _) + + 4-cell-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type x y} + {s t : 2-cell-Large-Globular-Type f g} + (u v : 3-cell-Large-Globular-Type s t) → UU (β l1 l2) + 4-cell-Large-Globular-Type = + 3-cell-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A _ _) + + 5-cell-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type x y} + {s t : 2-cell-Large-Globular-Type f g} + {u v : 3-cell-Large-Globular-Type s t} + (a b : 4-cell-Large-Globular-Type u v) → UU (β l1 l2) + 5-cell-Large-Globular-Type = + 4-cell-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A _ _) + + 2-cell-globular-type-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + (f g : 1-cell-Large-Globular-Type x y) → Globular-Type (β l1 l2) (β l1 l2) - globular-type-1-cell-Large-Globular-Type x y = - ( 1-cell-Large-Globular-Type x y , - globular-structure-1-cell-Large-Globular-Type x y) + 2-cell-globular-type-Large-Globular-Type = + 1-cell-globular-type-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) - 2-cell-Large-Globular-Type : + 3-cell-globular-type-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} - (p q : 1-cell-Large-Globular-Type x y) → UU (β l1 l2) - 2-cell-Large-Globular-Type {x = x} {y} = - 1-cell-globular-structure - ( globular-structure-1-cell-Large-Globular-Type x y) + {f g : 1-cell-Large-Globular-Type x y} + (s t : 2-cell-Large-Globular-Type f g) → + Globular-Type (β l1 l2) (β l1 l2) + 3-cell-globular-type-Large-Globular-Type = + 2-cell-globular-type-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + + 4-cell-globular-type-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type x y} + {s t : 2-cell-Large-Globular-Type f g} + (u v : 3-cell-Large-Globular-Type s t) → + Globular-Type (β l1 l2) (β l1 l2) + 4-cell-globular-type-Large-Globular-Type = + 3-cell-globular-type-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + + 5-cell-globular-type-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type x y} + {s t : 2-cell-Large-Globular-Type f g} + {u v : 3-cell-Large-Globular-Type s t} + (a b : 4-cell-Large-Globular-Type u v) → + Globular-Type (β l1 l2) (β l1 l2) + 5-cell-globular-type-Large-Globular-Type = + 4-cell-globular-type-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + + globular-structure-1-cell-Large-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Globular-Type A l1) + (y : 0-cell-Large-Globular-Type A l2) → + globular-structure (β l1 l2) (1-cell-Large-Globular-Type x y) + globular-structure-1-cell-Large-Globular-Type x y = + globular-structure-0-cell-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A x y) globular-structure-2-cell-Large-Globular-Type : {l1 l2 : Level} @@ -193,26 +275,38 @@ module _ (f g : 1-cell-Large-Globular-Type x y) → globular-structure (β l1 l2) (2-cell-Large-Globular-Type f g) globular-structure-2-cell-Large-Globular-Type = - globular-structure-2-cell-large-globular-structure - ( globular-structure-0-cell-Large-Globular-Type A) + globular-structure-1-cell-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) - globular-type-2-cell-Large-Globular-Type : + globular-structure-3-cell-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} - (f g : 1-cell-Large-Globular-Type x y) → - Globular-Type (β l1 l2) (β l1 l2) - globular-type-2-cell-Large-Globular-Type f g = - ( 2-cell-Large-Globular-Type f g , - globular-structure-2-cell-Large-Globular-Type f g) - - 3-cell-Large-Globular-Type : + {f g : 1-cell-Large-Globular-Type x y} + (s t : 2-cell-Large-Globular-Type f g) → + globular-structure (β l1 l2) (3-cell-Large-Globular-Type s t) + globular-structure-3-cell-Large-Globular-Type = + globular-structure-2-cell-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + + globular-structure-4-cell-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} - {p q : 1-cell-Large-Globular-Type x y} - (H K : 2-cell-Large-Globular-Type p q) → UU (β l1 l2) - 3-cell-Large-Globular-Type {x = x} {y} = - 2-cell-globular-structure - ( globular-structure-1-cell-Large-Globular-Type x y) + {f g : 1-cell-Large-Globular-Type x y} + {s t : 2-cell-Large-Globular-Type f g} + (u v : 3-cell-Large-Globular-Type s t) → + globular-structure (β l1 l2) (4-cell-Large-Globular-Type u v) + globular-structure-4-cell-Large-Globular-Type = + globular-structure-3-cell-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + + large-globular-structure-0-cell-Large-Globular-Type : + large-globular-structure β (0-cell-Large-Globular-Type A) + 1-cell-large-globular-structure + large-globular-structure-0-cell-Large-Globular-Type = + 1-cell-Large-Globular-Type + globular-structure-1-cell-large-globular-structure + large-globular-structure-0-cell-Large-Globular-Type = + globular-structure-1-cell-Large-Globular-Type ``` diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index d48595094e..195d6a05eb 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -9,6 +9,7 @@ module structured-types.large-reflexive-globular-types where
Imports ```agda +open import foundation.binary-relations open import foundation.large-binary-relations open import foundation.universe-levels @@ -26,6 +27,51 @@ if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definition +### Reflexivity structure on large globular types + +```agda +record + is-reflexive-Large-Globular-Type + {α : Level → Level} {β : Level → Level → Level} + (A : Large-Globular-Type α β) : + UUω + where + field + refl-0-cell-is-reflexive-Large-Globular-Type : + is-reflexive-Large-Relation + ( 0-cell-Large-Globular-Type A) + ( 1-cell-Large-Globular-Type A) + is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + is-reflexive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A x y) + + refl-1-cell-is-reflexive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + is-reflexive (2-cell-Large-Globular-Type A {x = x} {y = y}) + refl-1-cell-is-reflexive-Large-Globular-Type = + is-reflexive-1-cell-is-reflexive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) + + refl-2-cell-is-reflexive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type A x y} → + is-reflexive (3-cell-Large-Globular-Type A {f = f} {g = g}) + refl-2-cell-is-reflexive-Large-Globular-Type = + is-reflexive-2-cell-is-reflexive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) + +open is-reflexive-Large-Globular-Type public +``` + ### Reflexivity structure on a large globular structure ```agda diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/structured-types/large-transitive-globular-types.lagda.md index af1cd79af6..956ae752d1 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/structured-types/large-transitive-globular-types.lagda.md @@ -111,21 +111,75 @@ record open large-transitive-globular-structure public ``` +### The predicate of being a transitive large globular type + +```agda +is-transitive-Large-Globular-Type : + {α : Level → Level} {β : Level → Level → Level} → + Large-Globular-Type α β → UUω +is-transitive-Large-Globular-Type G = + is-transitive-large-globular-structure + ( large-globular-structure-0-cell-Large-Globular-Type G) +``` + ### The type of large transitive globular types ```agda record - Large-Transitive-Globular-Type - (α : Level → Level) (β : Level → Level → Level) : UUω + is-transitive-Large-Globular-Type + {α : Level → Level} {β : Level → Level → Level} + (A : Large-Globular-Type α β) : + UUω where - field - 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) + refl-0-cell-is-transitive-Large-Globular-Type : + is-transitive-Large-Relation + ( 0-cell-Large-Globular-Type A) + ( 1-cell-Large-Globular-Type A) + is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + is-transitive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A x y) + + refl-1-cell-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + is-transitive (2-cell-Large-Globular-Type A {x = x} {y = y}) + refl-1-cell-is-transitive-Large-Globular-Type = + is-transitive-1-cell-is-transitive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type) + + refl-2-cell-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type A x y} → + is-transitive (3-cell-Large-Globular-Type A {f = f} {g = g}) + refl-2-cell-is-transitive-Large-Globular-Type = + is-transitive-2-cell-is-transitive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type A _ _) + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type) + +open is-transitive-Large-Globular-Type public +``` - transitive-globular-structure-0-cell-Large-Transitive-Globular-Type : - large-transitive-globular-structure - ( β) - ( 0-cell-Large-Transitive-Globular-Type) +-- ```agda +-- record +-- Large-Transitive-Globular-Type +-- (α : Level → Level) (β : Level → Level → Level) : UUω +-- where -open Large-Transitive-Globular-Type public -``` +-- field +-- 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) + +-- transitive-globular-structure-0-cell-Large-Transitive-Globular-Type : +-- large-transitive-globular-structure +-- ( β) +-- ( 0-cell-Large-Transitive-Globular-Type) + +-- open Large-Transitive-Globular-Type public +-- ``` diff --git a/src/structured-types/maps-large-globular-types.lagda.md b/src/structured-types/maps-large-globular-types.lagda.md index 38bc916a3f..47a1064f39 100644 --- a/src/structured-types/maps-large-globular-types.lagda.md +++ b/src/structured-types/maps-large-globular-types.lagda.md @@ -47,13 +47,13 @@ record {l : Level} → 0-cell-Large-Globular-Type A l → 0-cell-Large-Globular-Type B (δ l) - globular-type-1-cell-map-Large-Globular-Type : + 1-cell-globular-map-map-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} → globular-map - ( globular-type-1-cell-Large-Globular-Type A x y) - ( globular-type-1-cell-Large-Globular-Type B + ( 1-cell-globular-type-Large-Globular-Type A x y) + ( 1-cell-globular-type-Large-Globular-Type B ( 0-cell-map-Large-Globular-Type x) ( 0-cell-map-Large-Globular-Type y)) @@ -74,7 +74,7 @@ module _ ( 0-cell-map-Large-Globular-Type F x) ( 0-cell-map-Large-Globular-Type F y) 1-cell-map-Large-Globular-Type = - 0-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) + 0-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) module _ {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} @@ -92,7 +92,7 @@ module _ ( 1-cell-map-Large-Globular-Type F f) ( 1-cell-map-Large-Globular-Type F g) 2-cell-map-Large-Globular-Type = - 1-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) + 1-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) module _ {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} @@ -111,5 +111,5 @@ module _ ( 2-cell-map-Large-Globular-Type F H) ( 2-cell-map-Large-Globular-Type F K) 3-cell-map-Large-Globular-Type = - 2-cell-globular-map (globular-type-1-cell-map-Large-Globular-Type F) + 2-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) ``` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 69c8ba538a..7582928e3b 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -35,9 +35,17 @@ record {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) where coinductive + field is-reflexive-1-cell-is-reflexive-globular-structure : is-reflexive (1-cell-globular-structure G) + + refl-1-cell-is-reflexive-globular-structure : + {x : A} → 1-cell-globular-structure G x x + refl-1-cell-is-reflexive-globular-structure {x} = + is-reflexive-1-cell-is-reflexive-globular-structure x + + field is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure : (x y : A) → is-reflexive-globular-structure @@ -50,10 +58,14 @@ module _ (r : is-reflexive-globular-structure G) where - refl-1-cell-is-reflexive-globular-structure : - {x : A} → 1-cell-globular-structure G x x - refl-1-cell-is-reflexive-globular-structure {x} = - is-reflexive-1-cell-is-reflexive-globular-structure r x + is-reflexive-2-cell-is-reflexive-globular-structure : + {x y : A} → is-reflexive (2-cell-globular-structure G {x} {y}) + is-reflexive-2-cell-is-reflexive-globular-structure = + is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( r) + ( _) + ( _)) refl-2-cell-is-reflexive-globular-structure : {x y : A} {f : 1-cell-globular-structure G x y} → @@ -111,6 +123,34 @@ module _ is-reflexive-Globular-Type : UU (l1 ⊔ l2) is-reflexive-Globular-Type = is-reflexive-globular-structure (globular-structure-0-cell-Globular-Type G) + +is-reflexive-globular-type-is-reflexive-globular-structure : + {l1 l2 : Level} {A : UU l1} {B : globular-structure l2 A} → + is-reflexive-globular-structure B → + is-reflexive-Globular-Type (make-Globular-Type B) +is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-globular-type-is-reflexive-globular-structure r) = + is-reflexive-1-cell-is-reflexive-globular-structure r +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( is-reflexive-globular-type-is-reflexive-globular-structure r) x y = + is-reflexive-globular-type-is-reflexive-globular-structure + ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + r x y) + +module _ + {l1 l2 : Level} (G : Globular-Type l1 l2) (r : is-reflexive-Globular-Type G) + where + + is-reflexive-1-cell-is-reflexive-Globular-Type : + is-reflexive (1-cell-Globular-Type G) + is-reflexive-1-cell-is-reflexive-Globular-Type = + is-reflexive-1-cell-is-reflexive-globular-structure r + + is-reflexive-2-cell-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + is-reflexive (2-cell-Globular-Type G {x = x} {y = y}) + is-reflexive-2-cell-is-reflexive-Globular-Type = + is-reflexive-2-cell-is-reflexive-globular-structure r ``` ### Reflexive globular types diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 1daa674db4..18c040aaa3 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -9,6 +9,7 @@ module structured-types.transitive-globular-types where
Imports ```agda +open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels @@ -44,10 +45,7 @@ record coinductive field comp-1-cell-is-transitive-globular-structure : - {x y z : A} → - 1-cell-globular-structure G y z → - 1-cell-globular-structure G x y → - 1-cell-globular-structure G x z + is-transitive' (1-cell-globular-structure G) is-transitive-globular-structure-1-cell-is-transitive-globular-structure : (x y : A) → @@ -62,10 +60,7 @@ module _ where comp-2-cell-is-transitive-globular-structure : - {x y : A} {f g h : 1-cell-globular-structure G x y} → - 2-cell-globular-structure G g h → - 2-cell-globular-structure G f g → - 2-cell-globular-structure G f h + {x y : A} → is-transitive' (2-cell-globular-structure G {x} {y}) comp-2-cell-is-transitive-globular-structure {x} {y} = comp-1-cell-is-transitive-globular-structure ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure @@ -86,11 +81,8 @@ module _ ( y)) comp-3-cell-is-transitive-globular-structure : - {x y : A} {f g : 1-cell-globular-structure G x y} - {H K L : 2-cell-globular-structure G f g} → - 3-cell-globular-structure G K L → - 3-cell-globular-structure G H K → - 3-cell-globular-structure G H L + {x y : A} {f g : 1-cell-globular-structure G x y} → + is-transitive' (3-cell-globular-structure G {x} {y} {f} {g}) comp-3-cell-is-transitive-globular-structure {x} {y} {f} {g} = comp-1-cell-is-transitive-globular-structure ( is-transitive-globular-structure-2-cell-is-transitive-globular-structure @@ -107,11 +99,99 @@ transitive-globular-structure l2 A = Σ (globular-structure l2 A) (is-transitive-globular-structure) ``` +### The predicate on globular types of being transitive + +```agda +module _ + {l1 l2 : Level} (G : Globular-Type l1 l2) + where + + is-transitive-Globular-Type : UU (l1 ⊔ l2) + is-transitive-Globular-Type = + is-transitive-globular-structure (globular-structure-0-cell-Globular-Type G) + +is-transitive-globular-type-is-transitive-globular-structure : + {l1 l2 : Level} {A : UU l1} {B : globular-structure l2 A} → + is-transitive-globular-structure B → + is-transitive-Globular-Type (make-Globular-Type B) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-globular-type-is-transitive-globular-structure t) = + comp-1-cell-is-transitive-globular-structure t +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-globular-type-is-transitive-globular-structure t) x y = + is-transitive-globular-type-is-transitive-globular-structure + ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure + t x y) +``` + ### The type of transitive globular types ```agda -Transitive-Globular-Type : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) -Transitive-Globular-Type l1 l2 = Σ (UU l1) (transitive-globular-structure l2) +record + Transitive-Globular-Type + (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) + where + + constructor + make-Transitive-Globular-Type + + field + globular-type-Transitive-Globular-Type : Globular-Type l1 l2 + + 0-cell-Transitive-Globular-Type : UU l1 + 0-cell-Transitive-Globular-Type = + 0-cell-Globular-Type globular-type-Transitive-Globular-Type + + 1-cell-Transitive-Globular-Type : + 0-cell-Transitive-Globular-Type → 0-cell-Transitive-Globular-Type → UU l2 + 1-cell-Transitive-Globular-Type = + 1-cell-Globular-Type globular-type-Transitive-Globular-Type + + 2-cell-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} + (f g : 1-cell-Transitive-Globular-Type x y) → UU l2 + 2-cell-Transitive-Globular-Type = + 2-cell-Globular-Type globular-type-Transitive-Globular-Type + + 3-cell-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} + {f g : 1-cell-Transitive-Globular-Type x y} + (s t : 2-cell-Transitive-Globular-Type f g) → UU l2 + 3-cell-Transitive-Globular-Type = + 3-cell-Globular-Type globular-type-Transitive-Globular-Type + + globular-structure-Transitive-Globular-Type : + globular-structure l2 0-cell-Transitive-Globular-Type + globular-structure-Transitive-Globular-Type = + globular-structure-0-cell-Globular-Type + ( globular-type-Transitive-Globular-Type) + + field + is-transitive-Transitive-Globular-Type : + is-transitive-Globular-Type globular-type-Transitive-Globular-Type + + comp-1-cell-Transitive-Globular-Type : + is-transitive' 1-cell-Transitive-Globular-Type + comp-1-cell-Transitive-Globular-Type = + comp-1-cell-is-transitive-globular-structure + is-transitive-Transitive-Globular-Type + + comp-2-cell-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} → + is-transitive' (2-cell-Transitive-Globular-Type {x} {y}) + comp-2-cell-Transitive-Globular-Type = + comp-2-cell-is-transitive-globular-structure + is-transitive-Transitive-Globular-Type + + comp-3-cell-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} + {f g : 1-cell-Transitive-Globular-Type x y} → + is-transitive' (3-cell-Transitive-Globular-Type {x} {y} {f} {g}) + comp-3-cell-Transitive-Globular-Type = + comp-3-cell-is-transitive-globular-structure + is-transitive-Transitive-Globular-Type + +open Transitive-Globular-Type public ``` ## Examples diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 14d31f1fa0..9debf94f47 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -59,216 +59,307 @@ the higher cells are [identities](foundation-core.identity-types.md). #### The uniform globular structure on dependent pointed function types +- The large globular type of pointed types, pointed maps, and uniform pointed homotopies + ```agda uniform-globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → globular-structure (l1 ⊔ l2) (pointed-Π A B) -uniform-globular-structure-pointed-Π = - λ where - .1-cell-globular-structure → - uniform-pointed-htpy - .globular-structure-1-cell-globular-structure f g → - uniform-globular-structure-pointed-Π - -is-reflexive-uniform-globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → - is-reflexive-globular-structure - ( uniform-globular-structure-pointed-Π {A = A} {B}) -is-reflexive-uniform-globular-structure-pointed-Π = - λ where - .is-reflexive-1-cell-is-reflexive-globular-structure → - refl-uniform-pointed-htpy - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g → - is-reflexive-uniform-globular-structure-pointed-Π - -is-transitive-uniform-globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → - is-transitive-globular-structure - ( uniform-globular-structure-pointed-Π {A = A} {B}) -is-transitive-uniform-globular-structure-pointed-Π = - λ where - .comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → - concat-uniform-pointed-htpy {f = f} {g} {h} K H - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure - H K → - is-transitive-uniform-globular-structure-pointed-Π -``` - -#### The uniform large globular structure on pointed types +1-cell-globular-structure + ( uniform-globular-structure-pointed-Π A B) = + uniform-pointed-htpy +globular-structure-1-cell-globular-structure + ( uniform-globular-structure-pointed-Π A B) f g = + uniform-globular-structure-pointed-Π _ _ + +uniform-pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +uniform-pointed-Π-Globular-Type A B = + make-Globular-Type (uniform-globular-structure-pointed-Π A B) + +uniform-globular-structure-pointed-map : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + globular-structure (l1 ⊔ l2) (A →∗ B) +uniform-globular-structure-pointed-map A B = + uniform-globular-structure-pointed-Π A (constant-Pointed-Fam A B) + +uniform-pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +uniform-pointed-map-Globular-Type A B = + make-Globular-Type (uniform-globular-structure-pointed-map A B) -```agda uniform-large-globular-structure-Pointed-Type : - large-globular-structure (_⊔_) Pointed-Type -uniform-large-globular-structure-Pointed-Type = - λ where - .1-cell-large-globular-structure X Y → - (X →∗ Y) - .globular-structure-1-cell-large-globular-structure X Y → - uniform-globular-structure-pointed-Π - -is-reflexive-uniform-large-globular-structure-Pointed-Type : - is-reflexive-large-globular-structure - uniform-large-globular-structure-Pointed-Type -is-reflexive-uniform-large-globular-structure-Pointed-Type = - λ where - .is-reflexive-1-cell-is-reflexive-large-globular-structure X → - id-pointed-map - .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure - X Y → - is-reflexive-uniform-globular-structure-pointed-Π - -is-transitive-uniform-large-globular-structure-Pointed-Type : - is-transitive-large-globular-structure - uniform-large-globular-structure-Pointed-Type -is-transitive-uniform-large-globular-structure-Pointed-Type = - λ where - .comp-1-cell-is-transitive-large-globular-structure g f → - g ∘∗ f - .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure - X Y → - is-transitive-uniform-globular-structure-pointed-Π -``` - -#### The uniform noncoherent large wild higher precategory of pointed types - -```agda -uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : - Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .obj-Noncoherent-Large-Wild-Higher-Precategory → - Pointed-Type - .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - uniform-large-globular-structure-Pointed-Type - .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-reflexive-uniform-large-globular-structure-Pointed-Type - .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-transitive-uniform-large-globular-structure-Pointed-Type -``` - -### The nonuniform definition of the wild category of pointed types - -#### The nonuniform globular structure on dependent pointed function types - -```agda -globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → - globular-structure (l1 ⊔ l2) (pointed-Π A B) -globular-structure-pointed-Π = - λ where - .1-cell-globular-structure → - pointed-htpy - .globular-structure-1-cell-globular-structure f g - .1-cell-globular-structure → - pointed-2-htpy - .globular-structure-1-cell-globular-structure f g - .globular-structure-1-cell-globular-structure H K → - globular-structure-Id (pointed-2-htpy H K) - -is-reflexive-globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → - is-reflexive-globular-structure (globular-structure-pointed-Π {A = A} {B}) -is-reflexive-globular-structure-pointed-Π = - λ where - .is-reflexive-1-cell-is-reflexive-globular-structure → - refl-pointed-htpy - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g - .is-reflexive-1-cell-is-reflexive-globular-structure → - refl-pointed-2-htpy - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - H K → - is-reflexive-globular-structure-Id (pointed-2-htpy H K) - -is-transitive-globular-structure-pointed-Π : - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → - is-transitive-globular-structure (globular-structure-pointed-Π {A = A} {B}) -is-transitive-globular-structure-pointed-Π = - λ where - .comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → - concat-pointed-htpy {f = f} {g} {h} K H - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K - .comp-1-cell-is-transitive-globular-structure α β → - concat-pointed-2-htpy β α - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure - α β → - is-transitive-globular-structure-Id (pointed-2-htpy α β) + large-globular-structure (λ l1 l2 → l1 ⊔ l2) Pointed-Type +1-cell-large-globular-structure + uniform-large-globular-structure-Pointed-Type = pointed-map +globular-structure-1-cell-large-globular-structure + uniform-large-globular-structure-Pointed-Type = + uniform-globular-structure-pointed-map + +uniform-pointed-type-Large-Globular-Type : + Large-Globular-Type lsuc (λ l1 l2 → l1 ⊔ l2) +uniform-pointed-type-Large-Globular-Type = + make-Large-Globular-Type uniform-large-globular-structure-Pointed-Type ``` -#### The nonuniform large globular structure on pointed types +- Identity structure on the large globular type of uniform pointed types ```agda -large-globular-structure-Pointed-Type : - large-globular-structure (_⊔_) Pointed-Type -large-globular-structure-Pointed-Type = - λ where - .1-cell-large-globular-structure X Y → - (X →∗ Y) - .globular-structure-1-cell-large-globular-structure X Y → - globular-structure-pointed-Π - -is-reflexive-large-globular-structure-Pointed-Type : - is-reflexive-large-globular-structure large-globular-structure-Pointed-Type -is-reflexive-large-globular-structure-Pointed-Type = - λ where - .is-reflexive-1-cell-is-reflexive-large-globular-structure X → - id-pointed-map - .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure - X Y → - is-reflexive-globular-structure-pointed-Π - -is-transitive-large-globular-structure-Pointed-Type : - is-transitive-large-globular-structure large-globular-structure-Pointed-Type -is-transitive-large-globular-structure-Pointed-Type = - λ where - .comp-1-cell-is-transitive-large-globular-structure g f → - g ∘∗ f - .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure - X Y → - is-transitive-globular-structure-pointed-Π -``` - -#### The nonuniform noncoherent large wild higher precategory of pointed types - -```agda -Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : - Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .obj-Noncoherent-Large-Wild-Higher-Precategory → - Pointed-Type - .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - large-globular-structure-Pointed-Type - .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-reflexive-large-globular-structure-Pointed-Type - .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-transitive-large-globular-structure-Pointed-Type +is-reflexive-uniform-globular-structure-pointed-Π : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-reflexive-globular-structure + ( uniform-globular-structure-pointed-Π A B) +is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-uniform-globular-structure-pointed-Π A B) = + refl-uniform-pointed-htpy +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( is-reflexive-uniform-globular-structure-pointed-Π A B) f g = + is-reflexive-uniform-globular-structure-pointed-Π _ _ + +is-reflexive-uniform-pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-reflexive-Globular-Type (uniform-pointed-Π-Globular-Type A B) +is-reflexive-uniform-pointed-Π-Globular-Type A B = + is-reflexive-globular-type-is-reflexive-globular-structure + ( is-reflexive-uniform-globular-structure-pointed-Π _ _) + +is-reflexive-uniform-globular-structure-pointed-map : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-reflexive-globular-structure + ( uniform-globular-structure-pointed-map A B) +is-reflexive-uniform-globular-structure-pointed-map A B = + is-reflexive-uniform-globular-structure-pointed-Π A (constant-Pointed-Fam A B) + +is-reflexive-uniform-pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-reflexive-Globular-Type (uniform-pointed-map-Globular-Type A B) +is-reflexive-uniform-pointed-map-Globular-Type A B = + is-reflexive-uniform-pointed-Π-Globular-Type A (constant-Pointed-Fam A B) + +id-structure-uniform-pointed-type-Large-Globular-Type : + is-reflexive-Large-Globular-Type uniform-pointed-type-Large-Globular-Type +refl-0-cell-is-reflexive-Large-Globular-Type + id-structure-uniform-pointed-type-Large-Globular-Type A = + id-pointed-map +is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + id-structure-uniform-pointed-type-Large-Globular-Type = + is-reflexive-uniform-pointed-map-Globular-Type _ _ ``` -## Properties - -### The left unit law for the identity pointed map +- Composition structure on the large globular type of uniform pointed types ```agda -module _ - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} - where - - left-unit-law-id-pointed-map : - (f : A →∗ B) → id-pointed-map ∘∗ f ~∗ f - pr1 (left-unit-law-id-pointed-map f) = refl-htpy - pr2 (left-unit-law-id-pointed-map f) = right-unit ∙ ap-id (pr2 f) +is-transitive-uniform-globular-structure-pointed-Π : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-transitive-globular-structure + ( uniform-globular-structure-pointed-Π A B) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-uniform-globular-structure-pointed-Π A B) {f} {g} {h} H K = + concat-uniform-pointed-htpy {f = f} {g} {h} K H +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-uniform-globular-structure-pointed-Π A B) H K = + is-transitive-uniform-globular-structure-pointed-Π _ _ + +is-transitive-uniform-pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-transitive-Globular-Type (uniform-pointed-Π-Globular-Type A B) +is-transitive-uniform-pointed-Π-Globular-Type A B = + is-transitive-globular-type-is-transitive-globular-structure + ( is-transitive-uniform-globular-structure-pointed-Π A B) + +uniform-pointed-Π-Transitive-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + Transitive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +uniform-pointed-Π-Transitive-Globular-Type A B = + make-Transitive-Globular-Type + ( uniform-pointed-Π-Globular-Type A B) + ( is-transitive-uniform-pointed-Π-Globular-Type A B) + +is-transitive-uniform-globular-structure-pointed-map : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-transitive-globular-structure + ( uniform-globular-structure-pointed-map A B) +is-transitive-uniform-globular-structure-pointed-map A B = + is-transitive-uniform-globular-structure-pointed-Π A + ( constant-Pointed-Fam A B) + +is-transitive-uniform-pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-transitive-Globular-Type (uniform-pointed-map-Globular-Type A B) +is-transitive-uniform-pointed-map-Globular-Type A B = + is-transitive-uniform-pointed-Π-Globular-Type A (constant-Pointed-Fam A B) + +uniform-pointed-map-Transitive-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + Transitive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +uniform-pointed-map-Transitive-Globular-Type A B = + uniform-pointed-Π-Transitive-Globular-Type A (constant-Pointed-Fam A B) + +comp-structure-uniform-pointed-type-Large-Globular-Type : + is-transitive-Large-Globular-Type pointed-type-Large-Globular-Type +comp-structure-uniform-pointed-type-Large-Globular-Type = ? ``` -### The right unit law for the identity pointed map - -```agda -module _ - {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} - where +#### The uniform large globular structure on pointed types - right-unit-law-id-pointed-map : - (f : A →∗ B) → f ∘∗ id-pointed-map ~∗ f - right-unit-law-id-pointed-map = refl-pointed-htpy -``` +-- ```agda +-- is-transitive-uniform-large-globular-structure-Pointed-Type : +-- is-transitive-large-globular-structure +-- uniform-large-globular-structure-Pointed-Type +-- is-transitive-uniform-large-globular-structure-Pointed-Type = +-- λ where +-- .comp-1-cell-is-transitive-large-globular-structure g f → +-- g ∘∗ f +-- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +-- X Y → +-- is-transitive-uniform-globular-structure-pointed-Π +-- ``` + +-- #### The uniform noncoherent large wild higher precategory of pointed types + +-- ```agda +-- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : +-- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +-- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} + +-- {- +-- λ where +-- .obj-Noncoherent-Large-Wild-Higher-Precategory → +-- Pointed-Type +-- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- uniform-large-globular-structure-Pointed-Type +-- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- is-reflexive-uniform-large-globular-structure-Pointed-Type +-- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- is-transitive-uniform-large-globular-structure-Pointed-Type -} +-- ``` + +-- ### The nonuniform definition of the wild category of pointed types + +-- #### The nonuniform globular structure on dependent pointed function types + +-- ```agda +-- globular-structure-pointed-Π : +-- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → +-- globular-structure (l1 ⊔ l2) (pointed-Π A B) +-- globular-structure-pointed-Π = +-- λ where +-- .1-cell-globular-structure → +-- pointed-htpy +-- .globular-structure-1-cell-globular-structure f g +-- .1-cell-globular-structure → +-- pointed-2-htpy +-- .globular-structure-1-cell-globular-structure f g +-- .globular-structure-1-cell-globular-structure H K → +-- globular-structure-Id (pointed-2-htpy H K) + +-- is-reflexive-globular-structure-pointed-Π : +-- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → +-- is-reflexive-globular-structure (globular-structure-pointed-Π {A = A} {B}) +-- is-reflexive-globular-structure-pointed-Π = +-- λ where +-- .is-reflexive-1-cell-is-reflexive-globular-structure → +-- refl-pointed-htpy +-- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g +-- .is-reflexive-1-cell-is-reflexive-globular-structure → +-- refl-pointed-2-htpy +-- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g +-- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure +-- H K → +-- is-reflexive-globular-structure-Id (pointed-2-htpy H K) + +-- is-transitive-globular-structure-pointed-Π : +-- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → +-- is-transitive-globular-structure (globular-structure-pointed-Π {A = A} {B}) +-- is-transitive-globular-structure-pointed-Π = +-- λ where +-- .comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → +-- concat-pointed-htpy {f = f} {g} {h} K H +-- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K +-- .comp-1-cell-is-transitive-globular-structure α β → +-- concat-pointed-2-htpy β α +-- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K +-- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure +-- α β → +-- is-transitive-globular-structure-Id (pointed-2-htpy α β) +-- ``` + +-- #### The nonuniform large globular structure on pointed types + +-- ```agda +-- large-globular-structure-Pointed-Type : +-- large-globular-structure (_⊔_) Pointed-Type +-- large-globular-structure-Pointed-Type = +-- λ where +-- .1-cell-large-globular-structure X Y → +-- (X →∗ Y) +-- .globular-structure-1-cell-large-globular-structure X Y → +-- globular-structure-pointed-Π + +-- is-reflexive-large-globular-structure-Pointed-Type : +-- is-reflexive-large-globular-structure large-globular-structure-Pointed-Type +-- is-reflexive-large-globular-structure-Pointed-Type = +-- λ where +-- .is-reflexive-1-cell-is-reflexive-large-globular-structure X → +-- id-pointed-map +-- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure +-- X Y → +-- is-reflexive-globular-structure-pointed-Π + +-- is-transitive-large-globular-structure-Pointed-Type : +-- is-transitive-large-globular-structure large-globular-structure-Pointed-Type +-- is-transitive-large-globular-structure-Pointed-Type = +-- λ where +-- .comp-1-cell-is-transitive-large-globular-structure g f → +-- g ∘∗ f +-- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +-- X Y → +-- is-transitive-globular-structure-pointed-Π +-- ``` + +-- #### The nonuniform noncoherent large wild higher precategory of pointed types + +-- ```agda +-- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : +-- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +-- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} +-- {- +-- λ where +-- .obj-Noncoherent-Large-Wild-Higher-Precategory → +-- Pointed-Type +-- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- large-globular-structure-Pointed-Type +-- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- is-reflexive-large-globular-structure-Pointed-Type +-- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- is-transitive-large-globular-structure-Pointed-Type -} +-- ``` + +-- ## Properties + +-- ### The left unit law for the identity pointed map + +-- ```agda +-- module _ +-- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} +-- where + +-- left-unit-law-id-pointed-map : +-- (f : A →∗ B) → id-pointed-map ∘∗ f ~∗ f +-- pr1 (left-unit-law-id-pointed-map f) = refl-htpy +-- pr2 (left-unit-law-id-pointed-map f) = right-unit ∙ ap-id (pr2 f) +-- ``` + +-- ### The right unit law for the identity pointed map + +-- ```agda +-- module _ +-- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} +-- where + +-- right-unit-law-id-pointed-map : +-- (f : A →∗ B) → f ∘∗ id-pointed-map ~∗ f +-- right-unit-law-id-pointed-map = refl-pointed-htpy +-- ``` diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index ff8e2d21f0..2626ca661a 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -126,7 +126,7 @@ module _ .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Large-Wild-Higher-Precategory .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - globular-type-1-cell-globular-map + 1-cell-globular-map-globular-map ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) ``` diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 17c9964575..5480ad320d 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -113,7 +113,7 @@ module _ .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Wild-Higher-Precategory .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - globular-type-1-cell-globular-map + 1-cell-globular-map-globular-map ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) ``` diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index a35acc18ca..33230f3fc5 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -24,6 +24,8 @@ open import structured-types.globular-types open import structured-types.large-globular-types open import structured-types.large-reflexive-globular-types open import structured-types.large-transitive-globular-types +open import structured-types.reflexive-globular-types +open import structured-types.transitive-globular-types open import wild-category-theory.noncoherent-wild-higher-precategories ``` @@ -75,135 +77,109 @@ record Noncoherent-Large-Wild-Higher-Precategory (α : Level → Level) (β : Level → Level → Level) : UUω where +``` - field - obj-Noncoherent-Large-Wild-Higher-Precategory : (l : Level) → UU (α l) - - hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory : - large-globular-structure β obj-Noncoherent-Large-Wild-Higher-Precategory - - id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory : - is-reflexive-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) +- The underlying large globular type of a noncoherent large wild precategory - comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory : - is-transitive-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - - large-globular-type-Noncoherent-Large-Wild-Higher-Precategory : - Large-Globular-Type α β - large-globular-type-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .0-cell-Large-Globular-Type → - obj-Noncoherent-Large-Wild-Higher-Precategory - .globular-structure-0-cell-Large-Globular-Type → - hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory +```agda + field + large-globular-type-Noncoherent-Large-Wild-Precategory : + Large-Globular-Type α β ``` -We record some common projections for noncoherent large wild higher -precategories. +- The type of objects of a noncoherent large wild higher precategory ```agda - hom-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} → - obj-Noncoherent-Large-Wild-Higher-Precategory l1 → - obj-Noncoherent-Large-Wild-Higher-Precategory l2 → - UU (β l1 l2) - hom-Noncoherent-Large-Wild-Higher-Precategory = - 1-cell-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - - id-hom-Noncoherent-Large-Wild-Higher-Precategory : - {l : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l} → - hom-Noncoherent-Large-Wild-Higher-Precategory x x - id-hom-Noncoherent-Large-Wild-Higher-Precategory = - refl-1-cell-is-reflexive-large-globular-structure - ( id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + obj-Noncoherent-Large-Wild-Higher-Precategory : (l : Level) → UU (α l) + obj-Noncoherent-Large-Wild-Higher-Precategory = + 0-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory +``` - comp-hom-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 l3 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} - {z : obj-Noncoherent-Large-Wild-Higher-Precategory l3} → - hom-Noncoherent-Large-Wild-Higher-Precategory y z → - hom-Noncoherent-Large-Wild-Higher-Precategory x y → - hom-Noncoherent-Large-Wild-Higher-Precategory x z - comp-hom-Noncoherent-Large-Wild-Higher-Precategory = - comp-1-cell-is-transitive-large-globular-structure - ( comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) +- The globular type of morphisms between two objects in a noncoherent large wild higher precategory +```agda hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → Globular-Type (β l1 l2) (β l1 l2) - pr1 (hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory x y) = - hom-Noncoherent-Large-Wild-Higher-Precategory x y - pr2 (hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory x y) = - globular-structure-1-cell-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - ( x) - ( y) - - hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory : + hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + 1-cell-globular-type-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory + + hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → - Noncoherent-Wild-Higher-Precategory (β l1 l2) (β l1 l2) - hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - x y = - make-Noncoherent-Wild-Higher-Precategory - ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) - ( globular-structure-1-cell-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - ( x) - ( y)) - ( is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure - ( id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - ( x) - ( y)) - ( is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure - ( comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) - ( x) - ( y)) + UU (β l1 l2) + hom-Noncoherent-Large-Wild-Higher-Precategory = + 1-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory ``` +- The globular structure on the type of objects of a noncoherent large wild higher precategory + ```agda + globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory : + large-globular-structure β obj-Noncoherent-Large-Wild-Higher-Precategory + globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory = + large-globular-structure-0-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory +``` + +- The globular type of 2-morphisms is a noncoherent large wild higher precategory + +```agda + 2-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} + (f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → + Globular-Type (β l1 l2) (β l1 l2) + 2-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + 2-cell-globular-type-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory + 2-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} → - hom-Noncoherent-Large-Wild-Higher-Precategory x y → - hom-Noncoherent-Large-Wild-Higher-Precategory x y → - UU (β l1 l2) + (f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → UU (β l1 l2) 2-hom-Noncoherent-Large-Wild-Higher-Precategory = - 2-cell-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + 2-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory +``` - id-2-hom-Noncoherent-Large-Wild-Higher-Precategory : +- The globular structure on the type of morphisms between two objects in a noncoherent large wild higher precategory + +```agda + globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} - {f : hom-Noncoherent-Large-Wild-Higher-Precategory x y} → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory f f - id-2-hom-Noncoherent-Large-Wild-Higher-Precategory = - refl-2-cell-is-reflexive-large-globular-structure - ( id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) + (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → + globular-structure + ( β l1 l2) + ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) + globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory = + globular-structure-1-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory +``` - comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory : +- The globular type of 3-morphisms in a noncoherent large wild higher precategory + +```agda + 3-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} - {f g h : hom-Noncoherent-Large-Wild-Higher-Precategory x y} → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory g h → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory f h - comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory = - comp-2-cell-is-transitive-large-globular-structure - ( comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) -``` + {f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y} + (s t : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g) → + Globular-Type (β l1 l2) (β l1 l2) + 3-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + 3-cell-globular-type-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory -```agda 3-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} @@ -214,33 +190,144 @@ precategories. UU (β l1 l2) 3-hom-Noncoherent-Large-Wild-Higher-Precategory = 3-cell-large-globular-structure - ( hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + ( globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory) +``` + +- The globular structure on the type of 2-morphisms in a noncoherent large wild higher precategory + +```agda + globular-structure-2-hom-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} + (f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → + globular-structure + ( β l1 l2) + ( 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g) + globular-structure-2-hom-Noncoherent-Large-Wild-Higher-Precategory = + globular-structure-2-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory +``` + +- The structure of identity morphisms in a noncoherent large wild higher precategory + +```agda + field + id-structure-Noncoherent-Large-Wild-Higher-Precategory : + is-reflexive-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Precategory + + id-hom-Noncoherent-Large-Wild-Higher-Precategory : + {l1 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) → + hom-Noncoherent-Large-Wild-Higher-Precategory x x + id-hom-Noncoherent-Large-Wild-Higher-Precategory = + refl-0-cell-is-reflexive-Large-Globular-Type + id-structure-Noncoherent-Large-Wild-Higher-Precategory + + id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} → + is-reflexive-Globular-Type + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory x y) + id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + id-structure-Noncoherent-Large-Wild-Higher-Precategory + + id-2-hom-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} + (f : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory f f + id-2-hom-Noncoherent-Large-Wild-Higher-Precategory = + refl-1-cell-is-reflexive-Large-Globular-Type + id-structure-Noncoherent-Large-Wild-Higher-Precategory id-3-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} {f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y} - {H : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g} → - 3-hom-Noncoherent-Large-Wild-Higher-Precategory H H + (s : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g) → + 3-hom-Noncoherent-Large-Wild-Higher-Precategory s s id-3-hom-Noncoherent-Large-Wild-Higher-Precategory = - refl-3-cell-is-reflexive-large-globular-structure - ( id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + refl-2-cell-is-reflexive-Large-Globular-Type + id-structure-Noncoherent-Large-Wild-Higher-Precategory +``` + +- The structure of composition in a noncoherent large wild higher precategory + +```agda + field + comp-structure-Noncoherent-Large-Wild-Higher-Precategory : + is-transitive-large-globular-structure + globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory + + comp-hom-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 l3 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} + {z : obj-Noncoherent-Large-Wild-Higher-Precategory l3} → + hom-Noncoherent-Large-Wild-Higher-Precategory y z → + hom-Noncoherent-Large-Wild-Higher-Precategory x y → + hom-Noncoherent-Large-Wild-Higher-Precategory x z + comp-hom-Noncoherent-Large-Wild-Higher-Precategory = + comp-1-cell-is-transitive-large-globular-structure + comp-structure-Noncoherent-Large-Wild-Higher-Precategory + + comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) + (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → + is-transitive-globular-structure + ( globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory x y) + comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure + comp-structure-Noncoherent-Large-Wild-Higher-Precategory + + comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} + {f g h : hom-Noncoherent-Large-Wild-Higher-Precategory x y} → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory g h → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory f h + comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory = + comp-2-cell-is-transitive-large-globular-structure + comp-structure-Noncoherent-Large-Wild-Higher-Precategory comp-3-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} {f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y} - {H K L : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g} → - 3-hom-Noncoherent-Large-Wild-Higher-Precategory K L → - 3-hom-Noncoherent-Large-Wild-Higher-Precategory H K → - 3-hom-Noncoherent-Large-Wild-Higher-Precategory H L + {r s t : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g} → + 3-hom-Noncoherent-Large-Wild-Higher-Precategory s t → + 3-hom-Noncoherent-Large-Wild-Higher-Precategory r s → + 3-hom-Noncoherent-Large-Wild-Higher-Precategory r t comp-3-hom-Noncoherent-Large-Wild-Higher-Precategory = comp-3-cell-is-transitive-large-globular-structure - ( comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory) + comp-structure-Noncoherent-Large-Wild-Higher-Precategory ``` +- The noncoherent wild higher precategory of morphisms between two object in a noncoherent large wild higher precategory + ```agda + hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Precategory : + {l1 l2 : Level} + (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) + (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → + Noncoherent-Wild-Higher-Precategory (β l1 l2) (β l1 l2) + hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Precategory + x y = + make-Noncoherent-Wild-Higher-Precategory + ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) + ( globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory x y) + ( id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) + ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory + x y) + open Noncoherent-Large-Wild-Higher-Precategory public ``` diff --git a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md index 0d32197fc4..47d0ad927f 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -117,10 +117,9 @@ module _ pr2 (pr2 (pr2 𝒞)) globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2 - pr1 globular-type-Noncoherent-Wild-Higher-Precategory = - obj-Noncoherent-Wild-Higher-Precategory - pr2 globular-type-Noncoherent-Wild-Higher-Precategory = - hom-globular-structure-Noncoherent-Wild-Higher-Precategory + globular-type-Noncoherent-Wild-Higher-Precategory = + make-Globular-Type + ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) ``` We record some common projections for noncoherent wild higher precategories. @@ -153,13 +152,9 @@ We record some common projections for noncoherent wild higher precategories. hom-globular-type-Noncoherent-Wild-Higher-Precategory : (x y : obj-Noncoherent-Wild-Higher-Precategory) → Globular-Type l2 l2 - pr1 (hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) = - hom-Noncoherent-Wild-Higher-Precategory x y - pr2 (hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) = - globular-structure-1-cell-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - ( x) - ( y) + hom-globular-type-Noncoherent-Wild-Higher-Precategory = + globular-type-1-cell-globular-structure + hom-globular-structure-Noncoherent-Wild-Higher-Precategory hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : (x y : obj-Noncoherent-Wild-Higher-Precategory) → From 9bac61a952f286257434ffbcc040166112dd3349 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 9 Oct 2024 16:59:28 -0400 Subject: [PATCH 03/42] work --- .../large-transitive-globular-types.lagda.md | 96 +++++++++---------- .../wild-category-of-pointed-types.lagda.md | 4 +- 2 files changed, 45 insertions(+), 55 deletions(-) diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/structured-types/large-transitive-globular-types.lagda.md index 956ae752d1..d8c0c4bca4 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/structured-types/large-transitive-globular-types.lagda.md @@ -126,60 +126,50 @@ is-transitive-Large-Globular-Type G = ```agda record - is-transitive-Large-Globular-Type - {α : Level → Level} {β : Level → Level → Level} - (A : Large-Globular-Type α β) : - UUω - where - field - refl-0-cell-is-transitive-Large-Globular-Type : - is-transitive-Large-Relation - ( 0-cell-Large-Globular-Type A) - ( 1-cell-Large-Globular-Type A) - is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - is-transitive-Globular-Type - ( 1-cell-globular-type-Large-Globular-Type A x y) - - refl-1-cell-is-transitive-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - is-transitive (2-cell-Large-Globular-Type A {x = x} {y = y}) - refl-1-cell-is-transitive-Large-Globular-Type = - is-transitive-1-cell-is-transitive-Globular-Type - ( 1-cell-globular-type-Large-Globular-Type A _ _) - ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type) - - refl-2-cell-is-transitive-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} - {f g : 1-cell-Large-Globular-Type A x y} → - is-transitive (3-cell-Large-Globular-Type A {f = f} {g = g}) - refl-2-cell-is-transitive-Large-Globular-Type = - is-transitive-2-cell-is-transitive-Globular-Type - ( 1-cell-globular-type-Large-Globular-Type A _ _) - ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type) - -open is-transitive-Large-Globular-Type public -``` + Large-Transitive-Globular-Type + (α : Level → Level) (β : Level → Level → Level) : UUω + where --- ```agda --- record --- Large-Transitive-Globular-Type --- (α : Level → Level) (β : Level → Level → Level) : UUω --- where + field + large-globular-type-Large-Transitive-Globular-Type : + Large-Globular-Type α β --- field --- 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) + 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) + 0-cell-Large-Transitive-Globular-Type = + 0-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type --- transitive-globular-structure-0-cell-Large-Transitive-Globular-Type : --- large-transitive-globular-structure --- ( β) --- ( 0-cell-Large-Transitive-Globular-Type) + 1-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Transitive-Globular-Type l1) + (y : 0-cell-Large-Transitive-Globular-Type l2) → UU (β l1 l2) + 1-cell-Large-Transitive-Globular-Type = + 1-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type --- open Large-Transitive-Globular-Type public --- ``` + 2-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + (f g : 1-cell-Large-Transitive-Globular-Type x y) → UU (β l1 l2) + 2-cell-Large-Transitive-Globular-Type = + 2-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + 3-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + {f g : 1-cell-Large-Transitive-Globular-Type x y} + (s t : 2-cell-Large-Transitive-Globular-Type f g) → UU (β l1 l2) + 3-cell-Large-Transitive-Globular-Type = + 3-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + field + is-transitive-Large-Transitive-Globular-Type : + is-transitive-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + +open Large-Transitive-Globular-Type +``` diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 9debf94f47..ae0fb3d78c 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -198,8 +198,8 @@ uniform-pointed-map-Transitive-Globular-Type A B = uniform-pointed-Π-Transitive-Globular-Type A (constant-Pointed-Fam A B) comp-structure-uniform-pointed-type-Large-Globular-Type : - is-transitive-Large-Globular-Type pointed-type-Large-Globular-Type -comp-structure-uniform-pointed-type-Large-Globular-Type = ? + is-transitive-Large-Globular-Type uniform-pointed-type-Large-Globular-Type +comp-structure-uniform-pointed-type-Large-Globular-Type = {!!} ``` #### The uniform large globular structure on pointed types From 72731cb0a42f601674484e9f0a75466e661acdcb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 11 Oct 2024 16:01:57 -0400 Subject: [PATCH 04/42] computation of the universal globular type, and correspondence of dependendent globular types with morphisms into the universal globular type --- .../exponents-globular-types.lagda.md | 33 +++-- ...oducts-families-of-globular-types.lagda.md | 57 +++++---- .../universal-globular-type.lagda.md | 120 +++++++++++++----- ...universal-reflexive-globular-type.lagda.md | 2 +- 4 files changed, 145 insertions(+), 67 deletions(-) diff --git a/src/structured-types/exponents-globular-types.lagda.md b/src/structured-types/exponents-globular-types.lagda.md index e7c2e13d9e..4223d65448 100644 --- a/src/structured-types/exponents-globular-types.lagda.md +++ b/src/structured-types/exponents-globular-types.lagda.md @@ -12,6 +12,7 @@ module structured-types.exponents-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types open import structured-types.products-families-of-globular-types ``` @@ -40,11 +41,6 @@ module _ 1-cell-exponent-Globular-Type = 1-cell-indexed-product-Globular-Type (λ (x : A) → G) - globular-structure-0-cell-exponent-Globular-Type : - globular-structure (l1 ⊔ l3) 0-cell-exponent-Globular-Type - globular-structure-0-cell-exponent-Globular-Type = - globular-structure-0-cell-indexed-product-Globular-Type (λ (x : A) → G) - exponent-Globular-Type : Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) exponent-Globular-Type = indexed-product-Globular-Type (λ (x : A) → G) ``` @@ -65,13 +61,28 @@ module _ 1-cell-double-exponent-Globular-Type = 1-cell-double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) - globular-structure-0-cell-double-exponent-Globular-Type : - globular-structure (l1 ⊔ l2 ⊔ l4) 0-cell-double-exponent-Globular-Type - globular-structure-0-cell-double-exponent-Globular-Type = - globular-structure-0-cell-double-indexed-product-Globular-Type - ( λ (x : A) (y : B) → G) - double-exponent-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) double-exponent-Globular-Type = double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) ``` + +### Evaluating globular maps into exponents of globular types + +```agda +ev-hom-exponent-Globular-Type : + {l1 l2 l3 l4 l5 : Level} {I : UU l1} + {G : Globular-Type l2 l3} {H : Globular-Type l4 l5} + (f : globular-map G (exponent-Globular-Type I H)) → + I → globular-map G H +ev-hom-exponent-Globular-Type = ev-hom-indexed-product-Globular-Type +``` + +### Binding families of globular maps + +```agda +bind-family-globular-maps : + {l1 l2 l3 l4 l5 : Level} {I : UU l1} + {G : Globular-Type l2 l3} {H : Globular-Type l4 l5} + (f : I → globular-map G H) → globular-map G (exponent-Globular-Type I H) +bind-family-globular-maps = bind-indexed-family-globular-maps +``` diff --git a/src/structured-types/products-families-of-globular-types.lagda.md b/src/structured-types/products-families-of-globular-types.lagda.md index 4a28a424b9..4b5edc1a95 100644 --- a/src/structured-types/products-families-of-globular-types.lagda.md +++ b/src/structured-types/products-families-of-globular-types.lagda.md @@ -12,6 +12,7 @@ module structured-types.products-families-of-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -46,24 +47,14 @@ module _ 1-cell-indexed-product-Globular-Type G x y = (i : I) → 1-cell-Globular-Type (G i) (x i) (y i) - globular-structure-0-cell-indexed-product-Globular-Type : - {l2 l3 : Level} (G : I → Globular-Type l2 l3) → - globular-structure (l1 ⊔ l3) (0-cell-indexed-product-Globular-Type G) - 1-cell-globular-structure - ( globular-structure-0-cell-indexed-product-Globular-Type G) = - 1-cell-indexed-product-Globular-Type G - globular-structure-1-cell-globular-structure - ( globular-structure-0-cell-indexed-product-Globular-Type G) x y = - globular-structure-0-cell-indexed-product-Globular-Type - ( λ i → 1-cell-globular-type-Globular-Type (G i) (x i) (y i)) - indexed-product-Globular-Type : {l2 l3 : Level} (G : I → Globular-Type l2 l3) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) - pr1 (indexed-product-Globular-Type G) = + 0-cell-Globular-Type (indexed-product-Globular-Type G) = 0-cell-indexed-product-Globular-Type G - pr2 (indexed-product-Globular-Type G) = - globular-structure-0-cell-indexed-product-Globular-Type G + 1-cell-globular-type-Globular-Type (indexed-product-Globular-Type G) x y = + indexed-product-Globular-Type + ( λ i → 1-cell-globular-type-Globular-Type (G i) (x i) (y i)) ``` ### Double indexed products of families of globular types @@ -85,17 +76,39 @@ module _ 1-cell-indexed-product-Globular-Type ( λ i → indexed-product-Globular-Type (G i)) - globular-structure-0-cell-double-indexed-product-Globular-Type : - globular-structure - ( l1 ⊔ l2 ⊔ l4) - ( 0-cell-double-indexed-product-Globular-Type) - globular-structure-0-cell-double-indexed-product-Globular-Type = - globular-structure-0-cell-indexed-product-Globular-Type - ( λ i → indexed-product-Globular-Type (G i)) - double-indexed-product-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) double-indexed-product-Globular-Type = indexed-product-Globular-Type ( λ i → indexed-product-Globular-Type (G i)) ``` + +### Evaluating globular maps into exponents of globular types + +```agda +ev-hom-indexed-product-Globular-Type : + {l1 l2 l3 l4 l5 : Level} {I : UU l1} + {G : Globular-Type l2 l3} {H : I → Globular-Type l4 l5} + (f : globular-map G (indexed-product-Globular-Type H)) → + (i : I) → globular-map G (H i) +0-cell-globular-map (ev-hom-indexed-product-Globular-Type f i) x = + 0-cell-globular-map f x i +1-cell-globular-map-globular-map + ( ev-hom-indexed-product-Globular-Type f i) = + ev-hom-indexed-product-Globular-Type (1-cell-globular-map-globular-map f) i +``` + +### Binding families of globular maps + +```agda +bind-indexed-family-globular-maps : + {l1 l2 l3 l4 l5 : Level} {I : UU l1} + {G : Globular-Type l2 l3} {H : I → Globular-Type l4 l5} + (f : (i : I) → globular-map G (H i)) → + globular-map G (indexed-product-Globular-Type H) +0-cell-globular-map (bind-indexed-family-globular-maps f) x i = + 0-cell-globular-map (f i) x +1-cell-globular-map-globular-map (bind-indexed-family-globular-maps f) = + bind-indexed-family-globular-maps + ( λ i → 1-cell-globular-map-globular-map (f i)) +``` diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md index c6076d62b6..f94e0b0bfc 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/structured-types/universal-globular-type.lagda.md @@ -13,6 +13,9 @@ open import foundation.dependent-pair-types open import foundation.spans open import foundation.universe-levels +open import structured-types.dependent-globular-types +open import structured-types.exponents-globular-types +open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -75,33 +78,20 @@ We compute a few instances of the slice category `Γ/I`: ``` respectively. + +More specifically, the slice category `Γ/n` is isomorphic to the iterated suspension `Σⁿ1` of the terminal category. This means that: - The type `0`-cells of the universal globular type is the universe of types `UU l`. - The type of `1`-cells from `X` to `Y` of the universal globular type is the type of spans from `X` to `Y`. -- The type of `2`-cells +- The type of `2`-cells between any two spans `R` and `S` from `X` to `Y` is the type of families of spans from `R x y` to `S x y` indexed by `x : X` and `y : Y`, and so on. -## Definitions +In other words, the universal globular type `𝒰` has the universe of types as its type of `0`-cells, and for any two types `X` and `Y`, the globular type of `1`-cells is the double [exponent](structured-types.exponents-globular-types.md) `(𝒰^Y)^X` of globular types. -### Iterated binary relations +Unfortunately, the termination checking algorithm isn't able to establish that this definition is terminating. Nevertheless, when termination checking is turned off for this definition, the types of the `n`-cells come out correctly for low values of `n`. -```agda -record - iterated-binary-relation - {l1 : Level} (l2 : Level) (X Y : UU l1) : UU (l1 ⊔ lsuc l2) - where - coinductive - field - rel-iterated-binary-relation : (x : X) (y : Y) → UU l2 - iterated-binary-relation-rel-iterated-binary-relation : - (x x' : X) (y y' : Y) → - iterated-binary-relation l2 - ( rel-iterated-binary-relation x y) - ( rel-iterated-binary-relation x' y') - -open iterated-binary-relation public -``` +## Definitions ### The universal globular type @@ -109,20 +99,84 @@ open iterated-binary-relation public 0-cell-universal-Globular-Type : (l1 l2 : Level) → UU (lsuc l1) 0-cell-universal-Globular-Type l1 l2 = UU l1 -globular-structure-universal-Globular-Type : - (l1 l2 : Level) → - globular-structure (l1 ⊔ lsuc l2) (0-cell-universal-Globular-Type l1 l2) -1-cell-globular-structure - ( globular-structure-universal-Globular-Type l1 l2) X Y = - X → Y → UU l2 -globular-structure-1-cell-globular-structure - ( globular-structure-universal-Globular-Type l1 l2) X Y = - {!globular-structure-universal-Globular-Type ? ?!} - -universal-Globular-Type : (l1 l2 : Level) → Globular-Type (lsuc l1) {!!} -pr1 (universal-Globular-Type l1 l2) = 0-cell-universal-Globular-Type l1 l2 -pr2 (universal-Globular-Type l1 l2) = {!!} - +{-# TERMINATING #-} + +universal-Globular-Type : + (l1 l2 : Level) → Globular-Type (lsuc l1) (l1 ⊔ lsuc l2) +0-cell-Globular-Type (universal-Globular-Type l1 l2) = + 0-cell-universal-Globular-Type l1 l2 +1-cell-globular-type-Globular-Type (universal-Globular-Type l1 l2) X Y = + exponent-Globular-Type X + ( exponent-Globular-Type Y (universal-Globular-Type l2 l2)) + +1-cell-universal-Globular-Type : + {l1 l2 : Level} (X Y : UU l1) → UU (l1 ⊔ lsuc l2) +1-cell-universal-Globular-Type {l1} {l2} = + 1-cell-Globular-Type (universal-Globular-Type l1 l2) + +2-cell-universal-Globular-Type : + {l1 l2 : Level} {X Y : UU l1} (R S : X → Y → UU l2) → UU (l1 ⊔ lsuc l2) +2-cell-universal-Globular-Type {l1} {l2} {X} {Y} = + 2-cell-Globular-Type (universal-Globular-Type l1 l2) + +3-cell-universal-Globular-Type : + {l1 l2 : Level} {X Y : UU l1} {R S : X → Y → UU l2} + (A B : (x : X) (y : Y) → R x y → S x y → UU l2) → UU (l1 ⊔ lsuc l2) +3-cell-universal-Globular-Type {l1} {l2} = + 3-cell-Globular-Type (universal-Globular-Type l1 l2) +``` + +### Dependent globular types + +#### Morphisms into the universal globular type induce dependent globular types + +```agda +0-cell-dependent-globular-type-hom-universal-Globular-Type : + {l1 l2 l3 l4 : Level} (G : Globular-Type l1 l2) + (h : globular-map G (universal-Globular-Type l3 l4)) → + 0-cell-Globular-Type G → UU l3 +0-cell-dependent-globular-type-hom-universal-Globular-Type G h = + 0-cell-globular-map h + +dependent-globular-type-hom-universal-Globular-Type : + {l1 l2 l3 l4 : Level} (G : Globular-Type l1 l2) + (h : globular-map G (universal-Globular-Type l3 l4)) → + Dependent-Globular-Type l3 l4 G +0-cell-Dependent-Globular-Type + ( dependent-globular-type-hom-universal-Globular-Type G h) = + 0-cell-dependent-globular-type-hom-universal-Globular-Type G h +1-cell-dependent-globular-type-Dependent-Globular-Type + ( dependent-globular-type-hom-universal-Globular-Type G h) + {x} {x'} y y' = + dependent-globular-type-hom-universal-Globular-Type + ( 1-cell-globular-type-Globular-Type G x x') + ( ev-hom-exponent-Globular-Type + ( ev-hom-exponent-Globular-Type + ( 1-cell-globular-map-globular-map h {x} {x'}) + ( y)) + ( y')) +``` + +#### Dependent globular types induce morphisms into the universal globular type + +```agda +{-# TERMINATING #-} + +hom-universal-globular-type-Dependent-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) → + globular-map G (universal-Globular-Type l3 l4) +0-cell-globular-map + ( hom-universal-globular-type-Dependent-Globular-Type {G = G} H) = + 0-cell-Dependent-Globular-Type H +1-cell-globular-map-globular-map + ( hom-universal-globular-type-Dependent-Globular-Type {G = G} H) {x} {x'} = + bind-family-globular-maps + ( λ y → + bind-family-globular-maps + ( λ y' → + hom-universal-globular-type-Dependent-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y'))) ``` ## References diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md index ee85ed337c..5bbf3800f9 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -41,7 +41,7 @@ in which the _reflexive globular identities_ hold. The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf -obtained by apply the functoriality of the right adjoint `ν : Cat → Psh 𝒞` of +obtained by applying the functoriality of the right adjoint `ν : Cat → Psh 𝒞` of the _category of elements functor_ `∫_𝒞 : Psh 𝒞 → Cat` to the universal discrete fibration `π : Pointed-Type → Type`. More specifically, the Hofmann-Streicher universe `(𝒰_𝒞 , El_𝒞)` is given by From bb31cac408c55190ba9548b0ae0b6b8e7116905e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sat, 12 Oct 2024 23:57:21 -0400 Subject: [PATCH 05/42] reflexive globular maps --- .../reflexive-globular-maps.lagda.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 src/structured-types/reflexive-globular-maps.lagda.md diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..cdfc7f5161 --- /dev/null +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -0,0 +1,169 @@ +# Reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped with + +## Definitions + +### Globular maps between reflexive globular types + +```agda +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + where + + globular-map-Reflexive-Globular-Type : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + globular-map-Reflexive-Globular-Type = + globular-map + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) + +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) + where + + 0-cell-globular-map-Reflexive-Globular-Type : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-globular-map-Reflexive-Globular-Type = + 0-cell-globular-map f + + 1-cell-globular-map-globular-map-Reflexive-Globular-Type : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + 1-cell-globular-map-globular-map-Reflexive-Globular-Type = + 1-cell-globular-map-globular-map f +``` + +### The predicate of preserving reflexivity + +```agda +record + preserves-refl-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-refl-0-cell-preserves-refl-globular-map : + (x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x})) + ( refl-0-cell-Reflexive-Globular-Type H) + + field + preserves-refl-1-cell-globular-map-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map-Reflexive-Globular-Type G H f) + +open preserves-refl-globular-map +``` + +### Reflexive globular maps + +```agda +record + reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-reflexive-globular-map = + 0-cell-globular-map globular-map-reflexive-globular-map + + 1-cell-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + 1-cell-Reflexive-Globular-Type G x y → + 1-cell-Reflexive-Globular-Type H + ( 0-cell-reflexive-globular-map x) + ( 0-cell-reflexive-globular-map y) + 1-cell-reflexive-globular-map = + 1-cell-globular-map globular-map-reflexive-globular-map + + 1-cell-globular-map-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-reflexive-globular-map x) + ( 0-cell-reflexive-globular-map y)) + 1-cell-globular-map-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-reflexive-globular-map + + field + preserves-refl-reflexive-globular-map : + preserves-refl-globular-map G H + globular-map-reflexive-globular-map + + preserves-refl-0-cell-reflexive-globular-map : + ( x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-reflexive-globular-map + ( refl-0-cell-Reflexive-Globular-Type G {x})) + ( refl-0-cell-Reflexive-Globular-Type H) + preserves-refl-0-cell-reflexive-globular-map = + preserves-refl-0-cell-preserves-refl-globular-map + preserves-refl-reflexive-globular-map + + preserves-refl-1-cell-globular-map-reflexive-globular-map : + { x y : 0-cell-Reflexive-Globular-Type G} → + preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-reflexive-globular-map x) + ( 0-cell-reflexive-globular-map y)) + ( 1-cell-globular-map-reflexive-globular-map) + preserves-refl-1-cell-globular-map-reflexive-globular-map = + preserves-refl-1-cell-globular-map-globular-map + preserves-refl-reflexive-globular-map + + 1-cell-reflexive-globular-map-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-reflexive-globular-map x) + ( 0-cell-reflexive-globular-map y)) + globular-map-reflexive-globular-map + 1-cell-reflexive-globular-map-reflexive-globular-map = + 1-cell-globular-map-reflexive-globular-map + preserves-refl-reflexive-globular-map + 1-cell-reflexive-globular-map-reflexive-globular-map = + preserves-refl-1-cell-globular-map-reflexive-globular-map +``` From f56cc6a28f71f8df149f8011418395e14536152f Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 13 Oct 2024 15:47:29 -0400 Subject: [PATCH 06/42] sections and pi --- ...artesian-products-directed-graphs.lagda.md | 102 +++++++ .../dependent-directed-graphs.lagda.md | 86 ++++++ ...ependent-products-directed-graphs.lagda.md | 253 ++++++++++++++++++ .../exponents-directed-graphs.lagda.md | 210 +++++++++++++++ ...llbacks-dependent-directed-graphs.lagda.md | 60 +++++ ...ections-dependent-directed-graphs.lagda.md | 165 ++++++++++++ .../terminal-directed-graphs.lagda.md | 90 +++++++ 7 files changed, 966 insertions(+) create mode 100644 src/graph-theory/cartesian-products-directed-graphs.lagda.md create mode 100644 src/graph-theory/dependent-directed-graphs.lagda.md create mode 100644 src/graph-theory/dependent-products-directed-graphs.lagda.md create mode 100644 src/graph-theory/exponents-directed-graphs.lagda.md create mode 100644 src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md create mode 100644 src/graph-theory/sections-dependent-directed-graphs.lagda.md create mode 100644 src/graph-theory/terminal-directed-graphs.lagda.md diff --git a/src/graph-theory/cartesian-products-directed-graphs.lagda.md b/src/graph-theory/cartesian-products-directed-graphs.lagda.md new file mode 100644 index 0000000000..881164930c --- /dev/null +++ b/src/graph-theory/cartesian-products-directed-graphs.lagda.md @@ -0,0 +1,102 @@ +# Cartesian products of directed graphs + +```agda +module graph-theory.cartesian-products-directed-graphs where +``` + +
Imports + +```agda +open import foundation.cartesian-product-types +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +Consider two [directed graphs](graph-theory.directed-graphs.md) `A := (A₀ , A₁)` and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is the directed graph `A × B` given by + +```text + (A × B)₀ := A₀ × B₀ + (A × B)₁ (x , y) (x' , y') := A₁ x x' × B₁ y y'. +``` + +## Definitions + +### The cartesian product of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + where + + vertex-product-Directed-Graph : UU (l1 ⊔ l3) + vertex-product-Directed-Graph = + vertex-Directed-Graph A × vertex-Directed-Graph B + + edge-product-Directed-Graph : + (x y : vertex-product-Directed-Graph) → UU (l2 ⊔ l4) + edge-product-Directed-Graph (x , y) (x' , y') = + edge-Directed-Graph A x x' × edge-Directed-Graph B y y' + + product-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) + pr1 product-Directed-Graph = vertex-product-Directed-Graph + pr2 product-Directed-Graph = edge-product-Directed-Graph +``` + +### The projections out of cartesian products of directed graphs + +#### The first projection out of the cartesian product of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + where + + vertex-pr1-product-Directed-Graph : + vertex-product-Directed-Graph A B → vertex-Directed-Graph A + vertex-pr1-product-Directed-Graph = pr1 + + edge-pr1-product-Directed-Graph : + {x y : vertex-product-Directed-Graph A B} → + edge-product-Directed-Graph A B x y → + edge-Directed-Graph A + ( vertex-pr1-product-Directed-Graph x) + ( vertex-pr1-product-Directed-Graph y) + edge-pr1-product-Directed-Graph = pr1 + + pr1-product-Directed-Graph : + hom-Directed-Graph (product-Directed-Graph A B) A + pr1 pr1-product-Directed-Graph = vertex-pr1-product-Directed-Graph + pr2 pr1-product-Directed-Graph _ _ = edge-pr1-product-Directed-Graph +``` + +#### The second projection out of the cartesian product of two directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + where + + vertex-pr2-product-Directed-Graph : + vertex-product-Directed-Graph A B → vertex-Directed-Graph B + vertex-pr2-product-Directed-Graph = pr2 + + edge-pr2-product-Directed-Graph : + {x y : vertex-product-Directed-Graph A B} → + edge-product-Directed-Graph A B x y → + edge-Directed-Graph B + ( vertex-pr2-product-Directed-Graph x) + ( vertex-pr2-product-Directed-Graph y) + edge-pr2-product-Directed-Graph = pr2 + + pr2-product-Directed-Graph : + hom-Directed-Graph (product-Directed-Graph A B) B + pr1 pr2-product-Directed-Graph = vertex-pr2-product-Directed-Graph + pr2 pr2-product-Directed-Graph _ _ = edge-pr2-product-Directed-Graph +``` diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md new file mode 100644 index 0000000000..6c9d7184f2 --- /dev/null +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -0,0 +1,86 @@ +# Dependent directed graphs + +```agda +module graph-theory.dependent-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.directed-graphs +``` + +
+ +## Idea + +Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A {{#concept "dependent directed graph}} `B` over `A` consists of: + +- A family `B₀ : A₀ → 𝒰` of vertices +- A family `B₁ : (x y : A₀) → A₁ x y → B₀ x → B₀ y → 𝒰` of [binary relations](foundation.binary-relations.md) between the types of vertices `B₀`, indexed by the type of edges `A₁` in `A`. + +This definition may appear overly general. However, one can observe that the type of directed graphs itself is [equivalent](foundation-core.equivalences.md) to the type of dependent directed graphs over the [terminal directed graph](graph-theory.terminal-directed-graphs.md). Furthermore, [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) into the [universal directed graph](graph-theory.universal-directed-graph.md) are equivalent to dependent directed graphs. + +## Definitions + +### Dependent directed graphs + +```agda +Dependent-Directed-Graph : + {l1 l2 : Level} (l3 l4 : Level) → Directed-Graph l1 l2 → + UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) +Dependent-Directed-Graph l3 l4 A = + Σ ( vertex-Directed-Graph A → UU l3) + ( λ B₀ → + {x y : vertex-Directed-Graph A} → + edge-Directed-Graph A x y → B₀ x → B₀ y → UU l4) + +module _ + {l1 l2 l3 l4 : Level} {A : Directed-Graph l1 l2} + (B : Dependent-Directed-Graph l3 l4 A) + where + + vertex-Dependent-Directed-Graph : vertex-Directed-Graph A → UU l3 + vertex-Dependent-Directed-Graph = pr1 B + + edge-Dependent-Directed-Graph : + {x y : vertex-Directed-Graph A} → + edge-Directed-Graph A x y → + vertex-Dependent-Directed-Graph x → + vertex-Dependent-Directed-Graph y → UU l4 + edge-Dependent-Directed-Graph = pr2 B +``` + +### Constant dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + where + + vertex-constant-Dependent-Directed-Graph : + vertex-Directed-Graph A → UU l3 + vertex-constant-Dependent-Directed-Graph x = vertex-Directed-Graph B + + edge-constant-Dependent-Directed-Graph : + {x y : vertex-Directed-Graph A} → + edge-Directed-Graph A x y → + vertex-constant-Dependent-Directed-Graph x → + vertex-constant-Dependent-Directed-Graph y → UU l4 + edge-constant-Dependent-Directed-Graph e = + edge-Directed-Graph B + + constant-Dependent-Directed-Graph : Dependent-Directed-Graph l3 l4 A + pr1 constant-Dependent-Directed-Graph = + vertex-constant-Dependent-Directed-Graph + pr2 constant-Dependent-Directed-Graph = + edge-constant-Dependent-Directed-Graph +``` + +## See also + +- The [universal directed graph](graph-theory.universal-directed-graph.md) +- [Pullbacks of dependent directed graphs](graph-theory.pullbacks-dependent-directed-graphs.md) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md new file mode 100644 index 0000000000..0da5c749b1 --- /dev/null +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -0,0 +1,253 @@ +# Dependent products of directed graphs + +```agda +module graph-theory.dependent-products-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.homotopies +open import foundation.retractions +open import foundation.sections +open import foundation.universe-levels + +open import graph-theory.cartesian-products-directed-graphs +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +open import graph-theory.pullbacks-dependent-directed-graphs +open import graph-theory.sections-dependent-directed-graphs +``` + +
+ +## Idea + +Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graphs](graph-theory.directed-graphs.md) `A`, the {{#concept "dependent product" Disambiguation="directed graph" agda=Π-Directed-Graph}} `Π A B` is the directed graph that satisfies the universal property + +```text + hom X (Π A B) ≃ hom (X × A) B. +``` + +Concretely, the directed graph `Π A B` has + +- The type of functions `(x : A₀) → B₀ x` as its type of vertices +- For any two functions `f₀ g₀ : (x : A₀) → B₀ x`, an edge from `f₀` to `g₀` is an element of type + + ```text + (x y : A₀) → A₁ x y → B₁ (f₀ x) (g₀ y). + ``` + +The universal property of the dependent product gives that the type of [sections](graph-theory.sections-dependent-directed-graphs.md) of `B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into `Π A B`, which is in turn equivalent to the type of vertices `f₀` of the Π `Π A B` equipped with a loop `(Π A B)₁ f f`. Indeed, this data consists of: + +- A map `f₀ : A₀ → B₀` +- A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, + +as expected for the type of sections of a dependent directed graph. + +## Definitions + +### The Π of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) + (B : Dependent-Directed-Graph l3 l4 A) + where + + vertex-Π-Directed-Graph : UU (l1 ⊔ l3) + vertex-Π-Directed-Graph = + (x : vertex-Directed-Graph A) → vertex-Dependent-Directed-Graph B x + + edge-Π-Directed-Graph : + (f g : vertex-Π-Directed-Graph) → UU (l1 ⊔ l2 ⊔ l4) + edge-Π-Directed-Graph f g = + (x y : vertex-Directed-Graph A) → + (e : edge-Directed-Graph A x y) → + edge-Dependent-Directed-Graph B {x} {y} e (f x) (g y) + + Π-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + pr1 Π-Directed-Graph = vertex-Π-Directed-Graph + pr2 Π-Directed-Graph = edge-Π-Directed-Graph +``` + +## Properties + +### The Π directed graph satisfies the universal property of the Π + +#### The evaluation of a morphism into an Π of directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Dependent-Directed-Graph l3 l4 A) + (C : Directed-Graph l5 l6) + (f : hom-Directed-Graph C (Π-Directed-Graph A B)) + where + + vertex-ev-section-Π-Directed-Graph : + (x : vertex-product-Directed-Graph C A) → + vertex-Dependent-Directed-Graph B (pr2 x) + vertex-ev-section-Π-Directed-Graph (c , a) = + vertex-hom-Directed-Graph C (Π-Directed-Graph A B) f c a + + edge-ev-section-Π-Directed-Graph : + {x y : vertex-product-Directed-Graph C A} → + (e : edge-product-Directed-Graph C A x y) → + edge-Dependent-Directed-Graph B + ( edge-pr2-product-Directed-Graph C A e) + ( vertex-ev-section-Π-Directed-Graph x) + ( vertex-ev-section-Π-Directed-Graph y) + edge-ev-section-Π-Directed-Graph (d , e) = + edge-hom-Directed-Graph C (Π-Directed-Graph A B) f d _ _ e + + ev-section-Π-Directed-Graph : + section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + pr1 ev-section-Π-Directed-Graph = vertex-ev-section-Π-Directed-Graph + pr2 ev-section-Π-Directed-Graph = edge-ev-section-Π-Directed-Graph +``` + +#### Uncurrying a morphism from a cartesian product into a directed graph + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Dependent-Directed-Graph l3 l4 A) + (C : Directed-Graph l5 l6) + (f : + section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B))) + where + + vertex-uncurry-section-product-Directed-Graph : + vertex-Directed-Graph C → vertex-Π-Directed-Graph A B + vertex-uncurry-section-product-Directed-Graph c a = + vertex-section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + ( f) + ( c , a) + + edge-uncurry-section-product-Directed-Graph : + (x y : vertex-Directed-Graph C) → + edge-Directed-Graph C x y → + edge-Π-Directed-Graph A B + ( vertex-uncurry-section-product-Directed-Graph x) + ( vertex-uncurry-section-product-Directed-Graph y) + edge-uncurry-section-product-Directed-Graph c c' d a a' e = + edge-section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + ( f) + ( d , e) + + uncurry-section-product-Directed-Graph : + hom-Directed-Graph C (Π-Directed-Graph A B) + pr1 uncurry-section-product-Directed-Graph = + vertex-uncurry-section-product-Directed-Graph + pr2 uncurry-section-product-Directed-Graph = + edge-uncurry-section-product-Directed-Graph +``` + +#### The equivalence of the adjunction between products and Πs of directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Dependent-Directed-Graph l3 l4 A) + (C : Directed-Graph l5 l6) + where + + htpy-is-section-uncurry-section-product-Directed-Graph : + ( f : + section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B))) → + htpy-section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + ( ev-section-Π-Directed-Graph A B C + ( uncurry-section-product-Directed-Graph A B C f)) + ( f) + pr1 (htpy-is-section-uncurry-section-product-Directed-Graph f) = refl-htpy + pr2 (htpy-is-section-uncurry-section-product-Directed-Graph f) = refl-htpy + + is-section-uncurry-section-product-Directed-Graph : + is-section + ( ev-section-Π-Directed-Graph A B C) + ( uncurry-section-product-Directed-Graph A B C) + is-section-uncurry-section-product-Directed-Graph f = + eq-htpy-section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + ( ev-section-Π-Directed-Graph A B C + ( uncurry-section-product-Directed-Graph A B C f)) + ( f) + ( htpy-is-section-uncurry-section-product-Directed-Graph f) + + htpy-is-retraction-uncurry-section-product-Directed-Graph : + (f : hom-Directed-Graph C (Π-Directed-Graph A B)) → + htpy-hom-Directed-Graph + ( C) + ( Π-Directed-Graph A B) + ( uncurry-section-product-Directed-Graph A B C + ( ev-section-Π-Directed-Graph A B C f)) + ( f) + pr1 (htpy-is-retraction-uncurry-section-product-Directed-Graph f) = + refl-htpy + pr2 (htpy-is-retraction-uncurry-section-product-Directed-Graph f) x y = + refl-htpy + + is-retraction-uncurry-section-product-Directed-Graph : + is-retraction + ( ev-section-Π-Directed-Graph A B C) + ( uncurry-section-product-Directed-Graph A B C) + is-retraction-uncurry-section-product-Directed-Graph f = + eq-htpy-hom-Directed-Graph + ( C) + ( Π-Directed-Graph A B) + ( uncurry-section-product-Directed-Graph A B C + ( ev-section-Π-Directed-Graph A B C f)) + ( f) + ( htpy-is-retraction-uncurry-section-product-Directed-Graph f) + + is-equiv-ev-section-Π-Directed-Graph : + is-equiv (ev-section-Π-Directed-Graph A B C) + is-equiv-ev-section-Π-Directed-Graph = + is-equiv-is-invertible + ( uncurry-section-product-Directed-Graph A B C) + ( is-section-uncurry-section-product-Directed-Graph) + ( is-retraction-uncurry-section-product-Directed-Graph) + + ev-equiv-hom-Π-Directed-Graph : + hom-Directed-Graph C (Π-Directed-Graph A B) ≃ + section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + pr1 ev-equiv-hom-Π-Directed-Graph = + ev-section-Π-Directed-Graph A B C + pr2 ev-equiv-hom-Π-Directed-Graph = + is-equiv-ev-section-Π-Directed-Graph +``` diff --git a/src/graph-theory/exponents-directed-graphs.lagda.md b/src/graph-theory/exponents-directed-graphs.lagda.md new file mode 100644 index 0000000000..c5a78f1771 --- /dev/null +++ b/src/graph-theory/exponents-directed-graphs.lagda.md @@ -0,0 +1,210 @@ +# Exponents of directed graphs + +```agda +module graph-theory.exponents-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.homotopies +open import foundation.retractions +open import foundation.sections +open import foundation.universe-levels + +open import graph-theory.cartesian-products-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +Given two [directed graphs](graph-theory.directed-graphs.md) `A` and `B`, the {{#concept "exponent" Disambiguation="directed graph" agda=exponent-Directed-Graph}} `B^A` is the directed graph that satisfies the universal property + +```text + hom X B^A ≃ hom (X × A) B. +``` + +Concretely, the directed graph `B^A` has + +- The type of functions `A₀ → B₀` as its type of vertices +- For any two functions `f₀ g₀ : A₀ → B₀`, an edge from `f₀` to `g₀` is an element of type + + ```text + (x y : A₀) → A₁ x y → B₁ (f₀ x) (g₀ y). + ``` + +The universal property of the exponent gives that the type of [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into `B^A`, which is in turn equivalent to the type of vertices `f₀` of the exponent `B^A` equipped with a loop `(B^A)₁ f f`. Indeed, this data consists of: + +- A map `f₀ : A₀ → B₀` +- A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, + +as expected for a morphism of directed graphs. + +## Definitions + +### The exponent of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + where + + vertex-exponent-Directed-Graph : UU (l1 ⊔ l3) + vertex-exponent-Directed-Graph = + vertex-Directed-Graph A → vertex-Directed-Graph B + + edge-exponent-Directed-Graph : + (f g : vertex-exponent-Directed-Graph) → UU (l1 ⊔ l2 ⊔ l4) + edge-exponent-Directed-Graph f g = + (x y : vertex-Directed-Graph A) → + edge-Directed-Graph A x y → edge-Directed-Graph B (f x) (g y) + + exponent-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + pr1 exponent-Directed-Graph = vertex-exponent-Directed-Graph + pr2 exponent-Directed-Graph = edge-exponent-Directed-Graph +``` + +## Properties + +### The exponent directed graph satisfies the universal property of the exponent + +#### The evaluation of a morphism into an exponent of directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + (C : Directed-Graph l5 l6) + (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) + where + + vertex-ev-hom-exponent-Directed-Graph : + vertex-product-Directed-Graph C A → vertex-Directed-Graph B + vertex-ev-hom-exponent-Directed-Graph (c , a) = + vertex-hom-Directed-Graph C (exponent-Directed-Graph A B) f c a + + edge-ev-hom-exponent-Directed-Graph : + (x y : vertex-product-Directed-Graph C A) → + edge-product-Directed-Graph C A x y → + edge-Directed-Graph B + ( vertex-ev-hom-exponent-Directed-Graph x) + ( vertex-ev-hom-exponent-Directed-Graph y) + edge-ev-hom-exponent-Directed-Graph _ _ (d , e) = + edge-hom-Directed-Graph C (exponent-Directed-Graph A B) f d _ _ e + + ev-hom-exponent-Directed-Graph : + hom-Directed-Graph (product-Directed-Graph C A) B + pr1 ev-hom-exponent-Directed-Graph = vertex-ev-hom-exponent-Directed-Graph + pr2 ev-hom-exponent-Directed-Graph = edge-ev-hom-exponent-Directed-Graph +``` + +#### Uncurrying a morphism from a cartesian product into a directed graph + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + (C : Directed-Graph l5 l6) + (f : hom-Directed-Graph (product-Directed-Graph C A) B) + where + + vertex-uncurry-hom-product-Directed-Graph : + vertex-Directed-Graph C → vertex-exponent-Directed-Graph A B + vertex-uncurry-hom-product-Directed-Graph c a = + vertex-hom-Directed-Graph (product-Directed-Graph C A) B f (c , a) + + edge-uncurry-hom-product-Directed-Graph : + (x y : vertex-Directed-Graph C) → + edge-Directed-Graph C x y → + edge-exponent-Directed-Graph A B + ( vertex-uncurry-hom-product-Directed-Graph x) + ( vertex-uncurry-hom-product-Directed-Graph y) + edge-uncurry-hom-product-Directed-Graph c c' d a a' e = + edge-hom-Directed-Graph (product-Directed-Graph C A) B f (d , e) + + uncurry-hom-product-Directed-Graph : + hom-Directed-Graph C (exponent-Directed-Graph A B) + pr1 uncurry-hom-product-Directed-Graph = + vertex-uncurry-hom-product-Directed-Graph + pr2 uncurry-hom-product-Directed-Graph = + edge-uncurry-hom-product-Directed-Graph +``` + +#### The equivalence of the adjunction between products and exponents of directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) + (C : Directed-Graph l5 l6) + where + + htpy-is-section-uncurry-hom-product-Directed-Graph : + (f : hom-Directed-Graph (product-Directed-Graph C A) B) → + htpy-hom-Directed-Graph + ( product-Directed-Graph C A) + ( B) + ( ev-hom-exponent-Directed-Graph A B C + ( uncurry-hom-product-Directed-Graph A B C f)) + ( f) + pr1 (htpy-is-section-uncurry-hom-product-Directed-Graph f) = refl-htpy + pr2 (htpy-is-section-uncurry-hom-product-Directed-Graph f) x y = refl-htpy + + is-section-uncurry-hom-product-Directed-Graph : + is-section + ( ev-hom-exponent-Directed-Graph A B C) + ( uncurry-hom-product-Directed-Graph A B C) + is-section-uncurry-hom-product-Directed-Graph f = + eq-htpy-hom-Directed-Graph + ( product-Directed-Graph C A) + ( B) + ( ev-hom-exponent-Directed-Graph A B C + ( uncurry-hom-product-Directed-Graph A B C f)) + ( f) + ( htpy-is-section-uncurry-hom-product-Directed-Graph f) + + htpy-is-retraction-uncurry-hom-product-Directed-Graph : + (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) → + htpy-hom-Directed-Graph + ( C) + ( exponent-Directed-Graph A B) + ( uncurry-hom-product-Directed-Graph A B C + ( ev-hom-exponent-Directed-Graph A B C f)) + ( f) + pr1 (htpy-is-retraction-uncurry-hom-product-Directed-Graph f) = refl-htpy + pr2 (htpy-is-retraction-uncurry-hom-product-Directed-Graph f) x y = refl-htpy + + is-retraction-uncurry-hom-product-Directed-Graph : + is-retraction + ( ev-hom-exponent-Directed-Graph A B C) + ( uncurry-hom-product-Directed-Graph A B C) + is-retraction-uncurry-hom-product-Directed-Graph f = + eq-htpy-hom-Directed-Graph + ( C) + ( exponent-Directed-Graph A B) + ( uncurry-hom-product-Directed-Graph A B C + ( ev-hom-exponent-Directed-Graph A B C f)) + ( f) + ( htpy-is-retraction-uncurry-hom-product-Directed-Graph f) + + is-equiv-ev-hom-exponent-Directed-Graph : + is-equiv (ev-hom-exponent-Directed-Graph A B C) + is-equiv-ev-hom-exponent-Directed-Graph = + is-equiv-is-invertible + ( uncurry-hom-product-Directed-Graph A B C) + ( is-section-uncurry-hom-product-Directed-Graph) + ( is-retraction-uncurry-hom-product-Directed-Graph) + + ev-equiv-hom-exponent-Directed-Graph : + hom-Directed-Graph C (exponent-Directed-Graph A B) ≃ + hom-Directed-Graph (product-Directed-Graph C A) B + pr1 ev-equiv-hom-exponent-Directed-Graph = + ev-hom-exponent-Directed-Graph A B C + pr2 ev-equiv-hom-exponent-Directed-Graph = + is-equiv-ev-hom-exponent-Directed-Graph +``` diff --git a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md new file mode 100644 index 0000000000..2c68e5ed4d --- /dev/null +++ b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md @@ -0,0 +1,60 @@ +# Pullbacks of dependent directed graphs + +```agda +module graph-theory.pullbacks-dependent-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.directed-graphs +open import graph-theory.dependent-directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graph](graph-theory.directed-graphs.md) `A`, and consider a [graph homomorphism](graph-theory.morphisms-directed-graphs.md) `f : C → A`. The {{#concept "pullback" Disambiguation="dependent directed graphs"}} `f*B` of `B` along `f` is defined by substituting the values of `f` into `B`. More precisely, `f*B` is defined by + +```text + (f*B)₀ c := B₀ (f₀ c) + (f*B)₁ e := B₁ (f₁ e). +``` + +## Definitions + +### The pullback of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : Directed-Graph l1 l2} + (C : Directed-Graph l3 l4) (f : hom-Directed-Graph C A) + (B : Dependent-Directed-Graph l5 l6 A) + where + + vertex-pullback-Dependent-Directed-Graph : + (c : vertex-Directed-Graph C) → UU l5 + vertex-pullback-Dependent-Directed-Graph c = + vertex-Dependent-Directed-Graph B (vertex-hom-Directed-Graph C A f c) + + edge-pullback-Dependent-Directed-Graph : + {x y : vertex-Directed-Graph C} (e : edge-Directed-Graph C x y) → + vertex-pullback-Dependent-Directed-Graph x → + vertex-pullback-Dependent-Directed-Graph y → UU l6 + edge-pullback-Dependent-Directed-Graph e = + edge-Dependent-Directed-Graph B (edge-hom-Directed-Graph C A f e) + + pullback-Dependent-Directed-Graph : + Dependent-Directed-Graph l5 l6 C + pr1 pullback-Dependent-Directed-Graph = + vertex-pullback-Dependent-Directed-Graph + pr2 pullback-Dependent-Directed-Graph = + edge-pullback-Dependent-Directed-Graph +``` + diff --git a/src/graph-theory/sections-dependent-directed-graphs.lagda.md b/src/graph-theory/sections-dependent-directed-graphs.lagda.md new file mode 100644 index 0000000000..4e1780ec86 --- /dev/null +++ b/src/graph-theory/sections-dependent-directed-graphs.lagda.md @@ -0,0 +1,165 @@ +# Sections of dependent directed graphs + +```agda +module graph-theory.sections-dependent-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopies +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +``` + +
+ +## Idea + +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graph](graph-theory.directed-graphs.md) `A`. A {{#concept "section" Disambiguation="dependent directed graph" Agda=section-Dependent-Directed-Graph}} `f` of `B` consists of + +- A dependent function `f₀ : (x : A₀) → B₀ x` +- A family of dependent functions + + ```text + f₁ : (e : A₁ x y) → B₁ e (f₀ x) (f₀ y) + ``` + + indexed by `x y : A₀`. + +Note that [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) from `A` to `B` are sections of the constant dependent directed graph at `B` over `A`. + +## Definitions + +### Sections of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Directed-Graph l1 l2} + (B : Dependent-Directed-Graph l3 l4 A) + where + + section-Dependent-Directed-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + section-Dependent-Directed-Graph = + Σ ( (x : vertex-Directed-Graph A) → vertex-Dependent-Directed-Graph B x) + ( λ f₀ → + {x y : vertex-Directed-Graph A} (e : edge-Directed-Graph A x y) → + edge-Dependent-Directed-Graph B e (f₀ x) (f₀ y)) + +module _ + {l1 l2 l3 l4 : Level} {A : Directed-Graph l1 l2} + (B : Dependent-Directed-Graph l3 l4 A) + (f : section-Dependent-Directed-Graph B) + where + + vertex-section-Dependent-Directed-Graph : + (x : vertex-Directed-Graph A) → vertex-Dependent-Directed-Graph B x + vertex-section-Dependent-Directed-Graph = + pr1 f + + edge-section-Dependent-Directed-Graph : + {x y : vertex-Directed-Graph A} → + (e : edge-Directed-Graph A x y) → + edge-Dependent-Directed-Graph B e + ( vertex-section-Dependent-Directed-Graph x) + ( vertex-section-Dependent-Directed-Graph y) + edge-section-Dependent-Directed-Graph = + pr2 f +``` + +### Homotopies of sections of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Directed-Graph l1 l2} + (B : Dependent-Directed-Graph l3 l4 A) + (f : section-Dependent-Directed-Graph B) + where + + htpy-section-Dependent-Directed-Graph : + section-Dependent-Directed-Graph B → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + htpy-section-Dependent-Directed-Graph g = + Σ ( vertex-section-Dependent-Directed-Graph B f ~ + vertex-section-Dependent-Directed-Graph B g) + ( λ H₀ → + {x y : vertex-Directed-Graph A} (e : edge-Directed-Graph A x y) → + tr + ( edge-Dependent-Directed-Graph B e _) + ( H₀ y) + ( tr + ( λ u → edge-Dependent-Directed-Graph B e u _) + ( H₀ x) + ( edge-section-Dependent-Directed-Graph B f e)) = + edge-section-Dependent-Directed-Graph B g e) + + refl-htpy-section-Dependent-Directed-Graph : + htpy-section-Dependent-Directed-Graph f + pr1 refl-htpy-section-Dependent-Directed-Graph = refl-htpy + pr2 refl-htpy-section-Dependent-Directed-Graph = refl-htpy +``` + +## Properties + +### Extensionality of sections of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Directed-Graph l1 l2} + (B : Dependent-Directed-Graph l3 l4 A) + (f : section-Dependent-Directed-Graph B) + where + + abstract + is-torsorial-htpy-section-Dependent-Directed-Graph : + is-torsorial (htpy-section-Dependent-Directed-Graph B f) + is-torsorial-htpy-section-Dependent-Directed-Graph = + is-torsorial-Eq-structure + ( is-torsorial-htpy (vertex-section-Dependent-Directed-Graph B f)) + ( vertex-section-Dependent-Directed-Graph B f , refl-htpy) + ( is-torsorial-Eq-implicit-Π + ( λ x → + is-torsorial-Eq-implicit-Π + ( λ y → + is-torsorial-htpy + ( edge-section-Dependent-Directed-Graph B f)))) + + htpy-eq-section-Dependent-Directed-Graph : + (g : section-Dependent-Directed-Graph B) → + f = g → htpy-section-Dependent-Directed-Graph B f g + htpy-eq-section-Dependent-Directed-Graph g refl = + refl-htpy-section-Dependent-Directed-Graph B f + + abstract + is-equiv-htpy-eq-section-Dependent-Directed-Graph : + (g : section-Dependent-Directed-Graph B) → + is-equiv (htpy-eq-section-Dependent-Directed-Graph g) + is-equiv-htpy-eq-section-Dependent-Directed-Graph = + fundamental-theorem-id + is-torsorial-htpy-section-Dependent-Directed-Graph + htpy-eq-section-Dependent-Directed-Graph + + extensionality-section-Dependent-Directed-Graph : + (g : section-Dependent-Directed-Graph B) → + (f = g) ≃ htpy-section-Dependent-Directed-Graph B f g + pr1 (extensionality-section-Dependent-Directed-Graph g) = + htpy-eq-section-Dependent-Directed-Graph g + pr2 (extensionality-section-Dependent-Directed-Graph g) = + is-equiv-htpy-eq-section-Dependent-Directed-Graph g + + eq-htpy-section-Dependent-Directed-Graph : + (g : section-Dependent-Directed-Graph B) → + htpy-section-Dependent-Directed-Graph B f g → f = g + eq-htpy-section-Dependent-Directed-Graph g = + map-inv-equiv (extensionality-section-Dependent-Directed-Graph g) +``` diff --git a/src/graph-theory/terminal-directed-graphs.lagda.md b/src/graph-theory/terminal-directed-graphs.lagda.md new file mode 100644 index 0000000000..d820af8590 --- /dev/null +++ b/src/graph-theory/terminal-directed-graphs.lagda.md @@ -0,0 +1,90 @@ +# Terminal directed graphs + +```agda +module graph-theory.terminal-directed-graphs where +``` + +
Idea + +```agda +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.propositions +open import foundation.unit-type +open import foundation.universe-levels + +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +The {{#concept "terminal directed graph"}} is a [directed graph](graph-theory.directed-graphs.md) `1` such that the type of [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A 1` is [contractible](foundation-core.contractible-types.md) for any directed graph `A`. + +Concretely, the terminal directed graph `1` is defined by + +```text + 1₀ := 1 + 1₁ x y := 1. +``` + +## Definitions + +### The predicate of being a terminal directed graph + +The (small) predicate of being a terminal directed graph asserts that the type of vertices and all types of edges are contractible. + +```agda +module _ + {l1 l2 : Level} (A : Directed-Graph l1 l2) + where + + is-terminal-prop-Directed-Graph : Prop (l1 ⊔ l2) + is-terminal-prop-Directed-Graph = + product-Prop + ( is-contr-Prop (vertex-Directed-Graph A)) + ( Π-Prop + ( vertex-Directed-Graph A) + ( λ x → + Π-Prop + ( vertex-Directed-Graph A) + ( λ y → is-contr-Prop (edge-Directed-Graph A x y)))) + + is-terminal-Directed-Graph : UU (l1 ⊔ l2) + is-terminal-Directed-Graph = type-Prop is-terminal-prop-Directed-Graph + + is-prop-is-terminal-Directed-Graph : + is-prop is-terminal-Directed-Graph + is-prop-is-terminal-Directed-Graph = + is-prop-type-Prop is-terminal-prop-Directed-Graph +``` + +### The universal property of being a terminal directed graph + +```agda +module _ + {l1 l2 : Level} (A : Directed-Graph l1 l2) + where + + universal-property-terminal-Directed-Graph : UUω + universal-property-terminal-Directed-Graph = + {l3 l4 : Level} (X : Directed-Graph l3 l4) → + is-contr (hom-Directed-Graph X A) +``` + +### The terminal directed graph + +```agda +vertex-terminal-Directed-Graph : UU lzero +vertex-terminal-Directed-Graph = unit + +edge-terminal-Directed-Graph : + (x y : vertex-terminal-Directed-Graph) → UU lzero +edge-terminal-Directed-Graph x y = unit + +terminal-Directed-Graph : Directed-Graph lzero lzero +pr1 terminal-Directed-Graph = vertex-terminal-Directed-Graph +pr2 terminal-Directed-Graph = edge-terminal-Directed-Graph +``` From 70213c15db7e530832d16db04cb62b93882c2de3 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 13 Oct 2024 15:49:22 -0400 Subject: [PATCH 07/42] typo --- src/graph-theory/exponents-directed-graphs.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graph-theory/exponents-directed-graphs.lagda.md b/src/graph-theory/exponents-directed-graphs.lagda.md index c5a78f1771..a6bb889ab6 100644 --- a/src/graph-theory/exponents-directed-graphs.lagda.md +++ b/src/graph-theory/exponents-directed-graphs.lagda.md @@ -43,7 +43,7 @@ The universal property of the exponent gives that the type of [graph homomorphis - A map `f₀ : A₀ → B₀` - A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, -as expected for a morphism of directed graphs. +as expected for the type of morphisms of directed graphs. ## Definitions From 90651f3031b600d432d6f913e247e9dbfc294e03 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 13 Oct 2024 16:04:55 -0400 Subject: [PATCH 08/42] make pre-commit --- src/graph-theory.lagda.md | 9 + ...artesian-products-directed-graphs.lagda.md | 4 +- .../dependent-directed-graphs.lagda.md | 17 +- ...ependent-products-directed-graphs.lagda.md | 17 +- .../exponents-directed-graphs.lagda.md | 16 +- ...llbacks-dependent-directed-graphs.lagda.md | 10 +- ...ections-dependent-directed-graphs.lagda.md | 9 +- .../terminal-directed-graphs.lagda.md | 9 +- .../universal-directed-graph.lagda.md | 28 ++- .../universal-reflexive-graph.lagda.md | 27 ++- src/structured-types.lagda.md | 10 +- .../binary-globular-maps.lagda.md | 28 ++- ...position-structure-globular-types.lagda.md | 18 +- .../exponents-globular-types.lagda.md | 6 +- .../globular-homotopies.lagda.md | 11 +- .../maps-large-globular-types.lagda.md | 2 +- ...oducts-families-of-globular-types.lagda.md | 5 +- .../reflexive-globular-maps.lagda.md | 7 +- .../reflexive-globular-types.lagda.md | 4 +- .../transitive-globular-types.lagda.md | 4 +- .../universal-globular-type.lagda.md | 41 +++- ...universal-reflexive-globular-type.lagda.md | 11 +- .../wild-category-of-pointed-types.lagda.md | 221 +++++++----------- ...t-large-wild-higher-precategories.lagda.md | 2 +- ...oherent-wild-higher-precategories.lagda.md | 2 +- ...t-large-wild-higher-precategories.lagda.md | 2 +- ...oherent-wild-higher-precategories.lagda.md | 2 +- ...t-large-wild-higher-precategories.lagda.md | 24 +- 28 files changed, 324 insertions(+), 222 deletions(-) diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index 9ac8fd5589..aa93c0c52c 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -6,6 +6,7 @@ module graph-theory where open import graph-theory.acyclic-undirected-graphs public +open import graph-theory.cartesian-products-directed-graphs public open import graph-theory.circuits-undirected-graphs public open import graph-theory.closed-walks-undirected-graphs public open import graph-theory.complete-bipartite-graphs public @@ -13,6 +14,8 @@ open import graph-theory.complete-multipartite-graphs public open import graph-theory.complete-undirected-graphs public open import graph-theory.connected-undirected-graphs public open import graph-theory.cycles-undirected-graphs public +open import graph-theory.dependent-directed-graphs public +open import graph-theory.dependent-products-directed-graphs public open import graph-theory.directed-graph-structures-on-standard-finite-sets public open import graph-theory.directed-graphs public open import graph-theory.discrete-graphs public @@ -25,6 +28,7 @@ open import graph-theory.equivalences-directed-graphs public open import graph-theory.equivalences-enriched-undirected-graphs public open import graph-theory.equivalences-undirected-graphs public open import graph-theory.eulerian-circuits-undirected-graphs public +open import graph-theory.exponents-directed-graphs public open import graph-theory.faithful-morphisms-undirected-graphs public open import graph-theory.fibers-directed-graphs public open import graph-theory.finite-graphs public @@ -41,17 +45,22 @@ open import graph-theory.neighbors-undirected-graphs public open import graph-theory.orientations-undirected-graphs public open import graph-theory.paths-undirected-graphs public open import graph-theory.polygons public +open import graph-theory.pullbacks-dependent-directed-graphs public open import graph-theory.raising-universe-levels-directed-graphs public open import graph-theory.reflecting-maps-undirected-graphs public open import graph-theory.reflexive-graphs public open import graph-theory.regular-undirected-graphs public +open import graph-theory.sections-dependent-directed-graphs public open import graph-theory.simple-undirected-graphs public open import graph-theory.stereoisomerism-enriched-undirected-graphs public +open import graph-theory.terminal-directed-graphs public open import graph-theory.totally-faithful-morphisms-undirected-graphs public open import graph-theory.trails-directed-graphs public open import graph-theory.trails-undirected-graphs public open import graph-theory.undirected-graph-structures-on-standard-finite-sets public open import graph-theory.undirected-graphs public +open import graph-theory.universal-directed-graph public +open import graph-theory.universal-reflexive-graph public open import graph-theory.vertex-covers public open import graph-theory.voltage-graphs public open import graph-theory.walks-directed-graphs public diff --git a/src/graph-theory/cartesian-products-directed-graphs.lagda.md b/src/graph-theory/cartesian-products-directed-graphs.lagda.md index 881164930c..8437b9a777 100644 --- a/src/graph-theory/cartesian-products-directed-graphs.lagda.md +++ b/src/graph-theory/cartesian-products-directed-graphs.lagda.md @@ -19,7 +19,9 @@ open import graph-theory.morphisms-directed-graphs ## Idea -Consider two [directed graphs](graph-theory.directed-graphs.md) `A := (A₀ , A₁)` and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is the directed graph `A × B` given by +Consider two [directed graphs](graph-theory.directed-graphs.md) `A := (A₀ , A₁)` +and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is the directed graph +`A × B` given by ```text (A × B)₀ := A₀ × B₀ diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md index 6c9d7184f2..2e05514497 100644 --- a/src/graph-theory/dependent-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -17,12 +17,21 @@ open import graph-theory.directed-graphs ## Idea -Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A {{#concept "dependent directed graph}} `B` over `A` consists of: +Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A +{{#concept "dependent directed graph}} `B` over `A` consists of: - A family `B₀ : A₀ → 𝒰` of vertices -- A family `B₁ : (x y : A₀) → A₁ x y → B₀ x → B₀ y → 𝒰` of [binary relations](foundation.binary-relations.md) between the types of vertices `B₀`, indexed by the type of edges `A₁` in `A`. - -This definition may appear overly general. However, one can observe that the type of directed graphs itself is [equivalent](foundation-core.equivalences.md) to the type of dependent directed graphs over the [terminal directed graph](graph-theory.terminal-directed-graphs.md). Furthermore, [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) into the [universal directed graph](graph-theory.universal-directed-graph.md) are equivalent to dependent directed graphs. +- A family `B₁ : (x y : A₀) → A₁ x y → B₀ x → B₀ y → 𝒰` of + [binary relations](foundation.binary-relations.md) between the types of + vertices `B₀`, indexed by the type of edges `A₁` in `A`. + +This definition may appear overly general. However, one can observe that the +type of directed graphs itself is [equivalent](foundation-core.equivalences.md) +to the type of dependent directed graphs over the +[terminal directed graph](graph-theory.terminal-directed-graphs.md). +Furthermore, [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) +into the [universal directed graph](graph-theory.universal-directed-graph.md) +are equivalent to dependent directed graphs. ## Definitions diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index 0da5c749b1..66505cc6dc 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -26,7 +26,10 @@ open import graph-theory.sections-dependent-directed-graphs ## Idea -Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graphs](graph-theory.directed-graphs.md) `A`, the {{#concept "dependent product" Disambiguation="directed graph" agda=Π-Directed-Graph}} `Π A B` is the directed graph that satisfies the universal property +Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) +`B` over a [directed graphs](graph-theory.directed-graphs.md) `A`, the +{{#concept "dependent product" Disambiguation="directed graph" agda=Π-Directed-Graph}} +`Π A B` is the directed graph that satisfies the universal property ```text hom X (Π A B) ≃ hom (X × A) B. @@ -35,13 +38,19 @@ Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B Concretely, the directed graph `Π A B` has - The type of functions `(x : A₀) → B₀ x` as its type of vertices -- For any two functions `f₀ g₀ : (x : A₀) → B₀ x`, an edge from `f₀` to `g₀` is an element of type +- For any two functions `f₀ g₀ : (x : A₀) → B₀ x`, an edge from `f₀` to `g₀` is + an element of type ```text (x y : A₀) → A₁ x y → B₁ (f₀ x) (g₀ y). ``` -The universal property of the dependent product gives that the type of [sections](graph-theory.sections-dependent-directed-graphs.md) of `B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into `Π A B`, which is in turn equivalent to the type of vertices `f₀` of the Π `Π A B` equipped with a loop `(Π A B)₁ f f`. Indeed, this data consists of: +The universal property of the dependent product gives that the type of +[sections](graph-theory.sections-dependent-directed-graphs.md) of `B` is +[equivalent](foundation-core.equivalences.md) to the type of morphisms from the +[terminal directed graph](graph-theory.terminal-directed-graphs.md) into +`Π A B`, which is in turn equivalent to the type of vertices `f₀` of the Π +`Π A B` equipped with a loop `(Π A B)₁ f f`. Indeed, this data consists of: - A map `f₀ : A₀ → B₀` - A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, @@ -206,7 +215,7 @@ module _ ( htpy-is-section-uncurry-section-product-Directed-Graph f) htpy-is-retraction-uncurry-section-product-Directed-Graph : - (f : hom-Directed-Graph C (Π-Directed-Graph A B)) → + (f : hom-Directed-Graph C (Π-Directed-Graph A B)) → htpy-hom-Directed-Graph ( C) ( Π-Directed-Graph A B) diff --git a/src/graph-theory/exponents-directed-graphs.lagda.md b/src/graph-theory/exponents-directed-graphs.lagda.md index a6bb889ab6..2d968a410b 100644 --- a/src/graph-theory/exponents-directed-graphs.lagda.md +++ b/src/graph-theory/exponents-directed-graphs.lagda.md @@ -23,7 +23,9 @@ open import graph-theory.morphisms-directed-graphs ## Idea -Given two [directed graphs](graph-theory.directed-graphs.md) `A` and `B`, the {{#concept "exponent" Disambiguation="directed graph" agda=exponent-Directed-Graph}} `B^A` is the directed graph that satisfies the universal property +Given two [directed graphs](graph-theory.directed-graphs.md) `A` and `B`, the +{{#concept "exponent" Disambiguation="directed graph" agda=exponent-Directed-Graph}} +`B^A` is the directed graph that satisfies the universal property ```text hom X B^A ≃ hom (X × A) B. @@ -32,13 +34,19 @@ Given two [directed graphs](graph-theory.directed-graphs.md) `A` and `B`, the {{ Concretely, the directed graph `B^A` has - The type of functions `A₀ → B₀` as its type of vertices -- For any two functions `f₀ g₀ : A₀ → B₀`, an edge from `f₀` to `g₀` is an element of type +- For any two functions `f₀ g₀ : A₀ → B₀`, an edge from `f₀` to `g₀` is an + element of type ```text (x y : A₀) → A₁ x y → B₁ (f₀ x) (g₀ y). ``` -The universal property of the exponent gives that the type of [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into `B^A`, which is in turn equivalent to the type of vertices `f₀` of the exponent `B^A` equipped with a loop `(B^A)₁ f f`. Indeed, this data consists of: +The universal property of the exponent gives that the type of +[graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A B` is +[equivalent](foundation-core.equivalences.md) to the type of morphisms from the +[terminal directed graph](graph-theory.terminal-directed-graphs.md) into `B^A`, +which is in turn equivalent to the type of vertices `f₀` of the exponent `B^A` +equipped with a loop `(B^A)₁ f f`. Indeed, this data consists of: - A map `f₀ : A₀ → B₀` - A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, @@ -169,7 +177,7 @@ module _ ( htpy-is-section-uncurry-hom-product-Directed-Graph f) htpy-is-retraction-uncurry-hom-product-Directed-Graph : - (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) → + (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) → htpy-hom-Directed-Graph ( C) ( exponent-Directed-Graph A B) diff --git a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md index 2c68e5ed4d..4d9bd17bbd 100644 --- a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md @@ -10,8 +10,8 @@ module graph-theory.pullbacks-dependent-directed-graphs where open import foundation.dependent-pair-types open import foundation.universe-levels -open import graph-theory.directed-graphs open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs ``` @@ -19,7 +19,12 @@ open import graph-theory.morphisms-directed-graphs ## Idea -Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graph](graph-theory.directed-graphs.md) `A`, and consider a [graph homomorphism](graph-theory.morphisms-directed-graphs.md) `f : C → A`. The {{#concept "pullback" Disambiguation="dependent directed graphs"}} `f*B` of `B` along `f` is defined by substituting the values of `f` into `B`. More precisely, `f*B` is defined by +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) +`B` over a [directed graph](graph-theory.directed-graphs.md) `A`, and consider a +[graph homomorphism](graph-theory.morphisms-directed-graphs.md) `f : C → A`. The +{{#concept "pullback" Disambiguation="dependent directed graphs"}} `f*B` of `B` +along `f` is defined by substituting the values of `f` into `B`. More precisely, +`f*B` is defined by ```text (f*B)₀ c := B₀ (f₀ c) @@ -57,4 +62,3 @@ module _ pr2 pullback-Dependent-Directed-Graph = edge-pullback-Dependent-Directed-Graph ``` - diff --git a/src/graph-theory/sections-dependent-directed-graphs.lagda.md b/src/graph-theory/sections-dependent-directed-graphs.lagda.md index 4e1780ec86..c8ca8c42d4 100644 --- a/src/graph-theory/sections-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/sections-dependent-directed-graphs.lagda.md @@ -27,7 +27,10 @@ open import graph-theory.directed-graphs ## Idea -Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graph](graph-theory.directed-graphs.md) `A`. A {{#concept "section" Disambiguation="dependent directed graph" Agda=section-Dependent-Directed-Graph}} `f` of `B` consists of +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) +`B` over a [directed graph](graph-theory.directed-graphs.md) `A`. A +{{#concept "section" Disambiguation="dependent directed graph" Agda=section-Dependent-Directed-Graph}} +`f` of `B` consists of - A dependent function `f₀ : (x : A₀) → B₀ x` - A family of dependent functions @@ -38,7 +41,9 @@ Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) indexed by `x y : A₀`. -Note that [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) from `A` to `B` are sections of the constant dependent directed graph at `B` over `A`. +Note that [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) from +`A` to `B` are sections of the constant dependent directed graph at `B` over +`A`. ## Definitions diff --git a/src/graph-theory/terminal-directed-graphs.lagda.md b/src/graph-theory/terminal-directed-graphs.lagda.md index d820af8590..d49804435a 100644 --- a/src/graph-theory/terminal-directed-graphs.lagda.md +++ b/src/graph-theory/terminal-directed-graphs.lagda.md @@ -21,7 +21,11 @@ open import graph-theory.morphisms-directed-graphs ## Idea -The {{#concept "terminal directed graph"}} is a [directed graph](graph-theory.directed-graphs.md) `1` such that the type of [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A 1` is [contractible](foundation-core.contractible-types.md) for any directed graph `A`. +The {{#concept "terminal directed graph"}} is a +[directed graph](graph-theory.directed-graphs.md) `1` such that the type of +[graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A 1` is +[contractible](foundation-core.contractible-types.md) for any directed graph +`A`. Concretely, the terminal directed graph `1` is defined by @@ -34,7 +38,8 @@ Concretely, the terminal directed graph `1` is defined by ### The predicate of being a terminal directed graph -The (small) predicate of being a terminal directed graph asserts that the type of vertices and all types of edges are contractible. +The (small) predicate of being a terminal directed graph asserts that the type +of vertices and all types of edges are contractible. ```agda module _ diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index e4b8080ee2..6f96a2d00d 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -17,13 +17,17 @@ open import graph-theory.directed-graphs ## Idea -The {{#concpept "universal directed graph"}} `𝒢 l` at [universe level](foundation.universe-levels.md) `l` has the universe `UU l` as its type of vertices, and spans between types as its edges. +The {{#concpept "universal directed graph"}} `𝒢 l` at +[universe level](foundation.universe-levels.md) `l` has the universe `UU l` as +its type of vertices, and spans between types as its edges. -Specifically, the universal directed graph is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the representing pair of arrows +Specifically, the universal directed graph is a translation from category theory +into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +presheaves on the representing pair of arrows ```text - s - -----> + s + -----> 0 -----> 1 t ``` @@ -48,11 +52,13 @@ We compute a the instances of the slice category `⇉/I`: ``` The functors `s t : ⇉/0 → ⇉/1` are given by `* ↦ s` and `* ↦ t`, respectively. - + This means that: -- The type of vertices of the universal directed graph is the universe of types `UU l`. -- The type of edges from `X` to `Y` of the universal directed graph is the type of spans from `X` to `Y`. +- The type of vertices of the universal directed graph is the universe of types + `UU l`. +- The type of edges from `X` to `Y` of the universal directed graph is the type + of spans from `X` to `Y`. ## Definitions @@ -67,7 +73,7 @@ module _ edge-universal-Directed-Graph : (X Y : vertex-universal-Directed-Graph) → UU (l1 ⊔ lsuc l2) edge-universal-Directed-Graph X Y = X → Y → UU l2 - + universal-Directed-Graph : Directed-Graph (lsuc l1) (l1 ⊔ lsuc l2) pr1 universal-Directed-Graph = vertex-universal-Directed-Graph pr2 universal-Directed-Graph = edge-universal-Directed-Graph @@ -75,7 +81,11 @@ module _ ## Formalization target -There is a _directed graph duality theorem_, which asserts that for any directed graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal directed graph is equivalent to the type of pairs `(H , f)` consisting of a directed graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should be formalized in a new file called `directed-graph-duality`. +There is a _directed graph duality theorem_, which asserts that for any directed +graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal directed +graph is equivalent to the type of pairs `(H , f)` consisting of a directed +graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should +be formalized in a new file called `directed-graph-duality`. ## See also diff --git a/src/graph-theory/universal-reflexive-graph.lagda.md b/src/graph-theory/universal-reflexive-graph.lagda.md index d50e281f8d..003616fe65 100644 --- a/src/graph-theory/universal-reflexive-graph.lagda.md +++ b/src/graph-theory/universal-reflexive-graph.lagda.md @@ -16,17 +16,21 @@ open import graph-theory.reflexive-graphs ## Idea -The {{#concpept "universal reflexive graph"}} `𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the reflexive graph category `Γʳ` +The {{#concpept "universal reflexive graph"}} `𝒢 l` at +[universe level](foundation.universe-levels.md) is a translation from category +theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +presheaves on the reflexive graph category `Γʳ` ```text s - -----> + -----> 0 <-r--- 1, -----> t ``` -in which we have `rs = id` and `rt = id`. The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf +in which we have `rs = id` and `rt = id`. The Hofmann-Streicher universe of +presheaves on a category `𝒞` is the presheaf ```text 𝒰_𝒞 I := Presheaf 𝒞/I @@ -41,19 +45,20 @@ We compute a few instances of the slice category `Γʳ/I`: ```text s - -----> + -----> 1 <-r--- r -----> t ``` - in which we have `rs = id` and `rt = id`. In other words, we have an isomorphism of categories `Γʳ/0 ≅ Γʳ`. + in which we have `rs = id` and `rt = id`. In other words, we have an + isomorphism of categories `Γʳ/0 ≅ Γʳ`. - The category Γʳ/1 is the category ```text s s - <----- -----> + <----- -----> rs --r--> s -----> 1 <----- t <-r--- rt <----- -----> t t @@ -70,7 +75,9 @@ This means that the universal reflexive graph `𝒰` can be defined as follows: G₀ → H₀ → Type ``` - of binary relations from the type `G₀` of vertices of `G` to the type `H₀` of vertices of `H`. + of binary relations from the type `G₀` of vertices of `G` to the type `H₀` of + vertices of `H`. + - The proof of reflexivity of a reflexive graph `G` is the relation ```text @@ -105,7 +112,11 @@ module _ ## Formalization target -There is a _reflexive graph duality theorem_, which asserts that for any reflexive graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal reflexive graph is equivalent to the type of pairs `(H , f)` consisting of a reflexive graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should be formalized in a new file called `reflexive-graph-duality`. +There is a _reflexive graph duality theorem_, which asserts that for any +reflexive graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal +reflexive graph is equivalent to the type of pairs `(H , f)` consisting of a +reflexive graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a +result should be formalized in a new file called `reflexive-graph-duality`. ## See also diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 734a181c59..5d3487af72 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -9,11 +9,13 @@ ```agda module structured-types where +open import structured-types.binary-globular-maps public open import structured-types.cartesian-products-types-equipped-with-endomorphisms public open import structured-types.central-h-spaces public open import structured-types.commuting-squares-of-pointed-homotopies public open import structured-types.commuting-squares-of-pointed-maps public open import structured-types.commuting-triangles-of-pointed-maps public +open import structured-types.composition-structure-globular-types public open import structured-types.conjugation-pointed-types public open import structured-types.constant-pointed-maps public open import structured-types.contractible-pointed-types public @@ -30,12 +32,15 @@ open import structured-types.equivalences-h-spaces public open import structured-types.equivalences-pointed-arrows public open import structured-types.equivalences-types-equipped-with-automorphisms public open import structured-types.equivalences-types-equipped-with-endomorphisms public +open import structured-types.exponents-globular-types public open import structured-types.faithful-pointed-maps public open import structured-types.fibers-of-pointed-maps public open import structured-types.finite-multiplication-magmas public open import structured-types.function-h-spaces public open import structured-types.function-magmas public open import structured-types.function-wild-monoids public +open import structured-types.globular-homotopies public +open import structured-types.globular-maps public open import structured-types.globular-types public open import structured-types.h-spaces public open import structured-types.initial-pointed-type-equipped-with-automorphism public @@ -48,7 +53,6 @@ open import structured-types.large-reflexive-globular-types public open import structured-types.large-symmetric-globular-types public open import structured-types.large-transitive-globular-types public open import structured-types.magmas public -open import structured-types.globular-maps public open import structured-types.maps-large-globular-types public open import structured-types.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public @@ -79,6 +83,8 @@ open import structured-types.pointed-unit-type public open import structured-types.pointed-universal-property-contractible-types public open import structured-types.postcomposition-pointed-maps public open import structured-types.precomposition-pointed-maps public +open import structured-types.products-families-of-globular-types public +open import structured-types.reflexive-globular-maps public open import structured-types.reflexive-globular-types public open import structured-types.sets-equipped-with-automorphisms public open import structured-types.small-pointed-types public @@ -90,7 +96,9 @@ open import structured-types.transposition-pointed-span-diagrams public open import structured-types.types-equipped-with-automorphisms public open import structured-types.types-equipped-with-endomorphisms public open import structured-types.uniform-pointed-homotopies public +open import structured-types.universal-globular-type public open import structured-types.universal-property-pointed-equivalences public +open import structured-types.universal-reflexive-globular-type public open import structured-types.unpointed-maps public open import structured-types.whiskering-pointed-2-homotopies-concatenation public open import structured-types.whiskering-pointed-homotopies-composition public diff --git a/src/structured-types/binary-globular-maps.lagda.md b/src/structured-types/binary-globular-maps.lagda.md index ed5b96437e..fb6e8702ea 100644 --- a/src/structured-types/binary-globular-maps.lagda.md +++ b/src/structured-types/binary-globular-maps.lagda.md @@ -18,7 +18,9 @@ open import structured-types.globular-types ## Idea -Consider three [globular types](structured-types.globular-types.md) `G`, `H`, and `K`. A {{#concept "binary globular map" Agda=binary-globular-map}} `f : G → H → K` consists of a binary map +Consider three [globular types](structured-types.globular-types.md) `G`, `H`, +and `K`. A {{#concept "binary globular map" Agda=binary-globular-map}} +`f : G → H → K` consists of a binary map ```text f₀ : G₀ → H₀ → K₀ @@ -58,3 +60,27 @@ record ( 0-cell-binary-globular-map x y) ( 0-cell-binary-globular-map x' y')) ``` + +### Commuting squares of binary globular maps + +Consider three [globular maps](structured-types.globular-maps.md) `g : G → G'`, +`h : H → H'`, and `k : K → K'`, and consider two binary globular maps + +```text + μ : G → H → K + μ' : G' → H' → K'. +``` + +A {{#concept "commuting square of binary globular maps"}} + +```text + μ + G H ----> K + | | | + g | | h | k + ∨ ∨ ∨ + G' H' ----> K' + μ' +``` + +consists of a diff --git a/src/structured-types/composition-structure-globular-types.lagda.md b/src/structured-types/composition-structure-globular-types.lagda.md index 0d4afaf278..c87fa38c6d 100644 --- a/src/structured-types/composition-structure-globular-types.lagda.md +++ b/src/structured-types/composition-structure-globular-types.lagda.md @@ -19,19 +19,27 @@ open import structured-types.globular-types ## Idea -A {{#concept "composition structure" Disambiguation="globular type" Agda=composition-Globular-Type}} on a [globular type](structured-types.globular-types.md) `G` consists of a [binary globular map] +A +{{#concept "composition structure" Disambiguation="globular type" Agda=composition-Globular-Type}} +on a [globular type](structured-types.globular-types.md) `G` consists of a +[binary globular map] ```text - ∘ - : G' y z → G' x y → G' x z, ``` -and for any two `0`-cells `x y : G₀` a composition structure on the globular type `G' x y` of `1`-cells of `G`. More explicitly, a composition structure consists of binary operations +and for any two `0`-cells `x y : G₀` a composition structure on the globular +type `G' x y` of `1`-cells of `G`. More explicitly, a composition structure +consists of binary operations ```text - ∘ - : (𝑛+1)-Cell G y z → (𝑛+1)-Cell G x y → (𝑛+1)-Cell G x z, ``` -each of which preserve all higher cells of the globular type `G`. Globular composition structure is therefore a strengthening of the [transitivity structure](structured-types.transitive-globular-types.md) on globular types. +each of which preserve all higher cells of the globular type `G`. Globular +composition structure is therefore a strengthening of the +[transitivity structure](structured-types.transitive-globular-types.md) on +globular types. ## Definitions @@ -65,8 +73,10 @@ record preserves-composition-globular-map {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} (c : composition-Globular-Type G) (d : composition-Globular-Type H) : - UU ? + UU {!!} where coinductive field + preserves-comp-binary-globular-map-composition-Globular-Type : + {x y z : 0-cell-Globular-Type G} ``` diff --git a/src/structured-types/exponents-globular-types.lagda.md b/src/structured-types/exponents-globular-types.lagda.md index 4223d65448..8ded8db702 100644 --- a/src/structured-types/exponents-globular-types.lagda.md +++ b/src/structured-types/exponents-globular-types.lagda.md @@ -21,7 +21,9 @@ open import structured-types.products-families-of-globular-types ## Idea -Consider a family `G : I → Globular-Type` of [globular types](structured-types.globular-types.md) indexed by a type `I`. We construct a globular type `Π_I G`. +Consider a family `G : I → Globular-Type` of +[globular types](structured-types.globular-types.md) indexed by a type `I`. We +construct a globular type `Π_I G`. ## Definitions @@ -63,7 +65,7 @@ module _ double-exponent-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) double-exponent-Globular-Type = - double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) + double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) ``` ### Evaluating globular maps into exponents of globular types diff --git a/src/structured-types/globular-homotopies.lagda.md b/src/structured-types/globular-homotopies.lagda.md index 888524f649..4ff9bb3818 100644 --- a/src/structured-types/globular-homotopies.lagda.md +++ b/src/structured-types/globular-homotopies.lagda.md @@ -14,7 +14,13 @@ module structured-types.globular-homotopies where ## Idea -Consider two [globular maps](structured-types.globular-maps.md) `f g : G → H` into a [transitive globular type](structured-types.transitive-globular-types.md) `H`. There are two notions of globular homotopy between them, which aren't equivalent even though both generalize the notion of ordinary [homotopy](foundation-core.homotopies.md) in the case of viewing types as [globular types](structured-types.md) via the [identity type](foundation-core.identity-types.md). +Consider two [globular maps](structured-types.globular-maps.md) `f g : G → H` +into a [transitive globular type](structured-types.transitive-globular-types.md) +`H`. There are two notions of globular homotopy between them, which aren't +equivalent even though both generalize the notion of ordinary +[homotopy](foundation-core.homotopies.md) in the case of viewing types as +[globular types](structured-types.md) via the +[identity type](foundation-core.identity-types.md). ### Standard globular homotopies @@ -25,4 +31,5 @@ A {{#concept "standard globular homotopy"}} between `H : f ~ g` consists of h' : {x y : G₀} → h₀ x y ∘ f' x y ~ g' x y ``` -where `f'` and `g'` are the globular maps between the [globular types](structured types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` +where `f'` and `g'` are the globular maps between the [globular +types](structured types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` diff --git a/src/structured-types/maps-large-globular-types.lagda.md b/src/structured-types/maps-large-globular-types.lagda.md index 47a1064f39..65d528ac7f 100644 --- a/src/structured-types/maps-large-globular-types.lagda.md +++ b/src/structured-types/maps-large-globular-types.lagda.md @@ -13,9 +13,9 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types open import structured-types.large-globular-types -open import structured-types.globular-maps ```
diff --git a/src/structured-types/products-families-of-globular-types.lagda.md b/src/structured-types/products-families-of-globular-types.lagda.md index 4b5edc1a95..844b8e7aaa 100644 --- a/src/structured-types/products-families-of-globular-types.lagda.md +++ b/src/structured-types/products-families-of-globular-types.lagda.md @@ -20,7 +20,10 @@ open import structured-types.globular-types ## Idea -Consider a family `G : I → Globular-Type` of [globular types](structured-types.globular-types.md) indexed by a type `I`. The {{#concept "indexed product" Disambiguation="family of globular types" Agda=indexed-product-Globular-Type}} `Π_I G` is the globular type given by +Consider a family `G : I → Globular-Type` of +[globular types](structured-types.globular-types.md) indexed by a type `I`. The +{{#concept "indexed product" Disambiguation="family of globular types" Agda=indexed-product-Globular-Type}} +`Π_I G` is the globular type given by ```text (Π_I G)₀ := (i : I) → (G i)₀ diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index cdfc7f5161..a62e0c5507 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -19,7 +19,10 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped with +A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped +with ## Definitions @@ -68,7 +71,7 @@ record UU (l1 ⊔ l2 ⊔ l4) where coinductive - + field preserves-refl-0-cell-preserves-refl-globular-map : (x : 0-cell-Reflexive-Globular-Type G) → diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 7582928e3b..e49cfcad6c 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -35,7 +35,7 @@ record {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) where coinductive - + field is-reflexive-1-cell-is-reflexive-globular-structure : is-reflexive (1-cell-globular-structure G) @@ -150,7 +150,7 @@ module _ {x y : 0-cell-Globular-Type G} → is-reflexive (2-cell-Globular-Type G {x = x} {y = y}) is-reflexive-2-cell-is-reflexive-Globular-Type = - is-reflexive-2-cell-is-reflexive-globular-structure r + is-reflexive-2-cell-is-reflexive-globular-structure r ``` ### Reflexive globular types diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 18c040aaa3..ab3247edef 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -131,10 +131,10 @@ record Transitive-Globular-Type (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) where - + constructor make-Transitive-Globular-Type - + field globular-type-Transitive-Globular-Type : Globular-Type l1 l2 diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md index f94e0b0bfc..2c0e14eb4e 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/structured-types/universal-globular-type.lagda.md @@ -23,9 +23,14 @@ open import structured-types.globular-types ## Idea -The {{#concpept "universal globular type"}} `𝒢 l` at [universe level](foundation.universe-levels.md) `l` has the universe `UU l` as its type of `0`-cells, and uses iterated binary relations for its globular structure. +The {{#concpept "universal globular type"}} `𝒢 l` at +[universe level](foundation.universe-levels.md) `l` has the universe `UU l` as +its type of `0`-cells, and uses iterated binary relations for its globular +structure. -Specifically, the universal globular type is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the globular category `Γ` +Specifically, the universal globular type is a translation from category theory +into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +presheaves on the globular category `Γ` ```text s₀ s₁ s₂ @@ -53,7 +58,8 @@ We compute a few instances of the slice category `Γ/I`: s₀ -----> 1 <----- t₀ ``` - The functors `s₀ t₀ : Γ/0 → Γ/1` are given by `* ↦ s₀` and `* ↦ t₀`, respectively. + The functors `s₀ t₀ : Γ/0 → Γ/1` are given by `* ↦ s₀` and `* ↦ t₀`, + respectively. - The slice category `Γ/2` is the free category on the graph @@ -79,17 +85,28 @@ We compute a few instances of the slice category `Γ/I`: respectively. -More specifically, the slice category `Γ/n` is isomorphic to the iterated suspension `Σⁿ1` of the terminal category. - -This means that: - -- The type `0`-cells of the universal globular type is the universe of types `UU l`. -- The type of `1`-cells from `X` to `Y` of the universal globular type is the type of spans from `X` to `Y`. -- The type of `2`-cells between any two spans `R` and `S` from `X` to `Y` is the type of families of spans from `R x y` to `S x y` indexed by `x : X` and `y : Y`, and so on. +More specifically, the slice category `Γ/n` is isomorphic to the iterated +suspension `Σⁿ1` of the terminal category. -In other words, the universal globular type `𝒰` has the universe of types as its type of `0`-cells, and for any two types `X` and `Y`, the globular type of `1`-cells is the double [exponent](structured-types.exponents-globular-types.md) `(𝒰^Y)^X` of globular types. +This means that: -Unfortunately, the termination checking algorithm isn't able to establish that this definition is terminating. Nevertheless, when termination checking is turned off for this definition, the types of the `n`-cells come out correctly for low values of `n`. +- The type `0`-cells of the universal globular type is the universe of types + `UU l`. +- The type of `1`-cells from `X` to `Y` of the universal globular type is the + type of spans from `X` to `Y`. +- The type of `2`-cells between any two spans `R` and `S` from `X` to `Y` is the + type of families of spans from `R x y` to `S x y` indexed by `x : X` and + `y : Y`, and so on. + +In other words, the universal globular type `𝒰` has the universe of types as its +type of `0`-cells, and for any two types `X` and `Y`, the globular type of +`1`-cells is the double [exponent](structured-types.exponents-globular-types.md) +`(𝒰^Y)^X` of globular types. + +Unfortunately, the termination checking algorithm isn't able to establish that +this definition is terminating. Nevertheless, when termination checking is +turned off for this definition, the types of the `n`-cells come out correctly +for low values of `n`. ## Definitions diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md index 5bbf3800f9..c6955370d6 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -19,7 +19,10 @@ open import structured-types.reflexive-globular-types ## Idea -The {{#concpept "universal reflexive globular type"}} `𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from category theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of presheaves on the reflexive globular category `Γʳ` +The {{#concpept "universal reflexive globular type"}} `𝒢 l` at +[universe level](foundation.universe-levels.md) is a translation from category +theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +presheaves on the reflexive globular category `Γʳ` ```text s₀ s₁ s₂ @@ -42,9 +45,9 @@ hold. The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf obtained by applying the functoriality of the right adjoint `ν : Cat → Psh 𝒞` of -the _category of elements functor_ `∫_𝒞 : Psh 𝒞 → Cat` to the universal -discrete fibration `π : Pointed-Type → Type`. More specifically, the -Hofmann-Streicher universe `(𝒰_𝒞 , El_𝒞)` is given by +the _category of elements functor_ `∫_𝒞 : Psh 𝒞 → Cat` to the universal discrete +fibration `π : Pointed-Type → Type`. More specifically, the Hofmann-Streicher +universe `(𝒰_𝒞 , El_𝒞)` is given by ```text 𝒰_𝒞 I := Presheaf 𝒞/I diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index ae0fb3d78c..24683b5598 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -59,7 +59,8 @@ the higher cells are [identities](foundation-core.identity-types.md). #### The uniform globular structure on dependent pointed function types -- The large globular type of pointed types, pointed maps, and uniform pointed homotopies +- The large globular type of pointed types, pointed maps, and uniform pointed + homotopies ```agda uniform-globular-structure-pointed-Π : @@ -204,162 +205,104 @@ comp-structure-uniform-pointed-type-Large-Globular-Type = {!!} #### The uniform large globular structure on pointed types --- ```agda --- is-transitive-uniform-large-globular-structure-Pointed-Type : --- is-transitive-large-globular-structure --- uniform-large-globular-structure-Pointed-Type --- is-transitive-uniform-large-globular-structure-Pointed-Type = --- λ where --- .comp-1-cell-is-transitive-large-globular-structure g f → --- g ∘∗ f --- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure --- X Y → --- is-transitive-uniform-globular-structure-pointed-Π --- ``` +-- +`agda -- is-transitive-uniform-large-globular-structure-Pointed-Type : -- is-transitive-large-globular-structure -- uniform-large-globular-structure-Pointed-Type -- is-transitive-uniform-large-globular-structure-Pointed-Type = -- λ where -- .comp-1-cell-is-transitive-large-globular-structure g f → -- g ∘∗ f -- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure -- X Y → -- is-transitive-uniform-globular-structure-pointed-Π -- ` -- #### The uniform noncoherent large wild higher precategory of pointed types --- ```agda --- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : --- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) --- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} - --- {- --- λ where --- .obj-Noncoherent-Large-Wild-Higher-Precategory → --- Pointed-Type --- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- uniform-large-globular-structure-Pointed-Type --- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- is-reflexive-uniform-large-globular-structure-Pointed-Type --- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- is-transitive-uniform-large-globular-structure-Pointed-Type -} --- ``` +-- ```agda -- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : +-- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -- +uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} + +-- {- -- λ where -- .obj-Noncoherent-Large-Wild-Higher-Precategory → -- +Pointed-Type -- +.hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- +uniform-large-globular-structure-Pointed-Type -- +.id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- +is-reflexive-uniform-large-globular-structure-Pointed-Type -- +.comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- +is-transitive-uniform-large-globular-structure-Pointed-Type -} -- ``` -- ### The nonuniform definition of the wild category of pointed types -- #### The nonuniform globular structure on dependent pointed function types --- ```agda --- globular-structure-pointed-Π : --- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → --- globular-structure (l1 ⊔ l2) (pointed-Π A B) --- globular-structure-pointed-Π = --- λ where --- .1-cell-globular-structure → --- pointed-htpy --- .globular-structure-1-cell-globular-structure f g --- .1-cell-globular-structure → --- pointed-2-htpy --- .globular-structure-1-cell-globular-structure f g --- .globular-structure-1-cell-globular-structure H K → --- globular-structure-Id (pointed-2-htpy H K) - --- is-reflexive-globular-structure-pointed-Π : --- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → --- is-reflexive-globular-structure (globular-structure-pointed-Π {A = A} {B}) --- is-reflexive-globular-structure-pointed-Π = --- λ where --- .is-reflexive-1-cell-is-reflexive-globular-structure → --- refl-pointed-htpy --- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g --- .is-reflexive-1-cell-is-reflexive-globular-structure → --- refl-pointed-2-htpy --- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g --- .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure --- H K → --- is-reflexive-globular-structure-Id (pointed-2-htpy H K) - --- is-transitive-globular-structure-pointed-Π : --- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} → --- is-transitive-globular-structure (globular-structure-pointed-Π {A = A} {B}) --- is-transitive-globular-structure-pointed-Π = --- λ where --- .comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → --- concat-pointed-htpy {f = f} {g} {h} K H --- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K --- .comp-1-cell-is-transitive-globular-structure α β → --- concat-pointed-2-htpy β α --- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K --- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure --- α β → --- is-transitive-globular-structure-Id (pointed-2-htpy α β) --- ``` +-- ```agda -- globular-structure-pointed-Π : -- {l1 l2 : Level} {A : +Pointed-Type l1} {B : Pointed-Fam l2 A} → -- globular-structure (l1 ⊔ l2) +(pointed-Π A B) -- globular-structure-pointed-Π = -- λ where -- +.1-cell-globular-structure → -- pointed-htpy -- +.globular-structure-1-cell-globular-structure f g -- .1-cell-globular-structure +→ -- pointed-2-htpy -- .globular-structure-1-cell-globular-structure f g -- +.globular-structure-1-cell-globular-structure H K → -- globular-structure-Id +(pointed-2-htpy H K) + +-- is-reflexive-globular-structure-pointed-Π : -- {l1 l2 : Level} {A : +Pointed-Type l1} {B : Pointed-Fam l2 A} → -- is-reflexive-globular-structure +(globular-structure-pointed-Π {A = A} {B}) -- +is-reflexive-globular-structure-pointed-Π = -- λ where -- +.is-reflexive-1-cell-is-reflexive-globular-structure → -- refl-pointed-htpy -- +.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g -- +.is-reflexive-1-cell-is-reflexive-globular-structure → -- refl-pointed-2-htpy -- +.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g -- +.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure -- H K → +-- is-reflexive-globular-structure-Id (pointed-2-htpy H K) + +-- is-transitive-globular-structure-pointed-Π : -- {l1 l2 : Level} {A : +Pointed-Type l1} {B : Pointed-Fam l2 A} → -- is-transitive-globular-structure +(globular-structure-pointed-Π {A = A} {B}) -- +is-transitive-globular-structure-pointed-Π = -- λ where -- +.comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → -- +concat-pointed-htpy {f = f} {g} {h} K H -- +.is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K -- +.comp-1-cell-is-transitive-globular-structure α β → -- concat-pointed-2-htpy β α +-- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K +-- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure -- +α β → -- is-transitive-globular-structure-Id (pointed-2-htpy α β) -- ``` -- #### The nonuniform large globular structure on pointed types --- ```agda --- large-globular-structure-Pointed-Type : --- large-globular-structure (_⊔_) Pointed-Type --- large-globular-structure-Pointed-Type = --- λ where --- .1-cell-large-globular-structure X Y → --- (X →∗ Y) --- .globular-structure-1-cell-large-globular-structure X Y → --- globular-structure-pointed-Π - --- is-reflexive-large-globular-structure-Pointed-Type : --- is-reflexive-large-globular-structure large-globular-structure-Pointed-Type --- is-reflexive-large-globular-structure-Pointed-Type = --- λ where --- .is-reflexive-1-cell-is-reflexive-large-globular-structure X → --- id-pointed-map --- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure --- X Y → --- is-reflexive-globular-structure-pointed-Π - --- is-transitive-large-globular-structure-Pointed-Type : --- is-transitive-large-globular-structure large-globular-structure-Pointed-Type --- is-transitive-large-globular-structure-Pointed-Type = --- λ where --- .comp-1-cell-is-transitive-large-globular-structure g f → --- g ∘∗ f --- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure --- X Y → --- is-transitive-globular-structure-pointed-Π --- ``` - --- #### The nonuniform noncoherent large wild higher precategory of pointed types - --- ```agda --- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : --- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) --- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} --- {- --- λ where --- .obj-Noncoherent-Large-Wild-Higher-Precategory → --- Pointed-Type --- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- large-globular-structure-Pointed-Type --- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- is-reflexive-large-globular-structure-Pointed-Type --- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- is-transitive-large-globular-structure-Pointed-Type -} --- ``` +-- ```agda -- large-globular-structure-Pointed-Type : -- +large-globular-structure (_⊔_) Pointed-Type -- +large-globular-structure-Pointed-Type = -- λ where -- +.1-cell-large-globular-structure X Y → -- (X →∗ Y) -- +.globular-structure-1-cell-large-globular-structure X Y → -- +globular-structure-pointed-Π + +-- is-reflexive-large-globular-structure-Pointed-Type : -- +is-reflexive-large-globular-structure large-globular-structure-Pointed-Type -- +is-reflexive-large-globular-structure-Pointed-Type = -- λ where -- +.is-reflexive-1-cell-is-reflexive-large-globular-structure X → -- id-pointed-map +-- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure +-- X Y → -- is-reflexive-globular-structure-pointed-Π + +-- is-transitive-large-globular-structure-Pointed-Type : -- +is-transitive-large-globular-structure large-globular-structure-Pointed-Type -- +is-transitive-large-globular-structure-Pointed-Type = -- λ where -- +.comp-1-cell-is-transitive-large-globular-structure g f → -- g ∘∗ f -- +.is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +-- X Y → -- is-transitive-globular-structure-pointed-Π -- ``` + +-- #### The nonuniform noncoherent large wild higher precategory of pointed +types + +-- +`agda -- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : -- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} -- {- -- λ where -- .obj-Noncoherent-Large-Wild-Higher-Precategory → -- Pointed-Type -- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- large-globular-structure-Pointed-Type -- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- is-reflexive-large-globular-structure-Pointed-Type -- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- is-transitive-large-globular-structure-Pointed-Type -} -- ` -- ## Properties -- ### The left unit law for the identity pointed map --- ```agda --- module _ --- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} --- where +-- ```agda -- module \_ -- {l1 l2 : Level} {A : Pointed-Type l1} {B : +Pointed-Type l2} -- where --- left-unit-law-id-pointed-map : --- (f : A →∗ B) → id-pointed-map ∘∗ f ~∗ f --- pr1 (left-unit-law-id-pointed-map f) = refl-htpy --- pr2 (left-unit-law-id-pointed-map f) = right-unit ∙ ap-id (pr2 f) --- ``` +-- left-unit-law-id-pointed-map : -- (f : A →∗ B) → id-pointed-map ∘∗ f ~∗ f -- +pr1 (left-unit-law-id-pointed-map f) = refl-htpy -- pr2 +(left-unit-law-id-pointed-map f) = right-unit ∙ ap-id (pr2 f) -- ``` -- ### The right unit law for the identity pointed map --- ```agda --- module _ --- {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} --- where +-- ```agda -- module \_ -- {l1 l2 : Level} {A : Pointed-Type l1} {B : +Pointed-Type l2} -- where --- right-unit-law-id-pointed-map : --- (f : A →∗ B) → f ∘∗ id-pointed-map ~∗ f --- right-unit-law-id-pointed-map = refl-pointed-htpy --- ``` +-- right-unit-law-id-pointed-map : -- (f : A →∗ B) → f ∘∗ id-pointed-map ~∗ f -- +right-unit-law-id-pointed-map = refl-pointed-htpy -- ``` diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index 56f78347cb..f2f7357f4c 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -14,8 +14,8 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-types open import structured-types.globular-maps +open import structured-types.globular-types open import wild-category-theory.colax-functors-noncoherent-wild-higher-precategories open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 2b2c9c1495..1eaff73b41 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -14,8 +14,8 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-types open import structured-types.globular-maps +open import structured-types.globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-wild-higher-precategories diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index 2626ca661a..b612b86f4e 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -14,9 +14,9 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types open import structured-types.large-globular-types -open import structured-types.globular-maps open import structured-types.maps-large-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 5480ad320d..61f35bfaac 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -14,8 +14,8 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-types open import structured-types.globular-maps +open import structured-types.globular-types open import wild-category-theory.noncoherent-wild-higher-precategories ``` diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index 33230f3fc5..614786971e 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -96,7 +96,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The globular type of morphisms between two objects in a noncoherent large wild higher precategory +- The globular type of morphisms between two objects in a noncoherent large wild + higher precategory ```agda hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : @@ -118,7 +119,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The globular structure on the type of objects of a noncoherent large wild higher precategory +- The globular structure on the type of objects of a noncoherent large wild + higher precategory ```agda globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory : @@ -128,7 +130,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The globular type of 2-morphisms is a noncoherent large wild higher precategory +- The globular type of 2-morphisms is a noncoherent large wild higher + precategory ```agda 2-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : @@ -151,7 +154,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The globular structure on the type of morphisms between two objects in a noncoherent large wild higher precategory +- The globular structure on the type of morphisms between two objects in a + noncoherent large wild higher precategory ```agda globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory : @@ -166,7 +170,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The globular type of 3-morphisms in a noncoherent large wild higher precategory +- The globular type of 3-morphisms in a noncoherent large wild higher + precategory ```agda 3-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : @@ -193,7 +198,8 @@ record ( globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory) ``` -- The globular structure on the type of 2-morphisms in a noncoherent large wild higher precategory +- The globular structure on the type of 2-morphisms in a noncoherent large wild + higher precategory ```agda globular-structure-2-hom-Noncoherent-Large-Wild-Higher-Precategory : @@ -209,7 +215,8 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory ``` -- The structure of identity morphisms in a noncoherent large wild higher precategory +- The structure of identity morphisms in a noncoherent large wild higher + precategory ```agda field @@ -312,7 +319,8 @@ record comp-structure-Noncoherent-Large-Wild-Higher-Precategory ``` -- The noncoherent wild higher precategory of morphisms between two object in a noncoherent large wild higher precategory +- The noncoherent wild higher precategory of morphisms between two object in a + noncoherent large wild higher precategory ```agda hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Precategory : From 0285824500c7e87c2195f8f70c742e408a826c25 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 14 Oct 2024 00:18:43 -0400 Subject: [PATCH 09/42] working towards duality of directed graphs --- .../wild-category-of-types.lagda.md | 185 ++++++++++++------ ...endent-coproducts-directed-graphs.lagda.md | 116 +++++++++++ ...ependent-products-directed-graphs.lagda.md | 4 + .../dependent-reflexive-graphs.lagda.md | 96 +++++++++ .../directed-graph-duality.lagda.md | 64 ++++++ .../fibers-morphisms-directed-graphs.lagda.md | 106 ++++++++++ .../universal-directed-graph.lagda.md | 30 +++ .../large-reflexive-globular-types.lagda.md | 182 ++++++++++++++++- ...t-large-wild-higher-precategories.lagda.md | 11 +- 9 files changed, 730 insertions(+), 64 deletions(-) create mode 100644 src/graph-theory/dependent-coproducts-directed-graphs.lagda.md create mode 100644 src/graph-theory/dependent-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/directed-graph-duality.lagda.md create mode 100644 src/graph-theory/fibers-morphisms-directed-graphs.lagda.md diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index d712b916cc..03852491e7 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -46,78 +46,147 @@ consists of types and functions and homotopies. ## Definitions -### The globular structure on dependent function types +### The globular type of dependent function types ```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) + globular-structure-Π : {l1 l2 : Level} {A : UU l1} {B : A → UU l2} → globular-structure (l1 ⊔ l2) ((x : A) → B x) -globular-structure-Π = - λ where - .1-cell-globular-structure → _~_ - .globular-structure-1-cell-globular-structure f g → globular-structure-Π +globular-structure-Π {A = A} {B = B} = + globular-structure-0-cell-Globular-Type + ( dependent-function-type-Globular-Type A B) -is-reflexive-globular-structure-Π : +is-reflexive-dependent-function-type-Globular-Type : {l1 l2 : Level} {A : UU l1} {B : A → UU l2} → - is-reflexive-globular-structure (globular-structure-Π {A = A} {B}) -is-reflexive-globular-structure-Π = - λ where - .is-reflexive-1-cell-is-reflexive-globular-structure f → refl-htpy - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g → - is-reflexive-globular-structure-Π - -is-transitive-globular-structure-Π : + is-reflexive-Globular-Type (dependent-function-type-Globular-Type A B) +is-reflexive-1-cell-is-reflexive-globular-structure + is-reflexive-dependent-function-type-Globular-Type f = refl-htpy +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + is-reflexive-dependent-function-type-Globular-Type f g = + is-reflexive-dependent-function-type-Globular-Type + +is-transitive-dependent-function-type-Globular-Type : {l1 l2 : Level} {A : UU l1} {B : A → UU l2} → - is-transitive-globular-structure (globular-structure-Π {A = A} {B}) -is-transitive-globular-structure-Π = - λ where - .comp-1-cell-is-transitive-globular-structure H K → K ∙h H - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure - H K → - is-transitive-globular-structure-Π + is-transitive-Globular-Type (dependent-function-type-Globular-Type A B) +comp-1-cell-is-transitive-globular-structure + is-transitive-dependent-function-type-Globular-Type K H = + H ∙h K +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + is-transitive-dependent-function-type-Globular-Type f g = + is-transitive-dependent-function-type-Globular-Type ``` -### The large globular structure on types +### The globular type of function types ```agda -large-globular-structure-Type : large-globular-structure (_⊔_) (λ l → UU l) -large-globular-structure-Type = - λ where - .1-cell-large-globular-structure X Y → (X → Y) - .globular-structure-1-cell-large-globular-structure X Y → globular-structure-Π - -is-reflexive-large-globular-structure-Type : - is-reflexive-large-globular-structure large-globular-structure-Type -is-reflexive-large-globular-structure-Type = - λ where - .is-reflexive-1-cell-is-reflexive-large-globular-structure X → id - .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure - X Y → - is-reflexive-globular-structure-Π - -is-transitive-large-globular-structure-Type : - is-transitive-large-globular-structure large-globular-structure-Type -is-transitive-large-globular-structure-Type = - λ where - .comp-1-cell-is-transitive-large-globular-structure g f → g ∘ f - .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure - X Y → - is-transitive-globular-structure-Π +function-type-Globular-Type : + {l1 l2 : Level} (A : UU l1) (B : UU l2) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +function-type-Globular-Type A B = dependent-function-type-Globular-Type A (λ _ → B) + +globular-structure-function-type : + {l1 l2 : Level} {A : UU l1} {B : UU l2} → globular-structure (l1 ⊔ l2) (A → B) +globular-structure-function-type = globular-structure-Π + +is-reflexive-function-type-Globular-Type : + {l1 l2 : Level} {A : UU l1} {B : UU l2} → + is-reflexive-Globular-Type (function-type-Globular-Type A B) +is-reflexive-function-type-Globular-Type {l1} {l2} {A} {B} = + is-reflexive-dependent-function-type-Globular-Type + +is-transitive-function-type-Globular-Type : + {l1 l2 : Level} {A : UU l1} {B : UU l2} → + is-transitive-Globular-Type (function-type-Globular-Type A B) +is-transitive-function-type-Globular-Type = + is-transitive-dependent-function-type-Globular-Type ``` -### The noncoherent large wild higher precategory of types +### The large globular type of types ```agda -Type-Noncoherent-Large-Wild-Higher-Precategory : - Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -Type-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .obj-Noncoherent-Large-Wild-Higher-Precategory l → - UU l - .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - large-globular-structure-Type - .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-reflexive-large-globular-structure-Type - .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → - is-transitive-large-globular-structure-Type +Type-Large-Globular-Type : Large-Globular-Type lsuc (_⊔_) +0-cell-Large-Globular-Type Type-Large-Globular-Type l = + UU l +1-cell-globular-type-Large-Globular-Type Type-Large-Globular-Type A B = + function-type-Globular-Type A B + +is-reflexive-Type-Large-Globular-Type : + is-reflexive-Large-Globular-Type Type-Large-Globular-Type +refl-0-cell-is-reflexive-Large-Globular-Type + is-reflexive-Type-Large-Globular-Type X = + id +is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + is-reflexive-Type-Large-Globular-Type = + is-reflexive-function-type-Globular-Type + +Type-Large-Reflexive-Globular-Type : Large-Reflexive-Globular-Type lsuc (_⊔_) +Type-Large-Reflexive-Globular-Type = ? ``` + +-- ```agda +-- large-globular-structure-Type : large-globular-structure (_⊔_) (λ l → UU l) +-- large-globular-structure-Type = +-- λ where +-- .1-cell-large-globular-structure X Y → (X → Y) +-- .globular-structure-1-cell-large-globular-structure X Y → globular-structure-Π + +-- is-reflexive-large-globular-structure-Type : +-- is-reflexive-large-globular-structure large-globular-structure-Type +-- is-reflexive-large-globular-structure-Type = +-- λ where +-- .is-reflexive-1-cell-is-reflexive-large-globular-structure X → id +-- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure +-- X Y → +-- is-reflexive-globular-structure-Π + +-- is-transitive-large-globular-structure-Type : +-- is-transitive-large-globular-structure large-globular-structure-Type +-- is-transitive-large-globular-structure-Type = +-- λ where +-- .comp-1-cell-is-transitive-large-globular-structure g f → g ∘ f +-- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +-- X Y → +-- is-transitive-globular-structure-Π +-- ``` + +-- ### The noncoherent large wild higher precategory of types + +-- ```agda +-- Type-Large-Globular-Type : +-- Large-Globular-Type lsuc (_⊔_) +-- 0-cell-Large-Globular-Type Type-Large-Globular-Type l1 = UU l1 +-- 1-cell-globular-type-Large-Globular-Type Type-Large-Globular-Type X Y = +-- {!!} + +-- Type-Noncoherent-Large-Wild-Higher-Precategory : +-- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +-- large-globular-type-Noncoherent-Large-Wild-Precategory +-- Type-Noncoherent-Large-Wild-Higher-Precategory = +-- {!Type-Large-Globular-Type!} +-- id-structure-Noncoherent-Large-Wild-Higher-Precategory +-- Type-Noncoherent-Large-Wild-Higher-Precategory = +-- {!!} +-- comp-structure-Noncoherent-Large-Wild-Higher-Precategory +-- Type-Noncoherent-Large-Wild-Higher-Precategory = +-- {!!} + + +-- -- λ where +-- -- .obj-Noncoherent-Large-Wild-Higher-Precategory l → +-- -- UU l +-- -- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- -- large-globular-structure-Type +-- -- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- -- is-reflexive-large-globular-structure-Type +-- -- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → +-- -- is-transitive-large-globular-structure-Type +-- -- ``` diff --git a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md new file mode 100644 index 0000000000..5bd2966c99 --- /dev/null +++ b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md @@ -0,0 +1,116 @@ +# Dependent coproducts directed graphs + +```agda +module graph-theory.dependent-coproducts-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +open import graph-theory.pullbacks-dependent-directed-graphs +open import graph-theory.sections-dependent-directed-graphs +``` + +
+ +## Idea + +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `H` over a [directed graph](graph-theory.directed-graphs.md) `G`. The {{#concept "dependent coproduct" Disambiguation="directed graphs" Agda=Σ-Directed-Graph}} `Σ G H` is the directed graph given by + +```text + (Σ G H)₀ := Σ G₀ H₀ + (Σ G H)₁ (x , y) (x' , y') := Σ (e : G₁ x x') (H₁ e y y'). +``` + +## Definitions + +### The dependent coproduct of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + vertex-Σ-Directed-Graph : UU (l1 ⊔ l3) + vertex-Σ-Directed-Graph = + Σ (vertex-Directed-Graph G) (vertex-Dependent-Directed-Graph H) + + edge-Σ-Directed-Graph : + (x y : vertex-Σ-Directed-Graph) → UU (l2 ⊔ l4) + edge-Σ-Directed-Graph (x , y) (x' , y') = + Σ ( edge-Directed-Graph G x x') + ( λ e → edge-Dependent-Directed-Graph H e y y') + + Σ-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) + pr1 Σ-Directed-Graph = vertex-Σ-Directed-Graph + pr2 Σ-Directed-Graph = edge-Σ-Directed-Graph +``` + +### The first projection of the dependent coproduct directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + vertex-pr1-Σ-Directed-Graph : + vertex-Σ-Directed-Graph H → vertex-Directed-Graph G + vertex-pr1-Σ-Directed-Graph = pr1 + + edge-pr1-Σ-Directed-Graph : + {x y : vertex-Σ-Directed-Graph H} → + edge-Σ-Directed-Graph H x y → + edge-Directed-Graph G + ( vertex-pr1-Σ-Directed-Graph x) + ( vertex-pr1-Σ-Directed-Graph y) + edge-pr1-Σ-Directed-Graph = pr1 + + pr1-Σ-Directed-Graph : + hom-Directed-Graph (Σ-Directed-Graph H) G + pr1 pr1-Σ-Directed-Graph = vertex-pr1-Σ-Directed-Graph + pr2 pr1-Σ-Directed-Graph _ _ = edge-pr1-Σ-Directed-Graph +``` + +### The second projection of the dependent coproduct directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + vertex-pr2-Σ-Directed-Graph : + (x : vertex-Σ-Directed-Graph H) → + vertex-Dependent-Directed-Graph H (vertex-pr1-Σ-Directed-Graph H x) + vertex-pr2-Σ-Directed-Graph = pr2 + + edge-pr2-Σ-Directed-Graph : + {x y : vertex-Σ-Directed-Graph H} + (e : edge-Σ-Directed-Graph H x y) → + edge-Dependent-Directed-Graph H + ( edge-pr1-Σ-Directed-Graph H e) + ( vertex-pr2-Σ-Directed-Graph x) + ( vertex-pr2-Σ-Directed-Graph y) + edge-pr2-Σ-Directed-Graph = pr2 + + pr2-Σ-Directed-Graph : + section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( Σ-Directed-Graph H) + ( pr1-Σ-Directed-Graph H) + ( H)) + pr1 pr2-Σ-Directed-Graph = vertex-pr2-Σ-Directed-Graph + pr2 pr2-Σ-Directed-Graph = edge-pr2-Σ-Directed-Graph +``` + +## See also + +- [Dependent product directed graphs](graph-theory.dependent-product-directed-graphs.md) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index 66505cc6dc..328397225b 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -260,3 +260,7 @@ module _ pr2 ev-equiv-hom-Π-Directed-Graph = is-equiv-ev-section-Π-Directed-Graph ``` + +## See also + +- [Dependent coproduct directed graphs](graph-theory.dependent-coproduct-directed-graphs.md) diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..14f349416b --- /dev/null +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -0,0 +1,96 @@ +# Dependent reflexive graphs + +```agda +module graph-theory.dependent-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A +{{#concept "dependent reflexive graph}} `B` over `A` consists of: + +- A family `B₀ : A₀ → 𝒰` of vertices +- A family `B₁ : {x y : A₀} → A₁ x y → B₀ x → B₀ y → 𝒰` of + [binary relations](foundation.binary-relations.md) between the types of + vertices `B₀`, indexed by the type of edges `A₁` in `A`. +- A family of elements `Bᵣ : (x : A₀) (y : B₀ x) → B₁ (Aᵣ x) y y` witnessing the reflexivity of `B₁` over the reflexivity `Aᵣ` of `A₁`. + +This definition may appear overly general. However, one can observe that the +type of reflexive graphs itself is [equivalent](foundation-core.equivalences.md) +to the type of dependent reflexive graphs over the +[terminal reflexive graph](graph-theory.terminal-reflexive-graphs.md). +Furthermore, [graph homomorphisms](graph-theory.morphisms-reflexive-graphs.md) +into the [universal reflexive graph](graph-theory.universal-reflexive-graph.md) +are equivalent to dependent reflexive graphs. + +## Definitions + +### Dependent reflexive graphs + +```agda +Dependent-Reflexive-Graph : + {l1 l2 : Level} (l3 l4 : Level) → Reflexive-Graph l1 l2 → + UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) +Dependent-Reflexive-Graph l3 l4 A = + Σ ( vertex-Reflexive-Graph A → UU l3) + ( λ B₀ → + {x y : vertex-Reflexive-Graph A} → + edge-Reflexive-Graph A x y → B₀ x → B₀ y → UU l4) + +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + where + + vertex-Dependent-Reflexive-Graph : vertex-Reflexive-Graph A → UU l3 + vertex-Dependent-Reflexive-Graph = pr1 B + + edge-Dependent-Reflexive-Graph : + {x y : vertex-Reflexive-Graph A} → + edge-Reflexive-Graph A x y → + vertex-Dependent-Reflexive-Graph x → + vertex-Dependent-Reflexive-Graph y → UU l4 + edge-Dependent-Reflexive-Graph = pr2 B +``` + +### Constant dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) + where + + vertex-constant-Dependent-Reflexive-Graph : + vertex-Reflexive-Graph A → UU l3 + vertex-constant-Dependent-Reflexive-Graph x = vertex-Reflexive-Graph B + + edge-constant-Dependent-Reflexive-Graph : + {x y : vertex-Reflexive-Graph A} → + edge-Reflexive-Graph A x y → + vertex-constant-Dependent-Reflexive-Graph x → + vertex-constant-Dependent-Reflexive-Graph y → UU l4 + edge-constant-Dependent-Reflexive-Graph e = + edge-Reflexive-Graph B + + constant-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l3 l4 A + pr1 constant-Dependent-Reflexive-Graph = + vertex-constant-Dependent-Reflexive-Graph + pr2 constant-Dependent-Reflexive-Graph = + edge-constant-Dependent-Reflexive-Graph +``` + +## See also + +- The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) +- [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) diff --git a/src/graph-theory/directed-graph-duality.lagda.md b/src/graph-theory/directed-graph-duality.lagda.md new file mode 100644 index 0000000000..8ecc6a57d0 --- /dev/null +++ b/src/graph-theory/directed-graph-duality.lagda.md @@ -0,0 +1,64 @@ +# Directed graph duality + +```agda +module graph-theory.directed-graph-duality where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.functoriality-dependent-pair-types +open import foundation.small-types +open import foundation.type-arithmetic-dependent-pair-types +open import foundation.type-duality +open import foundation.universe-levels + +open import graph-theory.dependent-coproducts-directed-graphs +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.fibers-morphisms-directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +{{#concept "Directed graph duality}} is an [equivalence](foundation-core.equivalences.md) between [dependent directed graphs](graph-theory.dependent-directed-graphs.md) over a [directed graph](graph-theory.directed-graphs.md) `G` and [morphisms of directed graphs](graph-theory.morphisms-directed-graphs.md) into `G`. This result is analogous to [type duality](foundation.type-duality.md), which asserts that type families over a type `A` are equivalently described as maps into `A`. + +## Definitions + +### The underlying map of the duality theorem for directed graphs + +```agda +module _ + {l1 l2 : Level} (G : Directed-Graph l1 l2) + where + + map-duality-Directed-Graph : + {l3 l4 : Level} → + Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G) → + Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + map-duality-Directed-Graph (H , f) = fiber-hom-Directed-Graph H G f + + map-inv-duality-Directed-Graph : + {l3 l4 : Level} → + Dependent-Directed-Graph l3 l4 G → + Σ ( Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4)) (λ H → hom-Directed-Graph H G) + pr1 (map-inv-duality-Directed-Graph H) = Σ-Directed-Graph H + pr2 (map-inv-duality-Directed-Graph H) = pr1-Σ-Directed-Graph H + + duality-Directed-Graph : + {l3 l4 : Level} → + Σ ( Directed-Graph (l1 ⊔ l3) {!!}) (λ H → hom-Directed-Graph H G) ≃ + Dependent-Directed-Graph (l1 ⊔ l3) {!!} G + duality-Directed-Graph {l3} {l4} = + ( equiv-Σ + ( {!!}) + ( type-duality (is-small-lmax l3 (vertex-Directed-Graph G))) + ( λ (H₀ , f₀) → {!!})) ∘e + ( interchange-Σ-Σ _) + +``` diff --git a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md new file mode 100644 index 0000000000..055bfd5683 --- /dev/null +++ b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md @@ -0,0 +1,106 @@ +# Fibers of morphisms into directed graphs + +```agda +module graph-theory.fibers-morphisms-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.fibers-of-maps +open import foundation.identity-types +open import foundation.universe-levels + +open import graph-theory.dependent-coproducts-directed-graphs +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.equivalences-directed-graphs +open import graph-theory.morphisms-directed-graphs +``` + +
+ +## Idea + +Consider a [morphism](graph-theory.morphisms-directed-graphs.md) `f : H → G` of [directed graphs](graph-theory.directed-graphs.md). The {{#concept "fiber" Disambiguation="morphisms of directed graphs"}} of `f` is the [dependent directed graph](graph-theory.dependent-directed-graphs.md) `fib_f` over `G` given by + +```text + (fib_f)₀ x := fib f₀ + (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e. +``` + +## Definitions + +### The fiber of a morphism of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Directed-Graph l1 l2) (G : Directed-Graph l3 l4) + (f : hom-Directed-Graph H G) + where + + vertex-fiber-hom-Directed-Graph : + vertex-Directed-Graph G → UU (l1 ⊔ l3) + vertex-fiber-hom-Directed-Graph = fiber (vertex-hom-Directed-Graph H G f) + + edge-fiber-hom-Directed-Graph : + {x x' : vertex-Directed-Graph G} → + edge-Directed-Graph G x x' → + vertex-fiber-hom-Directed-Graph x → + vertex-fiber-hom-Directed-Graph x' → UU (l2 ⊔ l4) + edge-fiber-hom-Directed-Graph e (y , refl) (y' , refl) = + fiber (edge-hom-Directed-Graph H G f) e + + fiber-hom-Directed-Graph : Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + pr1 fiber-hom-Directed-Graph = vertex-fiber-hom-Directed-Graph + pr2 fiber-hom-Directed-Graph = edge-fiber-hom-Directed-Graph +``` + +## Properties + +### The coproduct of the fibers of a morphism of directed graphs is the equivalent to the codomain + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Directed-Graph l1 l2) (G : Directed-Graph l3 l4) + (f : hom-Directed-Graph H G) + where + + vertex-compute-Σ-fiber-hom-Directed-Graph : + vertex-Directed-Graph H ≃ + vertex-Σ-Directed-Graph (fiber-hom-Directed-Graph H G f) + vertex-compute-Σ-fiber-hom-Directed-Graph = + inv-equiv-total-fiber (vertex-hom-Directed-Graph H G f) + + map-vertex-compute-Σ-fiber-hom-Directed-Graph : + vertex-Directed-Graph H → + vertex-Σ-Directed-Graph (fiber-hom-Directed-Graph H G f) + map-vertex-compute-Σ-fiber-hom-Directed-Graph = + map-equiv vertex-compute-Σ-fiber-hom-Directed-Graph + + edge-compute-Σ-fiber-hom-Directed-Graph : + {x y : vertex-Directed-Graph H} → + edge-Directed-Graph H x y ≃ + edge-Σ-Directed-Graph + ( fiber-hom-Directed-Graph H G f) + ( map-vertex-compute-Σ-fiber-hom-Directed-Graph x) + ( map-vertex-compute-Σ-fiber-hom-Directed-Graph y) + edge-compute-Σ-fiber-hom-Directed-Graph = + inv-equiv-total-fiber (edge-hom-Directed-Graph H G f) + + compute-Σ-fiber-hom-Directed-Graph : + equiv-Directed-Graph H (Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) + pr1 compute-Σ-fiber-hom-Directed-Graph = + vertex-compute-Σ-fiber-hom-Directed-Graph + pr2 compute-Σ-fiber-hom-Directed-Graph _ _ = + edge-compute-Σ-fiber-hom-Directed-Graph + + hom-compute-Σ-fiber-hom-Directed-Graph : + hom-Directed-Graph H (Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) + hom-compute-Σ-fiber-hom-Directed-Graph = + hom-equiv-Directed-Graph H + ( Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) + ( compute-Σ-fiber-hom-Directed-Graph) +``` diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index 6f96a2d00d..64c7e132fd 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -10,6 +10,7 @@ module graph-theory.universal-directed-graph where open import foundation.dependent-pair-types open import foundation.universe-levels +open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs ``` @@ -62,6 +63,8 @@ This means that: ## Definitions +### The universal directed graph + ```agda module _ (l1 l2 : Level) @@ -79,6 +82,33 @@ module _ pr2 universal-Directed-Graph = edge-universal-Directed-Graph ``` +### The universal dependent directed graph + +```agda +module _ + (l1 l2 : Level) + where + + vertex-universal-Dependent-Directed-Graph : + vertex-universal-Directed-Graph l1 l2 → UU l1 + vertex-universal-Dependent-Directed-Graph X = X + + edge-universal-Dependent-Directed-Graph : + {X Y : vertex-universal-Directed-Graph l1 l2} + (R : edge-universal-Directed-Graph l1 l2 X Y) → + vertex-universal-Dependent-Directed-Graph X → + vertex-universal-Dependent-Directed-Graph Y → UU l2 + edge-universal-Dependent-Directed-Graph R x y = R x y + + universal-Dependent-Directed-Graph : + Dependent-Directed-Graph l1 l2 (universal-Directed-Graph l1 l2) + pr1 universal-Dependent-Directed-Graph = + vertex-universal-Dependent-Directed-Graph + pr2 universal-Dependent-Directed-Graph = + edge-universal-Dependent-Directed-Graph + +``` + ## Formalization target There is a _directed graph duality theorem_, which asserts that for any directed diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 195d6a05eb..c43c040ca0 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -13,6 +13,7 @@ open import foundation.binary-relations open import foundation.large-binary-relations open import foundation.universe-levels +open import structured-types.globular-types open import structured-types.large-globular-types open import structured-types.reflexive-globular-types ``` @@ -27,7 +28,7 @@ if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definition -### Reflexivity structure on large globular types +### The predicate of being a reflexive large globular type ```agda record @@ -72,6 +73,185 @@ record open is-reflexive-Large-Globular-Type public ``` +### Large reflexive globular types + +```agda +record + Large-Reflexive-Globular-Type + ( α : Level → Level) (β : Level → Level → Level) : UUω + where + + field + large-globular-type-Large-Reflexive-Globular-Type : + Large-Globular-Type α β + + 0-cell-Large-Reflexive-Globular-Type : (l : Level) → UU (α l) + 0-cell-Large-Reflexive-Globular-Type = + 0-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 1-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type l1) + (y : 0-cell-Large-Reflexive-Globular-Type l2) → + UU (β l1 l2) + 1-cell-Large-Reflexive-Globular-Type = + 1-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 2-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + (f g : 1-cell-Large-Reflexive-Globular-Type x y) → UU (β l1 l2) + 2-cell-Large-Reflexive-Globular-Type = + 2-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 3-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + (s t : 2-cell-Large-Reflexive-Globular-Type f g) → UU (β l1 l2) + 3-cell-Large-Reflexive-Globular-Type = + 3-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 4-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + {s t : 2-cell-Large-Reflexive-Globular-Type f g} + (u v : 3-cell-Large-Reflexive-Globular-Type s t) → UU (β l1 l2) + 4-cell-Large-Reflexive-Globular-Type = + 4-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 5-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + {s t : 2-cell-Large-Reflexive-Globular-Type f g} + {u v : 3-cell-Large-Reflexive-Globular-Type s t} + (a b : 4-cell-Large-Reflexive-Globular-Type u v) → UU (β l1 l2) + 5-cell-Large-Reflexive-Globular-Type = + 5-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 1-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type l1) + (y : 0-cell-Large-Reflexive-Globular-Type l2) → + Globular-Type (β l1 l2) (β l1 l2) + 1-cell-globular-type-Large-Reflexive-Globular-Type = + 1-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 2-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + (f g : 1-cell-Large-Reflexive-Globular-Type x y) → + Globular-Type (β l1 l2) (β l1 l2) + 2-cell-globular-type-Large-Reflexive-Globular-Type = + 2-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 3-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + (s t : 2-cell-Large-Reflexive-Globular-Type f g) → + Globular-Type (β l1 l2) (β l1 l2) + 3-cell-globular-type-Large-Reflexive-Globular-Type = + 3-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 4-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + {s t : 2-cell-Large-Reflexive-Globular-Type f g} + (u v : 3-cell-Large-Reflexive-Globular-Type s t) → + Globular-Type (β l1 l2) (β l1 l2) + 4-cell-globular-type-Large-Reflexive-Globular-Type = + 4-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + 5-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + {s t : 2-cell-Large-Reflexive-Globular-Type f g} + {u v : 3-cell-Large-Reflexive-Globular-Type s t} + (a b : 4-cell-Large-Reflexive-Globular-Type u v) → + Globular-Type (β l1 l2) (β l1 l2) + 5-cell-globular-type-Large-Reflexive-Globular-Type = + 5-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + globular-structure-1-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type l1) + (y : 0-cell-Large-Reflexive-Globular-Type l2) → + globular-structure (β l1 l2) (1-cell-Large-Reflexive-Globular-Type x y) + globular-structure-1-cell-Large-Reflexive-Globular-Type = + globular-structure-1-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + globular-structure-2-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + (f g : 1-cell-Large-Reflexive-Globular-Type x y) → + globular-structure (β l1 l2) (2-cell-Large-Reflexive-Globular-Type f g) + globular-structure-2-cell-Large-Reflexive-Globular-Type = + globular-structure-2-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + globular-structure-3-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + (s t : 2-cell-Large-Reflexive-Globular-Type f g) → + globular-structure (β l1 l2) (3-cell-Large-Reflexive-Globular-Type s t) + globular-structure-3-cell-Large-Reflexive-Globular-Type = + globular-structure-3-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + globular-structure-4-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} + {s t : 2-cell-Large-Reflexive-Globular-Type f g} + (u v : 3-cell-Large-Reflexive-Globular-Type s t) → + globular-structure (β l1 l2) (4-cell-Large-Reflexive-Globular-Type u v) + globular-structure-4-cell-Large-Reflexive-Globular-Type = + globular-structure-4-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + large-globular-structure-0-cell-Large-Reflexive-Globular-Type : + large-globular-structure β (0-cell-Large-Reflexive-Globular-Type) + large-globular-structure-0-cell-Large-Reflexive-Globular-Type = + large-globular-structure-0-cell-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + + field + is-reflexive-Large-Reflexive-Globular-Type : + is-reflexive-Large-Globular-Type + large-globular-type-Large-Reflexive-Globular-Type + +open Large-Reflexive-Globular-Type public +``` + ### Reflexivity structure on a large globular structure ```agda diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index 614786971e..513fff7914 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -225,11 +225,12 @@ record large-globular-type-Noncoherent-Large-Wild-Precategory id-hom-Noncoherent-Large-Wild-Higher-Precategory : - {l1 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) → + {l1 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} → hom-Noncoherent-Large-Wild-Higher-Precategory x x - id-hom-Noncoherent-Large-Wild-Higher-Precategory = + id-hom-Noncoherent-Large-Wild-Higher-Precategory {l1} {x} = refl-0-cell-is-reflexive-Large-Globular-Type - id-structure-Noncoherent-Large-Wild-Higher-Precategory + ( id-structure-Noncoherent-Large-Wild-Higher-Precategory) + ( x) id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -323,12 +324,12 @@ record noncoherent large wild higher precategory ```agda - hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Precategory : + hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → Noncoherent-Wild-Higher-Precategory (β l1 l2) (β l1 l2) - hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Precategory + hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory x y = make-Noncoherent-Wild-Higher-Precategory ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) From d4213363dba9ade273e58aaa0353dcca23ff0cf5 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 15 Oct 2024 12:45:50 -0400 Subject: [PATCH 10/42] duality for directed graphs --- .../dependent-directed-graphs.lagda.md | 6 +- .../directed-graph-duality.lagda.md | 163 ++++++++++++-- ...alences-dependent-directed-graphs.lagda.md | 207 ++++++++++++++++++ .../fibers-directed-graphs.lagda.md | 4 +- .../fibers-morphisms-directed-graphs.lagda.md | 91 +++++++- ...rphisms-dependent-directed-graphs.lagda.md | 113 ++++++++++ .../morphisms-directed-graphs.lagda.md | 78 +++++++ ...llbacks-dependent-directed-graphs.lagda.md | 2 +- 8 files changed, 644 insertions(+), 20 deletions(-) create mode 100644 src/graph-theory/equivalences-dependent-directed-graphs.lagda.md create mode 100644 src/graph-theory/morphisms-dependent-directed-graphs.lagda.md diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md index 2e05514497..a3b5206c41 100644 --- a/src/graph-theory/dependent-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -44,7 +44,7 @@ Dependent-Directed-Graph : Dependent-Directed-Graph l3 l4 A = Σ ( vertex-Directed-Graph A → UU l3) ( λ B₀ → - {x y : vertex-Directed-Graph A} → + (x y : vertex-Directed-Graph A) → edge-Directed-Graph A x y → B₀ x → B₀ y → UU l4) module _ @@ -60,7 +60,7 @@ module _ edge-Directed-Graph A x y → vertex-Dependent-Directed-Graph x → vertex-Dependent-Directed-Graph y → UU l4 - edge-Dependent-Directed-Graph = pr2 B + edge-Dependent-Directed-Graph = pr2 B _ _ ``` ### Constant dependent directed graphs @@ -85,7 +85,7 @@ module _ constant-Dependent-Directed-Graph : Dependent-Directed-Graph l3 l4 A pr1 constant-Dependent-Directed-Graph = vertex-constant-Dependent-Directed-Graph - pr2 constant-Dependent-Directed-Graph = + pr2 constant-Dependent-Directed-Graph _ _ = edge-constant-Dependent-Directed-Graph ``` diff --git a/src/graph-theory/directed-graph-duality.lagda.md b/src/graph-theory/directed-graph-duality.lagda.md index 8ecc6a57d0..2f4f80356d 100644 --- a/src/graph-theory/directed-graph-duality.lagda.md +++ b/src/graph-theory/directed-graph-duality.lagda.md @@ -9,15 +9,19 @@ module graph-theory.directed-graph-duality where ```agda open import foundation.dependent-pair-types open import foundation.equivalences -open import foundation.functoriality-dependent-pair-types -open import foundation.small-types -open import foundation.type-arithmetic-dependent-pair-types -open import foundation.type-duality +open import foundation.fundamental-theorem-of-identity-types +open import foundation.identity-types +open import foundation.retractions +open import foundation.sections +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families open import foundation.universe-levels open import graph-theory.dependent-coproducts-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs +open import graph-theory.equivalences-dependent-directed-graphs +open import graph-theory.equivalences-directed-graphs open import graph-theory.fibers-morphisms-directed-graphs open import graph-theory.morphisms-directed-graphs ``` @@ -42,6 +46,14 @@ module _ Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G) → Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G map-duality-Directed-Graph (H , f) = fiber-hom-Directed-Graph H G f +``` + +### The inverse map of the duality theorem for directed graphs + +```agda +module _ + {l1 l2 : Level} (G : Directed-Graph l1 l2) + where map-inv-duality-Directed-Graph : {l3 l4 : Level} → @@ -49,16 +61,139 @@ module _ Σ ( Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4)) (λ H → hom-Directed-Graph H G) pr1 (map-inv-duality-Directed-Graph H) = Σ-Directed-Graph H pr2 (map-inv-duality-Directed-Graph H) = pr1-Σ-Directed-Graph H +``` - duality-Directed-Graph : - {l3 l4 : Level} → - Σ ( Directed-Graph (l1 ⊔ l3) {!!}) (λ H → hom-Directed-Graph H G) ≃ - Dependent-Directed-Graph (l1 ⊔ l3) {!!} G - duality-Directed-Graph {l3} {l4} = - ( equiv-Σ - ( {!!}) - ( type-duality (is-small-lmax l3 (vertex-Directed-Graph G))) - ( λ (H₀ , f₀) → {!!})) ∘e - ( interchange-Σ-Σ _) +## Properties + +### The directed graph duality theorem + +#### Characterization of the identity type of the total space of morphisms into a directed graph +```agda +module _ + {l1 l2 : Level} (G : Directed-Graph l1 l2) + where + + equiv-total-hom-Directed-Graph : + {l3 l4 l5 l6 : Level} → + (f : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) + (g : Σ (Directed-Graph l5 l6) (λ H → hom-Directed-Graph H G)) → + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + equiv-total-hom-Directed-Graph (H , f) (K , g) = + Σ ( equiv-Directed-Graph H K) + ( λ e → + htpy-hom-Directed-Graph H G + ( f) + ( comp-hom-Directed-Graph H K G g (hom-equiv-Directed-Graph H K e))) + + id-equiv-total-hom-Directed-Graph : + {l3 l4 : Level} + (f : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + equiv-total-hom-Directed-Graph f f + pr1 (id-equiv-total-hom-Directed-Graph (H , f)) = id-equiv-Directed-Graph H + pr2 (id-equiv-total-hom-Directed-Graph (H , f)) = + right-unit-law-comp-hom-Directed-Graph H G f + + is-torsorial-equiv-total-hom-Directed-Graph : + {l3 l4 : Level} + (f : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + is-torsorial (equiv-total-hom-Directed-Graph {l5 = l3} {l6 = l4} f) + is-torsorial-equiv-total-hom-Directed-Graph (H , f) = + is-torsorial-Eq-structure + ( is-torsorial-equiv-Directed-Graph H) + ( H , id-equiv-Directed-Graph H) + ( is-torsorial-htpy-hom-Directed-Graph H G f) + + equiv-eq-total-hom-Directed-Graph : + {l3 l4 : Level} + (f g : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + (f = g) → equiv-total-hom-Directed-Graph f g + equiv-eq-total-hom-Directed-Graph f .f refl = + id-equiv-total-hom-Directed-Graph f + + is-equiv-equiv-eq-total-hom-Directed-Graph : + {l3 l4 : Level} + (f g : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + is-equiv (equiv-eq-total-hom-Directed-Graph f g) + is-equiv-equiv-eq-total-hom-Directed-Graph f = + fundamental-theorem-id + ( is-torsorial-equiv-total-hom-Directed-Graph f) + ( equiv-eq-total-hom-Directed-Graph f) + + extensionality-total-hom-Directed-Graph : + {l3 l4 : Level} + (f g : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + (f = g) ≃ equiv-total-hom-Directed-Graph f g + pr1 (extensionality-total-hom-Directed-Graph f g) = + equiv-eq-total-hom-Directed-Graph f g + pr2 (extensionality-total-hom-Directed-Graph f g) = + is-equiv-equiv-eq-total-hom-Directed-Graph f g + + eq-equiv-total-hom-Directed-Graph : + {l3 l4 : Level} + (f g : Σ (Directed-Graph l3 l4) (λ H → hom-Directed-Graph H G)) → + equiv-total-hom-Directed-Graph f g → f = g + eq-equiv-total-hom-Directed-Graph f g = + map-inv-equiv (extensionality-total-hom-Directed-Graph f g) +``` + +#### The inverse map of the duality theorem is a retraction + +```agda +module _ + {l1 l2 : Level} (l3 l4 : Level) (G : Directed-Graph l1 l2) + where + + is-retraction-map-inv-duality-Directed-Graph : + is-retraction + ( map-duality-Directed-Graph G {l1 ⊔ l3} {l2 ⊔ l4}) + ( map-inv-duality-Directed-Graph G {l1 ⊔ l3} {l2 ⊔ l4}) + is-retraction-map-inv-duality-Directed-Graph (H , f) = + inv + ( eq-equiv-total-hom-Directed-Graph G + ( H , f) + ( map-inv-duality-Directed-Graph G + ( map-duality-Directed-Graph G (H , f))) + ( ( compute-Σ-fiber-hom-Directed-Graph H G f) , + ( htpy-compute-Σ-fiber-hom-Directed-Graph H G f))) +``` + +#### The inverse map of the duality theorem is a section + +```agda +module _ + {l1 l2 : Level} (l3 l4 : Level) (G : Directed-Graph l1 l2) + where + + is-section-map-inv-duality-Directed-Graph : + is-section + ( map-duality-Directed-Graph G {l1 ⊔ l3} {l2 ⊔ l4}) + ( map-inv-duality-Directed-Graph G {l1 ⊔ l3} {l2 ⊔ l4}) + is-section-map-inv-duality-Directed-Graph H = + eq-equiv-Dependent-Directed-Graph + ( fiber-pr1-Σ-Directed-Graph H) + ( H) + ( compute-fiber-pr1-Σ-Directed-Graph H) +``` + +#### The conclusion of the duality theorem + +```agda +module _ + {l1 l2 : Level} (l3 l4 : Level) (G : Directed-Graph l1 l2) + where + + is-equiv-map-duality-Directed-Graph : + is-equiv (map-duality-Directed-Graph G {l1 ⊔ l3} {l2 ⊔ l4}) + is-equiv-map-duality-Directed-Graph = + is-equiv-is-invertible + ( map-inv-duality-Directed-Graph G) + ( is-section-map-inv-duality-Directed-Graph l3 l4 G) + ( is-retraction-map-inv-duality-Directed-Graph l3 l4 G) + + duality-Directed-Graph : + Σ (Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4)) (λ H → hom-Directed-Graph H G) ≃ + Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + pr1 duality-Directed-Graph = map-duality-Directed-Graph G + pr2 duality-Directed-Graph = is-equiv-map-duality-Directed-Graph ``` diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md new file mode 100644 index 0000000000..236792a626 --- /dev/null +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -0,0 +1,207 @@ +# Equivalences of dependent directed graphs + +```agda +module graph-theory.equivalences-dependent-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.families-of-equivalences +open import foundation.function-types +open import foundation.fundamental-theorem-of-identity-types +open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.univalence +open import foundation.universe-levels + +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +``` + +
+ +## Idea + +Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and `K` over a [directed graph](graph-theory.directed-graphs.md) `G`. +A {{#concept "equivalence of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} from `H` to `K` consists of a [family of equivalences](foundation.families-of-equivalences.md) + +```text + e₀ : {x : G₀} → H₀ x ≃ K₀ x +``` + +of vertices, and a family of [equivalences](foundation-core.equivalences.md) + +```text + e₁ : {x y : G₀} (a : G₁ x y) {y : H₀ x} {y' : H₀ x'} → H₁ a y y' ≃ K₁ a (e₀ y) (e₀ y') +``` + +of edges. + + +## Definitions + +### Equivalences of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + (K : Dependent-Directed-Graph l5 l6 G) + where + + equiv-Dependent-Directed-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + equiv-Dependent-Directed-Graph = + Σ ( fam-equiv + ( vertex-Dependent-Directed-Graph H) + ( vertex-Dependent-Directed-Graph K)) + ( λ e → + (x x' : vertex-Directed-Graph G) → + (a : edge-Directed-Graph G x x') → + (y : vertex-Dependent-Directed-Graph H x) + (y' : vertex-Dependent-Directed-Graph H x') → + edge-Dependent-Directed-Graph H a y y' ≃ + edge-Dependent-Directed-Graph K a + ( map-equiv (e x) y) + ( map-equiv (e x') y')) + + equiv-vertex-equiv-Dependent-Directed-Graph : + equiv-Dependent-Directed-Graph → + fam-equiv + ( vertex-Dependent-Directed-Graph H) + ( vertex-Dependent-Directed-Graph K) + equiv-vertex-equiv-Dependent-Directed-Graph = pr1 + + vertex-equiv-Dependent-Directed-Graph : + equiv-Dependent-Directed-Graph → + {x : vertex-Directed-Graph G} → + vertex-Dependent-Directed-Graph H x → + vertex-Dependent-Directed-Graph K x + vertex-equiv-Dependent-Directed-Graph e {x} = + map-equiv (equiv-vertex-equiv-Dependent-Directed-Graph e x) + + equiv-edge-equiv-Dependent-Directed-Graph : + (e : equiv-Dependent-Directed-Graph) → + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') + (y : vertex-Dependent-Directed-Graph H x) + (y' : vertex-Dependent-Directed-Graph H x') → + edge-Dependent-Directed-Graph H a y y' ≃ + edge-Dependent-Directed-Graph K a + ( vertex-equiv-Dependent-Directed-Graph e y) + ( vertex-equiv-Dependent-Directed-Graph e y') + equiv-edge-equiv-Dependent-Directed-Graph e a = + pr2 e _ _ a + + edge-equiv-Dependent-Directed-Graph : + (e : equiv-Dependent-Directed-Graph) → + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') + {y : vertex-Dependent-Directed-Graph H x} + {y' : vertex-Dependent-Directed-Graph H x'} → + edge-Dependent-Directed-Graph H a y y' → + edge-Dependent-Directed-Graph K a + ( vertex-equiv-Dependent-Directed-Graph e y) + ( vertex-equiv-Dependent-Directed-Graph e y') + edge-equiv-Dependent-Directed-Graph e a = + map-equiv (equiv-edge-equiv-Dependent-Directed-Graph e a _ _) +``` + +### The identity equivalence of a dependent directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + equiv-vertex-id-equiv-Dependent-Directed-Graph : + fam-equiv + ( vertex-Dependent-Directed-Graph H) + ( vertex-Dependent-Directed-Graph H) + equiv-vertex-id-equiv-Dependent-Directed-Graph x = id-equiv + + vertex-id-equiv-Dependent-Directed-Graph : + {x : vertex-Directed-Graph G} → + vertex-Dependent-Directed-Graph H x → + vertex-Dependent-Directed-Graph H x + vertex-id-equiv-Dependent-Directed-Graph = id + + equiv-edge-id-equiv-Dependent-Directed-Graph : + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') + (y : vertex-Dependent-Directed-Graph H x) + (y' : vertex-Dependent-Directed-Graph H x') → + edge-Dependent-Directed-Graph H a y y' ≃ + edge-Dependent-Directed-Graph H a + ( vertex-id-equiv-Dependent-Directed-Graph y) + ( vertex-id-equiv-Dependent-Directed-Graph y') + equiv-edge-id-equiv-Dependent-Directed-Graph a y y' = id-equiv + + id-equiv-Dependent-Directed-Graph : + equiv-Dependent-Directed-Graph H H + pr1 id-equiv-Dependent-Directed-Graph = + equiv-vertex-id-equiv-Dependent-Directed-Graph + pr2 id-equiv-Dependent-Directed-Graph _ _ = + equiv-edge-id-equiv-Dependent-Directed-Graph +``` + +## Properties + +### Equivalences characterize identifications of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + is-torsorial-equiv-Dependent-Directed-Graph : + is-torsorial (equiv-Dependent-Directed-Graph {l5 = l3} {l6 = l4} H) + is-torsorial-equiv-Dependent-Directed-Graph = + is-torsorial-Eq-structure + ( is-torsorial-equiv-fam (vertex-Dependent-Directed-Graph H)) + ( vertex-Dependent-Directed-Graph H , id-equiv-fam _) + ( is-torsorial-Eq-Π + ( λ x → + is-torsorial-Eq-Π + ( λ x' → + is-torsorial-Eq-Π + ( λ a → + is-torsorial-Eq-Π + ( λ y → + is-torsorial-Eq-Π + ( λ y' → is-torsorial-equiv _)))))) + + equiv-eq-Dependent-Directed-Graph : + (K : Dependent-Directed-Graph l3 l4 G) → + H = K → equiv-Dependent-Directed-Graph H K + equiv-eq-Dependent-Directed-Graph K refl = + id-equiv-Dependent-Directed-Graph H + + is-equiv-equiv-eq-Dependent-Directed-Graph : + (K : Dependent-Directed-Graph l3 l4 G) → + is-equiv (equiv-eq-Dependent-Directed-Graph K) + is-equiv-equiv-eq-Dependent-Directed-Graph = + fundamental-theorem-id + is-torsorial-equiv-Dependent-Directed-Graph + equiv-eq-Dependent-Directed-Graph + + extensionality-Dependent-Directed-Graph : + (K : Dependent-Directed-Graph l3 l4 G) → + (H = K) ≃ equiv-Dependent-Directed-Graph H K + pr1 (extensionality-Dependent-Directed-Graph K) = + equiv-eq-Dependent-Directed-Graph K + pr2 (extensionality-Dependent-Directed-Graph K) = + is-equiv-equiv-eq-Dependent-Directed-Graph K + + eq-equiv-Dependent-Directed-Graph : + (K : Dependent-Directed-Graph l3 l4 G) → + equiv-Dependent-Directed-Graph H K → H = K + eq-equiv-Dependent-Directed-Graph K = + map-inv-equiv (extensionality-Dependent-Directed-Graph K) +``` diff --git a/src/graph-theory/fibers-directed-graphs.lagda.md b/src/graph-theory/fibers-directed-graphs.lagda.md index c4ce42deb8..2dd5fb0a85 100644 --- a/src/graph-theory/fibers-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-directed-graphs.lagda.md @@ -31,12 +31,14 @@ open import trees.directed-trees ## Idea Consider a vertex `x` in a [directed graph](graph-theory.directed-graphs.md) -`G`. The **fiber** of `G` at `x` is a [directed tree](trees.directed-trees.md) +`G`. The {{#concept "fiber" Disambiguation="directed graph" Agda=fiber-Directed-Graph}} of `G` at `x` is a [directed tree](trees.directed-trees.md) of which the type of nodes consists of vertices `y` equipped with a [walk](graph-theory.walks-directed-graphs.md) `w` from `y` to `x`, and the type of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that `w = cons e v`. +_Note:_ The fiber of a directed graphs should not be confused with the [fiber of a morphism of directed graphs](graph-theory.fibers-morphisms-directed-graphs.md), which is the [dependent directed graph](graph-theory.dependent-directed-graph.md) consisting of the [fibers](foundation-core.fibers-of-maps.md) of the actions on vertices and edges. + ## Definitions ### The underlying graph of the fiber of `G` at `x` diff --git a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md index 055bfd5683..f0011de09a 100644 --- a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md @@ -9,6 +9,7 @@ module graph-theory.fibers-morphisms-directed-graphs where ```agda open import foundation.dependent-pair-types open import foundation.equivalences +open import foundation.families-of-equivalences open import foundation.fibers-of-maps open import foundation.identity-types open import foundation.universe-levels @@ -16,6 +17,7 @@ open import foundation.universe-levels open import graph-theory.dependent-coproducts-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs +open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-directed-graphs open import graph-theory.morphisms-directed-graphs ``` @@ -31,6 +33,12 @@ Consider a [morphism](graph-theory.morphisms-directed-graphs.md) `f : H → G` o (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e. ``` +_Note:_ The fiber of a morphism of directed graphs should not be confused with the [fiber of a directed graph at a vertex](graph-theory.fibers-directed-graphs.md), which are the [directed trees](trees.directed-trees.md) +of which the type of nodes consists of vertices `y` equipped with a +[walk](graph-theory.walks-directed-graphs.md) `w` from `y` to `x`, and the type +of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that +`w = cons e v`. + ## Definitions ### The fiber of a morphism of directed graphs @@ -55,7 +63,7 @@ module _ fiber-hom-Directed-Graph : Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G pr1 fiber-hom-Directed-Graph = vertex-fiber-hom-Directed-Graph - pr2 fiber-hom-Directed-Graph = edge-fiber-hom-Directed-Graph + pr2 fiber-hom-Directed-Graph _ _ = edge-fiber-hom-Directed-Graph ``` ## Properties @@ -104,3 +112,84 @@ module _ ( Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) ( compute-Σ-fiber-hom-Directed-Graph) ``` + +### The equivalence of the domain and the total graph of the fibers of a morphism of graphs fits in a commuting triangle + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Directed-Graph l1 l2) (G : Directed-Graph l3 l4) + (f : hom-Directed-Graph H G) + where + + htpy-compute-Σ-fiber-hom-Directed-Graph : + htpy-hom-Directed-Graph H G f + ( comp-hom-Directed-Graph H + ( Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) + ( G) + ( pr1-Σ-Directed-Graph (fiber-hom-Directed-Graph H G f)) + ( hom-compute-Σ-fiber-hom-Directed-Graph H G f)) + htpy-compute-Σ-fiber-hom-Directed-Graph = + refl-htpy-hom-Directed-Graph H G f +``` + +### The fibers of the first projection of a dependent coproduct directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + fiber-pr1-Σ-Directed-Graph : Dependent-Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + fiber-pr1-Σ-Directed-Graph = + fiber-hom-Directed-Graph + ( Σ-Directed-Graph H) + ( G) + ( pr1-Σ-Directed-Graph H) + + vertex-fiber-pr1-Σ-Directed-Graph : + (x : vertex-Directed-Graph G) → UU (l1 ⊔ l3) + vertex-fiber-pr1-Σ-Directed-Graph = + vertex-Dependent-Directed-Graph fiber-pr1-Σ-Directed-Graph + + edge-fiber-pr1-Σ-Directed-Graph : + {x x' : vertex-Directed-Graph G} → + edge-Directed-Graph G x x' → + vertex-fiber-pr1-Σ-Directed-Graph x → + vertex-fiber-pr1-Σ-Directed-Graph x' → UU (l2 ⊔ l4) + edge-fiber-pr1-Σ-Directed-Graph = + edge-Dependent-Directed-Graph fiber-pr1-Σ-Directed-Graph + + equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph : + fam-equiv + ( vertex-fiber-pr1-Σ-Directed-Graph) + ( vertex-Dependent-Directed-Graph H) + equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph = + equiv-fiber-pr1 _ + + vertex-compute-fiber-pr1-Σ-Directed-Graph : + {x : vertex-Directed-Graph G} → + vertex-fiber-pr1-Σ-Directed-Graph x → + vertex-Dependent-Directed-Graph H x + vertex-compute-fiber-pr1-Σ-Directed-Graph = + map-fiber-pr1 _ _ + + equiv-edge-compute-fiber-pr1-Σ-Directed-Graph : + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') → + (y : vertex-fiber-pr1-Σ-Directed-Graph x) → + (y' : vertex-fiber-pr1-Σ-Directed-Graph x') → + edge-fiber-pr1-Σ-Directed-Graph a y y' ≃ + edge-Dependent-Directed-Graph H a + ( vertex-compute-fiber-pr1-Σ-Directed-Graph y) + ( vertex-compute-fiber-pr1-Σ-Directed-Graph y') + equiv-edge-compute-fiber-pr1-Σ-Directed-Graph a (y , refl) (y' , refl) = + equiv-fiber-pr1 _ _ + + compute-fiber-pr1-Σ-Directed-Graph : + equiv-Dependent-Directed-Graph fiber-pr1-Σ-Directed-Graph H + pr1 compute-fiber-pr1-Σ-Directed-Graph = + equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph + pr2 compute-fiber-pr1-Σ-Directed-Graph _ _ = + equiv-edge-compute-fiber-pr1-Σ-Directed-Graph +``` diff --git a/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md b/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md new file mode 100644 index 0000000000..7ec8f806c7 --- /dev/null +++ b/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md @@ -0,0 +1,113 @@ +# Morphisms of dependent directed graphs + +```agda +module graph-theory.morphisms-dependent-directed-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.function-types +open import foundation.universe-levels + +open import graph-theory.dependent-directed-graphs +open import graph-theory.directed-graphs +``` + +
+ +## Idea + +Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and `K` over a [directed graph](graph-theory.directed-graphs.md) `G`. +A {{#concept "morphism of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} from `H` to `K` consists of a family of maps + +```text + f₀ : {x : G₀} → H₀ x → K₀ x +``` + +of vertices, and a family of maps + +```text + f₁ : {x y : G₀} (a : G₁ x y) {y : H₀ x} {y' : H₀ x'} → H₁ a y y' → K₁ a (f₀ y) (f₀ y') +``` + +of edges. + +## Definitions + +### Morphisms of dependent directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + (K : Dependent-Directed-Graph l5 l6 G) + where + + hom-Dependent-Directed-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + hom-Dependent-Directed-Graph = + Σ ( (x : vertex-Directed-Graph G) → + vertex-Dependent-Directed-Graph H x → + vertex-Dependent-Directed-Graph K x) + ( λ f → + (x x' : vertex-Directed-Graph G) → + (a : edge-Directed-Graph G x x') → + (y : vertex-Dependent-Directed-Graph H x) + (y' : vertex-Dependent-Directed-Graph H x') → + edge-Dependent-Directed-Graph H a y y' → + edge-Dependent-Directed-Graph K a (f x y) (f x' y')) + + vertex-hom-Dependent-Directed-Graph : + hom-Dependent-Directed-Graph → + {x : vertex-Directed-Graph G} → + vertex-Dependent-Directed-Graph H x → + vertex-Dependent-Directed-Graph K x + vertex-hom-Dependent-Directed-Graph f = pr1 f _ + + edge-hom-Dependent-Directed-Graph : + (f : hom-Dependent-Directed-Graph) → + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') + {y : vertex-Dependent-Directed-Graph H x} + {y' : vertex-Dependent-Directed-Graph H x'} → + edge-Dependent-Directed-Graph H a y y' → + edge-Dependent-Directed-Graph K a + ( vertex-hom-Dependent-Directed-Graph f y) + ( vertex-hom-Dependent-Directed-Graph f y') + edge-hom-Dependent-Directed-Graph f a = + pr2 f _ _ a _ _ +``` + +### The identity morphism of a dependent directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Directed-Graph l1 l2} + (H : Dependent-Directed-Graph l3 l4 G) + where + + vertex-id-hom-Dependent-Directed-Graph : + {x : vertex-Directed-Graph G} → + vertex-Dependent-Directed-Graph H x → + vertex-Dependent-Directed-Graph H x + vertex-id-hom-Dependent-Directed-Graph = id + + edge-id-hom-Dependent-Directed-Graph : + {x x' : vertex-Directed-Graph G} + (a : edge-Directed-Graph G x x') + (y : vertex-Dependent-Directed-Graph H x) + (y' : vertex-Dependent-Directed-Graph H x') → + edge-Dependent-Directed-Graph H a y y' → + edge-Dependent-Directed-Graph H a + ( vertex-id-hom-Dependent-Directed-Graph y) + ( vertex-id-hom-Dependent-Directed-Graph y') + edge-id-hom-Dependent-Directed-Graph a y y' = id + + id-hom-Dependent-Directed-Graph : + hom-Dependent-Directed-Graph H H + pr1 id-hom-Dependent-Directed-Graph _ = + vertex-id-hom-Dependent-Directed-Graph + pr2 id-hom-Dependent-Directed-Graph _ _ = + edge-id-hom-Dependent-Directed-Graph +``` diff --git a/src/graph-theory/morphisms-directed-graphs.lagda.md b/src/graph-theory/morphisms-directed-graphs.lagda.md index fbff43076f..3e2227c652 100644 --- a/src/graph-theory/morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/morphisms-directed-graphs.lagda.md @@ -211,6 +211,84 @@ module _ map-inv-equiv (extensionality-hom-Directed-Graph f g) ``` +### The left unit law of composition of morphisms of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Directed-Graph l1 l2) (H : Directed-Graph l3 l4) + (f : hom-Directed-Graph G H) + where + + vertex-left-unit-law-comp-hom-Directed-Graph : + vertex-comp-hom-Directed-Graph G H H (id-hom-Directed-Graph H) f ~ + vertex-hom-Directed-Graph G H f + vertex-left-unit-law-comp-hom-Directed-Graph = refl-htpy + + edge-left-unit-law-comp-hom-Directed-Graph : + {x y : vertex-Directed-Graph G} → + edge-comp-hom-Directed-Graph G H H (id-hom-Directed-Graph H) f x y ~ + edge-hom-Directed-Graph G H f + edge-left-unit-law-comp-hom-Directed-Graph = refl-htpy + + left-unit-law-comp-hom-Directed-Graph : + htpy-hom-Directed-Graph G H + ( comp-hom-Directed-Graph G H H (id-hom-Directed-Graph H) f) + ( f) + pr1 left-unit-law-comp-hom-Directed-Graph = + vertex-left-unit-law-comp-hom-Directed-Graph + pr2 left-unit-law-comp-hom-Directed-Graph _ _ = + edge-left-unit-law-comp-hom-Directed-Graph +``` + +### The right unit law of composition of morphisms of directed graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Directed-Graph l1 l2) (H : Directed-Graph l3 l4) + (f : hom-Directed-Graph G H) + where + + vertex-right-unit-law-comp-hom-Directed-Graph : + vertex-comp-hom-Directed-Graph G G H f (id-hom-Directed-Graph G) ~ + vertex-hom-Directed-Graph G H f + vertex-right-unit-law-comp-hom-Directed-Graph = refl-htpy + + edge-right-unit-law-comp-hom-Directed-Graph : + {x y : vertex-Directed-Graph G} → + edge-comp-hom-Directed-Graph G G H f (id-hom-Directed-Graph G) x y ~ + edge-hom-Directed-Graph G H f + edge-right-unit-law-comp-hom-Directed-Graph = refl-htpy + + right-unit-law-comp-hom-Directed-Graph : + htpy-hom-Directed-Graph G H + ( comp-hom-Directed-Graph G G H f (id-hom-Directed-Graph G)) + ( f) + pr1 right-unit-law-comp-hom-Directed-Graph = + vertex-right-unit-law-comp-hom-Directed-Graph + pr2 right-unit-law-comp-hom-Directed-Graph _ _ = + edge-right-unit-law-comp-hom-Directed-Graph +``` + +### Associativity of composition of morphisms of directed graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + (G : Directed-Graph l1 l2) (H : Directed-Graph l3 l4) + (K : Directed-Graph l5 l6) (L : Directed-Graph l7 l8) + (h : hom-Directed-Graph K L) + (g : hom-Directed-Graph H K) + (f : hom-Directed-Graph G H) + where + + associative-comp-hom-Directed-Graph : + htpy-hom-Directed-Graph G L + ( comp-hom-Directed-Graph G H L (comp-hom-Directed-Graph H K L h g) f) + ( comp-hom-Directed-Graph G K L h (comp-hom-Directed-Graph G H K g f)) + associative-comp-hom-Directed-Graph = + refl-htpy-hom-Directed-Graph G L _ +``` + ## External links - [Graph homomorphism](https://www.wikidata.org/entity/Q3385162) on Wikidata diff --git a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md index 4d9bd17bbd..d5549de49b 100644 --- a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md @@ -59,6 +59,6 @@ module _ Dependent-Directed-Graph l5 l6 C pr1 pullback-Dependent-Directed-Graph = vertex-pullback-Dependent-Directed-Graph - pr2 pullback-Dependent-Directed-Graph = + pr2 pullback-Dependent-Directed-Graph _ _ = edge-pullback-Dependent-Directed-Graph ``` From c98f6e205ec47cd84bd31b765869643d260774c6 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 15 Oct 2024 14:26:01 -0400 Subject: [PATCH 11/42] fibers and sections --- ...pendent-coproducts-globular-types.lagda.md | 77 +++++++++++++++++++ .../fibers-globular-maps.lagda.md | 52 +++++++++++++ ...sections-dependent-globular-types.lagda.md | 70 +++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 src/structured-types/dependent-coproducts-globular-types.lagda.md create mode 100644 src/structured-types/fibers-globular-maps.lagda.md create mode 100644 src/structured-types/sections-dependent-globular-types.lagda.md diff --git a/src/structured-types/dependent-coproducts-globular-types.lagda.md b/src/structured-types/dependent-coproducts-globular-types.lagda.md new file mode 100644 index 0000000000..d093450ded --- /dev/null +++ b/src/structured-types/dependent-coproducts-globular-types.lagda.md @@ -0,0 +1,77 @@ +# Dependent coproducts of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.dependent-coproducts-globular-types where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.dependent-globular-types +open import structured-types.globular-maps +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over a [globular type](structured-types.globular-types.md) `G`. The {{#concept "dependent coproduct" Disambiguation="globular types" Agda=Σ-Globular-Type}} `Σ G H` of `H` is the globular type given by + +```text + (Σ G H)₀ := Σ G₀ H₀ + (Σ G H)' (x , y) (x' , y') := Σ (G' x x') (H' y y'). +``` + +## Definitions + +### Dependent coproducts of dependent globular types + +```agda +Σ-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) → Globular-Type (l1 ⊔ l3) (l2 ⊔ l4) +0-cell-Globular-Type (Σ-Globular-Type H) = + Σ _ (0-cell-Dependent-Globular-Type H) +1-cell-globular-type-Globular-Type (Σ-Globular-Type H) (x , y) (x' , y') = + Σ-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') + +module _ + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) + where + + 0-cell-Σ-Globular-Type : UU (l1 ⊔ l3) + 0-cell-Σ-Globular-Type = + 0-cell-Globular-Type (Σ-Globular-Type H) + + 1-cell-Σ-Globular-Type : + (x y : 0-cell-Globular-Type (Σ-Globular-Type H)) → UU (l2 ⊔ l4) + 1-cell-Σ-Globular-Type = + 1-cell-Globular-Type (Σ-Globular-Type H) + + 2-cell-Σ-Globular-Type : + {x y : 0-cell-Σ-Globular-Type} → + (f g : 1-cell-Σ-Globular-Type x y) → UU (l2 ⊔ l4) + 2-cell-Σ-Globular-Type = + 2-cell-Globular-Type (Σ-Globular-Type H) +``` + +### The first projection out of the dependent coproduct of a dependent globular type + +```agda +pr1-Σ-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) → + globular-map (Σ-Globular-Type H) G +0-cell-globular-map (pr1-Σ-Globular-Type H) = pr1 +1-cell-globular-map-globular-map (pr1-Σ-Globular-Type H) = + pr1-Σ-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H _ _) +``` diff --git a/src/structured-types/fibers-globular-maps.lagda.md b/src/structured-types/fibers-globular-maps.lagda.md new file mode 100644 index 0000000000..fa7c268279 --- /dev/null +++ b/src/structured-types/fibers-globular-maps.lagda.md @@ -0,0 +1,52 @@ +# Fibers of globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.fibers-globular-maps where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.fibers-of-maps +open import foundation.identity-types +open import foundation.universe-levels + +open import structured-types.dependent-globular-types +open import structured-types.globular-maps +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider a [globular map](structured-types.globular-maps.md) `f : H → G` between two [globular types](structured-types.globular-types.md) `H` and `G`. The {{#concept "fiber" Disambiguation="globular map" Agda=fiber-globular-map}} of `f` is a [dependent globular type](structured-types.dependent-globular-types.md) `fib_f` given by + +```text + (fib_f)₀ x := fib f₀ x + (fib_f)' (y , refl) (y' , refl) := fib_f'. +``` + +## Definitions + +### The fiber of a globular map + +```agda +fiber-globular-map : + {l1 l2 l3 l4 : Level} + (H : Globular-Type l1 l2) (G : Globular-Type l3 l4) + (f : globular-map H G) → + Dependent-Globular-Type (l1 ⊔ l3) (l2 ⊔ l4) G +0-cell-Dependent-Globular-Type + ( fiber-globular-map H G f)= + fiber (0-cell-globular-map f) +1-cell-dependent-globular-type-Dependent-Globular-Type + ( fiber-globular-map H G f) {x} {x'} (y , refl) (y' , refl) = + fiber-globular-map + ( 1-cell-globular-type-Globular-Type H y y') + ( 1-cell-globular-type-Globular-Type G _ _) + ( 1-cell-globular-map-globular-map f) +``` diff --git a/src/structured-types/sections-dependent-globular-types.lagda.md b/src/structured-types/sections-dependent-globular-types.lagda.md new file mode 100644 index 0000000000..1233627805 --- /dev/null +++ b/src/structured-types/sections-dependent-globular-types.lagda.md @@ -0,0 +1,70 @@ +# Sections of dependent globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.sections-dependent-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.dependent-globular-types +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over a [globular type](structured-types.globular-types.md) `G`. A {{#concept "section" Disambiguation="dependent globular type" Agda=section-Dependent-Globular-Type}} `f` of `H` consists of + +```text + s₀ : (x : G₀) → H₀ x + s' : {x y : G₀} (y : H₀ x) (y' : H₀ x') → section (H' y y'). +``` + +## Definitions + +### Sections of dependent globular types + +```agda +record + section-Dependent-Globular-Type + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + coinductive + + field + 0-cell-section-Dependent-Globular-Type : + (x : 0-cell-Globular-Type G) → 0-cell-Dependent-Globular-Type H x + + field + 1-cell-section-section-Dependent-Globular-Type : + {x x' : 0-cell-Globular-Type G} → + (y : 0-cell-Dependent-Globular-Type H x) + (y' : 0-cell-Dependent-Globular-Type H x') → + section-Dependent-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') + +open section-Dependent-Globular-Type public + +module _ + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) + (s : section-Dependent-Globular-Type H) + where + + 1-cell-section-Dependent-Globular-Type : + {x x' : 0-cell-Globular-Type G} + (y : 0-cell-Dependent-Globular-Type H x) + (y' : 0-cell-Dependent-Globular-Type H x') + (f : 1-cell-Globular-Type G x x') → + 1-cell-Dependent-Globular-Type H y y' f + 1-cell-section-Dependent-Globular-Type y y' = + 0-cell-section-Dependent-Globular-Type + ( 1-cell-section-section-Dependent-Globular-Type s y y') +``` From cbc174490c1ec9bc754334af5dc4deb9390ff45d Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 15 Oct 2024 16:38:28 -0400 Subject: [PATCH 12/42] wild category of pointed types --- .../wild-category-of-types.lagda.md | 92 ++-- .../universal-directed-graph.lagda.md | 3 +- ...position-structure-globular-types.lagda.md | 15 - .../reflexive-globular-types.lagda.md | 9 + .../transitive-globular-types.lagda.md | 10 + ...universal-reflexive-globular-type.lagda.md | 6 - .../wild-category-of-pointed-types.lagda.md | 395 ++++++++++-------- 7 files changed, 265 insertions(+), 265 deletions(-) diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index 03852491e7..41e7cad516 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -91,7 +91,8 @@ is-transitive-globular-structure-1-cell-is-transitive-globular-structure function-type-Globular-Type : {l1 l2 : Level} (A : UU l1) (B : UU l2) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) -function-type-Globular-Type A B = dependent-function-type-Globular-Type A (λ _ → B) +function-type-Globular-Type A B = + dependent-function-type-Globular-Type A (λ _ → B) globular-structure-function-type : {l1 l2 : Level} {A : UU l1} {B : UU l2} → globular-structure (l1 ⊔ l2) (A → B) @@ -129,64 +130,35 @@ is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type is-reflexive-function-type-Globular-Type Type-Large-Reflexive-Globular-Type : Large-Reflexive-Globular-Type lsuc (_⊔_) -Type-Large-Reflexive-Globular-Type = ? +large-globular-type-Large-Reflexive-Globular-Type + Type-Large-Reflexive-Globular-Type = + Type-Large-Globular-Type +is-reflexive-Large-Reflexive-Globular-Type + Type-Large-Reflexive-Globular-Type = + is-reflexive-Type-Large-Globular-Type + +is-transitive-Type-Large-Globular-Type : + is-transitive-Large-Globular-Type Type-Large-Globular-Type +comp-1-cell-is-transitive-large-globular-structure + is-transitive-Type-Large-Globular-Type g f = + g ∘ f +is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure + is-transitive-Type-Large-Globular-Type f g = + is-transitive-function-type-Globular-Type ``` --- ```agda --- large-globular-structure-Type : large-globular-structure (_⊔_) (λ l → UU l) --- large-globular-structure-Type = --- λ where --- .1-cell-large-globular-structure X Y → (X → Y) --- .globular-structure-1-cell-large-globular-structure X Y → globular-structure-Π - --- is-reflexive-large-globular-structure-Type : --- is-reflexive-large-globular-structure large-globular-structure-Type --- is-reflexive-large-globular-structure-Type = --- λ where --- .is-reflexive-1-cell-is-reflexive-large-globular-structure X → id --- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure --- X Y → --- is-reflexive-globular-structure-Π - --- is-transitive-large-globular-structure-Type : --- is-transitive-large-globular-structure large-globular-structure-Type --- is-transitive-large-globular-structure-Type = --- λ where --- .comp-1-cell-is-transitive-large-globular-structure g f → g ∘ f --- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure --- X Y → --- is-transitive-globular-structure-Π --- ``` - --- ### The noncoherent large wild higher precategory of types - --- ```agda --- Type-Large-Globular-Type : --- Large-Globular-Type lsuc (_⊔_) --- 0-cell-Large-Globular-Type Type-Large-Globular-Type l1 = UU l1 --- 1-cell-globular-type-Large-Globular-Type Type-Large-Globular-Type X Y = --- {!!} - --- Type-Noncoherent-Large-Wild-Higher-Precategory : --- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) --- large-globular-type-Noncoherent-Large-Wild-Precategory --- Type-Noncoherent-Large-Wild-Higher-Precategory = --- {!Type-Large-Globular-Type!} --- id-structure-Noncoherent-Large-Wild-Higher-Precategory --- Type-Noncoherent-Large-Wild-Higher-Precategory = --- {!!} --- comp-structure-Noncoherent-Large-Wild-Higher-Precategory --- Type-Noncoherent-Large-Wild-Higher-Precategory = --- {!!} - - --- -- λ where --- -- .obj-Noncoherent-Large-Wild-Higher-Precategory l → --- -- UU l --- -- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- -- large-globular-structure-Type --- -- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- -- is-reflexive-large-globular-structure-Type --- -- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → --- -- is-transitive-large-globular-structure-Type --- -- ``` +### The noncoherent large wild higher precategory of types + +```agda +Type-Noncoherent-Large-Wild-Higher-Precategory : + Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +large-globular-type-Noncoherent-Large-Wild-Precategory + Type-Noncoherent-Large-Wild-Higher-Precategory = + Type-Large-Globular-Type +id-structure-Noncoherent-Large-Wild-Higher-Precategory + Type-Noncoherent-Large-Wild-Higher-Precategory = + is-reflexive-Type-Large-Globular-Type +comp-structure-Noncoherent-Large-Wild-Higher-Precategory + Type-Noncoherent-Large-Wild-Higher-Precategory = + is-transitive-Type-Large-Globular-Type +``` diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index 64c7e132fd..680f01993e 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -104,9 +104,8 @@ module _ Dependent-Directed-Graph l1 l2 (universal-Directed-Graph l1 l2) pr1 universal-Dependent-Directed-Graph = vertex-universal-Dependent-Directed-Graph - pr2 universal-Dependent-Directed-Graph = + pr2 universal-Dependent-Directed-Graph _ _ = edge-universal-Dependent-Directed-Graph - ``` ## Formalization target diff --git a/src/structured-types/composition-structure-globular-types.lagda.md b/src/structured-types/composition-structure-globular-types.lagda.md index c87fa38c6d..1f6ef4913a 100644 --- a/src/structured-types/composition-structure-globular-types.lagda.md +++ b/src/structured-types/composition-structure-globular-types.lagda.md @@ -65,18 +65,3 @@ record open composition-Globular-Type public ``` - -### Globular maps preserving globular composition structure - -```agda -record - preserves-composition-globular-map - {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} - (c : composition-Globular-Type G) (d : composition-Globular-Type H) : - UU {!!} - where - coinductive - field - preserves-comp-binary-globular-map-composition-Globular-Type : - {x y z : 0-cell-Globular-Type G} -``` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index e49cfcad6c..b4c3c20c6c 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -221,6 +221,15 @@ open Reflexive-Globular-Type public ### The reflexive globular structure on a type given by its identity types ```agda +is-reflexive-globular-type-Type : + {l : Level} (A : UU l) → + is-reflexive-Globular-Type (globular-type-Type A) +is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-globular-type-Type A) x = refl +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( is-reflexive-globular-type-Type A) x y = + is-reflexive-globular-type-Type (x = y) + is-reflexive-globular-structure-Id : {l : Level} (A : UU l) → is-reflexive-globular-structure (globular-structure-Id A) diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index ab3247edef..a3d570b658 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -199,6 +199,16 @@ open Transitive-Globular-Type public ### The transitive globular structure on a type given by its identity types ```agda +is-transitive-globular-type-Type : + {l : Level} (A : UU l) → + is-transitive-Globular-Type (globular-type-Type A) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-globular-type-Type A) q p = + p ∙ q +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-globular-type-Type A) x y = + is-transitive-globular-type-Type (x = y) + is-transitive-globular-structure-Id : {l : Level} (A : UU l) → is-transitive-globular-structure (globular-structure-Id A) diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md index c6955370d6..bad1d1328d 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -97,12 +97,6 @@ module _ 0-cell-universal-Reflexive-Globular-Type : UU (lsuc l1 ⊔ lsuc l2) 0-cell-universal-Reflexive-Globular-Type = Reflexive-Globular-Type l1 l2 - - 1-cell-reflexive-globular-type-universal-Reflexive-Globular-Type : - (G H : 0-cell-universal-Reflexive-Globular-Type) → - Reflexive-Globular-Type {!!} {!!} - 1-cell-reflexive-globular-type-universal-Reflexive-Globular-Type G H = - {!!} ``` ## See also diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 24683b5598..7bd4b0816b 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -55,83 +55,47 @@ the higher cells are [identities](foundation-core.identity-types.md). ## Definitions -### The uniform definition of the wild category of pointed types +### The noncoherent large wild higher precategory of pointed types, pointed maps, and uniform pointed homotopies -#### The uniform globular structure on dependent pointed function types - -- The large globular type of pointed types, pointed maps, and uniform pointed - homotopies +#### The large globular type of pointed types, pointed maps, and uniform pointed homotopies ```agda -uniform-globular-structure-pointed-Π : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → - globular-structure (l1 ⊔ l2) (pointed-Π A B) -1-cell-globular-structure - ( uniform-globular-structure-pointed-Π A B) = - uniform-pointed-htpy -globular-structure-1-cell-globular-structure - ( uniform-globular-structure-pointed-Π A B) f g = - uniform-globular-structure-pointed-Π _ _ - uniform-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) -uniform-pointed-Π-Globular-Type A B = - make-Globular-Type (uniform-globular-structure-pointed-Π A B) - -uniform-globular-structure-pointed-map : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → - globular-structure (l1 ⊔ l2) (A →∗ B) -uniform-globular-structure-pointed-map A B = - uniform-globular-structure-pointed-Π A (constant-Pointed-Fam A B) +0-cell-Globular-Type (uniform-pointed-Π-Globular-Type A B) = + pointed-Π A B +1-cell-globular-type-Globular-Type (uniform-pointed-Π-Globular-Type A B) f g = + uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) uniform-pointed-map-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) uniform-pointed-map-Globular-Type A B = - make-Globular-Type (uniform-globular-structure-pointed-map A B) - -uniform-large-globular-structure-Pointed-Type : - large-globular-structure (λ l1 l2 → l1 ⊔ l2) Pointed-Type -1-cell-large-globular-structure - uniform-large-globular-structure-Pointed-Type = pointed-map -globular-structure-1-cell-large-globular-structure - uniform-large-globular-structure-Pointed-Type = - uniform-globular-structure-pointed-map + uniform-pointed-Π-Globular-Type A (constant-Pointed-Fam A B) uniform-pointed-type-Large-Globular-Type : Large-Globular-Type lsuc (λ l1 l2 → l1 ⊔ l2) -uniform-pointed-type-Large-Globular-Type = - make-Large-Globular-Type uniform-large-globular-structure-Pointed-Type +0-cell-Large-Globular-Type + uniform-pointed-type-Large-Globular-Type l = + Pointed-Type l +1-cell-globular-type-Large-Globular-Type + uniform-pointed-type-Large-Globular-Type = + uniform-pointed-map-Globular-Type ``` -- Identity structure on the large globular type of uniform pointed types +#### Identity structure on the large globular type of uniform pointed types ```agda -is-reflexive-uniform-globular-structure-pointed-Π : +is-reflexive-uniform-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → - is-reflexive-globular-structure - ( uniform-globular-structure-pointed-Π A B) + is-reflexive-Globular-Type (uniform-pointed-Π-Globular-Type A B) is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-uniform-globular-structure-pointed-Π A B) = + ( is-reflexive-uniform-pointed-Π-Globular-Type A B) = refl-uniform-pointed-htpy is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-uniform-globular-structure-pointed-Π A B) f g = - is-reflexive-uniform-globular-structure-pointed-Π _ _ - -is-reflexive-uniform-pointed-Π-Globular-Type : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → - is-reflexive-Globular-Type (uniform-pointed-Π-Globular-Type A B) -is-reflexive-uniform-pointed-Π-Globular-Type A B = - is-reflexive-globular-type-is-reflexive-globular-structure - ( is-reflexive-uniform-globular-structure-pointed-Π _ _) - -is-reflexive-uniform-globular-structure-pointed-map : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → - is-reflexive-globular-structure - ( uniform-globular-structure-pointed-map A B) -is-reflexive-uniform-globular-structure-pointed-map A B = - is-reflexive-uniform-globular-structure-pointed-Π A (constant-Pointed-Fam A B) + ( is-reflexive-uniform-pointed-Π-Globular-Type A B) f g = + is-reflexive-uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) is-reflexive-uniform-pointed-map-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → @@ -149,26 +113,18 @@ is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type is-reflexive-uniform-pointed-map-Globular-Type _ _ ``` -- Composition structure on the large globular type of uniform pointed types +#### Composition structure on the large globular type of uniform pointed types ```agda -is-transitive-uniform-globular-structure-pointed-Π : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → - is-transitive-globular-structure - ( uniform-globular-structure-pointed-Π A B) -comp-1-cell-is-transitive-globular-structure - ( is-transitive-uniform-globular-structure-pointed-Π A B) {f} {g} {h} H K = - concat-uniform-pointed-htpy {f = f} {g} {h} K H -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-uniform-globular-structure-pointed-Π A B) H K = - is-transitive-uniform-globular-structure-pointed-Π _ _ - is-transitive-uniform-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → is-transitive-Globular-Type (uniform-pointed-Π-Globular-Type A B) -is-transitive-uniform-pointed-Π-Globular-Type A B = - is-transitive-globular-type-is-transitive-globular-structure - ( is-transitive-uniform-globular-structure-pointed-Π A B) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-uniform-pointed-Π-Globular-Type A B) {f} {g} {h} K H = + concat-uniform-pointed-htpy {f = f} {g} {h} H K +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-uniform-pointed-Π-Globular-Type A B) f g = + is-transitive-uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) uniform-pointed-Π-Transitive-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → @@ -178,14 +134,6 @@ uniform-pointed-Π-Transitive-Globular-Type A B = ( uniform-pointed-Π-Globular-Type A B) ( is-transitive-uniform-pointed-Π-Globular-Type A B) -is-transitive-uniform-globular-structure-pointed-map : - {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → - is-transitive-globular-structure - ( uniform-globular-structure-pointed-map A B) -is-transitive-uniform-globular-structure-pointed-map A B = - is-transitive-uniform-globular-structure-pointed-Π A - ( constant-Pointed-Fam A B) - is-transitive-uniform-pointed-map-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → is-transitive-Globular-Type (uniform-pointed-map-Globular-Type A B) @@ -200,109 +148,192 @@ uniform-pointed-map-Transitive-Globular-Type A B = comp-structure-uniform-pointed-type-Large-Globular-Type : is-transitive-Large-Globular-Type uniform-pointed-type-Large-Globular-Type -comp-structure-uniform-pointed-type-Large-Globular-Type = {!!} +comp-1-cell-is-transitive-large-globular-structure + comp-structure-uniform-pointed-type-Large-Globular-Type g f = + g ∘∗ f +is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure + comp-structure-uniform-pointed-type-Large-Globular-Type = + is-transitive-uniform-pointed-map-Globular-Type ``` -#### The uniform large globular structure on pointed types - --- -`agda -- is-transitive-uniform-large-globular-structure-Pointed-Type : -- is-transitive-large-globular-structure -- uniform-large-globular-structure-Pointed-Type -- is-transitive-uniform-large-globular-structure-Pointed-Type = -- λ where -- .comp-1-cell-is-transitive-large-globular-structure g f → -- g ∘∗ f -- .is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure -- X Y → -- is-transitive-uniform-globular-structure-pointed-Π -- ` - --- #### The uniform noncoherent large wild higher precategory of pointed types - --- ```agda -- uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : --- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -- -uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} - --- {- -- λ where -- .obj-Noncoherent-Large-Wild-Higher-Precategory → -- -Pointed-Type -- -.hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- -uniform-large-globular-structure-Pointed-Type -- -.id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- -is-reflexive-uniform-large-globular-structure-Pointed-Type -- -.comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- -is-transitive-uniform-large-globular-structure-Pointed-Type -} -- ``` - --- ### The nonuniform definition of the wild category of pointed types - --- #### The nonuniform globular structure on dependent pointed function types - --- ```agda -- globular-structure-pointed-Π : -- {l1 l2 : Level} {A : -Pointed-Type l1} {B : Pointed-Fam l2 A} → -- globular-structure (l1 ⊔ l2) -(pointed-Π A B) -- globular-structure-pointed-Π = -- λ where -- -.1-cell-globular-structure → -- pointed-htpy -- -.globular-structure-1-cell-globular-structure f g -- .1-cell-globular-structure -→ -- pointed-2-htpy -- .globular-structure-1-cell-globular-structure f g -- -.globular-structure-1-cell-globular-structure H K → -- globular-structure-Id -(pointed-2-htpy H K) - --- is-reflexive-globular-structure-pointed-Π : -- {l1 l2 : Level} {A : -Pointed-Type l1} {B : Pointed-Fam l2 A} → -- is-reflexive-globular-structure -(globular-structure-pointed-Π {A = A} {B}) -- -is-reflexive-globular-structure-pointed-Π = -- λ where -- -.is-reflexive-1-cell-is-reflexive-globular-structure → -- refl-pointed-htpy -- -.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g -- -.is-reflexive-1-cell-is-reflexive-globular-structure → -- refl-pointed-2-htpy -- -.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure f g -- -.is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure -- H K → --- is-reflexive-globular-structure-Id (pointed-2-htpy H K) - --- is-transitive-globular-structure-pointed-Π : -- {l1 l2 : Level} {A : -Pointed-Type l1} {B : Pointed-Fam l2 A} → -- is-transitive-globular-structure -(globular-structure-pointed-Π {A = A} {B}) -- -is-transitive-globular-structure-pointed-Π = -- λ where -- -.comp-1-cell-is-transitive-globular-structure {f} {g} {h} H K → -- -concat-pointed-htpy {f = f} {g} {h} K H -- -.is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K -- -.comp-1-cell-is-transitive-globular-structure α β → -- concat-pointed-2-htpy β α --- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure H K --- .is-transitive-globular-structure-1-cell-is-transitive-globular-structure -- -α β → -- is-transitive-globular-structure-Id (pointed-2-htpy α β) -- ``` - --- #### The nonuniform large globular structure on pointed types - --- ```agda -- large-globular-structure-Pointed-Type : -- -large-globular-structure (_⊔_) Pointed-Type -- -large-globular-structure-Pointed-Type = -- λ where -- -.1-cell-large-globular-structure X Y → -- (X →∗ Y) -- -.globular-structure-1-cell-large-globular-structure X Y → -- -globular-structure-pointed-Π - --- is-reflexive-large-globular-structure-Pointed-Type : -- -is-reflexive-large-globular-structure large-globular-structure-Pointed-Type -- -is-reflexive-large-globular-structure-Pointed-Type = -- λ where -- -.is-reflexive-1-cell-is-reflexive-large-globular-structure X → -- id-pointed-map --- .is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure --- X Y → -- is-reflexive-globular-structure-pointed-Π - --- is-transitive-large-globular-structure-Pointed-Type : -- -is-transitive-large-globular-structure large-globular-structure-Pointed-Type -- -is-transitive-large-globular-structure-Pointed-Type = -- λ where -- -.comp-1-cell-is-transitive-large-globular-structure g f → -- g ∘∗ f -- -.is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure --- X Y → -- is-transitive-globular-structure-pointed-Π -- ``` - --- #### The nonuniform noncoherent large wild higher precategory of pointed -types - --- -`agda -- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory : -- Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -- Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory = {!!} -- {- -- λ where -- .obj-Noncoherent-Large-Wild-Higher-Precategory → -- Pointed-Type -- .hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- large-globular-structure-Pointed-Type -- .id-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- is-reflexive-large-globular-structure-Pointed-Type -- .comp-hom-globular-structure-Noncoherent-Large-Wild-Higher-Precategory → -- is-transitive-large-globular-structure-Pointed-Type -} -- ` - --- ## Properties - --- ### The left unit law for the identity pointed map - --- ```agda -- module \_ -- {l1 l2 : Level} {A : Pointed-Type l1} {B : -Pointed-Type l2} -- where - --- left-unit-law-id-pointed-map : -- (f : A →∗ B) → id-pointed-map ∘∗ f ~∗ f -- -pr1 (left-unit-law-id-pointed-map f) = refl-htpy -- pr2 -(left-unit-law-id-pointed-map f) = right-unit ∙ ap-id (pr2 f) -- ``` - --- ### The right unit law for the identity pointed map - --- ```agda -- module \_ -- {l1 l2 : Level} {A : Pointed-Type l1} {B : -Pointed-Type l2} -- where - --- right-unit-law-id-pointed-map : -- (f : A →∗ B) → f ∘∗ id-pointed-map ~∗ f -- -right-unit-law-id-pointed-map = refl-pointed-htpy -- ``` +#### The noncoherent large wild higher precategory of pointed types, pointed maps, and uniform pointed homotopies + +```agda +uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory : + Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +large-globular-type-Noncoherent-Large-Wild-Precategory + uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + uniform-pointed-type-Large-Globular-Type +id-structure-Noncoherent-Large-Wild-Higher-Precategory + uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + id-structure-uniform-pointed-type-Large-Globular-Type +comp-structure-Noncoherent-Large-Wild-Higher-Precategory + uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + comp-structure-uniform-pointed-type-Large-Globular-Type +``` + +### The noncoherent large wild higher precategory of pointed types, pointed maps, and nonuniform homotopies + +#### The large globular type of pointed types, pointed maps, and nonuniform pointed homotopies + +```agda +pointed-htpy-Globular-Type : + {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} + (f g : pointed-Π A B) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +0-cell-Globular-Type (pointed-htpy-Globular-Type f g) = f ~∗ g +1-cell-globular-type-Globular-Type (pointed-htpy-Globular-Type f g) H K = + globular-type-Type (pointed-2-htpy H K) + +pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +0-cell-Globular-Type + ( pointed-Π-Globular-Type A B) = + pointed-Π A B +1-cell-globular-type-Globular-Type + ( pointed-Π-Globular-Type A B) = + pointed-htpy-Globular-Type + +pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +pointed-map-Globular-Type A B = + pointed-Π-Globular-Type A (constant-Pointed-Fam A B) + +pointed-type-Large-Globular-Type : + Large-Globular-Type lsuc (λ l1 l2 → l1 ⊔ l2) +0-cell-Large-Globular-Type pointed-type-Large-Globular-Type l = + Pointed-Type l +1-cell-globular-type-Large-Globular-Type pointed-type-Large-Globular-Type = + pointed-map-Globular-Type +``` + +#### Identity structure on the large globular type of nonuniform pointed types + +```agda +is-reflexive-pointed-htpy-Globular-Type : + {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} + (f g : pointed-Π A B) → + is-reflexive-Globular-Type (pointed-htpy-Globular-Type f g) +is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-pointed-htpy-Globular-Type f g) = + refl-pointed-2-htpy +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( is-reflexive-pointed-htpy-Globular-Type f g) H K = + is-reflexive-globular-type-Type (pointed-2-htpy H K) + +pointed-htpy-Reflexive-Globular-Type : + {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} + (f g : pointed-Π A B) → Reflexive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +globular-type-Reflexive-Globular-Type + ( pointed-htpy-Reflexive-Globular-Type f g) = + pointed-htpy-Globular-Type f g +refl-Reflexive-Globular-Type + ( pointed-htpy-Reflexive-Globular-Type f g) = + is-reflexive-pointed-htpy-Globular-Type f g + +is-reflexive-pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-reflexive-Globular-Type (pointed-Π-Globular-Type A B) +is-reflexive-1-cell-is-reflexive-globular-structure + ( is-reflexive-pointed-Π-Globular-Type A B) = + refl-pointed-htpy +is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure + ( is-reflexive-pointed-Π-Globular-Type A B) = + is-reflexive-pointed-htpy-Globular-Type + +pointed-Π-Reflexive-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + Reflexive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +globular-type-Reflexive-Globular-Type + ( pointed-Π-Reflexive-Globular-Type A B) = + pointed-Π-Globular-Type A B +refl-Reflexive-Globular-Type + ( pointed-Π-Reflexive-Globular-Type A B) = + is-reflexive-pointed-Π-Globular-Type A B + +is-reflexive-pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-reflexive-Globular-Type (pointed-map-Globular-Type A B) +is-reflexive-pointed-map-Globular-Type A B = + is-reflexive-pointed-Π-Globular-Type A (constant-Pointed-Fam A B) + +pointed-map-Reflexive-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + Reflexive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +pointed-map-Reflexive-Globular-Type A B = + pointed-Π-Reflexive-Globular-Type A (constant-Pointed-Fam A B) + +is-reflexive-pointed-type-Large-Globular-Type : + is-reflexive-Large-Globular-Type pointed-type-Large-Globular-Type +refl-0-cell-is-reflexive-Large-Globular-Type + is-reflexive-pointed-type-Large-Globular-Type A = id-pointed-map +is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + is-reflexive-pointed-type-Large-Globular-Type = + is-reflexive-pointed-map-Globular-Type _ _ + +pointed-type-Large-Reflexive-Globular-Type : + Large-Reflexive-Globular-Type lsuc (_⊔_) +large-globular-type-Large-Reflexive-Globular-Type + pointed-type-Large-Reflexive-Globular-Type = + pointed-type-Large-Globular-Type +is-reflexive-Large-Reflexive-Globular-Type + pointed-type-Large-Reflexive-Globular-Type = + is-reflexive-pointed-type-Large-Globular-Type +``` + +#### Composition structure on the large globular type of nonuniform pointed types + +```agda +is-transitive-pointed-htpy-Globular-Type : + {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} + (f g : pointed-Π A B) → + is-transitive-Globular-Type (pointed-htpy-Globular-Type f g) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-pointed-htpy-Globular-Type f g) K H = + concat-pointed-2-htpy H K +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-pointed-htpy-Globular-Type f g) H K = + is-transitive-globular-type-Type (pointed-2-htpy H K) + +is-transitive-pointed-Π-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → + is-transitive-Globular-Type (pointed-Π-Globular-Type A B) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-pointed-Π-Globular-Type A B) K H = + concat-pointed-htpy H K +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-pointed-Π-Globular-Type A B) = + is-transitive-pointed-htpy-Globular-Type + +is-transitive-pointed-map-Globular-Type : + {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → + is-transitive-Globular-Type (pointed-map-Globular-Type A B) +is-transitive-pointed-map-Globular-Type A B = + is-transitive-pointed-Π-Globular-Type A (constant-Pointed-Fam A B) + +is-transitive-pointed-type-Large-Globular-Type : + is-transitive-Large-Globular-Type pointed-type-Large-Globular-Type +comp-1-cell-is-transitive-large-globular-structure + is-transitive-pointed-type-Large-Globular-Type g f = + g ∘∗ f +is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure + is-transitive-pointed-type-Large-Globular-Type = + is-transitive-pointed-map-Globular-Type +``` + +#### The noncoherent large wild higher precategory of pointed types, pointed maps, and nonuniform pointed homotopies + +```agda +pointed-type-Noncoherent-Large-Wild-Higher-Precategory : + Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) +large-globular-type-Noncoherent-Large-Wild-Precategory + pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + pointed-type-Large-Globular-Type +id-structure-Noncoherent-Large-Wild-Higher-Precategory + pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + is-reflexive-pointed-type-Large-Globular-Type +comp-structure-Noncoherent-Large-Wild-Higher-Precategory + pointed-type-Noncoherent-Large-Wild-Higher-Precategory = + is-transitive-pointed-type-Large-Globular-Type +``` From 8c3e39f2a6149373114dc276d170eebaca9d312c Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 15 Oct 2024 16:40:16 -0400 Subject: [PATCH 13/42] mention the categorical laws, which were duplicated --- src/structured-types/wild-category-of-pointed-types.lagda.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 7bd4b0816b..73a8439ab2 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -337,3 +337,8 @@ comp-structure-Noncoherent-Large-Wild-Higher-Precategory pointed-type-Noncoherent-Large-Wild-Higher-Precategory = is-transitive-pointed-type-Large-Globular-Type ``` + +## See also + +- The categorical laws of pointed maps and pointed homotopies are proven in [pointed homotopies](structured-types.pointed-homotopies.md). +- The categorical laws of pointed maps and uniform pointed homotopies are proven in [uniform pointed homotopies](structured-types.uniform-pointed-homotopies.md). From 9c4ac74943f8cdb2a792d0443843801c51bac1eb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 15 Oct 2024 17:07:22 -0400 Subject: [PATCH 14/42] small edits --- .../maps-of-prespectra.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 44 ++++++++++++------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md b/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md index bee29e4701..4f3e139b27 100644 --- a/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md +++ b/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md @@ -110,12 +110,12 @@ module _ ( pointed-adjoint-structure-map-Prespectrum A n) ~∗ pointed-adjoint-structure-map-Prespectrum A n by - left-unit-law-id-pointed-map + left-unit-law-comp-pointed-map ( pointed-adjoint-structure-map-Prespectrum A n) ~∗ pointed-adjoint-structure-map-Prespectrum A n ∘∗ id-pointed-map by inv-pointed-htpy - ( right-unit-law-id-pointed-map + ( right-unit-law-comp-pointed-map ( pointed-adjoint-structure-map-Prespectrum A n)) id-map-Prespectrum : map-Prespectrum A A diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index b612b86f4e..d840c47f62 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -53,16 +53,18 @@ that in one sense preserves this additional structure, see ```agda record map-Noncoherent-Large-Wild-Higher-Precategory - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) - (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) - (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω where + field obj-map-Noncoherent-Large-Wild-Higher-Precategory : {l : Level} → obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) + field hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} @@ -73,26 +75,17 @@ record ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y)) -open map-Noncoherent-Large-Wild-Higher-Precategory public - -module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) - where - hom-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y → hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F x) - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F y) + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y) hom-map-Noncoherent-Large-Wild-Higher-Precategory = 0-cell-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) + ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -105,7 +98,16 @@ module _ ( hom-map-Noncoherent-Large-Wild-Higher-Precategory g) 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory = 1-cell-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) + ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) + +open map-Noncoherent-Large-Wild-Higher-Precategory public + +module _ + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} + {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} + {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} + (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) + where hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -122,12 +124,20 @@ module _ ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F y)) hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory x y = + λ where + .obj-map-Noncoherent-Wild-Higher-Precategory → + hom-map-Noncoherent-Large-Wild-Higher-Precategory F + .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → + {!!} + +{- λ where .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Large-Wild-Higher-Precategory .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → 1-cell-globular-map-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) + ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) +-} ``` ### The identity map on a noncoherent large wild higher precategory From 7629b7dec133d595c74abbb412bbf9ebf2cf9812 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 17 Oct 2024 16:50:52 -0400 Subject: [PATCH 15/42] work --- ...alences-dependent-directed-graphs.lagda.md | 21 +- .../equivalences-directed-graphs.lagda.md | 64 ++-- ...lences-enriched-undirected-graphs.lagda.md | 12 +- .../equivalences-undirected-graphs.lagda.md | 26 +- .../neighbors-undirected-graphs.lagda.md | 2 +- src/graph-theory/polygons.lagda.md | 2 +- .../walks-directed-graphs.lagda.md | 6 +- src/structured-types.lagda.md | 4 +- ...pendent-coproducts-globular-types.lagda.md | 92 ++++++ .../equivalences-globular-types.lagda.md | 165 ---------- .../globular-equivalences.lagda.md | 164 ++++++++++ src/structured-types/globular-maps.lagda.md | 31 +- src/structured-types/globular-types.lagda.md | 3 +- .../large-globular-maps.lagda.md | 127 ++++++++ .../lax-reflexive-globular-maps.lagda.md | 146 +++++++++ .../maps-large-globular-types.lagda.md | 115 ------- ...ullbacks-dependent-globular-types.lagda.md | 76 +++++ .../reflexive-globular-maps.lagda.md | 56 +--- .../reflexive-globular-types.lagda.md | 302 +++++++++++------- ...sections-dependent-globular-types.lagda.md | 17 +- .../transitive-globular-types.lagda.md | 215 +++++++------ .../equivalences-directed-trees.lagda.md | 34 +- ...ivalences-enriched-directed-trees.lagda.md | 16 +- ...functoriality-fiber-directed-tree.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 185 ++++++----- ...oherent-wild-higher-precategories.lagda.md | 83 ++--- ...t-large-wild-higher-precategories.lagda.md | 22 +- ...oherent-wild-higher-precategories.lagda.md | 300 +++++++++-------- 28 files changed, 1349 insertions(+), 941 deletions(-) delete mode 100644 src/structured-types/equivalences-globular-types.lagda.md create mode 100644 src/structured-types/globular-equivalences.lagda.md create mode 100644 src/structured-types/large-globular-maps.lagda.md create mode 100644 src/structured-types/lax-reflexive-globular-maps.lagda.md delete mode 100644 src/structured-types/maps-large-globular-types.lagda.md create mode 100644 src/structured-types/pullbacks-dependent-globular-types.lagda.md diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md index 236792a626..1055edfc4f 100644 --- a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -27,8 +27,12 @@ open import graph-theory.directed-graphs ## Idea -Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and `K` over a [directed graph](graph-theory.directed-graphs.md) `G`. -A {{#concept "equivalence of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} from `H` to `K` consists of a [family of equivalences](foundation.families-of-equivalences.md) +Consider two +[dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and +`K` over a [directed graph](graph-theory.directed-graphs.md) `G`. A +{{#concept "equivalence of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} +from `H` to `K` consists of a +[family of equivalences](foundation.families-of-equivalences.md) ```text e₀ : {x : G₀} → H₀ x ≃ K₀ x @@ -42,7 +46,6 @@ of vertices, and a family of [equivalences](foundation-core.equivalences.md) of edges. - ## Definitions ### Equivalences of dependent directed graphs @@ -69,12 +72,12 @@ module _ ( map-equiv (e x) y) ( map-equiv (e x') y')) - equiv-vertex-equiv-Dependent-Directed-Graph : + vertex-equiv-equiv-Dependent-Directed-Graph : equiv-Dependent-Directed-Graph → fam-equiv ( vertex-Dependent-Directed-Graph H) ( vertex-Dependent-Directed-Graph K) - equiv-vertex-equiv-Dependent-Directed-Graph = pr1 + vertex-equiv-equiv-Dependent-Directed-Graph = pr1 vertex-equiv-Dependent-Directed-Graph : equiv-Dependent-Directed-Graph → @@ -82,9 +85,9 @@ module _ vertex-Dependent-Directed-Graph H x → vertex-Dependent-Directed-Graph K x vertex-equiv-Dependent-Directed-Graph e {x} = - map-equiv (equiv-vertex-equiv-Dependent-Directed-Graph e x) + map-equiv (vertex-equiv-equiv-Dependent-Directed-Graph e x) - equiv-edge-equiv-Dependent-Directed-Graph : + edge-equiv-equiv-Dependent-Directed-Graph : (e : equiv-Dependent-Directed-Graph) → {x x' : vertex-Directed-Graph G} (a : edge-Directed-Graph G x x') @@ -94,7 +97,7 @@ module _ edge-Dependent-Directed-Graph K a ( vertex-equiv-Dependent-Directed-Graph e y) ( vertex-equiv-Dependent-Directed-Graph e y') - equiv-edge-equiv-Dependent-Directed-Graph e a = + edge-equiv-equiv-Dependent-Directed-Graph e a = pr2 e _ _ a edge-equiv-Dependent-Directed-Graph : @@ -108,7 +111,7 @@ module _ ( vertex-equiv-Dependent-Directed-Graph e y) ( vertex-equiv-Dependent-Directed-Graph e y') edge-equiv-Dependent-Directed-Graph e a = - map-equiv (equiv-edge-equiv-Dependent-Directed-Graph e a _ _) + map-equiv (edge-equiv-equiv-Dependent-Directed-Graph e a _ _) ``` ### The identity equivalence of a dependent directed graph diff --git a/src/graph-theory/equivalences-directed-graphs.lagda.md b/src/graph-theory/equivalences-directed-graphs.lagda.md index 327cdee91a..18e6a115e5 100644 --- a/src/graph-theory/equivalences-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-directed-graphs.lagda.md @@ -64,41 +64,41 @@ module _ (e : equiv-Directed-Graph G H) where - equiv-vertex-equiv-Directed-Graph : + vertex-equiv-equiv-Directed-Graph : vertex-Directed-Graph G ≃ vertex-Directed-Graph H - equiv-vertex-equiv-Directed-Graph = pr1 e + vertex-equiv-equiv-Directed-Graph = pr1 e vertex-equiv-Directed-Graph : vertex-Directed-Graph G → vertex-Directed-Graph H - vertex-equiv-Directed-Graph = map-equiv equiv-vertex-equiv-Directed-Graph + vertex-equiv-Directed-Graph = map-equiv vertex-equiv-equiv-Directed-Graph - is-equiv-vertex-equiv-Directed-Graph : + is-vertex-equiv-equiv-Directed-Graph : is-equiv vertex-equiv-Directed-Graph - is-equiv-vertex-equiv-Directed-Graph = - is-equiv-map-equiv equiv-vertex-equiv-Directed-Graph + is-vertex-equiv-equiv-Directed-Graph = + is-equiv-map-equiv vertex-equiv-equiv-Directed-Graph inv-vertex-equiv-Directed-Graph : vertex-Directed-Graph H → vertex-Directed-Graph G inv-vertex-equiv-Directed-Graph = - map-inv-equiv equiv-vertex-equiv-Directed-Graph + map-inv-equiv vertex-equiv-equiv-Directed-Graph is-section-inv-vertex-equiv-Directed-Graph : ( vertex-equiv-Directed-Graph ∘ inv-vertex-equiv-Directed-Graph) ~ id is-section-inv-vertex-equiv-Directed-Graph = - is-section-map-inv-equiv equiv-vertex-equiv-Directed-Graph + is-section-map-inv-equiv vertex-equiv-equiv-Directed-Graph is-retraction-inv-vertex-equiv-Directed-Graph : ( inv-vertex-equiv-Directed-Graph ∘ vertex-equiv-Directed-Graph) ~ id is-retraction-inv-vertex-equiv-Directed-Graph = - is-retraction-map-inv-equiv equiv-vertex-equiv-Directed-Graph + is-retraction-map-inv-equiv vertex-equiv-equiv-Directed-Graph - equiv-edge-equiv-Directed-Graph : + edge-equiv-equiv-Directed-Graph : (x y : vertex-Directed-Graph G) → edge-Directed-Graph G x y ≃ edge-Directed-Graph H ( vertex-equiv-Directed-Graph x) ( vertex-equiv-Directed-Graph y) - equiv-edge-equiv-Directed-Graph = pr2 e + edge-equiv-equiv-Directed-Graph = pr2 e edge-equiv-Directed-Graph : (x y : vertex-Directed-Graph G) → @@ -107,12 +107,12 @@ module _ ( vertex-equiv-Directed-Graph x) ( vertex-equiv-Directed-Graph y) edge-equiv-Directed-Graph x y = - map-equiv (equiv-edge-equiv-Directed-Graph x y) + map-equiv (edge-equiv-equiv-Directed-Graph x y) - is-equiv-edge-equiv-Directed-Graph : + is-edge-equiv-equiv-Directed-Graph : (x y : vertex-Directed-Graph G) → is-equiv (edge-equiv-Directed-Graph x y) - is-equiv-edge-equiv-Directed-Graph x y = - is-equiv-map-equiv (equiv-edge-equiv-Directed-Graph x y) + is-edge-equiv-equiv-Directed-Graph x y = + is-equiv-map-equiv (edge-equiv-equiv-Directed-Graph x y) ``` ### The condition on a morphism of directed graphs to be an equivalence @@ -187,8 +187,8 @@ module _ equiv-vertex-comp-equiv-Directed-Graph : vertex-Directed-Graph G ≃ vertex-Directed-Graph K equiv-vertex-comp-equiv-Directed-Graph = - ( equiv-vertex-equiv-Directed-Graph H K g) ∘e - ( equiv-vertex-equiv-Directed-Graph G H f) + ( vertex-equiv-equiv-Directed-Graph H K g) ∘e + ( vertex-equiv-equiv-Directed-Graph G H f) vertex-comp-equiv-Directed-Graph : vertex-Directed-Graph G → vertex-Directed-Graph K @@ -202,10 +202,10 @@ module _ ( vertex-comp-equiv-Directed-Graph x) ( vertex-comp-equiv-Directed-Graph y) equiv-edge-comp-equiv-Directed-Graph x y = - ( equiv-edge-equiv-Directed-Graph H K g + ( edge-equiv-equiv-Directed-Graph H K g ( vertex-equiv-Directed-Graph G H f x) ( vertex-equiv-Directed-Graph G H f y)) ∘e - ( equiv-edge-equiv-Directed-Graph G H f x y) + ( edge-equiv-equiv-Directed-Graph G H f x y) edge-comp-equiv-Directed-Graph : (x y : vertex-Directed-Graph G) → @@ -260,14 +260,14 @@ module _ is-torsorial (htpy-equiv-Directed-Graph G H e) is-torsorial-htpy-equiv-Directed-Graph = is-torsorial-Eq-structure - ( is-torsorial-htpy-equiv (equiv-vertex-equiv-Directed-Graph G H e)) - ( equiv-vertex-equiv-Directed-Graph G H e , refl-htpy) + ( is-torsorial-htpy-equiv (vertex-equiv-equiv-Directed-Graph G H e)) + ( vertex-equiv-equiv-Directed-Graph G H e , refl-htpy) ( is-torsorial-Eq-Π ( λ x → is-torsorial-Eq-Π ( λ y → is-torsorial-htpy-equiv - ( equiv-edge-equiv-Directed-Graph G H e x y)))) + ( edge-equiv-equiv-Directed-Graph G H e x y)))) htpy-eq-equiv-Directed-Graph : (f : equiv-Directed-Graph G H) → e = f → htpy-equiv-Directed-Graph G H e f @@ -350,29 +350,29 @@ module _ equiv-vertex-inv-equiv-Directed-Graph : vertex-Directed-Graph H ≃ vertex-Directed-Graph G equiv-vertex-inv-equiv-Directed-Graph = - inv-equiv (equiv-vertex-equiv-Directed-Graph G H f) + inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) vertex-inv-equiv-Directed-Graph : vertex-Directed-Graph H → vertex-Directed-Graph G vertex-inv-equiv-Directed-Graph = - map-inv-equiv (equiv-vertex-equiv-Directed-Graph G H f) + map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) is-section-vertex-inv-equiv-Directed-Graph : ( vertex-equiv-Directed-Graph G H f ∘ vertex-inv-equiv-Directed-Graph) ~ id is-section-vertex-inv-equiv-Directed-Graph = - is-section-map-inv-equiv (equiv-vertex-equiv-Directed-Graph G H f) + is-section-map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) is-retraction-vertex-inv-equiv-Directed-Graph : ( vertex-inv-equiv-Directed-Graph ∘ vertex-equiv-Directed-Graph G H f) ~ id is-retraction-vertex-inv-equiv-Directed-Graph = - is-retraction-map-inv-equiv (equiv-vertex-equiv-Directed-Graph G H f) + is-retraction-map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) is-equiv-vertex-inv-equiv-Directed-Graph : is-equiv vertex-inv-equiv-Directed-Graph is-equiv-vertex-inv-equiv-Directed-Graph = - is-equiv-map-inv-equiv (equiv-vertex-equiv-Directed-Graph G H f) + is-equiv-map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) equiv-edge-inv-equiv-Directed-Graph : (x y : vertex-Directed-Graph H) → @@ -382,7 +382,7 @@ module _ ( vertex-inv-equiv-Directed-Graph y) equiv-edge-inv-equiv-Directed-Graph x y = ( inv-equiv - ( equiv-edge-equiv-Directed-Graph G H f + ( edge-equiv-equiv-Directed-Graph G H f ( vertex-inv-equiv-Directed-Graph x) ( vertex-inv-equiv-Directed-Graph y))) ∘e ( equiv-binary-tr @@ -429,7 +429,7 @@ module _ ( vertex-is-section-inv-equiv-Directed-Graph x) ( vertex-is-section-inv-equiv-Directed-Graph y)) ( is-section-map-inv-equiv - ( equiv-edge-equiv-Directed-Graph G H f + ( edge-equiv-equiv-Directed-Graph G H f ( vertex-inv-equiv-Directed-Graph x) ( vertex-inv-equiv-Directed-Graph y)) ( binary-tr @@ -480,7 +480,7 @@ module _ ( vertex-is-retraction-inv-equiv-Directed-Graph x) ( vertex-is-retraction-inv-equiv-Directed-Graph y) ( map-eq-transpose-equiv-inv - ( equiv-edge-equiv-Directed-Graph G H f + ( edge-equiv-equiv-Directed-Graph G H f ( vertex-inv-equiv-Directed-Graph ( vertex-equiv-Directed-Graph G H f x)) ( vertex-inv-equiv-Directed-Graph @@ -495,7 +495,7 @@ module _ ( ( ap ( inv) ( coherence-map-inv-equiv - ( equiv-vertex-equiv-Directed-Graph G H f) + ( vertex-equiv-equiv-Directed-Graph G H f) ( x))) ∙ ( inv ( ap-inv @@ -504,7 +504,7 @@ module _ ( ( ap ( inv) ( coherence-map-inv-equiv - ( equiv-vertex-equiv-Directed-Graph G H f) + ( vertex-equiv-equiv-Directed-Graph G H f) ( y))) ∙ ( inv ( ap-inv diff --git a/src/graph-theory/equivalences-enriched-undirected-graphs.lagda.md b/src/graph-theory/equivalences-enriched-undirected-graphs.lagda.md index 635cd5b9f2..fe252f70ca 100644 --- a/src/graph-theory/equivalences-enriched-undirected-graphs.lagda.md +++ b/src/graph-theory/equivalences-enriched-undirected-graphs.lagda.md @@ -92,11 +92,11 @@ module _ ( undirected-graph-Enriched-Undirected-Graph A B H) equiv-undirected-graph-equiv-Enriched-Undirected-Graph = pr1 e - equiv-vertex-equiv-Enriched-Undirected-Graph : + vertex-equiv-equiv-Enriched-Undirected-Graph : vertex-Enriched-Undirected-Graph A B G ≃ vertex-Enriched-Undirected-Graph A B H - equiv-vertex-equiv-Enriched-Undirected-Graph = - equiv-vertex-equiv-Undirected-Graph + vertex-equiv-equiv-Enriched-Undirected-Graph = + vertex-equiv-equiv-Undirected-Graph ( undirected-graph-Enriched-Undirected-Graph A B G) ( undirected-graph-Enriched-Undirected-Graph A B H) ( equiv-undirected-graph-equiv-Enriched-Undirected-Graph) @@ -128,13 +128,13 @@ module _ ( undirected-graph-Enriched-Undirected-Graph A B H) ( equiv-undirected-graph-equiv-Enriched-Undirected-Graph) - equiv-edge-equiv-Enriched-Undirected-Graph : + edge-equiv-equiv-Enriched-Undirected-Graph : ( p : unordered-pair-vertices-Enriched-Undirected-Graph A B G) → edge-Enriched-Undirected-Graph A B G p ≃ edge-Enriched-Undirected-Graph A B H ( unordered-pair-vertices-equiv-Enriched-Undirected-Graph p) - equiv-edge-equiv-Enriched-Undirected-Graph = - equiv-edge-equiv-Undirected-Graph + edge-equiv-equiv-Enriched-Undirected-Graph = + edge-equiv-equiv-Undirected-Graph ( undirected-graph-Enriched-Undirected-Graph A B G) ( undirected-graph-Enriched-Undirected-Graph A B H) ( equiv-undirected-graph-equiv-Enriched-Undirected-Graph) diff --git a/src/graph-theory/equivalences-undirected-graphs.lagda.md b/src/graph-theory/equivalences-undirected-graphs.lagda.md index 4dc5daf15b..4a50e96ebe 100644 --- a/src/graph-theory/equivalences-undirected-graphs.lagda.md +++ b/src/graph-theory/equivalences-undirected-graphs.lagda.md @@ -58,30 +58,30 @@ module _ edge-Undirected-Graph G p ≃ edge-Undirected-Graph H (map-equiv-unordered-pair f p)) - equiv-vertex-equiv-Undirected-Graph : + vertex-equiv-equiv-Undirected-Graph : equiv-Undirected-Graph → vertex-Undirected-Graph G ≃ vertex-Undirected-Graph H - equiv-vertex-equiv-Undirected-Graph f = pr1 f + vertex-equiv-equiv-Undirected-Graph f = pr1 f vertex-equiv-Undirected-Graph : equiv-Undirected-Graph → vertex-Undirected-Graph G → vertex-Undirected-Graph H vertex-equiv-Undirected-Graph f = - map-equiv (equiv-vertex-equiv-Undirected-Graph f) + map-equiv (vertex-equiv-equiv-Undirected-Graph f) equiv-unordered-pair-vertices-equiv-Undirected-Graph : equiv-Undirected-Graph → unordered-pair-vertices-Undirected-Graph G ≃ unordered-pair-vertices-Undirected-Graph H equiv-unordered-pair-vertices-equiv-Undirected-Graph f = - equiv-unordered-pair (equiv-vertex-equiv-Undirected-Graph f) + equiv-unordered-pair (vertex-equiv-equiv-Undirected-Graph f) unordered-pair-vertices-equiv-Undirected-Graph : equiv-Undirected-Graph → unordered-pair-vertices-Undirected-Graph G → unordered-pair-vertices-Undirected-Graph H unordered-pair-vertices-equiv-Undirected-Graph f = - map-equiv-unordered-pair (equiv-vertex-equiv-Undirected-Graph f) + map-equiv-unordered-pair (vertex-equiv-equiv-Undirected-Graph f) standard-unordered-pair-vertices-equiv-Undirected-Graph : (e : equiv-Undirected-Graph) (x y : vertex-Undirected-Graph G) → @@ -92,15 +92,15 @@ module _ ( vertex-equiv-Undirected-Graph e x) ( vertex-equiv-Undirected-Graph e y) standard-unordered-pair-vertices-equiv-Undirected-Graph e = - equiv-standard-unordered-pair (equiv-vertex-equiv-Undirected-Graph e) + equiv-standard-unordered-pair (vertex-equiv-equiv-Undirected-Graph e) - equiv-edge-equiv-Undirected-Graph : + edge-equiv-equiv-Undirected-Graph : (f : equiv-Undirected-Graph) (p : unordered-pair-vertices-Undirected-Graph G) → edge-Undirected-Graph G p ≃ edge-Undirected-Graph H ( unordered-pair-vertices-equiv-Undirected-Graph f p) - equiv-edge-equiv-Undirected-Graph f = pr2 f + edge-equiv-equiv-Undirected-Graph f = pr2 f edge-equiv-Undirected-Graph : (f : equiv-Undirected-Graph) @@ -109,7 +109,7 @@ module _ edge-Undirected-Graph H ( unordered-pair-vertices-equiv-Undirected-Graph f p) edge-equiv-Undirected-Graph f p = - map-equiv (equiv-edge-equiv-Undirected-Graph f p) + map-equiv (edge-equiv-equiv-Undirected-Graph f p) equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph : (e : equiv-Undirected-Graph) (x y : vertex-Undirected-Graph G) → @@ -122,7 +122,7 @@ module _ ( equiv-tr ( edge-Undirected-Graph H) ( standard-unordered-pair-vertices-equiv-Undirected-Graph e x y)) ∘e - ( equiv-edge-equiv-Undirected-Graph e (standard-unordered-pair x y)) + ( edge-equiv-equiv-Undirected-Graph e (standard-unordered-pair x y)) edge-standard-unordered-pair-vertices-equiv-Undirected-Graph : (e : equiv-Undirected-Graph) (x y : vertex-Undirected-Graph G) → @@ -196,8 +196,8 @@ module _ is-torsorial (htpy-equiv-Undirected-Graph f) is-torsorial-htpy-equiv-Undirected-Graph f = is-torsorial-Eq-structure - ( is-torsorial-htpy-equiv (equiv-vertex-equiv-Undirected-Graph G H f)) - ( pair (equiv-vertex-equiv-Undirected-Graph G H f) refl-htpy) + ( is-torsorial-htpy-equiv (vertex-equiv-equiv-Undirected-Graph G H f)) + ( pair (vertex-equiv-equiv-Undirected-Graph G H f) refl-htpy) ( is-contr-equiv' ( Σ ( (p : unordered-pair-vertices-Undirected-Graph G) → edge-Undirected-Graph G p ≃ @@ -219,7 +219,7 @@ module _ ( is-torsorial-Eq-Π ( λ p → is-torsorial-htpy-equiv - ( equiv-edge-equiv-Undirected-Graph G H f p)))) + ( edge-equiv-equiv-Undirected-Graph G H f p)))) is-equiv-htpy-eq-equiv-Undirected-Graph : (f g : equiv-Undirected-Graph G H) → diff --git a/src/graph-theory/neighbors-undirected-graphs.lagda.md b/src/graph-theory/neighbors-undirected-graphs.lagda.md index 54548de3ad..3215d0c057 100644 --- a/src/graph-theory/neighbors-undirected-graphs.lagda.md +++ b/src/graph-theory/neighbors-undirected-graphs.lagda.md @@ -60,7 +60,7 @@ module _ ( λ y → edge-Undirected-Graph H ( standard-unordered-pair (vertex-equiv-Undirected-Graph G H e x) y)) - ( equiv-vertex-equiv-Undirected-Graph G H e) + ( vertex-equiv-equiv-Undirected-Graph G H e) ( equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph G H e x) diff --git a/src/graph-theory/polygons.lagda.md b/src/graph-theory/polygons.lagda.md index 5224b39ed3..191466a90f 100644 --- a/src/graph-theory/polygons.lagda.md +++ b/src/graph-theory/polygons.lagda.md @@ -100,7 +100,7 @@ module _ mere-equiv-vertex-Polygon : mere-equiv (ℤ-Mod k) vertex-Polygon mere-equiv-vertex-Polygon = map-trunc-Prop - ( equiv-vertex-equiv-Undirected-Graph + ( vertex-equiv-equiv-Undirected-Graph ( standard-polygon-Undirected-Graph k) ( undirected-graph-Polygon)) ( mere-equiv-Polygon) diff --git a/src/graph-theory/walks-directed-graphs.lagda.md b/src/graph-theory/walks-directed-graphs.lagda.md index cc52281587..94892375b3 100644 --- a/src/graph-theory/walks-directed-graphs.lagda.md +++ b/src/graph-theory/walks-directed-graphs.lagda.md @@ -602,17 +602,17 @@ equiv-walk-of-length-equiv-Directed-Graph : ( vertex-equiv-Directed-Graph G H f y) equiv-walk-of-length-equiv-Directed-Graph G H f zero-ℕ = equiv-raise _ _ - ( equiv-ap (equiv-vertex-equiv-Directed-Graph G H f) _ _) + ( equiv-ap (vertex-equiv-equiv-Directed-Graph G H f) _ _) equiv-walk-of-length-equiv-Directed-Graph G H f (succ-ℕ n) = equiv-Σ ( λ z → ( edge-Directed-Graph H (vertex-equiv-Directed-Graph G H f _) z) × ( walk-of-length-Directed-Graph H n z ( vertex-equiv-Directed-Graph G H f _))) - ( equiv-vertex-equiv-Directed-Graph G H f) + ( vertex-equiv-equiv-Directed-Graph G H f) ( λ z → equiv-product - ( equiv-edge-equiv-Directed-Graph G H f _ _) + ( edge-equiv-equiv-Directed-Graph G H f _ _) ( equiv-walk-of-length-equiv-Directed-Graph G H f n)) ``` diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 5d3487af72..e172337240 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -27,7 +27,7 @@ open import structured-types.dependent-products-wild-monoids public open import structured-types.dependent-reflexive-globular-types public open import structured-types.dependent-types-equipped-with-automorphisms public open import structured-types.equality-globular-types public -open import structured-types.equivalences-globular-types public +open import structured-types.globular-equivalences public open import structured-types.equivalences-h-spaces public open import structured-types.equivalences-pointed-arrows public open import structured-types.equivalences-types-equipped-with-automorphisms public @@ -53,7 +53,7 @@ open import structured-types.large-reflexive-globular-types public open import structured-types.large-symmetric-globular-types public open import structured-types.large-transitive-globular-types public open import structured-types.magmas public -open import structured-types.maps-large-globular-types public +open import structured-types.large-globular-maps public open import structured-types.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public open import structured-types.morphisms-magmas public diff --git a/src/structured-types/dependent-coproducts-globular-types.lagda.md b/src/structured-types/dependent-coproducts-globular-types.lagda.md index d093450ded..85b500ad4d 100644 --- a/src/structured-types/dependent-coproducts-globular-types.lagda.md +++ b/src/structured-types/dependent-coproducts-globular-types.lagda.md @@ -15,6 +15,8 @@ open import foundation.universe-levels open import structured-types.dependent-globular-types open import structured-types.globular-maps open import structured-types.globular-types +open import structured-types.pullbacks-dependent-globular-types +open import structured-types.sections-dependent-globular-types ```
@@ -51,11 +53,22 @@ module _ 0-cell-Σ-Globular-Type = 0-cell-Globular-Type (Σ-Globular-Type H) + 1-cell-globular-type-Σ-Globular-Type : + (x y : 0-cell-Σ-Globular-Type) → Globular-Type (l2 ⊔ l4) (l2 ⊔ l4) + 1-cell-globular-type-Σ-Globular-Type = + 1-cell-globular-type-Globular-Type (Σ-Globular-Type H) + 1-cell-Σ-Globular-Type : (x y : 0-cell-Globular-Type (Σ-Globular-Type H)) → UU (l2 ⊔ l4) 1-cell-Σ-Globular-Type = 1-cell-Globular-Type (Σ-Globular-Type H) + 2-cell-globular-type-Σ-Globular-Type : + {x y : 0-cell-Σ-Globular-Type} + (f g : 1-cell-Σ-Globular-Type x y) → Globular-Type (l2 ⊔ l4) (l2 ⊔ l4) + 2-cell-globular-type-Σ-Globular-Type = + 2-cell-globular-type-Globular-Type (Σ-Globular-Type H) + 2-cell-Σ-Globular-Type : {x y : 0-cell-Σ-Globular-Type} → (f g : 1-cell-Σ-Globular-Type x y) → UU (l2 ⊔ l4) @@ -74,4 +87,83 @@ pr1-Σ-Globular-Type : 1-cell-globular-map-globular-map (pr1-Σ-Globular-Type H) = pr1-Σ-Globular-Type ( 1-cell-dependent-globular-type-Dependent-Globular-Type H _ _) + +module _ + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) + where + + 0-cell-pr1-Σ-Globular-Type : + 0-cell-Σ-Globular-Type H → 0-cell-Globular-Type G + 0-cell-pr1-Σ-Globular-Type = + 0-cell-globular-map (pr1-Σ-Globular-Type H) + + 1-cell-globular-map-pr1-Σ-Globular-Type : + (x y : 0-cell-Σ-Globular-Type H) → + globular-map + ( 1-cell-globular-type-Σ-Globular-Type H x y) + ( 1-cell-globular-type-Globular-Type G + ( 0-cell-pr1-Σ-Globular-Type x) + ( 0-cell-pr1-Σ-Globular-Type y)) + 1-cell-globular-map-pr1-Σ-Globular-Type x y = + 1-cell-globular-map-globular-map (pr1-Σ-Globular-Type H) + + 1-cell-pr1-Σ-Globular-Type : + {x y : 0-cell-Σ-Globular-Type H} → + 1-cell-Σ-Globular-Type H x y → + 1-cell-Globular-Type G + ( 0-cell-pr1-Σ-Globular-Type x) + ( 0-cell-pr1-Σ-Globular-Type y) + 1-cell-pr1-Σ-Globular-Type = + 1-cell-globular-map (pr1-Σ-Globular-Type H) +``` + +### The second projection of a dependent coproduct of globular types + +```agda +pr2-Σ-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) → + section-Dependent-Globular-Type + ( pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) +0-cell-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) = pr2 +1-cell-section-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) = + pr2-Σ-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H _ _) + +module _ + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) + where + + 0-cell-pr2-Σ-Globular-Type : + (x : 0-cell-Σ-Globular-Type H) → + 0-cell-pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H x + 0-cell-pr2-Σ-Globular-Type = + 0-cell-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) + + 1-cell-section-pr2-Σ-Globular-Type : + {x x' : 0-cell-Σ-Globular-Type H} → + section-Dependent-Globular-Type + ( 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type + ( pr1-Σ-Globular-Type H) + ( H) + ( 0-cell-pr2-Σ-Globular-Type x) + ( 0-cell-pr2-Σ-Globular-Type x')) + 1-cell-section-pr2-Σ-Globular-Type = + 1-cell-section-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) + + 1-cell-pr2-Σ-Globular-Type : + {x x' : 0-cell-Σ-Globular-Type H} + (f : 1-cell-Σ-Globular-Type H x x') → + 1-cell-pullback-Dependent-Globular-Type + ( pr1-Σ-Globular-Type H) + ( H) + ( 0-cell-pr2-Σ-Globular-Type x) + ( 0-cell-pr2-Σ-Globular-Type x') + ( f) + 1-cell-pr2-Σ-Globular-Type = + 1-cell-section-Dependent-Globular-Type + ( pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) + ( pr2-Σ-Globular-Type H) ``` diff --git a/src/structured-types/equivalences-globular-types.lagda.md b/src/structured-types/equivalences-globular-types.lagda.md deleted file mode 100644 index a588dfa7c5..0000000000 --- a/src/structured-types/equivalences-globular-types.lagda.md +++ /dev/null @@ -1,165 +0,0 @@ -# Equivalences between globular types - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.equivalences-globular-types where -``` - -
Imports - -```agda -open import foundation.dependent-pair-types -open import foundation.equivalences -open import foundation.function-types -open import foundation.identity-types -open import foundation.universe-levels - -open import structured-types.globular-types -``` - -
- -## Idea - -An -{{#concept "equivalence" Disambiguation="globular types" Agda=equiv-Globular-Type}} -`f` between [globular types](structured-types.globular-types.md) `A` and `B` is -an equivalence `F₀` of $0$-cells, and for every pair of $n$-cells `x` and `y`, -an equivalence of $(n+1)$-cells - -```text - Fₙ₊₁ : (𝑛+1)-Cell A x y ≃ (𝑛+1)-Cell B (Fₙ x) (Fₙ y). -``` - -## Definitions - -### Equivalences between globular types - -```agda -record - equiv-Globular-Type - {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) - : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) - where - coinductive - field - equiv-0-cell-equiv-Globular-Type : - 0-cell-Globular-Type A ≃ 0-cell-Globular-Type B - - map-0-cell-equiv-Globular-Type : - 0-cell-Globular-Type A → 0-cell-Globular-Type B - map-0-cell-equiv-Globular-Type = map-equiv equiv-0-cell-equiv-Globular-Type - - field - globular-type-1-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} → - equiv-Globular-Type - ( 1-cell-globular-type-Globular-Type A x y) - ( 1-cell-globular-type-Globular-Type B - ( map-0-cell-equiv-Globular-Type x) - ( map-0-cell-equiv-Globular-Type y)) - -open equiv-Globular-Type public - -module _ - {l1 l2 l3 l4 : Level} - {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : equiv-Globular-Type A B) - where - - equiv-1-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} → - 1-cell-Globular-Type A x y ≃ - 1-cell-Globular-Type B - ( map-0-cell-equiv-Globular-Type F x) - ( map-0-cell-equiv-Globular-Type F y) - equiv-1-cell-equiv-Globular-Type = - equiv-0-cell-equiv-Globular-Type - ( globular-type-1-cell-equiv-Globular-Type F) - - map-1-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} → - 1-cell-Globular-Type A x y → - 1-cell-Globular-Type B - ( map-0-cell-equiv-Globular-Type F x) - ( map-0-cell-equiv-Globular-Type F y) - map-1-cell-equiv-Globular-Type = - map-0-cell-equiv-Globular-Type (globular-type-1-cell-equiv-Globular-Type F) - -module _ - {l1 l2 l3 l4 : Level} - {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : equiv-Globular-Type A B) - where - - equiv-2-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} - {f g : 1-cell-Globular-Type A x y} → - 2-cell-Globular-Type A f g ≃ - 2-cell-Globular-Type B - ( map-1-cell-equiv-Globular-Type F f) - ( map-1-cell-equiv-Globular-Type F g) - equiv-2-cell-equiv-Globular-Type = - equiv-1-cell-equiv-Globular-Type - ( globular-type-1-cell-equiv-Globular-Type F) - - map-2-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} - {f g : 1-cell-Globular-Type A x y} → - 2-cell-Globular-Type A f g → - 2-cell-Globular-Type B - ( map-1-cell-equiv-Globular-Type F f) - ( map-1-cell-equiv-Globular-Type F g) - map-2-cell-equiv-Globular-Type = - map-1-cell-equiv-Globular-Type (globular-type-1-cell-equiv-Globular-Type F) - -module _ - {l1 l2 l3 l4 : Level} - {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} - (F : equiv-Globular-Type A B) - where - - equiv-3-cell-equiv-Globular-Type : - {x y : 0-cell-Globular-Type A} - {f g : 1-cell-Globular-Type A x y} → - {H K : 2-cell-Globular-Type A f g} → - 3-cell-Globular-Type A H K ≃ - 3-cell-Globular-Type B - ( map-2-cell-equiv-Globular-Type F H) - ( map-2-cell-equiv-Globular-Type F K) - equiv-3-cell-equiv-Globular-Type = - equiv-2-cell-equiv-Globular-Type - ( globular-type-1-cell-equiv-Globular-Type F) -``` - -### The identity equiv on a globular type - -```agda -id-equiv-Globular-Type : - {l1 l2 : Level} (A : Globular-Type l1 l2) → equiv-Globular-Type A A -id-equiv-Globular-Type A = - λ where - .equiv-0-cell-equiv-Globular-Type → id-equiv - .globular-type-1-cell-equiv-Globular-Type {x} {y} → - id-equiv-Globular-Type (1-cell-globular-type-Globular-Type A x y) -``` - -### Composition of equivalences of globular types - -```agda -comp-equiv-Globular-Type : - {l1 l2 l3 l4 l5 l6 : Level} - {A : Globular-Type l1 l2} - {B : Globular-Type l3 l4} - {C : Globular-Type l5 l6} → - equiv-Globular-Type B C → equiv-Globular-Type A B → equiv-Globular-Type A C -comp-equiv-Globular-Type g f = - λ where - .equiv-0-cell-equiv-Globular-Type → - equiv-0-cell-equiv-Globular-Type g ∘e equiv-0-cell-equiv-Globular-Type f - .globular-type-1-cell-equiv-Globular-Type → - comp-equiv-Globular-Type - ( globular-type-1-cell-equiv-Globular-Type g) - ( globular-type-1-cell-equiv-Globular-Type f) -``` diff --git a/src/structured-types/globular-equivalences.lagda.md b/src/structured-types/globular-equivalences.lagda.md new file mode 100644 index 0000000000..384b40b03e --- /dev/null +++ b/src/structured-types/globular-equivalences.lagda.md @@ -0,0 +1,164 @@ +# Equivalences between globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.globular-equivalences where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.function-types +open import foundation.identity-types +open import foundation.universe-levels + +open import structured-types.globular-types +``` + +
+ +## Idea + +A {{#concept "globular equivalence" Agda=globular-equiv}} `e` between +[globular types](structured-types.globular-types.md) `A` and `B` consists of an +[equivalence](foundation-core.equivalences.md) `e₀` of $0$-cells, and for every +pair of $n$-cells `x` and `y`, an equivalence of $(n+1)$-cells + +```text + eₙ₊₁ : (𝑛+1)-Cell A x y ≃ (𝑛+1)-Cell B (eₙ x) (eₙ y). +``` + +## Definitions + +### Equivalences between globular types + +```agda +record + globular-equiv + {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + coinductive + + field + 0-cell-equiv-globular-equiv : + 0-cell-Globular-Type A ≃ 0-cell-Globular-Type B + + 0-cell-globular-equiv : 0-cell-Globular-Type A → 0-cell-Globular-Type B + 0-cell-globular-equiv = map-equiv 0-cell-equiv-globular-equiv + + field + 1-cell-globular-equiv-globular-equiv : + {x y : 0-cell-Globular-Type A} → + globular-equiv + ( 1-cell-globular-type-Globular-Type A x y) + ( 1-cell-globular-type-Globular-Type B + ( 0-cell-globular-equiv x) + ( 0-cell-globular-equiv y)) + +open globular-equiv public + +module _ + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (e : globular-equiv A B) + where + + 1-cell-equiv-globular-equiv : + {x y : 0-cell-Globular-Type A} → + 1-cell-Globular-Type A x y ≃ + 1-cell-Globular-Type B + ( 0-cell-globular-equiv e x) + ( 0-cell-globular-equiv e y) + 1-cell-equiv-globular-equiv = + 0-cell-equiv-globular-equiv + ( 1-cell-globular-equiv-globular-equiv e) + + 1-cell-globular-equiv : + {x y : 0-cell-Globular-Type A} → + 1-cell-Globular-Type A x y → + 1-cell-Globular-Type B + ( 0-cell-globular-equiv e x) + ( 0-cell-globular-equiv e y) + 1-cell-globular-equiv = + 0-cell-globular-equiv (1-cell-globular-equiv-globular-equiv e) + +module _ + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (e : globular-equiv A B) + where + + 2-cell-equiv-globular-equiv : + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} → + 2-cell-Globular-Type A f g ≃ + 2-cell-Globular-Type B + ( 1-cell-globular-equiv e f) + ( 1-cell-globular-equiv e g) + 2-cell-equiv-globular-equiv = + 1-cell-equiv-globular-equiv + ( 1-cell-globular-equiv-globular-equiv e) + + 2-cell-globular-equiv : + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} → + 2-cell-Globular-Type A f g → + 2-cell-Globular-Type B + ( 1-cell-globular-equiv e f) + ( 1-cell-globular-equiv e g) + 2-cell-globular-equiv = + 1-cell-globular-equiv (1-cell-globular-equiv-globular-equiv e) + +module _ + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (e : globular-equiv A B) + where + + 3-cell-equiv-globular-equiv : + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} → + {H K : 2-cell-Globular-Type A f g} → + 3-cell-Globular-Type A H K ≃ + 3-cell-Globular-Type B + ( 2-cell-globular-equiv e H) + ( 2-cell-globular-equiv e K) + 3-cell-equiv-globular-equiv = + 2-cell-equiv-globular-equiv + ( 1-cell-globular-equiv-globular-equiv e) +``` + +### The identity equiv on a globular type + +```agda +id-globular-equiv : + {l1 l2 : Level} (A : Globular-Type l1 l2) → globular-equiv A A +id-globular-equiv A = + λ where + .0-cell-equiv-globular-equiv → id-equiv + .1-cell-globular-equiv-globular-equiv {x} {y} → + id-globular-equiv (1-cell-globular-type-Globular-Type A x y) +``` + +### Composition of equivalences of globular types + +```agda +comp-globular-equiv : + {l1 l2 l3 l4 l5 l6 : Level} + {A : Globular-Type l1 l2} + {B : Globular-Type l3 l4} + {C : Globular-Type l5 l6} → + globular-equiv B C → globular-equiv A B → globular-equiv A C +comp-globular-equiv g f = + λ where + .0-cell-equiv-globular-equiv → + 0-cell-equiv-globular-equiv g ∘e 0-cell-equiv-globular-equiv f + .1-cell-globular-equiv-globular-equiv → + comp-globular-equiv + ( 1-cell-globular-equiv-globular-equiv g) + ( 1-cell-globular-equiv-globular-equiv f) +``` diff --git a/src/structured-types/globular-maps.lagda.md b/src/structured-types/globular-maps.lagda.md index bcbd04c4c1..f77bf9d42a 100644 --- a/src/structured-types/globular-maps.lagda.md +++ b/src/structured-types/globular-maps.lagda.md @@ -37,8 +37,8 @@ $(n+1)$-cells ```agda record globular-map - {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) - : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) where coinductive field @@ -76,6 +76,18 @@ module _ (F : globular-map A B) where + 2-cell-globular-map-globular-map : + {x y : 0-cell-Globular-Type A} + (f g : 1-cell-Globular-Type A x y) → + globular-map + ( 2-cell-globular-type-Globular-Type A f g) + ( 2-cell-globular-type-Globular-Type B + ( 1-cell-globular-map F f) + ( 1-cell-globular-map F g)) + 2-cell-globular-map-globular-map f g = + 1-cell-globular-map-globular-map + ( 1-cell-globular-map-globular-map F) + 2-cell-globular-map : {x y : 0-cell-Globular-Type A} {f g : 1-cell-Globular-Type A x y} → @@ -92,6 +104,21 @@ module _ (F : globular-map A B) where +{- + 3-cell-globular-map-globular-map : + {x y : 0-cell-Globular-Type A} + {f g : 1-cell-Globular-Type A x y} + (s t : 2-cell-Globular-Type A f g) → + globular-map + ( 3-cell-globular-type-Globular-Type A s t) + ( 3-cell-globular-type-Globular-Type B + ( 2-cell-globular-map F s) + ( 2-cell-globular-map F t)) + 3-cell-globular-map-globular-map s t = + 2-cell-globular-map-globular-map + ( 1-cell-globular-map-globular-map F) +-} + 3-cell-globular-map : {x y : 0-cell-Globular-Type A} {f g : 1-cell-Globular-Type A x y} → diff --git a/src/structured-types/globular-types.lagda.md b/src/structured-types/globular-types.lagda.md index 688cd12f7d..cf5be75770 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/structured-types/globular-types.lagda.md @@ -315,7 +315,8 @@ globular-type-Type : {l : Level} → UU l → Globular-Type l l globular-type-Type (x = y) globular-structure-Id : {l : Level} (A : UU l) → globular-structure l A -1-cell-globular-structure (globular-structure-Id A) x y = x = y +1-cell-globular-structure (globular-structure-Id A) x y = + x = y globular-structure-1-cell-globular-structure (globular-structure-Id A) x y = globular-structure-Id (x = y) ``` diff --git a/src/structured-types/large-globular-maps.lagda.md b/src/structured-types/large-globular-maps.lagda.md new file mode 100644 index 0000000000..46233fcc64 --- /dev/null +++ b/src/structured-types/large-globular-maps.lagda.md @@ -0,0 +1,127 @@ +# Maps between large globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-globular-maps where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.identity-types +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.globular-types +open import structured-types.large-globular-types +``` + +
+ +## Idea + +A {{#concept "large globular map" Agda=large-globular-map}} +`f` between [large globular types](structured-types.large-globular-types.md) `A` +and `B` consists of a map `F₀` of $0$-cells, and for every pair of $n$-cells `x` and `y`, +a map of $(n+1)$-cells + +```text + Fₙ₊₁ : (𝑛+1)-Cell A x y → (𝑛+1)-Cell B (Fₙ x) (Fₙ y). +``` + +## Definitions + +### Maps between large globular types + +```agda +record + large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) + (A : Large-Globular-Type α1 β1) (B : Large-Globular-Type α2 β2) : UUω + where + + field + 0-cell-large-globular-map : + {l : Level} → + 0-cell-Large-Globular-Type A l → 0-cell-Large-Globular-Type B (δ l) + + field + 1-cell-globular-map-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + globular-map + ( 1-cell-globular-type-Large-Globular-Type A x y) + ( 1-cell-globular-type-Large-Globular-Type B + ( 0-cell-large-globular-map x) + ( 0-cell-large-globular-map y)) + + 1-cell-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + 1-cell-Large-Globular-Type A x y → + 1-cell-Large-Globular-Type B + ( 0-cell-large-globular-map x) + ( 0-cell-large-globular-map y) + 1-cell-large-globular-map = + 0-cell-globular-map 1-cell-globular-map-large-globular-map + + 2-cell-globular-map-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + (f g : 1-cell-Large-Globular-Type A x y) → + globular-map + ( 2-cell-globular-type-Large-Globular-Type A f g) + ( 2-cell-globular-type-Large-Globular-Type B + ( 1-cell-large-globular-map f) + ( 1-cell-large-globular-map g)) + 2-cell-globular-map-large-globular-map f g = + 1-cell-globular-map-globular-map + 1-cell-globular-map-large-globular-map + + 2-cell-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + {f g : 1-cell-Large-Globular-Type A x y} → + 2-cell-Large-Globular-Type A f g → + 2-cell-Large-Globular-Type B + ( 1-cell-large-globular-map f) + ( 1-cell-large-globular-map g) + 2-cell-large-globular-map = + 1-cell-globular-map 1-cell-globular-map-large-globular-map + + 3-cell-globular-map-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type A x y} + (s t : 2-cell-Large-Globular-Type A f g) → + globular-map + ( 3-cell-globular-type-Large-Globular-Type A s t) + ( 3-cell-globular-type-Large-Globular-Type B + ( 2-cell-large-globular-map s) + ( 2-cell-large-globular-map t)) + 3-cell-globular-map-large-globular-map = + 2-cell-globular-map-globular-map + 1-cell-globular-map-large-globular-map + + 3-cell-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} → + {f g : 1-cell-Large-Globular-Type A x y} → + {H K : 2-cell-Large-Globular-Type A f g} → + 3-cell-Large-Globular-Type A H K → + 3-cell-Large-Globular-Type B + ( 2-cell-large-globular-map H) + ( 2-cell-large-globular-map K) + 3-cell-large-globular-map = + 2-cell-globular-map 1-cell-globular-map-large-globular-map + +open large-globular-map public +``` diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..3dc77354b2 --- /dev/null +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -0,0 +1,146 @@ +# Lax reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.lax-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "lax reflexive globular map" Agda=reflexive-globular-map}} between two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped +with a family of 2-cells + +```text + (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at `f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax reflexive. + +Note: When reflexive globular types are viewed as type-valued presheaves over the reflexive globe category, the resulting notion of morphism is that of [reflexive globular maps](structured-types.reflexive-globular-maps.md), which is stricter than the notion of lax reflexive globular maps. + +## Definitions + +### The predicate of lax preserving reflexivity + +```agda +record + lax-preserves-refl-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + lax-preserves-refl-0-cell-lax-preserves-refl-globular-map : + (x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x})) + ( refl-0-cell-Reflexive-Globular-Type H) + + field + lax-preserves-refl-1-cell-globular-map-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + lax-preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map-Reflexive-Globular-Type G H f) + +open lax-preserves-refl-globular-map +``` + +### Lax reflexive globular maps + +```agda +record + lax-reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-lax-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-lax-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-lax-reflexive-globular-map = + 0-cell-globular-map globular-map-lax-reflexive-globular-map + + 1-cell-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + 1-cell-Reflexive-Globular-Type G x y → + 1-cell-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y) + 1-cell-lax-reflexive-globular-map = + 1-cell-globular-map globular-map-lax-reflexive-globular-map + + 1-cell-globular-map-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + 1-cell-globular-map-lax-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-lax-reflexive-globular-map + + field + lax-preserves-refl-lax-reflexive-globular-map : + lax-preserves-refl-globular-map G H + globular-map-lax-reflexive-globular-map + + lax-preserves-refl-0-cell-lax-reflexive-globular-map : + ( x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-lax-reflexive-globular-map + ( refl-0-cell-Reflexive-Globular-Type G {x})) + ( refl-0-cell-Reflexive-Globular-Type H) + lax-preserves-refl-0-cell-lax-reflexive-globular-map = + lax-preserves-refl-0-cell-lax-preserves-refl-globular-map + lax-preserves-refl-lax-reflexive-globular-map + + lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map : + { x y : 0-cell-Reflexive-Globular-Type G} → + lax-preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + ( 1-cell-globular-map-lax-reflexive-globular-map) + lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map = + lax-preserves-refl-1-cell-globular-map-globular-map + lax-preserves-refl-lax-reflexive-globular-map + + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + globular-map-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = + 1-cell-globular-map-lax-reflexive-globular-map + lax-preserves-refl-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = + lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map +``` diff --git a/src/structured-types/maps-large-globular-types.lagda.md b/src/structured-types/maps-large-globular-types.lagda.md deleted file mode 100644 index 65d528ac7f..0000000000 --- a/src/structured-types/maps-large-globular-types.lagda.md +++ /dev/null @@ -1,115 +0,0 @@ -# Maps between large globular types - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.maps-large-globular-types where -``` - -
Imports - -```agda -open import foundation.dependent-pair-types -open import foundation.identity-types -open import foundation.universe-levels - -open import structured-types.globular-maps -open import structured-types.globular-types -open import structured-types.large-globular-types -``` - -
- -## Idea - -A -{{#concept "map" Disambiguation="large globular types" Agda=map-Large-Globular-Type}} -`f` between [large globular types](structured-types.large-globular-types.md) `A` -and `B` is a map `F₀` of $0$-cells, and for every pair of $n$-cells `x` and `y`, -a map of $(n+1)$-cells - -```text - Fₙ₊₁ : (𝑛+1)-Cell A x y → (𝑛+1)-Cell B (Fₙ x) (Fₙ y). -``` - -## Definitions - -### Maps between large globular types - -```agda -record - map-Large-Globular-Type - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) - (A : Large-Globular-Type α1 β1) (B : Large-Globular-Type α2 β2) : UUω - where - field - 0-cell-map-Large-Globular-Type : - {l : Level} → - 0-cell-Large-Globular-Type A l → 0-cell-Large-Globular-Type B (δ l) - - 1-cell-globular-map-map-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - globular-map - ( 1-cell-globular-type-Large-Globular-Type A x y) - ( 1-cell-globular-type-Large-Globular-Type B - ( 0-cell-map-Large-Globular-Type x) - ( 0-cell-map-Large-Globular-Type y)) - -open map-Large-Globular-Type public - -module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} - {A : Large-Globular-Type α1 β1} {B : Large-Globular-Type α2 β2} - (F : map-Large-Globular-Type δ A B) - where - - 1-cell-map-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - 1-cell-Large-Globular-Type A x y → - 1-cell-Large-Globular-Type B - ( 0-cell-map-Large-Globular-Type F x) - ( 0-cell-map-Large-Globular-Type F y) - 1-cell-map-Large-Globular-Type = - 0-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) - -module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} - {A : Large-Globular-Type α1 β1} {B : Large-Globular-Type α2 β2} - (F : map-Large-Globular-Type δ A B) - where - - 2-cell-map-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - {f g : 1-cell-Large-Globular-Type A x y} → - 2-cell-Large-Globular-Type A f g → - 2-cell-Large-Globular-Type B - ( 1-cell-map-Large-Globular-Type F f) - ( 1-cell-map-Large-Globular-Type F g) - 2-cell-map-Large-Globular-Type = - 1-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) - -module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} - {A : Large-Globular-Type α1 β1} {B : Large-Globular-Type α2 β2} - (F : map-Large-Globular-Type δ A B) - where - - 3-cell-map-Large-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Globular-Type A l1} - {y : 0-cell-Large-Globular-Type A l2} → - {f g : 1-cell-Large-Globular-Type A x y} → - {H K : 2-cell-Large-Globular-Type A f g} → - 3-cell-Large-Globular-Type A H K → - 3-cell-Large-Globular-Type B - ( 2-cell-map-Large-Globular-Type F H) - ( 2-cell-map-Large-Globular-Type F K) - 3-cell-map-Large-Globular-Type = - 2-cell-globular-map (1-cell-globular-map-map-Large-Globular-Type F) -``` diff --git a/src/structured-types/pullbacks-dependent-globular-types.lagda.md b/src/structured-types/pullbacks-dependent-globular-types.lagda.md new file mode 100644 index 0000000000..5401541def --- /dev/null +++ b/src/structured-types/pullbacks-dependent-globular-types.lagda.md @@ -0,0 +1,76 @@ +# Pullbacks of dependent globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.pullbacks-dependent-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.dependent-globular-types +open import structured-types.globular-maps +open import structured-types.globular-types +``` + +
+ +## Idea + +Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over `G`, and consider a [globular map](structured-types.globular-maps.md) `f : K → G`. The {{#concept "pullback" Disambiguation="dependent globular types" agda=pullback-Dependent-Globular-Type}} of `H` along `f` is the dependent globular type `f*H` given by + +```text + (f*H)₀ x := H₀ (f₀ x) + (f*H)₁ y y' := H₁ +``` + +## Definitions + +```agda +pullback-Dependent-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Globular-Type l1 l2} {K : Globular-Type l3 l4} + (f : globular-map K G) → + Dependent-Globular-Type l5 l6 G → Dependent-Globular-Type l5 l6 K +0-cell-Dependent-Globular-Type + ( pullback-Dependent-Globular-Type f H) + ( x) = + 0-cell-Dependent-Globular-Type H (0-cell-globular-map f x) +1-cell-dependent-globular-type-Dependent-Globular-Type + ( pullback-Dependent-Globular-Type f H) y y' = + pullback-Dependent-Globular-Type + ( 1-cell-globular-map-globular-map f) + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {G : Globular-Type l1 l2} {K : Globular-Type l3 l4} + (f : globular-map K G) (H : Dependent-Globular-Type l5 l6 G) + where + + 0-cell-pullback-Dependent-Globular-Type : + 0-cell-Globular-Type K → UU l5 + 0-cell-pullback-Dependent-Globular-Type = + 0-cell-Dependent-Globular-Type (pullback-Dependent-Globular-Type f H) + + 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type : + {x x' : 0-cell-Globular-Type K} + (y : 0-cell-pullback-Dependent-Globular-Type x) + (y' : 0-cell-pullback-Dependent-Globular-Type x') → + Dependent-Globular-Type l6 l6 + ( 1-cell-globular-type-Globular-Type K x x') + 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type = + 1-cell-dependent-globular-type-Dependent-Globular-Type + ( pullback-Dependent-Globular-Type f H) + + 1-cell-pullback-Dependent-Globular-Type : + {x x' : 0-cell-Globular-Type K} + (y : 0-cell-pullback-Dependent-Globular-Type x) + (y' : 0-cell-pullback-Dependent-Globular-Type x') → + 1-cell-Globular-Type K x x' → UU l6 + 1-cell-pullback-Dependent-Globular-Type = + 1-cell-Dependent-Globular-Type (pullback-Dependent-Globular-Type f H) +``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index a62e0c5507..3a32a5e6fc 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -9,6 +9,7 @@ module structured-types.reflexive-globular-maps where
Imports ```agda +open import foundation.identity-types open import foundation.universe-levels open import structured-types.globular-maps @@ -22,45 +23,19 @@ open import structured-types.reflexive-globular-types A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped -with +with a family of 2-cells -## Definitions - -### Globular maps between reflexive globular types - -```agda -module _ - {l1 l2 l3 l4 : Level} - (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) - where - - globular-map-Reflexive-Globular-Type : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) - globular-map-Reflexive-Globular-Type = - globular-map - ( globular-type-Reflexive-Globular-Type G) - ( globular-type-Reflexive-Globular-Type H) +```text + (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) +``` -module _ - {l1 l2 l3 l4 : Level} - (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) - (f : globular-map-Reflexive-Globular-Type G H) - where +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at `f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again reflexive. - 0-cell-globular-map-Reflexive-Globular-Type : - 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H - 0-cell-globular-map-Reflexive-Globular-Type = - 0-cell-globular-map f +Note: In some settings it may be preferred to work with globular maps preserving reflexivity cells up to a higher cell. This notion of maps between reflexive globular types is the notion of [lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). - 1-cell-globular-map-globular-map-Reflexive-Globular-Type : - {x y : 0-cell-Reflexive-Globular-Type G} → - globular-map-Reflexive-Globular-Type - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) - 1-cell-globular-map-globular-map-Reflexive-Globular-Type = - 1-cell-globular-map-globular-map f -``` +## Definitions -### The predicate of preserving reflexivity +### The predicate of lax preserving reflexivity ```agda record @@ -75,9 +50,8 @@ record field preserves-refl-0-cell-preserves-refl-globular-map : (x : 0-cell-Reflexive-Globular-Type G) → - 2-cell-Reflexive-Globular-Type H - ( 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x})) - ( refl-0-cell-Reflexive-Globular-Type H) + 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x}) = + refl-0-cell-Reflexive-Globular-Type H field preserves-refl-1-cell-globular-map-globular-map : @@ -90,7 +64,7 @@ record open preserves-refl-globular-map ``` -### Reflexive globular maps +### Lax reflexive globular maps ```agda record @@ -136,10 +110,8 @@ record preserves-refl-0-cell-reflexive-globular-map : ( x : 0-cell-Reflexive-Globular-Type G) → - 2-cell-Reflexive-Globular-Type H - ( 1-cell-reflexive-globular-map - ( refl-0-cell-Reflexive-Globular-Type G {x})) - ( refl-0-cell-Reflexive-Globular-Type H) + 1-cell-reflexive-globular-map (refl-0-cell-Reflexive-Globular-Type G {x}) = + refl-0-cell-Reflexive-Globular-Type H preserves-refl-0-cell-reflexive-globular-map = preserves-refl-0-cell-preserves-refl-globular-map preserves-refl-reflexive-globular-map diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index b4c3c20c6c..e03584ccc9 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -14,6 +14,7 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -27,130 +28,71 @@ if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definition -### Reflexivity structure on a globular structure +### The predicate of being a reflexive globular type ```agda record - is-reflexive-globular-structure - {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) + is-reflexive-Globular-Type + {l1 l2 : Level} (G : Globular-Type l1 l2) : UU (l1 ⊔ l2) where coinductive field - is-reflexive-1-cell-is-reflexive-globular-structure : - is-reflexive (1-cell-globular-structure G) - - refl-1-cell-is-reflexive-globular-structure : - {x : A} → 1-cell-globular-structure G x x - refl-1-cell-is-reflexive-globular-structure {x} = - is-reflexive-1-cell-is-reflexive-globular-structure x + is-reflexive-1-cell-is-reflexive-Globular-Type : + is-reflexive (1-cell-Globular-Type G) field - is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure : - (x y : A) → - is-reflexive-globular-structure - ( globular-structure-1-cell-globular-structure G x y) + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + is-reflexive-Globular-Type (1-cell-globular-type-Globular-Type G x y) -open is-reflexive-globular-structure public +open is-reflexive-Globular-Type public -module _ - {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} - (r : is-reflexive-globular-structure G) - where - - is-reflexive-2-cell-is-reflexive-globular-structure : - {x y : A} → is-reflexive (2-cell-globular-structure G {x} {y}) - is-reflexive-2-cell-is-reflexive-globular-structure = - is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( r) - ( _) - ( _)) - - refl-2-cell-is-reflexive-globular-structure : - {x y : A} {f : 1-cell-globular-structure G x y} → - 2-cell-globular-structure G f f - refl-2-cell-is-reflexive-globular-structure {x} {y} {f} = - is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( r) - ( x) - ( y)) - ( f) - - is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure : - {x y : A} - (f g : 1-cell-globular-structure G x y) → - is-reflexive-globular-structure - ( globular-structure-2-cell-globular-structure G f g) - is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure - { x} {y} = - is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( r) - ( x) - ( y)) - - refl-3-cell-is-reflexive-globular-structure : - {x y : A} - {f g : 1-cell-globular-structure G x y} - {H : 2-cell-globular-structure G f g} → - 3-cell-globular-structure G H H - refl-3-cell-is-reflexive-globular-structure {x} {y} {f} {g} {H} = - is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure - ( f) - ( g)) - ( H) -``` - -### The type of reflexive globular structures - -```agda -reflexive-globular-structure : - {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) -reflexive-globular-structure l2 A = - Σ (globular-structure l2 A) (is-reflexive-globular-structure) -``` - -### Reflexivity structure on a globular type - -```agda module _ {l1 l2 : Level} (G : Globular-Type l1 l2) + (r : is-reflexive-Globular-Type G) where + + is-reflexive-2-cell-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + is-reflexive (2-cell-Globular-Type G {x} {y}) + is-reflexive-2-cell-is-reflexive-Globular-Type = + is-reflexive-1-cell-is-reflexive-Globular-Type + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) - is-reflexive-Globular-Type : UU (l1 ⊔ l2) - is-reflexive-Globular-Type = - is-reflexive-globular-structure (globular-structure-0-cell-Globular-Type G) - -is-reflexive-globular-type-is-reflexive-globular-structure : - {l1 l2 : Level} {A : UU l1} {B : globular-structure l2 A} → - is-reflexive-globular-structure B → - is-reflexive-Globular-Type (make-Globular-Type B) -is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-type-is-reflexive-globular-structure r) = - is-reflexive-1-cell-is-reflexive-globular-structure r -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-type-is-reflexive-globular-structure r) x y = - is-reflexive-globular-type-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - r x y) + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + {f g : 1-cell-Globular-Type G x y} → + is-reflexive-Globular-Type + ( 2-cell-globular-type-Globular-Type G {x} {y} f g) + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type = + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) module _ - {l1 l2 : Level} (G : Globular-Type l1 l2) (r : is-reflexive-Globular-Type G) + {l1 l2 : Level} (G : Globular-Type l1 l2) + (r : is-reflexive-Globular-Type G) where - is-reflexive-1-cell-is-reflexive-Globular-Type : - is-reflexive (1-cell-Globular-Type G) - is-reflexive-1-cell-is-reflexive-Globular-Type = - is-reflexive-1-cell-is-reflexive-globular-structure r - - is-reflexive-2-cell-is-reflexive-Globular-Type : + is-reflexive-3-cell-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → - is-reflexive (2-cell-Globular-Type G {x = x} {y = y}) - is-reflexive-2-cell-is-reflexive-Globular-Type = - is-reflexive-2-cell-is-reflexive-globular-structure r + {f g : 1-cell-Globular-Type G x y} → + is-reflexive (3-cell-Globular-Type G {x} {y} {f} {g}) + is-reflexive-3-cell-is-reflexive-Globular-Type = + is-reflexive-2-cell-is-reflexive-Globular-Type + ( 1-cell-globular-type-Globular-Type G _ _) + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) + + is-reflexive-3-cell-globular-type-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + {f g : 1-cell-Globular-Type G x y} + {s t : 2-cell-Globular-Type G f g} → + is-reflexive-Globular-Type + ( 3-cell-globular-type-Globular-Type G {x} {y} {f} {g} s t) + is-reflexive-3-cell-globular-type-is-reflexive-Globular-Type = + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type + ( 1-cell-globular-type-Globular-Type G _ _) + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) ``` ### Reflexive globular types @@ -186,13 +128,13 @@ record field refl-Reflexive-Globular-Type : - is-reflexive-globular-structure globular-structure-Reflexive-Globular-Type + is-reflexive-Globular-Type globular-type-Reflexive-Globular-Type refl-0-cell-Reflexive-Globular-Type : {x : 0-cell-Reflexive-Globular-Type} → 1-cell-Reflexive-Globular-Type x x refl-0-cell-Reflexive-Globular-Type = - is-reflexive-1-cell-is-reflexive-globular-structure + is-reflexive-1-cell-is-reflexive-Globular-Type ( refl-Reflexive-Globular-Type) ( _) @@ -201,6 +143,14 @@ record 1-cell-globular-type-Reflexive-Globular-Type = 1-cell-globular-type-Globular-Type globular-type-Reflexive-Globular-Type + refl-1-cell-globular-type-Reflexive-Globular-Type : + {x y : 0-cell-Reflexive-Globular-Type} → + is-reflexive-Globular-Type + ( 1-cell-globular-type-Reflexive-Globular-Type x y) + refl-1-cell-globular-type-Reflexive-Globular-Type = + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + refl-Reflexive-Globular-Type + 1-cell-reflexive-globular-type-Reflexive-Globular-Type : (x y : 0-cell-Reflexive-Globular-Type) → Reflexive-Globular-Type l2 l2 globular-type-Reflexive-Globular-Type @@ -208,14 +158,122 @@ record 1-cell-globular-type-Reflexive-Globular-Type x y refl-Reflexive-Globular-Type ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type x y) = - is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( refl-Reflexive-Globular-Type) - ( x) - ( y) + refl-1-cell-globular-type-Reflexive-Globular-Type open Reflexive-Globular-Type public ``` +### The predicate of being a reflexive globular structure + +```agda +is-reflexive-globular-structure : + {l1 l2 : Level} {A : UU l1} → globular-structure l2 A → UU (l1 ⊔ l2) +is-reflexive-globular-structure G = + is-reflexive-Globular-Type (make-Globular-Type G) + +module _ + {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) + (r : is-reflexive-globular-structure G) + where + + is-reflexive-1-cell-is-reflexive-globular-structure : + is-reflexive (1-cell-globular-structure G) + is-reflexive-1-cell-is-reflexive-globular-structure = + is-reflexive-1-cell-is-reflexive-Globular-Type r + + refl-1-cell-is-reflexive-globular-structure : + {x : A} → 1-cell-globular-structure G x x + refl-1-cell-is-reflexive-globular-structure = + is-reflexive-1-cell-is-reflexive-Globular-Type r _ + + is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure : + {x y : A} → + is-reflexive-globular-structure + ( globular-structure-1-cell-globular-structure G x y) + is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure = + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r + + is-reflexive-2-cell-is-reflexive-globular-structure : + {x y : A} → is-reflexive (2-cell-globular-structure G {x} {y}) + is-reflexive-2-cell-is-reflexive-globular-structure {x} {y} = + is-reflexive-2-cell-is-reflexive-Globular-Type (make-Globular-Type G) r + + refl-2-cell-is-reflexive-globular-structure : + {x y : A} {f : 1-cell-globular-structure G x y} → + 2-cell-globular-structure G f f + refl-2-cell-is-reflexive-globular-structure = + is-reflexive-2-cell-is-reflexive-globular-structure _ + + is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure : + {x y : A} + {f g : 1-cell-globular-structure G x y} → + is-reflexive-globular-structure + ( globular-structure-2-cell-globular-structure G f g) + is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure = + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type + ( make-Globular-Type G) + ( r) + + is-reflexive-3-cell-is-reflexive-globular-structure : + {x y : A} {f g : 1-cell-globular-structure G x y} → + is-reflexive (3-cell-globular-structure G {x} {y} {f} {g}) + is-reflexive-3-cell-is-reflexive-globular-structure = + is-reflexive-3-cell-is-reflexive-Globular-Type (make-Globular-Type G) r + + refl-3-cell-is-reflexive-globular-structure : + {x y : A} + {f g : 1-cell-globular-structure G x y} + {H : 2-cell-globular-structure G f g} → + 3-cell-globular-structure G H H + refl-3-cell-is-reflexive-globular-structure {x} {y} {f} {g} {H} = + is-reflexive-3-cell-is-reflexive-globular-structure _ +``` + +### The type of reflexive globular structures + +```agda +reflexive-globular-structure : + {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) +reflexive-globular-structure l2 A = + Σ (globular-structure l2 A) (is-reflexive-globular-structure) +``` + +### Globular maps between reflexive globular types + +Since there are at least two notions of morphism between reflexive globular types, both of which have an underlying globular map, we record here the definition of globular maps between reflexive globular types. + +```agda +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + where + + globular-map-Reflexive-Globular-Type : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + globular-map-Reflexive-Globular-Type = + globular-map + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) + +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) + where + + 0-cell-globular-map-Reflexive-Globular-Type : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-globular-map-Reflexive-Globular-Type = + 0-cell-globular-map f + + 1-cell-globular-map-globular-map-Reflexive-Globular-Type : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + 1-cell-globular-map-globular-map-Reflexive-Globular-Type = + 1-cell-globular-map-globular-map f +``` + ## Examples ### The reflexive globular structure on a type given by its identity types @@ -224,19 +282,23 @@ open Reflexive-Globular-Type public is-reflexive-globular-type-Type : {l : Level} (A : UU l) → is-reflexive-Globular-Type (globular-type-Type A) -is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-type-Type A) x = refl -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-type-Type A) x y = +is-reflexive-1-cell-is-reflexive-Globular-Type + ( is-reflexive-globular-type-Type A) _ = + refl +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( is-reflexive-globular-type-Type A) {x} {y} = is-reflexive-globular-type-Type (x = y) is-reflexive-globular-structure-Id : {l : Level} (A : UU l) → is-reflexive-globular-structure (globular-structure-Id A) -is-reflexive-globular-structure-Id A = - λ where - .is-reflexive-1-cell-is-reflexive-globular-structure x → - refl - .is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure x y → - is-reflexive-globular-structure-Id (x = y) +is-reflexive-1-cell-is-reflexive-Globular-Type + ( is-reflexive-globular-structure-Id A) x = refl +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( is-reflexive-globular-structure-Id A) {x} {y} = + is-reflexive-globular-structure-Id (x = y) ``` + +## See also + +- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) diff --git a/src/structured-types/sections-dependent-globular-types.lagda.md b/src/structured-types/sections-dependent-globular-types.lagda.md index 1233627805..e05444819c 100644 --- a/src/structured-types/sections-dependent-globular-types.lagda.md +++ b/src/structured-types/sections-dependent-globular-types.lagda.md @@ -45,10 +45,10 @@ record field 1-cell-section-section-Dependent-Globular-Type : {x x' : 0-cell-Globular-Type G} → - (y : 0-cell-Dependent-Globular-Type H x) - (y' : 0-cell-Dependent-Globular-Type H x') → section-Dependent-Globular-Type - ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H + ( 0-cell-section-Dependent-Globular-Type x) + ( 0-cell-section-Dependent-Globular-Type x')) open section-Dependent-Globular-Type public @@ -60,11 +60,12 @@ module _ 1-cell-section-Dependent-Globular-Type : {x x' : 0-cell-Globular-Type G} - (y : 0-cell-Dependent-Globular-Type H x) - (y' : 0-cell-Dependent-Globular-Type H x') (f : 1-cell-Globular-Type G x x') → - 1-cell-Dependent-Globular-Type H y y' f - 1-cell-section-Dependent-Globular-Type y y' = + 1-cell-Dependent-Globular-Type H + ( 0-cell-section-Dependent-Globular-Type s x) + ( 0-cell-section-Dependent-Globular-Type s x') + ( f) + 1-cell-section-Dependent-Globular-Type = 0-cell-section-Dependent-Globular-Type - ( 1-cell-section-section-Dependent-Globular-Type s y y') + ( 1-cell-section-section-Dependent-Globular-Type s) ``` diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index a3d570b658..bb3fe96207 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -33,98 +33,75 @@ at every level $n$. **Note.** This is not established terminology and may change. -## Definition +## Definitions -### Transitivity structure on a globular type +### The predicate of being a transitive globular type ```agda record - is-transitive-globular-structure - {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) + is-transitive-Globular-Type + {l1 l2 : Level} (G : Globular-Type l1 l2) : UU (l1 ⊔ l2) where coinductive + field - comp-1-cell-is-transitive-globular-structure : - is-transitive' (1-cell-globular-structure G) + comp-1-cell-is-transitive-Globular-Type : + is-transitive' (1-cell-Globular-Type G) - is-transitive-globular-structure-1-cell-is-transitive-globular-structure : - (x y : A) → - is-transitive-globular-structure - ( globular-structure-1-cell-globular-structure G x y) + field + is-transitive-1-cell-globular-type-is-transitive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + is-transitive-Globular-Type + ( 1-cell-globular-type-Globular-Type G x y) -open is-transitive-globular-structure public +open is-transitive-Globular-Type public module _ - {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} - (r : is-transitive-globular-structure G) + {l1 l2 : Level} {G : Globular-Type l1 l2} + (t : is-transitive-Globular-Type G) where - comp-2-cell-is-transitive-globular-structure : - {x y : A} → is-transitive' (2-cell-globular-structure G {x} {y}) - comp-2-cell-is-transitive-globular-structure {x} {y} = - comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( r) - ( x) - ( y)) + comp-2-cell-is-transitive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + is-transitive' (2-cell-Globular-Type G {x} {y}) + comp-2-cell-is-transitive-Globular-Type = + comp-1-cell-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Globular-Type t) + + is-transitive-2-cell-globular-type-is-transitive-Globular-Type : + {x y : 0-cell-Globular-Type G} + {f g : 1-cell-Globular-Type G x y} → + is-transitive-Globular-Type + ( 2-cell-globular-type-Globular-Type G f g) + is-transitive-2-cell-globular-type-is-transitive-Globular-Type = + is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Globular-Type t) - is-transitive-globular-structure-2-cell-is-transitive-globular-structure : - {x y : A} (f g : 1-cell-globular-structure G x y) → - is-transitive-globular-structure - ( globular-structure-2-cell-globular-structure G f g) - is-transitive-globular-structure-2-cell-is-transitive-globular-structure - { x} {y} = - is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( r) - ( x) - ( y)) - - comp-3-cell-is-transitive-globular-structure : - {x y : A} {f g : 1-cell-globular-structure G x y} → - is-transitive' (3-cell-globular-structure G {x} {y} {f} {g}) - comp-3-cell-is-transitive-globular-structure {x} {y} {f} {g} = - comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-2-cell-is-transitive-globular-structure - ( f) - ( g)) -``` - -### The type of transitive globular structures on a type - -```agda -transitive-globular-structure : - {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) -transitive-globular-structure l2 A = - Σ (globular-structure l2 A) (is-transitive-globular-structure) -``` - -### The predicate on globular types of being transitive - -```agda module _ - {l1 l2 : Level} (G : Globular-Type l1 l2) + {l1 l2 : Level} {G : Globular-Type l1 l2} + (t : is-transitive-Globular-Type G) where - is-transitive-Globular-Type : UU (l1 ⊔ l2) - is-transitive-Globular-Type = - is-transitive-globular-structure (globular-structure-0-cell-Globular-Type G) - -is-transitive-globular-type-is-transitive-globular-structure : - {l1 l2 : Level} {A : UU l1} {B : globular-structure l2 A} → - is-transitive-globular-structure B → - is-transitive-Globular-Type (make-Globular-Type B) -comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-type-is-transitive-globular-structure t) = - comp-1-cell-is-transitive-globular-structure t -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-globular-type-is-transitive-globular-structure t) x y = - is-transitive-globular-type-is-transitive-globular-structure - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - t x y) + comp-3-cell-is-transitive-Globular-Type : + {x y : 0-cell-Globular-Type G} + {f g : 1-cell-Globular-Type G x y} → + is-transitive' (3-cell-Globular-Type G {x} {y} {f} {g}) + comp-3-cell-is-transitive-Globular-Type = + comp-2-cell-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Globular-Type t) + + is-transitive-3-cell-globular-type-is-transitive-Globular-Type : + {x y : 0-cell-Globular-Type G} + {f g : 1-cell-Globular-Type G x y} + {s t : 2-cell-Globular-Type G f g} → + is-transitive-Globular-Type + ( 3-cell-globular-type-Globular-Type G s t) + is-transitive-3-cell-globular-type-is-transitive-Globular-Type = + is-transitive-2-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Globular-Type t) ``` -### The type of transitive globular types +### Transitive globular types ```agda record @@ -173,14 +150,14 @@ record comp-1-cell-Transitive-Globular-Type : is-transitive' 1-cell-Transitive-Globular-Type comp-1-cell-Transitive-Globular-Type = - comp-1-cell-is-transitive-globular-structure + comp-1-cell-is-transitive-Globular-Type is-transitive-Transitive-Globular-Type comp-2-cell-Transitive-Globular-Type : {x y : 0-cell-Transitive-Globular-Type} → is-transitive' (2-cell-Transitive-Globular-Type {x} {y}) comp-2-cell-Transitive-Globular-Type = - comp-2-cell-is-transitive-globular-structure + comp-2-cell-is-transitive-Globular-Type is-transitive-Transitive-Globular-Type comp-3-cell-Transitive-Globular-Type : @@ -188,12 +165,76 @@ record {f g : 1-cell-Transitive-Globular-Type x y} → is-transitive' (3-cell-Transitive-Globular-Type {x} {y} {f} {g}) comp-3-cell-Transitive-Globular-Type = - comp-3-cell-is-transitive-globular-structure + comp-3-cell-is-transitive-Globular-Type is-transitive-Transitive-Globular-Type open Transitive-Globular-Type public ``` +### The predicate of being a transitive globular structure + +```agda +record + is-transitive-globular-structure + {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) + where + coinductive + field + comp-1-cell-is-transitive-globular-structure : + is-transitive' (1-cell-globular-structure G) + + is-transitive-globular-structure-1-cell-is-transitive-globular-structure : + (x y : A) → + is-transitive-globular-structure + ( globular-structure-1-cell-globular-structure G x y) + +open is-transitive-globular-structure public + +module _ + {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} + (r : is-transitive-globular-structure G) + where + + comp-2-cell-is-transitive-globular-structure : + {x y : A} → is-transitive' (2-cell-globular-structure G {x} {y}) + comp-2-cell-is-transitive-globular-structure {x} {y} = + comp-1-cell-is-transitive-globular-structure + ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( r) + ( x) + ( y)) + + is-transitive-globular-structure-2-cell-is-transitive-globular-structure : + {x y : A} (f g : 1-cell-globular-structure G x y) → + is-transitive-globular-structure + ( globular-structure-2-cell-globular-structure G f g) + is-transitive-globular-structure-2-cell-is-transitive-globular-structure + { x} {y} = + is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( r) + ( x) + ( y)) + + comp-3-cell-is-transitive-globular-structure : + {x y : A} {f g : 1-cell-globular-structure G x y} → + is-transitive' (3-cell-globular-structure G {x} {y} {f} {g}) + comp-3-cell-is-transitive-globular-structure {x} {y} {f} {g} = + comp-1-cell-is-transitive-globular-structure + ( is-transitive-globular-structure-2-cell-is-transitive-globular-structure + ( f) + ( g)) +``` + +### The type of transitive globular structures on a type + +```agda +transitive-globular-structure : + {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) +transitive-globular-structure l2 A = + Σ (globular-structure l2 A) (is-transitive-globular-structure) +``` + ## Examples ### The transitive globular structure on a type given by its identity types @@ -202,24 +243,20 @@ open Transitive-Globular-Type public is-transitive-globular-type-Type : {l : Level} (A : UU l) → is-transitive-Globular-Type (globular-type-Type A) -comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-type-Type A) q p = - p ∙ q -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-globular-type-Type A) x y = +comp-1-cell-is-transitive-Globular-Type + ( is-transitive-globular-type-Type A) q p = p ∙ q +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-globular-type-Type A) {x} {y} = is-transitive-globular-type-Type (x = y) is-transitive-globular-structure-Id : {l : Level} (A : UU l) → is-transitive-globular-structure (globular-structure-Id A) -is-transitive-globular-structure-Id A = - λ where - .comp-1-cell-is-transitive-globular-structure - p q → - q ∙ p - .is-transitive-globular-structure-1-cell-is-transitive-globular-structure - x y → - is-transitive-globular-structure-Id (x = y) +comp-1-cell-is-transitive-globular-structure + ( is-transitive-globular-structure-Id A) q p = p ∙ q +is-transitive-globular-structure-1-cell-is-transitive-globular-structure + ( is-transitive-globular-structure-Id A) x y = + is-transitive-globular-structure-Id (x = y) transitive-globular-structure-Id : {l : Level} (A : UU l) → transitive-globular-structure l A diff --git a/src/trees/equivalences-directed-trees.lagda.md b/src/trees/equivalences-directed-trees.lagda.md index 4b3dbd9ecb..196cd3673f 100644 --- a/src/trees/equivalences-directed-trees.lagda.md +++ b/src/trees/equivalences-directed-trees.lagda.md @@ -84,10 +84,10 @@ module _ (e : equiv-Directed-Tree S T) where - equiv-node-equiv-Directed-Tree : + node-equiv-equiv-Directed-Tree : node-Directed-Tree S ≃ node-Directed-Tree T - equiv-node-equiv-Directed-Tree = - equiv-vertex-equiv-Directed-Graph + node-equiv-equiv-Directed-Tree = + vertex-equiv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( e) @@ -100,9 +100,9 @@ module _ ( graph-Directed-Tree T) ( e) - is-equiv-node-equiv-Directed-Tree : is-equiv node-equiv-Directed-Tree - is-equiv-node-equiv-Directed-Tree = - is-equiv-vertex-equiv-Directed-Graph + is-node-equiv-equiv-Directed-Tree : is-equiv node-equiv-Directed-Tree + is-node-equiv-equiv-Directed-Tree = + is-vertex-equiv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( e) @@ -131,14 +131,14 @@ module _ ( graph-Directed-Tree T) ( e) - equiv-edge-equiv-Directed-Tree : + edge-equiv-equiv-Directed-Tree : (x y : node-Directed-Tree S) → edge-Directed-Tree S x y ≃ edge-Directed-Tree T ( node-equiv-Directed-Tree x) ( node-equiv-Directed-Tree y) - equiv-edge-equiv-Directed-Tree = - equiv-edge-equiv-Directed-Graph + edge-equiv-equiv-Directed-Tree = + edge-equiv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( e) @@ -155,10 +155,10 @@ module _ ( graph-Directed-Tree T) ( e) - is-equiv-edge-equiv-Directed-Tree : + is-edge-equiv-equiv-Directed-Tree : (x y : node-Directed-Tree S) → is-equiv (edge-equiv-Directed-Tree x y) - is-equiv-edge-equiv-Directed-Tree = - is-equiv-edge-equiv-Directed-Graph + is-edge-equiv-equiv-Directed-Tree = + is-edge-equiv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( e) @@ -186,8 +186,8 @@ module _ equiv-direct-predecessor-equiv-Directed-Tree x = equiv-Σ ( λ y → edge-Directed-Tree T y (node-equiv-Directed-Tree x)) - ( equiv-node-equiv-Directed-Tree) - ( λ y → equiv-edge-equiv-Directed-Tree y x) + ( node-equiv-equiv-Directed-Tree) + ( λ y → edge-equiv-equiv-Directed-Tree y x) direct-predecessor-equiv-Directed-Tree : (x : node-Directed-Tree S) → @@ -251,7 +251,7 @@ module _ equiv-node-comp-equiv-Directed-Tree : node-Directed-Tree R ≃ node-Directed-Tree T equiv-node-comp-equiv-Directed-Tree = - equiv-node-equiv-Directed-Tree R T comp-equiv-Directed-Tree + node-equiv-equiv-Directed-Tree R T comp-equiv-Directed-Tree node-comp-equiv-Directed-Tree : node-Directed-Tree R → node-Directed-Tree T @@ -265,7 +265,7 @@ module _ ( node-comp-equiv-Directed-Tree x) ( node-comp-equiv-Directed-Tree y) equiv-edge-comp-equiv-Directed-Tree = - equiv-edge-equiv-Directed-Tree R T comp-equiv-Directed-Tree + edge-equiv-equiv-Directed-Tree R T comp-equiv-Directed-Tree edge-comp-equiv-Directed-Tree : (x y : node-Directed-Tree R) → @@ -405,7 +405,7 @@ module _ preserves-root-equiv-Directed-Tree = preserves-root-is-equiv-node-hom-Directed-Tree S T ( hom-equiv-Directed-Tree S T e) - ( is-equiv-node-equiv-Directed-Tree S T e) + ( is-node-equiv-equiv-Directed-Tree S T e) rooted-hom-equiv-Directed-Tree : rooted-hom-Directed-Tree S T diff --git a/src/trees/equivalences-enriched-directed-trees.lagda.md b/src/trees/equivalences-enriched-directed-trees.lagda.md index b4ee4e1da9..e77aef9f75 100644 --- a/src/trees/equivalences-enriched-directed-trees.lagda.md +++ b/src/trees/equivalences-enriched-directed-trees.lagda.md @@ -136,10 +136,10 @@ module _ ( directed-tree-Enriched-Directed-Tree A B T) equiv-directed-tree-equiv-Enriched-Directed-Tree = pr1 e - equiv-node-equiv-Enriched-Directed-Tree : + node-equiv-equiv-Enriched-Directed-Trhee : node-Enriched-Directed-Tree A B S ≃ node-Enriched-Directed-Tree A B T - equiv-node-equiv-Enriched-Directed-Tree = - equiv-node-equiv-Directed-Tree + node-equiv-equiv-Enriched-Directed-Trhee = + node-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B S) ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-equiv-Enriched-Directed-Tree) @@ -152,14 +152,14 @@ module _ ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-equiv-Enriched-Directed-Tree) - equiv-edge-equiv-Enriched-Directed-Tree : + edge-equiv-equiv-Enriched-Directed-Trhee : (x y : node-Enriched-Directed-Tree A B S) → edge-Enriched-Directed-Tree A B S x y ≃ edge-Enriched-Directed-Tree A B T ( node-equiv-Enriched-Directed-Tree x) ( node-equiv-Enriched-Directed-Tree y) - equiv-edge-equiv-Enriched-Directed-Tree = - equiv-edge-equiv-Directed-Tree + edge-equiv-equiv-Enriched-Directed-Trhee = + edge-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B S) ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-equiv-Enriched-Directed-Tree) @@ -299,7 +299,7 @@ module _ node-Enriched-Directed-Tree A B R ≃ node-Enriched-Directed-Tree A B T equiv-node-comp-equiv-Enriched-Directed-Tree = - equiv-node-equiv-Directed-Tree + node-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B R) ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-comp-equiv-Enriched-Directed-Tree) @@ -320,7 +320,7 @@ module _ ( node-comp-equiv-Enriched-Directed-Tree x) ( node-comp-equiv-Enriched-Directed-Tree y) equiv-edge-comp-equiv-Enriched-Directed-Tree = - equiv-edge-equiv-Directed-Tree + edge-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B R) ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-comp-equiv-Enriched-Directed-Tree) diff --git a/src/trees/functoriality-fiber-directed-tree.lagda.md b/src/trees/functoriality-fiber-directed-tree.lagda.md index 3f800be9d9..b8e4bc9015 100644 --- a/src/trees/functoriality-fiber-directed-tree.lagda.md +++ b/src/trees/functoriality-fiber-directed-tree.lagda.md @@ -85,7 +85,7 @@ module _ equiv-node-fiber-equiv-Directed-Tree = equiv-Σ ( λ y → walk-Directed-Tree T y (node-equiv-Directed-Tree S T f x)) - ( equiv-node-equiv-Directed-Tree S T f) + ( node-equiv-equiv-Directed-Tree S T f) ( λ y → equiv-walk-equiv-Directed-Tree S T f {y} {x}) node-fiber-equiv-Directed-Tree : @@ -106,7 +106,7 @@ module _ ( λ e → walk-equiv-Directed-Tree S T f v = cons-walk-Directed-Graph e (walk-equiv-Directed-Tree S T f w)) - ( equiv-edge-equiv-Directed-Tree S T f y z) + ( edge-equiv-equiv-Directed-Tree S T f y z) ( λ e → equiv-ap ( equiv-walk-equiv-Directed-Tree S T f) diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index d840c47f62..aaeb0d72f8 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -17,7 +17,7 @@ open import foundation.universe-levels open import structured-types.globular-maps open import structured-types.globular-types open import structured-types.large-globular-types -open import structured-types.maps-large-globular-types +open import structured-types.large-globular-maps open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-large-wild-higher-precategories @@ -32,8 +32,12 @@ A {{#concept "map" Disambiguation="between noncoherent large wild higher precategories" Agda=map-Noncoherent-Large-Wild-Higher-Precategory}} `f` between [noncoherent large wild higher precategories](wild-category-theory.noncoherent-large-wild-higher-precategories.md) -`𝒜` and `ℬ` consists of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every -pair of $n$-morphisms `f` and `g`, a map of $(n+1)$-morphisms +`𝒜` and `ℬ` is a [large globular map](structured-types.large-globular-maps.md) +between their underlying +[large globular-types](structured-types.large-globular-types.md). More +specifically, maps between noncoherent large wild higher precategories consist +of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every pair of $n$-morphisms +`f` and `g`, a map of $(n+1)$-morphisms ```text Fₙ₊₁ : (𝑛+1)-hom 𝒞 f g → (𝑛+1)-hom 𝒟 (Fₙ f) (Fₙ g). @@ -51,29 +55,40 @@ that in one sense preserves this additional structure, see ### Maps between noncoherent large wild higher precategories ```agda -record - map-Noncoherent-Large-Wild-Higher-Precategory - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) - (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) - (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω +map-Noncoherent-Large-Wild-Higher-Precategory : + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) → UUω +map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ = + large-globular-map δ + ( large-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜) + ( large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ) + +module _ + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) + (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) where - - field - obj-map-Noncoherent-Large-Wild-Higher-Precategory : - {l : Level} → - obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → - obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) - - field - hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → - globular-map - ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) - ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y)) + + obj-map-Noncoherent-Large-Wild-Higher-Precategory : + {l : Level} → + obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → + obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) + obj-map-Noncoherent-Large-Wild-Higher-Precategory = + 0-cell-large-globular-map F + + hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + globular-map + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y)) + hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory = + 1-cell-globular-map-large-globular-map F hom-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -84,8 +99,7 @@ record ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y) hom-map-Noncoherent-Large-Wild-Higher-Precategory = - 0-cell-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) + 1-cell-large-globular-map F 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -97,17 +111,7 @@ record ( hom-map-Noncoherent-Large-Wild-Higher-Precategory f) ( hom-map-Noncoherent-Large-Wild-Higher-Precategory g) 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory = - 1-cell-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) - -open map-Noncoherent-Large-Wild-Higher-Precategory public - -module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) - where + 2-cell-large-globular-map F hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -120,67 +124,62 @@ module _ ( y)) ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ( ℬ) - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F x) - ( obj-map-Noncoherent-Large-Wild-Higher-Precategory F y)) - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory - x y = - λ where - .obj-map-Noncoherent-Wild-Higher-Precategory → - hom-map-Noncoherent-Large-Wild-Higher-Precategory F - .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - {!!} + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y)) + hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory x y = + {!!} {- λ where .obj-map-Noncoherent-Wild-Higher-Precategory → hom-map-Noncoherent-Large-Wild-Higher-Precategory - .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → + .hom-globular-map-map-Noncoherent-Wild-Higher-Precategory → 1-cell-globular-map-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory) + ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory) -} ``` -### The identity map on a noncoherent large wild higher precategory - -```agda -module _ - {α : Level → Level} {β : Level → Level → Level} - (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) - where - - id-map-Noncoherent-Large-Wild-Higher-Precategory : - map-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 - id-map-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .obj-map-Noncoherent-Large-Wild-Higher-Precategory → - id - .hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory → - id-globular-map _ -``` - -### Composition of maps of noncoherent large wild higher precategories - -```agda -module _ - {α1 α2 α3 : Level → Level} - {β1 β2 β3 : Level → Level → Level} - {δ1 δ2 : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} - (G : map-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) - (F : map-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) - where - - comp-map-Noncoherent-Large-Wild-Higher-Precategory : - map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 - comp-map-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .obj-map-Noncoherent-Large-Wild-Higher-Precategory → - obj-map-Noncoherent-Large-Wild-Higher-Precategory G ∘ - obj-map-Noncoherent-Large-Wild-Higher-Precategory F - .hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory → - comp-globular-map - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory G) - ( hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory F) -``` +-- ### The identity map on a noncoherent large wild higher precategory + +-- ```agda +-- module _ +-- {α : Level → Level} {β : Level → Level → Level} +-- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) +-- where + +-- id-map-Noncoherent-Large-Wild-Higher-Precategory : +-- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 +-- id-map-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .obj-map-Noncoherent-Large-Wild-Higher-Precategory → +-- id +-- .hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory → +-- id-globular-map _ +-- ``` + +-- ### Composition of maps of noncoherent large wild higher precategories + +-- ```agda +-- module _ +-- {α1 α2 α3 : Level → Level} +-- {β1 β2 β3 : Level → Level → Level} +-- {δ1 δ2 : Level → Level} +-- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} +-- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} +-- {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} +-- (G : map-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) +-- (F : map-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) +-- where + +-- comp-map-Noncoherent-Large-Wild-Higher-Precategory : +-- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 +-- comp-map-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .obj-map-Noncoherent-Large-Wild-Higher-Precategory → +-- obj-map-Noncoherent-Large-Wild-Higher-Precategory G ∘ +-- obj-map-Noncoherent-Large-Wild-Higher-Precategory F +-- .hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory → +-- comp-globular-map +-- ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory G) +-- ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory F) +-- ``` diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 61f35bfaac..01f7476660 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -28,7 +28,7 @@ A {{#concept "map" Disambiguation="between noncoherent wild higher precategories" Agda=map-Noncoherent-Wild-Higher-Precategory}} `f` between [noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) -`𝒜` and `ℬ` consists of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every +`𝒜` and `ℬ` is a [globular map](structured-types.globular-maps.md) between their underlying [globular types](structured-types.globular-types.md). More specifically, a map `F` between noncoherent wild higher precategories consists of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every pair of $n$-morphisms `f` and `g`, a map of $(n+1)$-morphisms ```text @@ -47,43 +47,47 @@ sense preserves this additional structure, see ### Maps between noncoherent wild higher precategories ```agda -record - map-Noncoherent-Wild-Higher-Precategory +map-Noncoherent-Wild-Higher-Precategory : {l1 l2 l3 l4 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) - (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) - where - field - obj-map-Noncoherent-Wild-Higher-Precategory : - obj-Noncoherent-Wild-Higher-Precategory 𝒜 → - obj-Noncoherent-Wild-Higher-Precategory ℬ - - hom-globular-type-map-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → - globular-map - ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) - ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ - ( obj-map-Noncoherent-Wild-Higher-Precategory x) - ( obj-map-Noncoherent-Wild-Higher-Precategory y)) - -open map-Noncoherent-Wild-Higher-Precategory public + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) +map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ = + globular-map + ( globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( globular-type-Noncoherent-Wild-Higher-Precategory ℬ) module _ {l1 l2 l3 l4 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where + + obj-map-Noncoherent-Wild-Higher-Precategory : + obj-Noncoherent-Wild-Higher-Precategory 𝒜 → + obj-Noncoherent-Wild-Higher-Precategory ℬ + obj-map-Noncoherent-Wild-Higher-Precategory = + 0-cell-globular-map F + + hom-globular-map-map-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → + globular-map + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ + ( obj-map-Noncoherent-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Wild-Higher-Precategory y)) + hom-globular-map-map-Noncoherent-Wild-Higher-Precategory = + 1-cell-globular-map-globular-map F hom-map-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y → hom-Noncoherent-Wild-Higher-Precategory ℬ - ( obj-map-Noncoherent-Wild-Higher-Precategory F x) - ( obj-map-Noncoherent-Wild-Higher-Precategory F y) + ( obj-map-Noncoherent-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Wild-Higher-Precategory y) hom-map-Noncoherent-Wild-Higher-Precategory = 0-cell-globular-map - ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) + ( hom-globular-map-map-Noncoherent-Wild-Higher-Precategory) 2-hom-map-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} @@ -94,7 +98,7 @@ module _ ( hom-map-Noncoherent-Wild-Higher-Precategory g) 2-hom-map-Noncoherent-Wild-Higher-Precategory = 1-cell-globular-map - ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) + ( hom-globular-map-map-Noncoherent-Wild-Higher-Precategory) hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory : (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → @@ -105,16 +109,10 @@ module _ ( y)) ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory ( ℬ) - ( obj-map-Noncoherent-Wild-Higher-Precategory F x) - ( obj-map-Noncoherent-Wild-Higher-Precategory F y)) - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory - x y = - λ where - .obj-map-Noncoherent-Wild-Higher-Precategory → - hom-map-Noncoherent-Wild-Higher-Precategory - .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - 1-cell-globular-map-globular-map - ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) + ( obj-map-Noncoherent-Wild-Higher-Precategory x) + ( obj-map-Noncoherent-Wild-Higher-Precategory y)) + hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory x y = + 1-cell-globular-map-globular-map F ``` ### The identity map on a noncoherent wild higher precategory @@ -127,11 +125,7 @@ module _ id-map-Noncoherent-Wild-Higher-Precategory : map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 id-map-Noncoherent-Wild-Higher-Precategory = - λ where - .obj-map-Noncoherent-Wild-Higher-Precategory → - id - .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - id-globular-map _ + id-globular-map _ ``` ### Composition of maps between noncoherent wild higher precategories @@ -149,12 +143,5 @@ module _ comp-map-Noncoherent-Wild-Higher-Precategory : map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 comp-map-Noncoherent-Wild-Higher-Precategory = - λ where - .obj-map-Noncoherent-Wild-Higher-Precategory → - obj-map-Noncoherent-Wild-Higher-Precategory G ∘ - obj-map-Noncoherent-Wild-Higher-Precategory F - .hom-globular-type-map-Noncoherent-Wild-Higher-Precategory → - comp-globular-map - ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory G) - ( hom-globular-type-map-Noncoherent-Wild-Higher-Precategory F) + comp-globular-map G F ``` diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index 513fff7914..9b09b13b0f 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -83,7 +83,7 @@ record ```agda field - large-globular-type-Noncoherent-Large-Wild-Precategory : + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory : Large-Globular-Type α β ``` @@ -93,7 +93,7 @@ record obj-Noncoherent-Large-Wild-Higher-Precategory : (l : Level) → UU (α l) obj-Noncoherent-Large-Wild-Higher-Precategory = 0-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular type of morphisms between two objects in a noncoherent large wild @@ -107,7 +107,7 @@ record Globular-Type (β l1 l2) (β l1 l2) hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = 1-cell-globular-type-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -116,7 +116,7 @@ record UU (β l1 l2) hom-Noncoherent-Large-Wild-Higher-Precategory = 1-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular structure on the type of objects of a noncoherent large wild @@ -127,7 +127,7 @@ record large-globular-structure β obj-Noncoherent-Large-Wild-Higher-Precategory globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory = large-globular-structure-0-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular type of 2-morphisms is a noncoherent large wild higher @@ -142,7 +142,7 @@ record Globular-Type (β l1 l2) (β l1 l2) 2-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = 2-cell-globular-type-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory 2-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -151,7 +151,7 @@ record (f g : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → UU (β l1 l2) 2-hom-Noncoherent-Large-Wild-Higher-Precategory = 2-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular structure on the type of morphisms between two objects in a @@ -167,7 +167,7 @@ record ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory = globular-structure-1-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular type of 3-morphisms in a noncoherent large wild higher @@ -183,7 +183,7 @@ record Globular-Type (β l1 l2) (β l1 l2) 3-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = 3-cell-globular-type-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory 3-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} @@ -212,7 +212,7 @@ record ( 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g) globular-structure-2-hom-Noncoherent-Large-Wild-Higher-Precategory = globular-structure-2-cell-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The structure of identity morphisms in a noncoherent large wild higher @@ -222,7 +222,7 @@ record field id-structure-Noncoherent-Large-Wild-Higher-Precategory : is-reflexive-Large-Globular-Type - large-globular-type-Noncoherent-Large-Wild-Precategory + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory id-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} → diff --git a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md index 47d0ad927f..6aebcab9c9 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -69,14 +69,8 @@ the transitivity operations are branded as _composition of morphisms_. ```agda Noncoherent-Wild-Higher-Precategory : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) Noncoherent-Wild-Higher-Precategory l1 l2 = - Σ ( UU l1) - ( λ obj-Noncoherent-Wild-Higher-Precategory → - Σ ( globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory) - ( λ hom-globular-structure-Noncoherent-Wild-Higher-Precategory → - ( is-reflexive-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)) × - ( is-transitive-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)))) + Σ ( Globular-Type l1 l2) + ( λ X → is-reflexive-Globular-Type X × is-transitive-Globular-Type X) make-Noncoherent-Wild-Higher-Precategory : {l1 l2 : Level} → @@ -89,151 +83,151 @@ make-Noncoherent-Wild-Higher-Precategory : hom-globular-structure-Noncoherent-Wild-Higher-Precategory) → Noncoherent-Wild-Higher-Precategory l1 l2 make-Noncoherent-Wild-Higher-Precategory obj hom id comp = - ( obj , hom , id , comp) + ( make-Globular-Type hom , id , {!comp!}) {-# INLINE make-Noncoherent-Wild-Higher-Precategory #-} -module _ - {l1 l2 : Level} (𝒞 : Noncoherent-Wild-Higher-Precategory l1 l2) - where - - obj-Noncoherent-Wild-Higher-Precategory : UU l1 - obj-Noncoherent-Wild-Higher-Precategory = pr1 𝒞 - - hom-globular-structure-Noncoherent-Wild-Higher-Precategory : - globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory - hom-globular-structure-Noncoherent-Wild-Higher-Precategory = pr1 (pr2 𝒞) - - id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : - is-reflexive-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = - pr1 (pr2 (pr2 𝒞)) - - comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : - is-transitive-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = - pr2 (pr2 (pr2 𝒞)) - - globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2 - globular-type-Noncoherent-Wild-Higher-Precategory = - make-Globular-Type - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) -``` - -We record some common projections for noncoherent wild higher precategories. - -```agda - hom-Noncoherent-Wild-Higher-Precategory : - obj-Noncoherent-Wild-Higher-Precategory → - obj-Noncoherent-Wild-Higher-Precategory → - UU l2 - hom-Noncoherent-Wild-Higher-Precategory = - 1-cell-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - id-hom-Noncoherent-Wild-Higher-Precategory : - {x : obj-Noncoherent-Wild-Higher-Precategory} → - hom-Noncoherent-Wild-Higher-Precategory x x - id-hom-Noncoherent-Wild-Higher-Precategory = - refl-1-cell-is-reflexive-globular-structure - ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - comp-hom-Noncoherent-Wild-Higher-Precategory : - {x y z : obj-Noncoherent-Wild-Higher-Precategory} → - hom-Noncoherent-Wild-Higher-Precategory y z → - hom-Noncoherent-Wild-Higher-Precategory x y → - hom-Noncoherent-Wild-Higher-Precategory x z - comp-hom-Noncoherent-Wild-Higher-Precategory = - comp-1-cell-is-transitive-globular-structure - ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - hom-globular-type-Noncoherent-Wild-Higher-Precategory : - (x y : obj-Noncoherent-Wild-Higher-Precategory) → - Globular-Type l2 l2 - hom-globular-type-Noncoherent-Wild-Higher-Precategory = - globular-type-1-cell-globular-structure - hom-globular-structure-Noncoherent-Wild-Higher-Precategory - - hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : - (x y : obj-Noncoherent-Wild-Higher-Precategory) → - Noncoherent-Wild-Higher-Precategory l2 l2 - hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - x y = - make-Noncoherent-Wild-Higher-Precategory - ( hom-Noncoherent-Wild-Higher-Precategory x y) - ( globular-structure-1-cell-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - ( x) - ( y)) - ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - ( x) - ( y)) - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - ( x) - ( y)) -``` - -```agda - 2-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} → - hom-Noncoherent-Wild-Higher-Precategory x y → - hom-Noncoherent-Wild-Higher-Precategory x y → - UU l2 - 2-hom-Noncoherent-Wild-Higher-Precategory = - 2-cell-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - id-2-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} - {f : hom-Noncoherent-Wild-Higher-Precategory x y} → - 2-hom-Noncoherent-Wild-Higher-Precategory f f - id-2-hom-Noncoherent-Wild-Higher-Precategory = - refl-2-cell-is-reflexive-globular-structure - ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - comp-2-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} - {f g h : hom-Noncoherent-Wild-Higher-Precategory x y} → - 2-hom-Noncoherent-Wild-Higher-Precategory g h → - 2-hom-Noncoherent-Wild-Higher-Precategory f g → - 2-hom-Noncoherent-Wild-Higher-Precategory f h - comp-2-hom-Noncoherent-Wild-Higher-Precategory = - comp-2-cell-is-transitive-globular-structure - ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) -``` - -```agda - 3-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} - {f g : hom-Noncoherent-Wild-Higher-Precategory x y} → - 2-hom-Noncoherent-Wild-Higher-Precategory f g → - 2-hom-Noncoherent-Wild-Higher-Precategory f g → - UU l2 - 3-hom-Noncoherent-Wild-Higher-Precategory = - 3-cell-globular-structure - ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - id-3-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} - {f g : hom-Noncoherent-Wild-Higher-Precategory x y} - {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → - 3-hom-Noncoherent-Wild-Higher-Precategory H H - id-3-hom-Noncoherent-Wild-Higher-Precategory = - refl-3-cell-is-reflexive-globular-structure - ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - - comp-3-hom-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory} - {f g : hom-Noncoherent-Wild-Higher-Precategory x y} - {H K L : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → - 3-hom-Noncoherent-Wild-Higher-Precategory K L → - 3-hom-Noncoherent-Wild-Higher-Precategory H K → - 3-hom-Noncoherent-Wild-Higher-Precategory H L - comp-3-hom-Noncoherent-Wild-Higher-Precategory = - comp-3-cell-is-transitive-globular-structure - ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) -``` +-- module _ +-- {l1 l2 : Level} (𝒞 : Noncoherent-Wild-Higher-Precategory l1 l2) +-- where + +-- obj-Noncoherent-Wild-Higher-Precategory : UU l1 +-- obj-Noncoherent-Wild-Higher-Precategory = pr1 𝒞 + +-- hom-globular-structure-Noncoherent-Wild-Higher-Precategory : +-- globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory +-- hom-globular-structure-Noncoherent-Wild-Higher-Precategory = pr1 (pr2 𝒞) + +-- id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : +-- is-reflexive-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = +-- pr1 (pr2 (pr2 𝒞)) + +-- comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : +-- is-transitive-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = +-- pr2 (pr2 (pr2 𝒞)) + +-- globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2 +-- globular-type-Noncoherent-Wild-Higher-Precategory = +-- make-Globular-Type +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ``` + +-- We record some common projections for noncoherent wild higher precategories. + +-- ```agda +-- hom-Noncoherent-Wild-Higher-Precategory : +-- obj-Noncoherent-Wild-Higher-Precategory → +-- obj-Noncoherent-Wild-Higher-Precategory → +-- UU l2 +-- hom-Noncoherent-Wild-Higher-Precategory = +-- 1-cell-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- id-hom-Noncoherent-Wild-Higher-Precategory : +-- {x : obj-Noncoherent-Wild-Higher-Precategory} → +-- hom-Noncoherent-Wild-Higher-Precategory x x +-- id-hom-Noncoherent-Wild-Higher-Precategory = +-- refl-1-cell-is-reflexive-globular-structure +-- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- comp-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y z : obj-Noncoherent-Wild-Higher-Precategory} → +-- hom-Noncoherent-Wild-Higher-Precategory y z → +-- hom-Noncoherent-Wild-Higher-Precategory x y → +-- hom-Noncoherent-Wild-Higher-Precategory x z +-- comp-hom-Noncoherent-Wild-Higher-Precategory = +-- comp-1-cell-is-transitive-globular-structure +-- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- hom-globular-type-Noncoherent-Wild-Higher-Precategory : +-- (x y : obj-Noncoherent-Wild-Higher-Precategory) → +-- Globular-Type l2 l2 +-- hom-globular-type-Noncoherent-Wild-Higher-Precategory = +-- globular-type-1-cell-globular-structure +-- hom-globular-structure-Noncoherent-Wild-Higher-Precategory + +-- hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : +-- (x y : obj-Noncoherent-Wild-Higher-Precategory) → +-- Noncoherent-Wild-Higher-Precategory l2 l2 +-- hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- x y = +-- make-Noncoherent-Wild-Higher-Precategory +-- ( hom-Noncoherent-Wild-Higher-Precategory x y) +-- ( globular-structure-1-cell-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ( x) +-- ( y)) +-- ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure +-- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ( x) +-- ( y)) +-- ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure +-- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ( x) +-- ( y)) +-- ``` + +-- ```agda +-- 2-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} → +-- hom-Noncoherent-Wild-Higher-Precategory x y → +-- hom-Noncoherent-Wild-Higher-Precategory x y → +-- UU l2 +-- 2-hom-Noncoherent-Wild-Higher-Precategory = +-- 2-cell-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- id-2-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} +-- {f : hom-Noncoherent-Wild-Higher-Precategory x y} → +-- 2-hom-Noncoherent-Wild-Higher-Precategory f f +-- id-2-hom-Noncoherent-Wild-Higher-Precategory = +-- refl-2-cell-is-reflexive-globular-structure +-- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- comp-2-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} +-- {f g h : hom-Noncoherent-Wild-Higher-Precategory x y} → +-- 2-hom-Noncoherent-Wild-Higher-Precategory g h → +-- 2-hom-Noncoherent-Wild-Higher-Precategory f g → +-- 2-hom-Noncoherent-Wild-Higher-Precategory f h +-- comp-2-hom-Noncoherent-Wild-Higher-Precategory = +-- comp-2-cell-is-transitive-globular-structure +-- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ``` + +-- ```agda +-- 3-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} +-- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} → +-- 2-hom-Noncoherent-Wild-Higher-Precategory f g → +-- 2-hom-Noncoherent-Wild-Higher-Precategory f g → +-- UU l2 +-- 3-hom-Noncoherent-Wild-Higher-Precategory = +-- 3-cell-globular-structure +-- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- id-3-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} +-- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} +-- {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → +-- 3-hom-Noncoherent-Wild-Higher-Precategory H H +-- id-3-hom-Noncoherent-Wild-Higher-Precategory = +-- refl-3-cell-is-reflexive-globular-structure +-- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) + +-- comp-3-hom-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory} +-- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} +-- {H K L : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → +-- 3-hom-Noncoherent-Wild-Higher-Precategory K L → +-- 3-hom-Noncoherent-Wild-Higher-Precategory H K → +-- 3-hom-Noncoherent-Wild-Higher-Precategory H L +-- comp-3-hom-Noncoherent-Wild-Higher-Precategory = +-- comp-3-cell-is-transitive-globular-structure +-- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) +-- ``` From 45f2d8b03d34f16a32afbec54eb5bc3458878713 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 17 Oct 2024 17:43:43 -0400 Subject: [PATCH 16/42] refactor reflexive and transitive globular types --- .../large-reflexive-globular-types.lagda.md | 3 +- .../reflexive-globular-maps.lagda.md | 2 +- .../reflexive-globular-types.lagda.md | 23 ++ .../transitive-globular-types.lagda.md | 68 ++-- ...oherent-wild-higher-precategories.lagda.md | 318 +++++++++--------- 5 files changed, 217 insertions(+), 197 deletions(-) diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index c43c040ca0..5e2353f958 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -56,7 +56,6 @@ record is-reflexive (2-cell-Large-Globular-Type A {x = x} {y = y}) refl-1-cell-is-reflexive-Large-Globular-Type = is-reflexive-1-cell-is-reflexive-Globular-Type - ( 1-cell-globular-type-Large-Globular-Type A _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) refl-2-cell-is-reflexive-Large-Globular-Type : @@ -291,7 +290,7 @@ module _ 2-cell-large-globular-structure G f f refl-2-cell-is-reflexive-large-globular-structure {x = x} {y} {f} = is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure + ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type ( r) ( x) ( y)) diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index 3a32a5e6fc..3266ba4a95 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -23,7 +23,7 @@ open import structured-types.reflexive-globular-types A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped -with a family of 2-cells +with a family of [identifications](foundation-core.identity-types.md) ```text (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index e03584ccc9..6e9b018ce9 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -52,6 +52,12 @@ module _ {l1 l2 : Level} (G : Globular-Type l1 l2) (r : is-reflexive-Globular-Type G) where + + refl-1-cell-is-reflexive-Globular-Type : + {x : 0-cell-Globular-Type G} → + 1-cell-Globular-Type G x x + refl-1-cell-is-reflexive-Globular-Type = + is-reflexive-1-cell-is-reflexive-Globular-Type r _ is-reflexive-2-cell-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → @@ -60,6 +66,14 @@ module _ is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) + refl-2-cell-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} {f : 1-cell-Globular-Type G x y} → + 2-cell-Globular-Type G f f + refl-2-cell-is-reflexive-Globular-Type = + is-reflexive-1-cell-is-reflexive-Globular-Type + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) + ( _) + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → {f g : 1-cell-Globular-Type G x y} → @@ -83,6 +97,15 @@ module _ ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) + refl-3-cell-is-reflexive-Globular-Type : + {x y : 0-cell-Globular-Type G} → + {f g : 1-cell-Globular-Type G x y} → + {s : 2-cell-Globular-Type G f g} → 3-cell-Globular-Type G s s + refl-3-cell-is-reflexive-Globular-Type = + refl-2-cell-is-reflexive-Globular-Type + ( 1-cell-globular-type-Globular-Type G _ _) + ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) + is-reflexive-3-cell-globular-type-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → {f g : 1-cell-Globular-Type G x y} diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index bb3fe96207..af9931b7d5 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -174,56 +174,45 @@ open Transitive-Globular-Type public ### The predicate of being a transitive globular structure ```agda -record - is-transitive-globular-structure - {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) - where - coinductive - field - comp-1-cell-is-transitive-globular-structure : - is-transitive' (1-cell-globular-structure G) - - is-transitive-globular-structure-1-cell-is-transitive-globular-structure : - (x y : A) → - is-transitive-globular-structure - ( globular-structure-1-cell-globular-structure G x y) - -open is-transitive-globular-structure public - +is-transitive-globular-structure : + {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) → UU (l1 ⊔ l2) +is-transitive-globular-structure G = + is-transitive-Globular-Type (make-Globular-Type G) + module _ {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} - (r : is-transitive-globular-structure G) + (t : is-transitive-globular-structure G) where + comp-1-cell-is-transitive-globular-structure : + is-transitive' (1-cell-globular-structure G) + comp-1-cell-is-transitive-globular-structure = + comp-1-cell-is-transitive-Globular-Type t + + is-transitive-globular-structure-1-cell-is-transitive-globular-structure : + {x y : A} → + is-transitive-globular-structure + ( globular-structure-1-cell-globular-structure G x y) + is-transitive-globular-structure-1-cell-is-transitive-globular-structure = + is-transitive-1-cell-globular-type-is-transitive-Globular-Type t + comp-2-cell-is-transitive-globular-structure : {x y : A} → is-transitive' (2-cell-globular-structure G {x} {y}) comp-2-cell-is-transitive-globular-structure {x} {y} = - comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( r) - ( x) - ( y)) + comp-2-cell-is-transitive-Globular-Type t is-transitive-globular-structure-2-cell-is-transitive-globular-structure : - {x y : A} (f g : 1-cell-globular-structure G x y) → + {x y : A} {f g : 1-cell-globular-structure G x y} → is-transitive-globular-structure ( globular-structure-2-cell-globular-structure G f g) - is-transitive-globular-structure-2-cell-is-transitive-globular-structure - { x} {y} = - is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( r) - ( x) - ( y)) + is-transitive-globular-structure-2-cell-is-transitive-globular-structure = + is-transitive-2-cell-globular-type-is-transitive-Globular-Type t comp-3-cell-is-transitive-globular-structure : {x y : A} {f g : 1-cell-globular-structure G x y} → is-transitive' (3-cell-globular-structure G {x} {y} {f} {g}) - comp-3-cell-is-transitive-globular-structure {x} {y} {f} {g} = - comp-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-2-cell-is-transitive-globular-structure - ( f) - ( g)) + comp-3-cell-is-transitive-globular-structure = + comp-3-cell-is-transitive-Globular-Type t ``` ### The type of transitive globular structures on a type @@ -244,7 +233,8 @@ is-transitive-globular-type-Type : {l : Level} (A : UU l) → is-transitive-Globular-Type (globular-type-Type A) comp-1-cell-is-transitive-Globular-Type - ( is-transitive-globular-type-Type A) q p = p ∙ q + ( is-transitive-globular-type-Type A) q p = + p ∙ q is-transitive-1-cell-globular-type-is-transitive-Globular-Type ( is-transitive-globular-type-Type A) {x} {y} = is-transitive-globular-type-Type (x = y) @@ -252,10 +242,10 @@ is-transitive-1-cell-globular-type-is-transitive-Globular-Type is-transitive-globular-structure-Id : {l : Level} (A : UU l) → is-transitive-globular-structure (globular-structure-Id A) -comp-1-cell-is-transitive-globular-structure +comp-1-cell-is-transitive-Globular-Type ( is-transitive-globular-structure-Id A) q p = p ∙ q -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-globular-structure-Id A) x y = +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-globular-structure-Id A) {x} {y} = is-transitive-globular-structure-Id (x = y) transitive-globular-structure-Id : diff --git a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md index 6aebcab9c9..81bb1f6996 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -73,161 +73,169 @@ Noncoherent-Wild-Higher-Precategory l1 l2 = ( λ X → is-reflexive-Globular-Type X × is-transitive-Globular-Type X) make-Noncoherent-Wild-Higher-Precategory : - {l1 l2 : Level} → - (obj-Noncoherent-Wild-Higher-Precategory : UU l1) - (hom-globular-structure-Noncoherent-Wild-Higher-Precategory : - globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory) → - ( is-reflexive-globular-structure - hom-globular-structure-Noncoherent-Wild-Higher-Precategory) → - ( is-transitive-globular-structure - hom-globular-structure-Noncoherent-Wild-Higher-Precategory) → - Noncoherent-Wild-Higher-Precategory l1 l2 -make-Noncoherent-Wild-Higher-Precategory obj hom id comp = - ( make-Globular-Type hom , id , {!comp!}) + {l1 l2 : Level} {X : Globular-Type l1 l2} → is-reflexive-Globular-Type X → + is-transitive-Globular-Type X → Noncoherent-Wild-Higher-Precategory l1 l2 +make-Noncoherent-Wild-Higher-Precategory id comp = + ( _ , id , comp) {-# INLINE make-Noncoherent-Wild-Higher-Precategory #-} --- module _ --- {l1 l2 : Level} (𝒞 : Noncoherent-Wild-Higher-Precategory l1 l2) --- where - --- obj-Noncoherent-Wild-Higher-Precategory : UU l1 --- obj-Noncoherent-Wild-Higher-Precategory = pr1 𝒞 - --- hom-globular-structure-Noncoherent-Wild-Higher-Precategory : --- globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory --- hom-globular-structure-Noncoherent-Wild-Higher-Precategory = pr1 (pr2 𝒞) - --- id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : --- is-reflexive-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = --- pr1 (pr2 (pr2 𝒞)) - --- comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory : --- is-transitive-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory = --- pr2 (pr2 (pr2 𝒞)) - --- globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2 --- globular-type-Noncoherent-Wild-Higher-Precategory = --- make-Globular-Type --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ``` - --- We record some common projections for noncoherent wild higher precategories. - --- ```agda --- hom-Noncoherent-Wild-Higher-Precategory : --- obj-Noncoherent-Wild-Higher-Precategory → --- obj-Noncoherent-Wild-Higher-Precategory → --- UU l2 --- hom-Noncoherent-Wild-Higher-Precategory = --- 1-cell-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- id-hom-Noncoherent-Wild-Higher-Precategory : --- {x : obj-Noncoherent-Wild-Higher-Precategory} → --- hom-Noncoherent-Wild-Higher-Precategory x x --- id-hom-Noncoherent-Wild-Higher-Precategory = --- refl-1-cell-is-reflexive-globular-structure --- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- comp-hom-Noncoherent-Wild-Higher-Precategory : --- {x y z : obj-Noncoherent-Wild-Higher-Precategory} → --- hom-Noncoherent-Wild-Higher-Precategory y z → --- hom-Noncoherent-Wild-Higher-Precategory x y → --- hom-Noncoherent-Wild-Higher-Precategory x z --- comp-hom-Noncoherent-Wild-Higher-Precategory = --- comp-1-cell-is-transitive-globular-structure --- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- hom-globular-type-Noncoherent-Wild-Higher-Precategory : --- (x y : obj-Noncoherent-Wild-Higher-Precategory) → --- Globular-Type l2 l2 --- hom-globular-type-Noncoherent-Wild-Higher-Precategory = --- globular-type-1-cell-globular-structure --- hom-globular-structure-Noncoherent-Wild-Higher-Precategory - --- hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : --- (x y : obj-Noncoherent-Wild-Higher-Precategory) → --- Noncoherent-Wild-Higher-Precategory l2 l2 --- hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- x y = --- make-Noncoherent-Wild-Higher-Precategory --- ( hom-Noncoherent-Wild-Higher-Precategory x y) --- ( globular-structure-1-cell-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ( x) --- ( y)) --- ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure --- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ( x) --- ( y)) --- ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure --- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ( x) --- ( y)) --- ``` - --- ```agda --- 2-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} → --- hom-Noncoherent-Wild-Higher-Precategory x y → --- hom-Noncoherent-Wild-Higher-Precategory x y → --- UU l2 --- 2-hom-Noncoherent-Wild-Higher-Precategory = --- 2-cell-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- id-2-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} --- {f : hom-Noncoherent-Wild-Higher-Precategory x y} → --- 2-hom-Noncoherent-Wild-Higher-Precategory f f --- id-2-hom-Noncoherent-Wild-Higher-Precategory = --- refl-2-cell-is-reflexive-globular-structure --- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- comp-2-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} --- {f g h : hom-Noncoherent-Wild-Higher-Precategory x y} → --- 2-hom-Noncoherent-Wild-Higher-Precategory g h → --- 2-hom-Noncoherent-Wild-Higher-Precategory f g → --- 2-hom-Noncoherent-Wild-Higher-Precategory f h --- comp-2-hom-Noncoherent-Wild-Higher-Precategory = --- comp-2-cell-is-transitive-globular-structure --- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ``` - --- ```agda --- 3-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} --- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} → --- 2-hom-Noncoherent-Wild-Higher-Precategory f g → --- 2-hom-Noncoherent-Wild-Higher-Precategory f g → --- UU l2 --- 3-hom-Noncoherent-Wild-Higher-Precategory = --- 3-cell-globular-structure --- ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- id-3-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} --- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} --- {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → --- 3-hom-Noncoherent-Wild-Higher-Precategory H H --- id-3-hom-Noncoherent-Wild-Higher-Precategory = --- refl-3-cell-is-reflexive-globular-structure --- ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) - --- comp-3-hom-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory} --- {f g : hom-Noncoherent-Wild-Higher-Precategory x y} --- {H K L : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → --- 3-hom-Noncoherent-Wild-Higher-Precategory K L → --- 3-hom-Noncoherent-Wild-Higher-Precategory H K → --- 3-hom-Noncoherent-Wild-Higher-Precategory H L --- comp-3-hom-Noncoherent-Wild-Higher-Precategory = --- comp-3-cell-is-transitive-globular-structure --- ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory) --- ``` +module _ + {l1 l2 : Level} (𝒞 : Noncoherent-Wild-Higher-Precategory l1 l2) + where + + globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2 + globular-type-Noncoherent-Wild-Higher-Precategory = pr1 𝒞 + + obj-Noncoherent-Wild-Higher-Precategory : UU l1 + obj-Noncoherent-Wild-Higher-Precategory = + 0-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory +``` + +- Morphisms in a noncoherent wild higher precategory + +```agda + hom-globular-type-Noncoherent-Wild-Higher-Precategory : + (x y : obj-Noncoherent-Wild-Higher-Precategory) → + Globular-Type l2 l2 + hom-globular-type-Noncoherent-Wild-Higher-Precategory = + 1-cell-globular-type-Globular-Type + globular-type-Noncoherent-Wild-Higher-Precategory + + hom-Noncoherent-Wild-Higher-Precategory : + obj-Noncoherent-Wild-Higher-Precategory → + obj-Noncoherent-Wild-Higher-Precategory → + UU l2 + hom-Noncoherent-Wild-Higher-Precategory = + 1-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory +``` + +- Identity morphisms in a noncoherent wild higher precategory + +```agda + id-structure-Noncoherent-Wild-Higher-Precategory : + is-reflexive-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory + id-structure-Noncoherent-Wild-Higher-Precategory = + pr1 (pr2 𝒞) + + id-hom-Noncoherent-Wild-Higher-Precategory : + {x : obj-Noncoherent-Wild-Higher-Precategory} → + hom-Noncoherent-Wild-Higher-Precategory x x + id-hom-Noncoherent-Wild-Higher-Precategory {x} = + refl-1-cell-is-reflexive-Globular-Type + globular-type-Noncoherent-Wild-Higher-Precategory + id-structure-Noncoherent-Wild-Higher-Precategory + + id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} → + is-reflexive-Globular-Type + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) + id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + id-structure-Noncoherent-Wild-Higher-Precategory +``` + +- Composition in a noncoherent wild higher precategory + +```agda + comp-structure-Noncoherent-Wild-Higher-Precategory : + is-transitive-Globular-Type + globular-type-Noncoherent-Wild-Higher-Precategory + comp-structure-Noncoherent-Wild-Higher-Precategory = + pr2 (pr2 𝒞) + + comp-hom-Noncoherent-Wild-Higher-Precategory : + {x y z : obj-Noncoherent-Wild-Higher-Precategory} → + hom-Noncoherent-Wild-Higher-Precategory y z → + hom-Noncoherent-Wild-Higher-Precategory x y → + hom-Noncoherent-Wild-Higher-Precategory x z + comp-hom-Noncoherent-Wild-Higher-Precategory = + comp-1-cell-is-transitive-Globular-Type + comp-structure-Noncoherent-Wild-Higher-Precategory + + comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} → + is-transitive-Globular-Type + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) + comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + is-transitive-1-cell-globular-type-is-transitive-Globular-Type + comp-structure-Noncoherent-Wild-Higher-Precategory +``` + +- The noncoherent wild higher precategory of morphisms between two objects in a noncoherent wild higher precategory + +```agda + hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : + (x y : obj-Noncoherent-Wild-Higher-Precategory) → + Noncoherent-Wild-Higher-Precategory l2 l2 + hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + x y = + make-Noncoherent-Wild-Higher-Precategory + ( id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory + {x} {y}) + ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) +``` + +- 2-Morphisms in a noncoherent wild higher precategory + +```agda + 2-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} → + hom-Noncoherent-Wild-Higher-Precategory x y → + hom-Noncoherent-Wild-Higher-Precategory x y → + UU l2 + 2-hom-Noncoherent-Wild-Higher-Precategory = + 2-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory + + id-2-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} + {f : hom-Noncoherent-Wild-Higher-Precategory x y} → + 2-hom-Noncoherent-Wild-Higher-Precategory f f + id-2-hom-Noncoherent-Wild-Higher-Precategory = + refl-2-cell-is-reflexive-Globular-Type + globular-type-Noncoherent-Wild-Higher-Precategory + id-structure-Noncoherent-Wild-Higher-Precategory + + comp-2-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} + {f g h : hom-Noncoherent-Wild-Higher-Precategory x y} → + 2-hom-Noncoherent-Wild-Higher-Precategory g h → + 2-hom-Noncoherent-Wild-Higher-Precategory f g → + 2-hom-Noncoherent-Wild-Higher-Precategory f h + comp-2-hom-Noncoherent-Wild-Higher-Precategory = + comp-2-cell-is-transitive-Globular-Type + comp-structure-Noncoherent-Wild-Higher-Precategory +``` + +- 3-Morphisms in a noncoherent wild higher precategory + +```agda + 3-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} + {f g : hom-Noncoherent-Wild-Higher-Precategory x y} → + 2-hom-Noncoherent-Wild-Higher-Precategory f g → + 2-hom-Noncoherent-Wild-Higher-Precategory f g → UU l2 + 3-hom-Noncoherent-Wild-Higher-Precategory = + 3-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory + + id-3-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} + {f g : hom-Noncoherent-Wild-Higher-Precategory x y} + {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → + 3-hom-Noncoherent-Wild-Higher-Precategory H H + id-3-hom-Noncoherent-Wild-Higher-Precategory = + refl-3-cell-is-reflexive-Globular-Type + globular-type-Noncoherent-Wild-Higher-Precategory + id-structure-Noncoherent-Wild-Higher-Precategory + + comp-3-hom-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory} + {f g : hom-Noncoherent-Wild-Higher-Precategory x y} + {H K L : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → + 3-hom-Noncoherent-Wild-Higher-Precategory K L → + 3-hom-Noncoherent-Wild-Higher-Precategory H K → + 3-hom-Noncoherent-Wild-Higher-Precategory H L + comp-3-hom-Noncoherent-Wild-Higher-Precategory = + comp-3-cell-is-transitive-Globular-Type + comp-structure-Noncoherent-Wild-Higher-Precategory +``` From f445848cfb90682d97877755bd16012b2fe4d218 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 17 Oct 2024 22:15:05 -0400 Subject: [PATCH 17/42] lots of work --- .../wild-category-of-types.lagda.md | 2 +- .../colax-reflexive-globular-maps.lagda.md | 152 ++++++ .../colax-transitive-globular-maps.lagda.md | 154 ++++++ ...ependent-reflexive-globular-types.lagda.md | 18 +- .../large-globular-maps.lagda.md | 37 ++ .../large-reflexive-globular-types.lagda.md | 68 +-- .../large-transitive-globular-types.lagda.md | 201 ++++--- .../lax-reflexive-globular-maps.lagda.md | 146 ----- .../reflexive-globular-maps.lagda.md | 35 +- .../reflexive-globular-types.lagda.md | 46 +- .../transitive-globular-types.lagda.md | 77 +++ .../wild-category-of-pointed-types.lagda.md | 13 +- ...t-large-wild-higher-precategories.lagda.md | 6 +- ...oherent-wild-higher-precategories.lagda.md | 515 ++++++++++-------- ...t-large-wild-higher-precategories.lagda.md | 91 ++-- ...t-large-wild-higher-precategories.lagda.md | 41 +- ...oherent-wild-higher-precategories.lagda.md | 59 +- 17 files changed, 1021 insertions(+), 640 deletions(-) create mode 100644 src/structured-types/colax-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/colax-transitive-globular-maps.lagda.md delete mode 100644 src/structured-types/lax-reflexive-globular-maps.lagda.md diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index 41e7cad516..9fab54691f 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -122,7 +122,7 @@ Type-Large-Globular-Type : Large-Globular-Type lsuc (_⊔_) is-reflexive-Type-Large-Globular-Type : is-reflexive-Large-Globular-Type Type-Large-Globular-Type -refl-0-cell-is-reflexive-Large-Globular-Type +refl-1-cell-is-reflexive-Large-Globular-Type is-reflexive-Type-Large-Globular-Type X = id is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..21a1f08b7b --- /dev/null +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -0,0 +1,152 @@ +# Colax reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.colax-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "colax reflexive globular map" Agda=reflexive-globular-map}} +between two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped +with a family of 2-cells + +```text + (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again +colax reflexive. + +Note: When reflexive globular types are viewed as type-valued presheaves over +the reflexive globe category, the resulting notion of morphism is that of +[reflexive globular maps](structured-types.reflexive-globular-maps.md), which is +stricter than the notion of colax reflexive globular maps. + +## Definitions + +### The predicate of colax preserving reflexivity + +```agda +record + is-colax-reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-refl-1-cell-is-colax-reflexive-globular-map : + (x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-globular-map f (refl-1-cell-Reflexive-Globular-Type G {x})) + ( refl-1-cell-Reflexive-Globular-Type H) + + field + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map-Reflexive-Globular-Type G H f) + +open is-colax-reflexive-globular-map public +``` + +### Colax reflexive globular maps + +```agda +record + colax-reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-colax-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-colax-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-colax-reflexive-globular-map = + 0-cell-globular-map globular-map-colax-reflexive-globular-map + + 1-cell-colax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + 1-cell-Reflexive-Globular-Type G x y → + 1-cell-Reflexive-Globular-Type H + ( 0-cell-colax-reflexive-globular-map x) + ( 0-cell-colax-reflexive-globular-map y) + 1-cell-colax-reflexive-globular-map = + 1-cell-globular-map globular-map-colax-reflexive-globular-map + + 1-cell-globular-map-colax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-colax-reflexive-globular-map x) + ( 0-cell-colax-reflexive-globular-map y)) + 1-cell-globular-map-colax-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-colax-reflexive-globular-map + + field + is-colax-reflexive-colax-reflexive-globular-map : + is-colax-reflexive-globular-map G H + globular-map-colax-reflexive-globular-map + + preserves-refl-1-cell-colax-reflexive-globular-map : + ( x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-colax-reflexive-globular-map + ( refl-1-cell-Reflexive-Globular-Type G {x})) + ( refl-1-cell-Reflexive-Globular-Type H) + preserves-refl-1-cell-colax-reflexive-globular-map = + preserves-refl-1-cell-is-colax-reflexive-globular-map + is-colax-reflexive-colax-reflexive-globular-map + + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-globular-map : + { x y : 0-cell-Reflexive-Globular-Type G} → + is-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-colax-reflexive-globular-map x) + ( 0-cell-colax-reflexive-globular-map y)) + ( 1-cell-globular-map-colax-reflexive-globular-map) + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-globular-map = + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map + is-colax-reflexive-colax-reflexive-globular-map + + 1-cell-colax-reflexive-globular-map-colax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-colax-reflexive-globular-map x) + ( 0-cell-colax-reflexive-globular-map y)) + globular-map-colax-reflexive-globular-map + 1-cell-colax-reflexive-globular-map-colax-reflexive-globular-map = + 1-cell-globular-map-colax-reflexive-globular-map + is-colax-reflexive-colax-reflexive-globular-map + 1-cell-colax-reflexive-globular-map-colax-reflexive-globular-map = + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-globular-map +``` diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..4b04cad390 --- /dev/null +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -0,0 +1,154 @@ +# Colax transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.colax-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "colax transitive globular map" Agda=transitive-globular-map}} between +two [transitive globular types](structured-types.transitive-globular-types.md) `G` +and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` +equipped with a family of 2-cells + +```text + H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax +transitive. + +## Definitions + +### The predicate of colax preserving transitivity + +```agda +record + is-colax-transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) (H : Transitive-Globular-Type l3 l4) + (f : globular-map-Transitive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-comp-1-cell-is-colax-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} → + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 2-cell-Transitive-Globular-Type H + ( 1-cell-globular-map f + ( comp-1-cell-Transitive-Globular-Type G q p)) + ( comp-1-cell-Transitive-Globular-Type H + ( 1-cell-globular-map f q) + ( 1-cell-globular-map f p)) + + field + is-colax-transitive-1-cell-globular-map-is-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + is-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map f) + +open is-colax-transitive-globular-map public +``` + +### Colax transitive globular maps + +```agda +record + colax-transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-colax-transitive-globular-map : + globular-map-Transitive-Globular-Type G H + + 0-cell-colax-transitive-globular-map : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-colax-transitive-globular-map = + 0-cell-globular-map globular-map-colax-transitive-globular-map + + 1-cell-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + 1-cell-Transitive-Globular-Type G x y → + 1-cell-Transitive-Globular-Type H + ( 0-cell-colax-transitive-globular-map x) + ( 0-cell-colax-transitive-globular-map y) + 1-cell-colax-transitive-globular-map = + 1-cell-globular-map globular-map-colax-transitive-globular-map + + 1-cell-globular-map-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-colax-transitive-globular-map x) + ( 0-cell-colax-transitive-globular-map y)) + 1-cell-globular-map-colax-transitive-globular-map = + 1-cell-globular-map-globular-map globular-map-colax-transitive-globular-map + + field + is-colax-transitive-colax-transitive-globular-map : + is-colax-transitive-globular-map G H + globular-map-colax-transitive-globular-map + + preserves-comp-1-cell-colax-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 2-cell-Transitive-Globular-Type H + ( 1-cell-colax-transitive-globular-map + ( comp-1-cell-Transitive-Globular-Type G q p)) + ( comp-1-cell-Transitive-Globular-Type H + ( 1-cell-colax-transitive-globular-map q) + ( 1-cell-colax-transitive-globular-map p)) + preserves-comp-1-cell-colax-transitive-globular-map = + preserves-comp-1-cell-is-colax-transitive-globular-map + is-colax-transitive-colax-transitive-globular-map + + is-colax-transitive-1-cell-globular-map-colax-transitive-globular-map : + { x y : 0-cell-Transitive-Globular-Type G} → + is-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-colax-transitive-globular-map x) + ( 0-cell-colax-transitive-globular-map y)) + ( 1-cell-globular-map-colax-transitive-globular-map) + is-colax-transitive-1-cell-globular-map-colax-transitive-globular-map = + is-colax-transitive-1-cell-globular-map-is-colax-transitive-globular-map + is-colax-transitive-colax-transitive-globular-map + + 1-cell-colax-transitive-globular-map-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-colax-transitive-globular-map x) + ( 0-cell-colax-transitive-globular-map y)) + globular-map-colax-transitive-globular-map + 1-cell-colax-transitive-globular-map-colax-transitive-globular-map = + 1-cell-globular-map-colax-transitive-globular-map + is-colax-transitive-colax-transitive-globular-map + 1-cell-colax-transitive-globular-map-colax-transitive-globular-map = + is-colax-transitive-1-cell-globular-map-colax-transitive-globular-map +``` diff --git a/src/structured-types/dependent-reflexive-globular-types.lagda.md b/src/structured-types/dependent-reflexive-globular-types.lagda.md index 8c4798d598..5462c11871 100644 --- a/src/structured-types/dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/dependent-reflexive-globular-types.lagda.md @@ -49,11 +49,11 @@ record where coinductive field - refl-0-cell-is-reflexive-Dependent-Globular-Type : + refl-1-cell-is-reflexive-Dependent-Globular-Type : {x : 0-cell-Reflexive-Globular-Type G} (y : 0-cell-Dependent-Globular-Type H x) → 1-cell-Dependent-Globular-Type H y y - ( refl-0-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type G) is-reflexive-1-cell-dependent-globular-type-Dependent-Globular-Type : {x x' : 0-cell-Reflexive-Globular-Type G} @@ -109,13 +109,13 @@ record is-reflexive-Dependent-Globular-Type G ( dependent-globular-type-Dependent-Reflexive-Globular-Type) - refl-0-cell-Dependent-Reflexive-Globular-Type : + refl-1-cell-Dependent-Reflexive-Globular-Type : {x : 0-cell-Reflexive-Globular-Type G} (y : 0-cell-Dependent-Reflexive-Globular-Type x) → 1-cell-Dependent-Reflexive-Globular-Type y y - ( refl-0-cell-Reflexive-Globular-Type G) - refl-0-cell-Dependent-Reflexive-Globular-Type = - refl-0-cell-is-reflexive-Dependent-Globular-Type + ( refl-1-cell-Reflexive-Globular-Type G) + refl-1-cell-Dependent-Reflexive-Globular-Type = + refl-1-cell-is-reflexive-Dependent-Globular-Type ( refl-Dependent-Reflexive-Globular-Type) is-reflexive-1-cell-dependent-globular-type-Dependent-Reflexive-Globular-Type : @@ -168,7 +168,7 @@ family-globular-types-Dependent-Reflexive-Globular-Type : family-globular-types-Dependent-Reflexive-Globular-Type ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type H y z) - ( refl-0-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type G) is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type : {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} @@ -178,7 +178,7 @@ is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type : ( family-globular-types-Dependent-Reflexive-Globular-Type H x) is-reflexive-1-cell-is-reflexive-globular-structure ( is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type H x) = - refl-0-cell-Dependent-Reflexive-Globular-Type H + refl-1-cell-Dependent-Reflexive-Globular-Type H is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure ( is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type { G = G} H x) @@ -187,7 +187,7 @@ is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type H u v) - ( refl-0-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type G) module _ {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} diff --git a/src/structured-types/large-globular-maps.lagda.md b/src/structured-types/large-globular-maps.lagda.md index 46233fcc64..df47e8e117 100644 --- a/src/structured-types/large-globular-maps.lagda.md +++ b/src/structured-types/large-globular-maps.lagda.md @@ -10,6 +10,7 @@ module structured-types.large-globular-maps where ```agda open import foundation.dependent-pair-types +open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels @@ -125,3 +126,39 @@ record open large-globular-map public ``` + +### Large identity globular maps + +```agda +module _ + {α : Level → Level} {β : Level → Level → Level} + (A : Large-Globular-Type α β) + where + + id-large-globular-map : large-globular-map id A A + 0-cell-large-globular-map id-large-globular-map = + id + 1-cell-globular-map-large-globular-map id-large-globular-map = + id-globular-map (1-cell-globular-type-Large-Globular-Type A _ _) +``` + +### Composition of large globular maps + +```agda +module _ + {α1 α2 α3 δ1 δ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + {A : Large-Globular-Type α1 β1} + {B : Large-Globular-Type α2 β2} + {C : Large-Globular-Type α3 β3} + where + + comp-large-globular-map : + (g : large-globular-map δ2 B C) (f : large-globular-map δ1 A B) → + large-globular-map (δ2 ∘ δ1) A C + 0-cell-large-globular-map (comp-large-globular-map g f) = + 0-cell-large-globular-map g ∘ 0-cell-large-globular-map f + 1-cell-globular-map-large-globular-map (comp-large-globular-map g f) = + comp-globular-map + ( 1-cell-globular-map-large-globular-map g) + ( 1-cell-globular-map-large-globular-map f) +``` diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 5e2353f958..f39af70fa4 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -38,7 +38,7 @@ record UUω where field - refl-0-cell-is-reflexive-Large-Globular-Type : + refl-1-cell-is-reflexive-Large-Globular-Type : is-reflexive-Large-Relation ( 0-cell-Large-Globular-Type A) ( 1-cell-Large-Globular-Type A) @@ -49,22 +49,22 @@ record is-reflexive-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A x y) - refl-1-cell-is-reflexive-Large-Globular-Type : + refl-2-cell-is-reflexive-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} → is-reflexive (2-cell-Large-Globular-Type A {x = x} {y = y}) - refl-1-cell-is-reflexive-Large-Globular-Type = + refl-2-cell-is-reflexive-Large-Globular-Type = is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) - refl-2-cell-is-reflexive-Large-Globular-Type : + refl-3-cell-is-reflexive-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} {y : 0-cell-Large-Globular-Type A l2} {f g : 1-cell-Large-Globular-Type A x y} → is-reflexive (3-cell-Large-Globular-Type A {f = f} {g = g}) - refl-2-cell-is-reflexive-Large-Globular-Type = + refl-3-cell-is-reflexive-Large-Globular-Type = is-reflexive-2-cell-is-reflexive-Globular-Type ( 1-cell-globular-type-Large-Globular-Type A _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) @@ -250,61 +250,3 @@ record open Large-Reflexive-Globular-Type public ``` - -### Reflexivity structure on a large globular structure - -```agda -record - is-reflexive-large-globular-structure - {α : Level → Level} {β : Level → Level → Level} - {A : (l : Level) → UU (α l)} - (G : large-globular-structure β A) : UUω - where - - field - is-reflexive-1-cell-is-reflexive-large-globular-structure : - is-reflexive-Large-Relation A (1-cell-large-globular-structure G) - - is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure : - {l1 l2 : Level} (x : A l1) (y : A l2) → - is-reflexive-globular-structure - ( globular-structure-1-cell-large-globular-structure G x y) - -open is-reflexive-large-globular-structure public - -module _ - {α : Level → Level} {β : Level → Level → Level} - {A : (l : Level) → UU (α l)} - {G : large-globular-structure β A} - (r : is-reflexive-large-globular-structure G) - where - - refl-1-cell-is-reflexive-large-globular-structure : - {l : Level} {x : A l} → 1-cell-large-globular-structure G x x - refl-1-cell-is-reflexive-large-globular-structure {x = x} = - is-reflexive-1-cell-is-reflexive-large-globular-structure r x - - refl-2-cell-is-reflexive-large-globular-structure : - {l1 l2 : Level} {x : A l1} {y : A l2} - {f : 1-cell-large-globular-structure G x y} → - 2-cell-large-globular-structure G f f - refl-2-cell-is-reflexive-large-globular-structure {x = x} {y} {f} = - is-reflexive-1-cell-is-reflexive-globular-structure - ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type - ( r) - ( x) - ( y)) - ( f) - - refl-3-cell-is-reflexive-large-globular-structure : - {l1 l2 : Level} {x : A l1} {y : A l2} - {f g : 1-cell-large-globular-structure G x y} → - {H : 2-cell-large-globular-structure G f g} → - 3-cell-large-globular-structure G H H - refl-3-cell-is-reflexive-large-globular-structure {x = x} {y} = - refl-2-cell-is-reflexive-globular-structure - ( is-reflexive-globular-structure-1-cell-is-reflexive-large-globular-structure - ( r) - ( x) - ( y)) -``` diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/structured-types/large-transitive-globular-types.lagda.md index d8c0c4bca4..a36420b89e 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/structured-types/large-transitive-globular-types.lagda.md @@ -32,7 +32,143 @@ at every level $n$. ## Definition -### The structure transitivitiy on a large globular type +### The predicate of being a transitive large globular type + +```agda +record + is-transitive-Large-Globular-Type + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Globular-Type α β) : UUω + where + + field + comp-1-cell-is-transitive-Large-Globular-Type : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} + {z : 0-cell-Large-Globular-Type G l3} → + 1-cell-Large-Globular-Type G y z → + 1-cell-Large-Globular-Type G x y → + 1-cell-Large-Globular-Type G x z + + field + is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} → + is-transitive-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type G x y) + +open is-transitive-Large-Globular-Type public + +module _ + {α : Level → Level} {β : Level → Level → Level} + {G : Large-Globular-Type α β} + (τ : is-transitive-Large-Globular-Type G) + where + + comp-2-cell-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} + {f g h : 1-cell-Large-Globular-Type G x y} → + 2-cell-Large-Globular-Type G g h → + 2-cell-Large-Globular-Type G f g → + 2-cell-Large-Globular-Type G f h + comp-2-cell-is-transitive-Large-Globular-Type = + comp-1-cell-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type τ) + + is-transitive-2-cell-globular-type-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} + {f g : 1-cell-Large-Globular-Type G x y} → + is-transitive-Globular-Type + ( 2-cell-globular-type-Large-Globular-Type G f g) + is-transitive-2-cell-globular-type-is-transitive-Large-Globular-Type = + is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type τ) + + comp-3-cell-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} + {f g : 1-cell-Large-Globular-Type G x y} + {s t u : 2-cell-Large-Globular-Type G f g} → + 3-cell-Large-Globular-Type G t u → + 3-cell-Large-Globular-Type G s t → + 3-cell-Large-Globular-Type G s u + comp-3-cell-is-transitive-Large-Globular-Type = + comp-2-cell-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type τ) + + is-transitive-3-cell-globular-type-is-transitive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type G l1} + {y : 0-cell-Large-Globular-Type G l2} + {f g : 1-cell-Large-Globular-Type G x y} + {s t : 2-cell-Large-Globular-Type G f g} → + is-transitive-Globular-Type + ( 3-cell-globular-type-Large-Globular-Type G s t) + is-transitive-3-cell-globular-type-is-transitive-Large-Globular-Type = + is-transitive-2-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type τ) +``` + +### The type of large transitive globular types + +```agda +record + Large-Transitive-Globular-Type + (α : Level → Level) (β : Level → Level → Level) : UUω + where + + field + large-globular-type-Large-Transitive-Globular-Type : + Large-Globular-Type α β + + 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) + 0-cell-Large-Transitive-Globular-Type = + 0-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + 1-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Transitive-Globular-Type l1) + (y : 0-cell-Large-Transitive-Globular-Type l2) → UU (β l1 l2) + 1-cell-Large-Transitive-Globular-Type = + 1-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + 2-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + (f g : 1-cell-Large-Transitive-Globular-Type x y) → UU (β l1 l2) + 2-cell-Large-Transitive-Globular-Type = + 2-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + 3-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + {f g : 1-cell-Large-Transitive-Globular-Type x y} + (s t : 2-cell-Large-Transitive-Globular-Type f g) → UU (β l1 l2) + 3-cell-Large-Transitive-Globular-Type = + 3-cell-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + + field + is-transitive-Large-Transitive-Globular-Type : + is-transitive-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + +open Large-Transitive-Globular-Type +``` + +### The predicate of being a transitive large globular structure ```agda record @@ -110,66 +246,3 @@ record open large-transitive-globular-structure public ``` - -### The predicate of being a transitive large globular type - -```agda -is-transitive-Large-Globular-Type : - {α : Level → Level} {β : Level → Level → Level} → - Large-Globular-Type α β → UUω -is-transitive-Large-Globular-Type G = - is-transitive-large-globular-structure - ( large-globular-structure-0-cell-Large-Globular-Type G) -``` - -### The type of large transitive globular types - -```agda -record - Large-Transitive-Globular-Type - (α : Level → Level) (β : Level → Level → Level) : UUω - where - - field - large-globular-type-Large-Transitive-Globular-Type : - Large-Globular-Type α β - - 0-cell-Large-Transitive-Globular-Type : (l : Level) → UU (α l) - 0-cell-Large-Transitive-Globular-Type = - 0-cell-Large-Globular-Type - large-globular-type-Large-Transitive-Globular-Type - - 1-cell-Large-Transitive-Globular-Type : - {l1 l2 : Level} - (x : 0-cell-Large-Transitive-Globular-Type l1) - (y : 0-cell-Large-Transitive-Globular-Type l2) → UU (β l1 l2) - 1-cell-Large-Transitive-Globular-Type = - 1-cell-Large-Globular-Type - large-globular-type-Large-Transitive-Globular-Type - - 2-cell-Large-Transitive-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Transitive-Globular-Type l1} - {y : 0-cell-Large-Transitive-Globular-Type l2} - (f g : 1-cell-Large-Transitive-Globular-Type x y) → UU (β l1 l2) - 2-cell-Large-Transitive-Globular-Type = - 2-cell-Large-Globular-Type - large-globular-type-Large-Transitive-Globular-Type - - 3-cell-Large-Transitive-Globular-Type : - {l1 l2 : Level} - {x : 0-cell-Large-Transitive-Globular-Type l1} - {y : 0-cell-Large-Transitive-Globular-Type l2} - {f g : 1-cell-Large-Transitive-Globular-Type x y} - (s t : 2-cell-Large-Transitive-Globular-Type f g) → UU (β l1 l2) - 3-cell-Large-Transitive-Globular-Type = - 3-cell-Large-Globular-Type - large-globular-type-Large-Transitive-Globular-Type - - field - is-transitive-Large-Transitive-Globular-Type : - is-transitive-Large-Globular-Type - large-globular-type-Large-Transitive-Globular-Type - -open Large-Transitive-Globular-Type -``` diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md deleted file mode 100644 index 3dc77354b2..0000000000 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ /dev/null @@ -1,146 +0,0 @@ -# Lax reflexive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.lax-reflexive-globular-maps where -``` - -
Imports - -```agda -open import foundation.universe-levels - -open import structured-types.globular-maps -open import structured-types.reflexive-globular-types -``` - -
- -## Idea - -A {{#concept "lax reflexive globular map" Agda=reflexive-globular-map}} between two -[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and -`H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped -with a family of 2-cells - -```text - (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) -``` - -from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at `f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax reflexive. - -Note: When reflexive globular types are viewed as type-valued presheaves over the reflexive globe category, the resulting notion of morphism is that of [reflexive globular maps](structured-types.reflexive-globular-maps.md), which is stricter than the notion of lax reflexive globular maps. - -## Definitions - -### The predicate of lax preserving reflexivity - -```agda -record - lax-preserves-refl-globular-map - {l1 l2 l3 l4 : Level} - (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) - (f : globular-map-Reflexive-Globular-Type G H) : - UU (l1 ⊔ l2 ⊔ l4) - where - coinductive - - field - lax-preserves-refl-0-cell-lax-preserves-refl-globular-map : - (x : 0-cell-Reflexive-Globular-Type G) → - 2-cell-Reflexive-Globular-Type H - ( 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x})) - ( refl-0-cell-Reflexive-Globular-Type H) - - field - lax-preserves-refl-1-cell-globular-map-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - lax-preserves-refl-globular-map - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) - ( 1-cell-globular-map-globular-map-Reflexive-Globular-Type G H f) - -open lax-preserves-refl-globular-map -``` - -### Lax reflexive globular maps - -```agda -record - lax-reflexive-globular-map - {l1 l2 l3 l4 : Level} - (G : Reflexive-Globular-Type l1 l2) - (H : Reflexive-Globular-Type l3 l4) : - UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) - where - - field - globular-map-lax-reflexive-globular-map : - globular-map-Reflexive-Globular-Type G H - - 0-cell-lax-reflexive-globular-map : - 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H - 0-cell-lax-reflexive-globular-map = - 0-cell-globular-map globular-map-lax-reflexive-globular-map - - 1-cell-lax-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - 1-cell-Reflexive-Globular-Type G x y → - 1-cell-Reflexive-Globular-Type H - ( 0-cell-lax-reflexive-globular-map x) - ( 0-cell-lax-reflexive-globular-map y) - 1-cell-lax-reflexive-globular-map = - 1-cell-globular-map globular-map-lax-reflexive-globular-map - - 1-cell-globular-map-lax-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - globular-map-Reflexive-Globular-Type - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H - ( 0-cell-lax-reflexive-globular-map x) - ( 0-cell-lax-reflexive-globular-map y)) - 1-cell-globular-map-lax-reflexive-globular-map = - 1-cell-globular-map-globular-map globular-map-lax-reflexive-globular-map - - field - lax-preserves-refl-lax-reflexive-globular-map : - lax-preserves-refl-globular-map G H - globular-map-lax-reflexive-globular-map - - lax-preserves-refl-0-cell-lax-reflexive-globular-map : - ( x : 0-cell-Reflexive-Globular-Type G) → - 2-cell-Reflexive-Globular-Type H - ( 1-cell-lax-reflexive-globular-map - ( refl-0-cell-Reflexive-Globular-Type G {x})) - ( refl-0-cell-Reflexive-Globular-Type H) - lax-preserves-refl-0-cell-lax-reflexive-globular-map = - lax-preserves-refl-0-cell-lax-preserves-refl-globular-map - lax-preserves-refl-lax-reflexive-globular-map - - lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map : - { x y : 0-cell-Reflexive-Globular-Type G} → - lax-preserves-refl-globular-map - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H - ( 0-cell-lax-reflexive-globular-map x) - ( 0-cell-lax-reflexive-globular-map y)) - ( 1-cell-globular-map-lax-reflexive-globular-map) - lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map = - lax-preserves-refl-1-cell-globular-map-globular-map - lax-preserves-refl-lax-reflexive-globular-map - - 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - lax-reflexive-globular-map - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H - ( 0-cell-lax-reflexive-globular-map x) - ( 0-cell-lax-reflexive-globular-map y)) - globular-map-lax-reflexive-globular-map - 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = - 1-cell-globular-map-lax-reflexive-globular-map - lax-preserves-refl-lax-reflexive-globular-map - 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = - lax-preserves-refl-1-cell-globular-map-lax-reflexive-globular-map -``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index 3266ba4a95..ab617466c3 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -29,9 +29,14 @@ with a family of [identifications](foundation-core.identity-types.md) (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) ``` -from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at `f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again reflexive. +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again +reflexive. -Note: In some settings it may be preferred to work with globular maps preserving reflexivity cells up to a higher cell. This notion of maps between reflexive globular types is the notion of [lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). +Note: In some settings it may be preferred to work with globular maps preserving +reflexivity cells up to a higher cell. This notion of maps between reflexive +globular types is the notion of +[lax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md). ## Definitions @@ -48,13 +53,13 @@ record coinductive field - preserves-refl-0-cell-preserves-refl-globular-map : + preserves-refl-1-cell-preserves-refl-globular-map : (x : 0-cell-Reflexive-Globular-Type G) → - 1-cell-globular-map f (refl-0-cell-Reflexive-Globular-Type G {x}) = - refl-0-cell-Reflexive-Globular-Type H + 1-cell-globular-map f (refl-1-cell-Reflexive-Globular-Type G {x}) = + refl-1-cell-Reflexive-Globular-Type H field - preserves-refl-1-cell-globular-map-globular-map : + preserves-refl-2-cell-globular-map-globular-map : {x y : 0-cell-Reflexive-Globular-Type G} → preserves-refl-globular-map ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) @@ -108,15 +113,15 @@ record preserves-refl-globular-map G H globular-map-reflexive-globular-map - preserves-refl-0-cell-reflexive-globular-map : + preserves-refl-1-cell-reflexive-globular-map : ( x : 0-cell-Reflexive-Globular-Type G) → - 1-cell-reflexive-globular-map (refl-0-cell-Reflexive-Globular-Type G {x}) = - refl-0-cell-Reflexive-Globular-Type H - preserves-refl-0-cell-reflexive-globular-map = - preserves-refl-0-cell-preserves-refl-globular-map + 1-cell-reflexive-globular-map (refl-1-cell-Reflexive-Globular-Type G {x}) = + refl-1-cell-Reflexive-Globular-Type H + preserves-refl-1-cell-reflexive-globular-map = + preserves-refl-1-cell-preserves-refl-globular-map preserves-refl-reflexive-globular-map - preserves-refl-1-cell-globular-map-reflexive-globular-map : + preserves-refl-2-cell-globular-map-reflexive-globular-map : { x y : 0-cell-Reflexive-Globular-Type G} → preserves-refl-globular-map ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) @@ -124,8 +129,8 @@ record ( 0-cell-reflexive-globular-map x) ( 0-cell-reflexive-globular-map y)) ( 1-cell-globular-map-reflexive-globular-map) - preserves-refl-1-cell-globular-map-reflexive-globular-map = - preserves-refl-1-cell-globular-map-globular-map + preserves-refl-2-cell-globular-map-reflexive-globular-map = + preserves-refl-2-cell-globular-map-globular-map preserves-refl-reflexive-globular-map 1-cell-reflexive-globular-map-reflexive-globular-map : @@ -140,5 +145,5 @@ record 1-cell-globular-map-reflexive-globular-map preserves-refl-reflexive-globular-map 1-cell-reflexive-globular-map-reflexive-globular-map = - preserves-refl-1-cell-globular-map-reflexive-globular-map + preserves-refl-2-cell-globular-map-reflexive-globular-map ``` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 6e9b018ce9..74bcc1c746 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -53,12 +53,12 @@ module _ (r : is-reflexive-Globular-Type G) where - refl-1-cell-is-reflexive-Globular-Type : + refl-2-cell-is-reflexive-Globular-Type : {x : 0-cell-Globular-Type G} → 1-cell-Globular-Type G x x - refl-1-cell-is-reflexive-Globular-Type = + refl-2-cell-is-reflexive-Globular-Type = is-reflexive-1-cell-is-reflexive-Globular-Type r _ - + is-reflexive-2-cell-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → is-reflexive (2-cell-Globular-Type G {x} {y}) @@ -66,10 +66,10 @@ module _ is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) - refl-2-cell-is-reflexive-Globular-Type : + refl-3-cell-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} {f : 1-cell-Globular-Type G x y} → 2-cell-Globular-Type G f f - refl-2-cell-is-reflexive-Globular-Type = + refl-3-cell-is-reflexive-Globular-Type = is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) ( _) @@ -97,12 +97,12 @@ module _ ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) - refl-3-cell-is-reflexive-Globular-Type : + refl-4-cell-is-reflexive-Globular-Type : {x y : 0-cell-Globular-Type G} → {f g : 1-cell-Globular-Type G x y} → {s : 2-cell-Globular-Type G f g} → 3-cell-Globular-Type G s s - refl-3-cell-is-reflexive-Globular-Type = - refl-2-cell-is-reflexive-Globular-Type + refl-4-cell-is-reflexive-Globular-Type = + refl-3-cell-is-reflexive-Globular-Type ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) @@ -153,10 +153,10 @@ record refl-Reflexive-Globular-Type : is-reflexive-Globular-Type globular-type-Reflexive-Globular-Type - refl-0-cell-Reflexive-Globular-Type : + refl-1-cell-Reflexive-Globular-Type : {x : 0-cell-Reflexive-Globular-Type} → 1-cell-Reflexive-Globular-Type x x - refl-0-cell-Reflexive-Globular-Type = + refl-1-cell-Reflexive-Globular-Type = is-reflexive-1-cell-is-reflexive-Globular-Type ( refl-Reflexive-Globular-Type) ( _) @@ -166,11 +166,11 @@ record 1-cell-globular-type-Reflexive-Globular-Type = 1-cell-globular-type-Globular-Type globular-type-Reflexive-Globular-Type - refl-1-cell-globular-type-Reflexive-Globular-Type : + refl-2-cell-globular-type-Reflexive-Globular-Type : {x y : 0-cell-Reflexive-Globular-Type} → is-reflexive-Globular-Type ( 1-cell-globular-type-Reflexive-Globular-Type x y) - refl-1-cell-globular-type-Reflexive-Globular-Type = + refl-2-cell-globular-type-Reflexive-Globular-Type = is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type refl-Reflexive-Globular-Type @@ -181,7 +181,7 @@ record 1-cell-globular-type-Reflexive-Globular-Type x y refl-Reflexive-Globular-Type ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type x y) = - refl-1-cell-globular-type-Reflexive-Globular-Type + refl-2-cell-globular-type-Reflexive-Globular-Type open Reflexive-Globular-Type public ``` @@ -204,9 +204,9 @@ module _ is-reflexive-1-cell-is-reflexive-globular-structure = is-reflexive-1-cell-is-reflexive-Globular-Type r - refl-1-cell-is-reflexive-globular-structure : + refl-2-cell-is-reflexive-globular-structure : {x : A} → 1-cell-globular-structure G x x - refl-1-cell-is-reflexive-globular-structure = + refl-2-cell-is-reflexive-globular-structure = is-reflexive-1-cell-is-reflexive-Globular-Type r _ is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure : @@ -221,10 +221,10 @@ module _ is-reflexive-2-cell-is-reflexive-globular-structure {x} {y} = is-reflexive-2-cell-is-reflexive-Globular-Type (make-Globular-Type G) r - refl-2-cell-is-reflexive-globular-structure : + refl-3-cell-is-reflexive-globular-structure : {x y : A} {f : 1-cell-globular-structure G x y} → 2-cell-globular-structure G f f - refl-2-cell-is-reflexive-globular-structure = + refl-3-cell-is-reflexive-globular-structure = is-reflexive-2-cell-is-reflexive-globular-structure _ is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure : @@ -243,13 +243,13 @@ module _ is-reflexive-3-cell-is-reflexive-globular-structure = is-reflexive-3-cell-is-reflexive-Globular-Type (make-Globular-Type G) r - refl-3-cell-is-reflexive-globular-structure : + refl-4-cell-is-reflexive-globular-structure : {x y : A} {f g : 1-cell-globular-structure G x y} {H : 2-cell-globular-structure G f g} → 3-cell-globular-structure G H H - refl-3-cell-is-reflexive-globular-structure {x} {y} {f} {g} {H} = - is-reflexive-3-cell-is-reflexive-globular-structure _ + refl-4-cell-is-reflexive-globular-structure {x} {y} {f} {g} {H} = + is-reflexive-3-cell-is-reflexive-globular-structure _ ``` ### The type of reflexive globular structures @@ -263,7 +263,9 @@ reflexive-globular-structure l2 A = ### Globular maps between reflexive globular types -Since there are at least two notions of morphism between reflexive globular types, both of which have an underlying globular map, we record here the definition of globular maps between reflexive globular types. +Since there are at least two notions of morphism between reflexive globular +types, both of which have an underlying globular map, we record here the +definition of globular maps between reflexive globular types. ```agda module _ @@ -324,4 +326,4 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Lax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index af9931b7d5..d3a81d3a89 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -14,6 +14,7 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -119,17 +120,35 @@ record 0-cell-Transitive-Globular-Type = 0-cell-Globular-Type globular-type-Transitive-Globular-Type + 1-cell-globular-type-Transitive-Globular-Type : + (x y : 0-cell-Transitive-Globular-Type) → Globular-Type l2 l2 + 1-cell-globular-type-Transitive-Globular-Type = + 1-cell-globular-type-Globular-Type globular-type-Transitive-Globular-Type + 1-cell-Transitive-Globular-Type : 0-cell-Transitive-Globular-Type → 0-cell-Transitive-Globular-Type → UU l2 1-cell-Transitive-Globular-Type = 1-cell-Globular-Type globular-type-Transitive-Globular-Type + 2-cell-globular-type-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} + (f g : 1-cell-Transitive-Globular-Type x y) → Globular-Type l2 l2 + 2-cell-globular-type-Transitive-Globular-Type = + 2-cell-globular-type-Globular-Type globular-type-Transitive-Globular-Type + 2-cell-Transitive-Globular-Type : {x y : 0-cell-Transitive-Globular-Type} (f g : 1-cell-Transitive-Globular-Type x y) → UU l2 2-cell-Transitive-Globular-Type = 2-cell-Globular-Type globular-type-Transitive-Globular-Type + 3-cell-globular-type-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} + {f g : 1-cell-Transitive-Globular-Type x y} + (s t : 2-cell-Transitive-Globular-Type f g) → Globular-Type l2 l2 + 3-cell-globular-type-Transitive-Globular-Type = + 3-cell-globular-type-Globular-Type globular-type-Transitive-Globular-Type + 3-cell-Transitive-Globular-Type : {x y : 0-cell-Transitive-Globular-Type} {f g : 1-cell-Transitive-Globular-Type x y} @@ -168,6 +187,17 @@ record comp-3-cell-is-transitive-Globular-Type is-transitive-Transitive-Globular-Type + 1-cell-transitive-globular-type-Transitive-Globular-Type : + (x y : 0-cell-Transitive-Globular-Type) → + Transitive-Globular-Type l2 l2 + globular-type-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type x y) = + 1-cell-globular-type-Transitive-Globular-Type x y + is-transitive-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type x y) = + is-transitive-1-cell-globular-type-is-transitive-Globular-Type + is-transitive-Transitive-Globular-Type + open Transitive-Globular-Type public ``` @@ -224,6 +254,53 @@ transitive-globular-structure l2 A = Σ (globular-structure l2 A) (is-transitive-globular-structure) ``` +### Globular maps between transitive globular types + +Since there are at least two notions of morphism between transitive globular +types, both of which have an underlying globular map, we record here the +definition of globular maps between transitive globular types. + +```agda +module _ + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) (H : Transitive-Globular-Type l3 l4) + where + + globular-map-Transitive-Globular-Type : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + globular-map-Transitive-Globular-Type = + globular-map + ( globular-type-Transitive-Globular-Type G) + ( globular-type-Transitive-Globular-Type H) + +module _ + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) (H : Transitive-Globular-Type l3 l4) + (f : globular-map-Transitive-Globular-Type G H) + where + + 0-cell-globular-map-Transitive-Globular-Type : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-globular-map-Transitive-Globular-Type = + 0-cell-globular-map f + + 1-cell-globular-map-globular-map-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type G} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + 1-cell-globular-map-globular-map-Transitive-Globular-Type = + 1-cell-globular-map-globular-map f + + 1-cell-globular-map-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type G} → + 1-cell-Transitive-Globular-Type G x y → + 1-cell-Transitive-Globular-Type H + ( 0-cell-globular-map-Transitive-Globular-Type x) + ( 0-cell-globular-map-Transitive-Globular-Type y) + 1-cell-globular-map-Transitive-Globular-Type = + 1-cell-globular-map f +``` + ## Examples ### The transitive globular structure on a type given by its identity types diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 73a8439ab2..e082eefd86 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -105,7 +105,7 @@ is-reflexive-uniform-pointed-map-Globular-Type A B = id-structure-uniform-pointed-type-Large-Globular-Type : is-reflexive-Large-Globular-Type uniform-pointed-type-Large-Globular-Type -refl-0-cell-is-reflexive-Large-Globular-Type +refl-1-cell-is-reflexive-Large-Globular-Type id-structure-uniform-pointed-type-Large-Globular-Type A = id-pointed-map is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type @@ -176,7 +176,7 @@ comp-structure-Noncoherent-Large-Wild-Higher-Precategory #### The large globular type of pointed types, pointed maps, and nonuniform pointed homotopies -```agda +```agda pointed-htpy-Globular-Type : {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} (f g : pointed-Π A B) → Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) @@ -266,7 +266,7 @@ pointed-map-Reflexive-Globular-Type A B = is-reflexive-pointed-type-Large-Globular-Type : is-reflexive-Large-Globular-Type pointed-type-Large-Globular-Type -refl-0-cell-is-reflexive-Large-Globular-Type +refl-1-cell-is-reflexive-Large-Globular-Type is-reflexive-pointed-type-Large-Globular-Type A = id-pointed-map is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type is-reflexive-pointed-type-Large-Globular-Type = @@ -340,5 +340,8 @@ comp-structure-Noncoherent-Large-Wild-Higher-Precategory ## See also -- The categorical laws of pointed maps and pointed homotopies are proven in [pointed homotopies](structured-types.pointed-homotopies.md). -- The categorical laws of pointed maps and uniform pointed homotopies are proven in [uniform pointed homotopies](structured-types.uniform-pointed-homotopies.md). +- The categorical laws of pointed maps and pointed homotopies are proven in + [pointed homotopies](structured-types.pointed-homotopies.md). +- The categorical laws of pointed maps and uniform pointed homotopies are proven + in + [uniform pointed homotopies](structured-types.uniform-pointed-homotopies.md). diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index f2f7357f4c..0c6a1e6587 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -186,7 +186,7 @@ record 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - hom-globular-type-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → @@ -195,8 +195,8 @@ record ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) - hom-globular-type-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - hom-globular-type-map-Noncoherent-Large-Wild-Higher-Precategory + hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 1eaff73b41..61caf3f050 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -14,8 +14,11 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.colax-reflexive-globular-maps +open import structured-types.colax-transitive-globular-maps open import structured-types.globular-maps open import structured-types.globular-types +open import structured-types.reflexive-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-wild-higher-precategories @@ -30,8 +33,7 @@ A `F` between [noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) `𝒜` and `ℬ` is a -[map of noncoherent wild higher precategories](wild-category-theory.maps-noncoherent-wild-higher-precategories.md) -that preserves identity morphisms and composition _colaxly_. This means that for +[map of noncoherent wild higher precategories](wild-category-theory.maps-noncoherent-wild-higher-precategories.md) which is [colax reflexive](structured-types.colax-reflexive-globular-maps.md) and [colax transitive](structured-types.colax-transitive-globular-maps.md). This means that for every $n$-morphism `f` in `𝒜`, where we take $0$-morphisms to be objects, there is an $(n+1)$-morphism @@ -55,39 +57,90 @@ in `ℬ`. ```agda record is-colax-functor-Noncoherent-Wild-Higher-Precategory - {l1 l2 l3 l4 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) : UU (l1 ⊔ l2 ⊔ l4) + {l1 l2 l3 l4 : Level} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) : UU (l1 ⊔ l2 ⊔ l4) where coinductive + + field + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + is-colax-reflexive-globular-map + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + ( F) + + preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → + 2-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( 1-cell-globular-map F (id-hom-Noncoherent-Wild-Higher-Precategory 𝒜)) + ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ) + preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-refl-1-cell-is-colax-reflexive-globular-map + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + + is-reflexive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → + is-colax-reflexive-globular-map + ( hom-reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) + ( hom-reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ + ( 0-cell-globular-map F x) + ( 0-cell-globular-map F y)) + ( 1-cell-globular-map-globular-map F) + is-reflexive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + field - preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : - (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → - 2-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Wild-Higher-Precategory F - ( id-hom-Noncoherent-Wild-Higher-Precategory 𝒜 {x})) - ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ - { obj-map-Noncoherent-Wild-Higher-Precategory F x}) - - preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : - {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} - (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) - (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → - 2-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Wild-Higher-Precategory F - ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) - ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Wild-Higher-Precategory F g) - ( hom-map-Noncoherent-Wild-Higher-Precategory F f)) - - is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory : - (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → - is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory - ( F) - ( x) - ( y)) + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + is-colax-transitive-globular-map + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + ( F) + + preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} + (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) + (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → + 2-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( 1-cell-globular-map F + ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) + ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( 1-cell-globular-map F g) + ( 1-cell-globular-map F f)) + preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-comp-1-cell-is-colax-transitive-globular-map + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + + is-transitive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → + is-colax-transitive-globular-map + ( hom-transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) + ( hom-transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ + ( 0-cell-globular-map F x) + ( 0-cell-globular-map F y)) + ( 1-cell-globular-map-globular-map F) + is-transitive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-colax-transitive-1-cell-globular-map-is-colax-transitive-globular-map + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + + is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → + is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( ℬ) + ( 0-cell-globular-map F x) + ( 0-cell-globular-map F y)) + ( 1-cell-globular-map-globular-map F {x} {y}) + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-reflexive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-transitive-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory open is-colax-functor-Noncoherent-Wild-Higher-Precategory public ``` @@ -102,7 +155,7 @@ colax-functor-Noncoherent-Wild-Higher-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ = Σ ( map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) - ( is-colax-functor-Noncoherent-Wild-Higher-Precategory) + ( is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) module _ {l1 l2 l3 l4 : Level} @@ -116,16 +169,19 @@ module _ map-colax-functor-Noncoherent-Wild-Higher-Precategory = pr1 F is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory : - is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory = pr2 F obj-colax-functor-Noncoherent-Wild-Higher-Precategory : obj-Noncoherent-Wild-Higher-Precategory 𝒜 → obj-Noncoherent-Wild-Higher-Precategory ℬ - obj-colax-functor-Noncoherent-Wild-Higher-Precategory = + obj-colax-functor-Noncoherent-Wild-Higher-Precategory = {!!} + +{- obj-map-Noncoherent-Wild-Higher-Precategory ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) +-} hom-colax-functor-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → @@ -133,195 +189,204 @@ module _ hom-Noncoherent-Wild-Higher-Precategory ℬ ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y) - hom-colax-functor-Noncoherent-Wild-Higher-Precategory = - hom-map-Noncoherent-Wild-Higher-Precategory - map-colax-functor-Noncoherent-Wild-Higher-Precategory + hom-colax-functor-Noncoherent-Wild-Higher-Precategory = {!!} - preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : - (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → - 2-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory - ( id-hom-Noncoherent-Wild-Higher-Precategory 𝒜 {x})) - ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ - { obj-colax-functor-Noncoherent-Wild-Higher-Precategory x}) - preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = - preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - - preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : - {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} - (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) - (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → - 2-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory - ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) - ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f)) - preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = - preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - - 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} - {f g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y} → - 2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 f g → - 2-hom-Noncoherent-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f) - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) - 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = - 2-hom-map-Noncoherent-Wild-Higher-Precategory +{- + hom-map-Noncoherent-Wild-Higher-Precategory map-colax-functor-Noncoherent-Wild-Higher-Precategory - - hom-globular-type-map-colax-functor-Noncoherent-Wild-Higher-Precategory : - {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → - globular-map - ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) - ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) - hom-globular-type-map-colax-functor-Noncoherent-Wild-Higher-Precategory = - hom-globular-type-map-Noncoherent-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) - - map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : - (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → - map-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( ℬ) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) - map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory = - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) - - hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : - (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → - colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( ℬ) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) - hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory - x y = - ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory - ( x) - ( y) , - is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - ( x) - ( y)) -``` - -### The identity colax functor on a noncoherent wild higher precategory - -```agda -is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory : - {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → - is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜) -is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = - λ where - .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - x → - id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 - .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - g f → - id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 - .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → - is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - -id-colax-functor-Noncoherent-Wild-Higher-Precategory : - {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → - colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 -id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = - ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜 , - is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) -``` - -### Composition of colax functors between noncoherent wild higher precategories - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} - (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) - (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) - where - - map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : - map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 - map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = - comp-map-Noncoherent-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory G) - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory F) - -is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : - {l1 l2 l3 l4 l5 l6 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} - (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) - (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) → - is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F) -is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory - {𝒞 = 𝒞} G F = - λ where - .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory x → - comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 - ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x)) - ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G - ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F - ( x))) - .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory g f → - comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 - ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F g) - ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F f)) - ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G - ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F - ( g) - ( f))) - .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → - is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory - ( G) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x) - ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F y)) - ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory - ( F) - ( x) - ( y)) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} - (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) - (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) - where - - comp-colax-functor-Noncoherent-Wild-Higher-Precategory : - colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 - pr1 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = - map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F - pr2 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = - is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F -``` +-} + +-- preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → +-- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( id-hom-Noncoherent-Wild-Higher-Precategory 𝒜 {x})) +-- ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ +-- { obj-colax-functor-Noncoherent-Wild-Higher-Precategory x}) +-- preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) + +-- preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} +-- (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) +-- (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → +-- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) +-- ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f)) +-- preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) + +-- 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} +-- {f g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y} → +-- 2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 f g → +-- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f) +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) +-- 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- 2-hom-map-Noncoherent-Wild-Higher-Precategory +-- map-colax-functor-Noncoherent-Wild-Higher-Precategory + +-- hom-globular-map-map-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → +-- globular-map +-- ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) +-- ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) +-- hom-globular-map-map-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- hom-globular-map-map-Noncoherent-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) + +-- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → +-- map-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- ( ℬ) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) +-- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) + +-- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → +-- colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- ( ℬ) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) +-- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory +-- x y = +-- ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( x) +-- ( y) , +-- is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) +-- ( x) +-- ( y)) +-- ``` + +-- ### The identity colax functor on a noncoherent wild higher precategory + +-- ```agda +-- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → +-- is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜) +-- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = ? + +-- {- +-- λ where +-- .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- x → +-- id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 +-- .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- g f → +-- id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 +-- .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → +-- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) +-- -} + +-- id-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → +-- colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 +-- id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = +-- ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜 , +-- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) +-- ``` + +-- ### Composition of colax functors between noncoherent wild higher precategories + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} +-- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} +-- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} +-- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) +-- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) +-- where + +-- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 +-- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- comp-map-Noncoherent-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory G) +-- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory F) + +-- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} +-- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} +-- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} +-- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) +-- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) → +-- is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F) +-- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory +-- {𝒞 = 𝒞} G F = ? + +-- {- +-- λ where +-- .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory x → +-- comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 +-- ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x)) +-- ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G +-- ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F +-- ( x))) +-- .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory g f → +-- comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 +-- ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F g) +-- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F f)) +-- ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G +-- ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F +-- ( g) +-- ( f))) +-- .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → +-- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( G) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x) +-- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F y)) +-- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( F) +-- ( x) +-- ( y)) +-- -} + +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} +-- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} +-- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} +-- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) +-- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) +-- where + +-- comp-colax-functor-Noncoherent-Wild-Higher-Precategory : +-- colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 +-- pr1 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F +-- pr2 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = +-- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F +-- ``` diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index aaeb0d72f8..3063d56f35 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -126,60 +126,41 @@ module _ ( ℬ) ( obj-map-Noncoherent-Large-Wild-Higher-Precategory x) ( obj-map-Noncoherent-Large-Wild-Higher-Precategory y)) - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory x y = - {!!} - -{- - λ where - .obj-map-Noncoherent-Wild-Higher-Precategory → - hom-map-Noncoherent-Large-Wild-Higher-Precategory - .hom-globular-map-map-Noncoherent-Wild-Higher-Precategory → - 1-cell-globular-map-globular-map - ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory) --} + hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory + _ _ = + 1-cell-globular-map-large-globular-map F +``` + +### The identity map on a noncoherent large wild higher precategory + +```agda +module _ + {α : Level → Level} {β : Level → Level → Level} + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) + where + + id-map-Noncoherent-Large-Wild-Higher-Precategory : + map-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 + id-map-Noncoherent-Large-Wild-Higher-Precategory = + id-large-globular-map _ ``` --- ### The identity map on a noncoherent large wild higher precategory - --- ```agda --- module _ --- {α : Level → Level} {β : Level → Level → Level} --- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) --- where - --- id-map-Noncoherent-Large-Wild-Higher-Precategory : --- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 --- id-map-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .obj-map-Noncoherent-Large-Wild-Higher-Precategory → --- id --- .hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory → --- id-globular-map _ --- ``` - --- ### Composition of maps of noncoherent large wild higher precategories - --- ```agda --- module _ --- {α1 α2 α3 : Level → Level} --- {β1 β2 β3 : Level → Level → Level} --- {δ1 δ2 : Level → Level} --- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} --- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} --- {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} --- (G : map-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) --- (F : map-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) --- where - --- comp-map-Noncoherent-Large-Wild-Higher-Precategory : --- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 --- comp-map-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .obj-map-Noncoherent-Large-Wild-Higher-Precategory → --- obj-map-Noncoherent-Large-Wild-Higher-Precategory G ∘ --- obj-map-Noncoherent-Large-Wild-Higher-Precategory F --- .hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory → --- comp-globular-map --- ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory G) --- ( hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory F) --- ``` +### Composition of maps of noncoherent large wild higher precategories + +```agda +module _ + {α1 α2 α3 : Level → Level} + {β1 β2 β3 : Level → Level → Level} + {δ1 δ2 : Level → Level} + {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} + {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} + {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} + (G : map-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) + (F : map-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) + where + + comp-map-Noncoherent-Large-Wild-Higher-Precategory : + map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 + comp-map-Noncoherent-Large-Wild-Higher-Precategory = + comp-large-globular-map G F +``` diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index 9b09b13b0f..4f17ff0d2a 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -194,8 +194,8 @@ record 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g → UU (β l1 l2) 3-hom-Noncoherent-Large-Wild-Higher-Precategory = - 3-cell-large-globular-structure - ( globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory) + 3-cell-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ``` - The globular structure on the type of 2-morphisms in a noncoherent large wild @@ -228,7 +228,7 @@ record {l1 : Level} {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} → hom-Noncoherent-Large-Wild-Higher-Precategory x x id-hom-Noncoherent-Large-Wild-Higher-Precategory {l1} {x} = - refl-0-cell-is-reflexive-Large-Globular-Type + refl-1-cell-is-reflexive-Large-Globular-Type ( id-structure-Noncoherent-Large-Wild-Higher-Precategory) ( x) @@ -249,7 +249,7 @@ record (f : hom-Noncoherent-Large-Wild-Higher-Precategory x y) → 2-hom-Noncoherent-Large-Wild-Higher-Precategory f f id-2-hom-Noncoherent-Large-Wild-Higher-Precategory = - refl-1-cell-is-reflexive-Large-Globular-Type + refl-2-cell-is-reflexive-Large-Globular-Type id-structure-Noncoherent-Large-Wild-Higher-Precategory id-3-hom-Noncoherent-Large-Wild-Higher-Precategory : @@ -260,7 +260,7 @@ record (s : 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g) → 3-hom-Noncoherent-Large-Wild-Higher-Precategory s s id-3-hom-Noncoherent-Large-Wild-Higher-Precategory = - refl-2-cell-is-reflexive-Large-Globular-Type + refl-3-cell-is-reflexive-Large-Globular-Type id-structure-Noncoherent-Large-Wild-Higher-Precategory ``` @@ -269,8 +269,8 @@ record ```agda field comp-structure-Noncoherent-Large-Wild-Higher-Precategory : - is-transitive-large-globular-structure - globular-structure-obj-Noncoherent-Large-Wild-Higher-Precategory + is-transitive-Large-Globular-Type + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory comp-hom-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 l3 : Level} @@ -281,17 +281,17 @@ record hom-Noncoherent-Large-Wild-Higher-Precategory x y → hom-Noncoherent-Large-Wild-Higher-Precategory x z comp-hom-Noncoherent-Large-Wild-Higher-Precategory = - comp-1-cell-is-transitive-large-globular-structure + comp-1-cell-is-transitive-Large-Globular-Type comp-structure-Noncoherent-Large-Wild-Higher-Precategory comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory l1) - (y : obj-Noncoherent-Large-Wild-Higher-Precategory l2) → - is-transitive-globular-structure - ( globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory x y) + {x : obj-Noncoherent-Large-Wild-Higher-Precategory l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory l2} → + is-transitive-Globular-Type + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory x y) comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = - is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure + is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type comp-structure-Noncoherent-Large-Wild-Higher-Precategory comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory : @@ -303,7 +303,7 @@ record 2-hom-Noncoherent-Large-Wild-Higher-Precategory f g → 2-hom-Noncoherent-Large-Wild-Higher-Precategory f h comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory = - comp-2-cell-is-transitive-large-globular-structure + comp-2-cell-is-transitive-Large-Globular-Type comp-structure-Noncoherent-Large-Wild-Higher-Precategory comp-3-hom-Noncoherent-Large-Wild-Higher-Precategory : @@ -316,7 +316,7 @@ record 3-hom-Noncoherent-Large-Wild-Higher-Precategory r s → 3-hom-Noncoherent-Large-Wild-Higher-Precategory r t comp-3-hom-Noncoherent-Large-Wild-Higher-Precategory = - comp-3-cell-is-transitive-large-globular-structure + comp-3-cell-is-transitive-Large-Globular-Type comp-structure-Noncoherent-Large-Wild-Higher-Precategory ``` @@ -331,12 +331,11 @@ record Noncoherent-Wild-Higher-Precategory (β l1 l2) (β l1 l2) hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory x y = - make-Noncoherent-Wild-Higher-Precategory - ( hom-Noncoherent-Large-Wild-Higher-Precategory x y) - ( globular-structure-hom-Noncoherent-Large-Wild-Higher-Precategory x y) - ( id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) - ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory - x y) + make-Noncoherent-Wild-Higher-Precategory + ( id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory + { x = x} + { y}) + ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) open Noncoherent-Large-Wild-Higher-Precategory public ``` diff --git a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md index 81bb1f6996..d7288d4b03 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -121,18 +121,36 @@ module _ id-hom-Noncoherent-Wild-Higher-Precategory : {x : obj-Noncoherent-Wild-Higher-Precategory} → hom-Noncoherent-Wild-Higher-Precategory x x - id-hom-Noncoherent-Wild-Higher-Precategory {x} = - refl-1-cell-is-reflexive-Globular-Type + id-hom-Noncoherent-Wild-Higher-Precategory {x} = + refl-2-cell-is-reflexive-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory id-structure-Noncoherent-Wild-Higher-Precategory - id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + id-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory} → is-reflexive-Globular-Type ( hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) - id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + id-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory = is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type id-structure-Noncoherent-Wild-Higher-Precategory + + reflexive-globular-type-Noncoherent-Wild-Higher-Precategory : + Reflexive-Globular-Type l1 l2 + globular-type-Reflexive-Globular-Type + reflexive-globular-type-Noncoherent-Wild-Higher-Precategory = + globular-type-Noncoherent-Wild-Higher-Precategory + refl-Reflexive-Globular-Type + reflexive-globular-type-Noncoherent-Wild-Higher-Precategory = + id-structure-Noncoherent-Wild-Higher-Precategory + + hom-reflexive-globular-type-Noncoherent-Wild-Higher-Precategory : + (x y : obj-Noncoherent-Wild-Higher-Precategory) → + Reflexive-Globular-Type l2 l2 + hom-reflexive-globular-type-Noncoherent-Wild-Higher-Precategory x y = + 1-cell-reflexive-globular-type-Reflexive-Globular-Type + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory) + ( x) + ( y) ``` - Composition in a noncoherent wild higher precategory @@ -153,16 +171,35 @@ module _ comp-1-cell-is-transitive-Globular-Type comp-structure-Noncoherent-Wild-Higher-Precategory - comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + comp-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory} → is-transitive-Globular-Type ( hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) - comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + comp-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory = is-transitive-1-cell-globular-type-is-transitive-Globular-Type comp-structure-Noncoherent-Wild-Higher-Precategory + + transitive-globular-type-Noncoherent-Wild-Higher-Precategory : + Transitive-Globular-Type l1 l2 + globular-type-Transitive-Globular-Type + transitive-globular-type-Noncoherent-Wild-Higher-Precategory = + globular-type-Noncoherent-Wild-Higher-Precategory + is-transitive-Transitive-Globular-Type + transitive-globular-type-Noncoherent-Wild-Higher-Precategory = + comp-structure-Noncoherent-Wild-Higher-Precategory + + hom-transitive-globular-type-Noncoherent-Wild-Higher-Precategory : + (x y : obj-Noncoherent-Wild-Higher-Precategory) → + Transitive-Globular-Type l2 l2 + hom-transitive-globular-type-Noncoherent-Wild-Higher-Precategory x y = + 1-cell-transitive-globular-type-Transitive-Globular-Type + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory) + ( x) + ( y) ``` -- The noncoherent wild higher precategory of morphisms between two objects in a noncoherent wild higher precategory +- The noncoherent wild higher precategory of morphisms between two objects in a + noncoherent wild higher precategory ```agda hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory : @@ -171,9 +208,9 @@ module _ hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory x y = make-Noncoherent-Wild-Higher-Precategory - ( id-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ( id-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory {x} {y}) - ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) + ( comp-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory) ``` - 2-Morphisms in a noncoherent wild higher precategory @@ -192,7 +229,7 @@ module _ {f : hom-Noncoherent-Wild-Higher-Precategory x y} → 2-hom-Noncoherent-Wild-Higher-Precategory f f id-2-hom-Noncoherent-Wild-Higher-Precategory = - refl-2-cell-is-reflexive-Globular-Type + refl-3-cell-is-reflexive-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory id-structure-Noncoherent-Wild-Higher-Precategory @@ -224,7 +261,7 @@ module _ {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} → 3-hom-Noncoherent-Wild-Higher-Precategory H H id-3-hom-Noncoherent-Wild-Higher-Precategory = - refl-3-cell-is-reflexive-Globular-Type + refl-4-cell-is-reflexive-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory id-structure-Noncoherent-Wild-Higher-Precategory From b9ea44aa36664cd3c9c7e61c4706bc9be629bd8d Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 18 Oct 2024 11:04:22 -0400 Subject: [PATCH 18/42] maps --- .../colax-reflexive-globular-maps.lagda.md | 48 ++- .../colax-transitive-globular-maps.lagda.md | 70 ++++ .../lax-reflexive-globular-maps.lagda.md | 199 +++++++++++ .../reflexive-globular-maps.lagda.md | 6 +- .../reflexive-globular-types.lagda.md | 24 ++ .../transitive-globular-types.lagda.md | 21 ++ ...oherent-wild-higher-precategories.lagda.md | 326 ++++++++++-------- 7 files changed, 539 insertions(+), 155 deletions(-) create mode 100644 src/structured-types/lax-reflexive-globular-maps.lagda.md diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md index 21a1f08b7b..cf851e06fd 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -33,11 +33,21 @@ from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at `f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax reflexive. -Note: When reflexive globular types are viewed as type-valued presheaves over +### Lack of composition for colax reflexive globular maps + +Note that the colax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. + +### Colax reflexive globular maps versus the morphisms of presheaves on the reflexive globe category + +When reflexive globular types are viewed as type-valued presheaves over the reflexive globe category, the resulting notion of morphism is that of [reflexive globular maps](structured-types.reflexive-globular-maps.md), which is stricter than the notion of colax reflexive globular maps. +### Lax versus colax + +The notion of [lax reflexive globular map](structured-types.lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. + ## Definitions ### The predicate of colax preserving reflexivity @@ -150,3 +160,39 @@ record 1-cell-colax-reflexive-globular-map-colax-reflexive-globular-map = is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-globular-map ``` + +### The identity colax reflexive globular map + +```agda +map-id-colax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + globular-map-Reflexive-Globular-Type G G +map-id-colax-reflexive-globular-map G = id-globular-map _ + +is-colax-reflexive-id-colax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + is-colax-reflexive-globular-map G G (map-id-colax-reflexive-globular-map G) +preserves-refl-1-cell-is-colax-reflexive-globular-map + ( is-colax-reflexive-id-colax-reflexive-globular-map G) + x = + refl-2-cell-Reflexive-Globular-Type G +is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map + ( is-colax-reflexive-id-colax-reflexive-globular-map G) = + is-colax-reflexive-id-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + +id-colax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + colax-reflexive-globular-map G G +colax-reflexive-globular-map.globular-map-colax-reflexive-globular-map + ( id-colax-reflexive-globular-map G) = + map-id-colax-reflexive-globular-map G +colax-reflexive-globular-map.is-colax-reflexive-colax-reflexive-globular-map + ( id-colax-reflexive-globular-map G) = + ( is-colax-reflexive-id-colax-reflexive-globular-map G) +``` + +## See also + +- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md index 4b04cad390..5d9a561d69 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -31,6 +31,10 @@ equipped with a family of 2-cells from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax transitive. +### Lack of identity colax transitive globular maps + +Note that the colax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the transitive globular type `G` is not assumed to be [reflexive](structured-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. + ## Definitions ### The predicate of colax preserving transitivity @@ -107,6 +111,30 @@ record 1-cell-globular-map-colax-transitive-globular-map = 1-cell-globular-map-globular-map globular-map-colax-transitive-globular-map + 2-cell-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + 2-cell-Transitive-Globular-Type G f g → + 2-cell-Transitive-Globular-Type H + ( 1-cell-colax-transitive-globular-map f) + ( 1-cell-colax-transitive-globular-map g) + 2-cell-colax-transitive-globular-map = + 2-cell-globular-map globular-map-colax-transitive-globular-map + + 2-cell-globular-map-colax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Transitive-Globular-Type H + ( 1-cell-colax-transitive-globular-map f) + ( 1-cell-colax-transitive-globular-map g)) + 2-cell-globular-map-colax-transitive-globular-map = + 2-cell-globular-map-globular-map + ( globular-map-colax-transitive-globular-map) + ( _) + ( _) + field is-colax-transitive-colax-transitive-globular-map : is-colax-transitive-globular-map G H @@ -151,4 +179,46 @@ record is-colax-transitive-colax-transitive-globular-map 1-cell-colax-transitive-globular-map-colax-transitive-globular-map = is-colax-transitive-1-cell-globular-map-colax-transitive-globular-map + +open colax-transitive-globular-map public +``` + +### Composition of colax transitive maps + +```agda +map-comp-colax-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + colax-transitive-globular-map H K → colax-transitive-globular-map G H → + globular-map-Transitive-Globular-Type G K +map-comp-colax-transitive-globular-map G H K g f = + comp-globular-map + ( globular-map-colax-transitive-globular-map g) + ( globular-map-colax-transitive-globular-map f) + +is-colax-transitive-comp-colax-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + (g : colax-transitive-globular-map H K) + (f : colax-transitive-globular-map G H) → + is-colax-transitive-globular-map G K + ( map-comp-colax-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-colax-transitive-globular-map + ( is-colax-transitive-comp-colax-transitive-globular-map G H K g f) q p = + comp-2-cell-Transitive-Globular-Type K + ( preserves-comp-1-cell-colax-transitive-globular-map g _ _) + ( 2-cell-colax-transitive-globular-map g + ( preserves-comp-1-cell-colax-transitive-globular-map f q p)) +is-colax-transitive-1-cell-globular-map-is-colax-transitive-globular-map + ( is-colax-transitive-comp-colax-transitive-globular-map G H K g f) = + is-colax-transitive-comp-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type K _ _) + ( 1-cell-colax-transitive-globular-map-colax-transitive-globular-map g) + ( 1-cell-colax-transitive-globular-map-colax-transitive-globular-map f) ``` diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..4eb37fcffa --- /dev/null +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -0,0 +1,199 @@ +# Lax reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.lax-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "lax reflexive globular map" Agda=reflexive-globular-map}} +between two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped +with a family of 2-cells + +```text + (x : G₀) → H₂ (Hᵣ (f₀ x)) (f₁ (Gᵣ x)) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again +lax reflexive. + +### Lack of composition for lax reflexive globular maps + +Note that the lax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. + +### Lax reflexive globular maps versus the morphisms of presheaves on the reflexive globe category + +When reflexive globular types are viewed as type-valued presheaves over +the reflexive globe category, the resulting notion of morphism is that of +[reflexive globular maps](structured-types.reflexive-globular-maps.md), which is +stricter than the notion of lax reflexive globular maps. + +### Lax versus colax + +The notion of [colax reflexive globular map](structured-types.colax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. + + +## Definitions + +### The predicate of lax preserving reflexivity + +```agda +record + is-lax-reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (f : globular-map-Reflexive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-refl-1-cell-is-lax-reflexive-globular-map : + (x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( refl-1-cell-Reflexive-Globular-Type H) + ( 1-cell-globular-map f (refl-1-cell-Reflexive-Globular-Type G {x})) + + field + is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map-Reflexive-Globular-Type G H f) + +open is-lax-reflexive-globular-map public +``` + +### Lax reflexive globular maps + +```agda +record + lax-reflexive-globular-map + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-lax-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-lax-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-lax-reflexive-globular-map = + 0-cell-globular-map globular-map-lax-reflexive-globular-map + + 1-cell-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + 1-cell-Reflexive-Globular-Type G x y → + 1-cell-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y) + 1-cell-lax-reflexive-globular-map = + 1-cell-globular-map globular-map-lax-reflexive-globular-map + + 1-cell-globular-map-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + 1-cell-globular-map-lax-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-lax-reflexive-globular-map + + field + is-lax-reflexive-lax-reflexive-globular-map : + is-lax-reflexive-globular-map G H + globular-map-lax-reflexive-globular-map + + preserves-refl-1-cell-lax-reflexive-globular-map : + (x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( refl-1-cell-Reflexive-Globular-Type H) + ( 1-cell-lax-reflexive-globular-map + ( refl-1-cell-Reflexive-Globular-Type G {x})) + preserves-refl-1-cell-lax-reflexive-globular-map = + preserves-refl-1-cell-is-lax-reflexive-globular-map + is-lax-reflexive-lax-reflexive-globular-map + + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + ( 1-cell-globular-map-lax-reflexive-globular-map) + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-globular-map = + is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-globular-map + is-lax-reflexive-lax-reflexive-globular-map + + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H + ( 0-cell-lax-reflexive-globular-map x) + ( 0-cell-lax-reflexive-globular-map y)) + globular-map-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = + 1-cell-globular-map-lax-reflexive-globular-map + is-lax-reflexive-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-globular-map +``` + +### The identity lax reflexive globular map + +```agda +map-id-lax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + globular-map-Reflexive-Globular-Type G G +map-id-lax-reflexive-globular-map G = id-globular-map _ + +is-lax-reflexive-id-lax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + is-lax-reflexive-globular-map G G (map-id-lax-reflexive-globular-map G) +preserves-refl-1-cell-is-lax-reflexive-globular-map + ( is-lax-reflexive-id-lax-reflexive-globular-map G) + x = + refl-2-cell-Reflexive-Globular-Type G +is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-globular-map + ( is-lax-reflexive-id-lax-reflexive-globular-map G) = + is-lax-reflexive-id-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + +id-lax-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + lax-reflexive-globular-map G G +lax-reflexive-globular-map.globular-map-lax-reflexive-globular-map + ( id-lax-reflexive-globular-map G) = + map-id-lax-reflexive-globular-map G +lax-reflexive-globular-map.is-lax-reflexive-lax-reflexive-globular-map + ( id-lax-reflexive-globular-map G) = + ( is-lax-reflexive-id-lax-reflexive-globular-map G) +``` + +## See also + +- [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index ab617466c3..f1da22e066 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -34,9 +34,9 @@ from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at reflexive. Note: In some settings it may be preferred to work with globular maps preserving -reflexivity cells up to a higher cell. This notion of maps between reflexive -globular types is the notion of -[lax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md). +reflexivity cells up to a higher cell. The two notions of maps between reflexive +globular types preserving the reflexivity structure up to a higher cell are, depending of the direction of the coherence cells, the notions of +[colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) and [lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). ## Definitions diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 74bcc1c746..217244d45f 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -124,7 +124,11 @@ module _ record Reflexive-Globular-Type (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) where +``` + +- The underlying globular type of a reflexive globular type +```agda field globular-type-Reflexive-Globular-Type : Globular-Type l1 l2 @@ -148,7 +152,11 @@ record globular-structure-Reflexive-Globular-Type = globular-structure-0-cell-Globular-Type ( globular-type-Reflexive-Globular-Type) +``` +- The reflexivity structure of a reflexive globular type + +```agda field refl-Reflexive-Globular-Type : is-reflexive-Globular-Type globular-type-Reflexive-Globular-Type @@ -166,6 +174,16 @@ record 1-cell-globular-type-Reflexive-Globular-Type = 1-cell-globular-type-Globular-Type globular-type-Reflexive-Globular-Type + refl-2-cell-Reflexive-Globular-Type : + {x y : 0-cell-Reflexive-Globular-Type} + {f : 1-cell-Reflexive-Globular-Type x y} → + 2-cell-Reflexive-Globular-Type f f + refl-2-cell-Reflexive-Globular-Type = + is-reflexive-2-cell-is-reflexive-Globular-Type + ( globular-type-Reflexive-Globular-Type) + ( refl-Reflexive-Globular-Type) + ( _) + refl-2-cell-globular-type-Reflexive-Globular-Type : {x y : 0-cell-Reflexive-Globular-Type} → is-reflexive-Globular-Type @@ -173,7 +191,11 @@ record refl-2-cell-globular-type-Reflexive-Globular-Type = is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type refl-Reflexive-Globular-Type +``` + +- The reflexive globular type of 1-cells of a reflexive globular type +```agda 1-cell-reflexive-globular-type-Reflexive-Globular-Type : (x y : 0-cell-Reflexive-Globular-Type) → Reflexive-Globular-Type l2 l2 globular-type-Reflexive-Globular-Type @@ -327,3 +349,5 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ## See also - [Lax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-tyeps.reflexive-globular-maps.md) +- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both reflexive and [transitive](structured-types.transitive-globular-types.md). diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index d3a81d3a89..9764f430dd 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -112,7 +112,11 @@ record constructor make-Transitive-Globular-Type +``` + +- The underlying globular type of a transitive globular type +```agda field globular-type-Transitive-Globular-Type : Globular-Type l1 l2 @@ -161,7 +165,11 @@ record globular-structure-Transitive-Globular-Type = globular-structure-0-cell-Globular-Type ( globular-type-Transitive-Globular-Type) +``` +- The composition structure of a transitive globular type + +```agda field is-transitive-Transitive-Globular-Type : is-transitive-Globular-Type globular-type-Transitive-Globular-Type @@ -198,6 +206,18 @@ record is-transitive-1-cell-globular-type-is-transitive-Globular-Type is-transitive-Transitive-Globular-Type + 2-cell-transitive-globular-type-Transitive-Globular-Type : + {x y : 0-cell-Transitive-Globular-Type} → + (f g : 1-cell-Transitive-Globular-Type x y) → + Transitive-Globular-Type l2 l2 + globular-type-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Transitive-Globular-Type f g) = + 2-cell-globular-type-Transitive-Globular-Type f g + is-transitive-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Transitive-Globular-Type f g) = + is-transitive-2-cell-globular-type-is-transitive-Globular-Type + is-transitive-Transitive-Globular-Type + open Transitive-Globular-Type public ``` @@ -334,3 +354,4 @@ transitive-globular-structure-Id A = ## See also - [Composition structure on globular types](structured-types.composition-structure-globular-types.md) +- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both [reflexive](structured-types.reflexive-globular-types.md) and transitive. diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 61caf3f050..33d668c492 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -52,6 +52,44 @@ in `ℬ`. ## Definitions +### The predicate on maps on noncoherent wild higher precategories of preserving identity structure + +```agda +module _ + {l1 l2 l3 l4 : Level} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) + where + + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory : + UU (l1 ⊔ l2 ⊔ l4) + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory = + is-colax-reflexive-globular-map + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + ( F) +``` + +### The predicate on maps of noncoherent wild higher precategories of preserving composition structure + +```agda +module _ + {l1 l2 l3 l4 : Level} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) + where + + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory : + UU (l1 ⊔ l2 ⊔ l4) + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory = + is-colax-transitive-globular-map + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + ( F) +``` + ### The predicate of being a colax functor between noncoherent wild higher precategories ```agda @@ -66,10 +104,7 @@ record field is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory : - is-colax-reflexive-globular-map - ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) - ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) - ( F) + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ F preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → @@ -94,10 +129,7 @@ record field is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory : - is-colax-transitive-globular-map - ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) - ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) - ( F) + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ F preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory : {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} @@ -156,7 +188,11 @@ colax-functor-Noncoherent-Wild-Higher-Precategory : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ = Σ ( map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) ( is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) +``` +- The action of colax functors on objects, morphisms, and higher morphisms + +```agda module _ {l1 l2 l3 l4 : Level} {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} @@ -168,20 +204,11 @@ module _ map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ map-colax-functor-Noncoherent-Wild-Higher-Precategory = pr1 F - is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory : - is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) - is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory = pr2 F - obj-colax-functor-Noncoherent-Wild-Higher-Precategory : obj-Noncoherent-Wild-Higher-Precategory 𝒜 → obj-Noncoherent-Wild-Higher-Precategory ℬ - obj-colax-functor-Noncoherent-Wild-Higher-Precategory = {!!} - -{- - obj-map-Noncoherent-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) --} + obj-colax-functor-Noncoherent-Wild-Higher-Precategory = + 0-cell-globular-map map-colax-functor-Noncoherent-Wild-Higher-Precategory hom-colax-functor-Noncoherent-Wild-Higher-Precategory : {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → @@ -189,148 +216,145 @@ module _ hom-Noncoherent-Wild-Higher-Precategory ℬ ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y) - hom-colax-functor-Noncoherent-Wild-Higher-Precategory = {!!} + hom-colax-functor-Noncoherent-Wild-Higher-Precategory = + 1-cell-globular-map map-colax-functor-Noncoherent-Wild-Higher-Precategory -{- - hom-map-Noncoherent-Wild-Higher-Precategory + hom-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → + globular-map + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) + ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ + ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) + hom-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + 1-cell-globular-map-globular-map map-colax-functor-Noncoherent-Wild-Higher-Precategory --} --- preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : --- (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → --- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( id-hom-Noncoherent-Wild-Higher-Precategory 𝒜 {x})) --- ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ --- { obj-colax-functor-Noncoherent-Wild-Higher-Precategory x}) --- preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = --- preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - --- preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} --- (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) --- (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → --- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) --- ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f)) --- preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = --- preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - --- 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} --- {f g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y} → --- 2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 f g → --- 2-hom-Noncoherent-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f) --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) --- 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = --- 2-hom-map-Noncoherent-Wild-Higher-Precategory --- map-colax-functor-Noncoherent-Wild-Higher-Precategory - --- hom-globular-map-map-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} → --- globular-map --- ( hom-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜 x y) --- ( hom-globular-type-Noncoherent-Wild-Higher-Precategory ℬ --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) --- hom-globular-map-map-colax-functor-Noncoherent-Wild-Higher-Precategory = --- hom-globular-map-map-Noncoherent-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) - --- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : --- (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → --- map-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- ( ℬ) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) --- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory = --- hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) - --- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory : --- (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → --- colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- ( ℬ) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) --- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory --- x y = --- ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( x) --- ( y) , --- is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) --- ( x) --- ( y)) --- ``` + 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜} + {f g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y} → + 2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 f g → + 2-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f) + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) + 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = + 2-cell-globular-map map-colax-functor-Noncoherent-Wild-Higher-Precategory + + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory : + is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ + ( map-colax-functor-Noncoherent-Wild-Higher-Precategory) + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory = pr2 F +``` --- ### The identity colax functor on a noncoherent wild higher precategory +- Preservation by colax functors of identity morphisms --- ```agda --- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → --- is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜) --- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = ? +```agda + preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : + (x : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → + 2-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory + ( id-hom-Noncoherent-Wild-Higher-Precategory 𝒜 {x})) + ( id-hom-Noncoherent-Wild-Higher-Precategory ℬ + { obj-colax-functor-Noncoherent-Wild-Higher-Precategory x}) + preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) + +``` --- {- --- λ where --- .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory --- x → --- id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 --- .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory --- g f → --- id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 --- .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → --- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) --- -} +- Preservation by colax functors of composition --- id-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → --- colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 --- id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = --- ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜 , --- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) --- ``` +```agda + preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : + {x y z : obj-Noncoherent-Wild-Higher-Precategory 𝒜} + (g : hom-Noncoherent-Wild-Higher-Precategory 𝒜 y z) + (f : hom-Noncoherent-Wild-Higher-Precategory 𝒜 x y) → + 2-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory + ( comp-hom-Noncoherent-Wild-Higher-Precategory 𝒜 g f)) + ( comp-hom-Noncoherent-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory g) + ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory f)) + preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) +``` --- ### Composition of colax functors between noncoherent wild higher precategories +- The induced colax functor on the wild category of morphisms between two objects --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} --- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} --- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} --- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) --- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) --- where +```agda + hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory : + (x y : obj-Noncoherent-Wild-Higher-Precategory 𝒜) → + colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( 𝒜) + ( x) + ( y)) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( ℬ) + ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory y)) + hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory x y = + ( hom-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory , + is-colax-functor-hom-globular-map-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) +``` + +### The identity colax functor on a noncoherent wild higher precategory + +```agda +is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → + is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 + ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜) +is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = + is-colax-reflexive-id-colax-reflexive-globular-map + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) +is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory (is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = {!!} + +{- + λ where + .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory + x → + id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 + .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory + g f → + id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 + .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → + is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( 𝒜) + ( x) + ( y)) +-} + +id-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → + colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 +id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = + ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜 , + is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) +``` + +### Composition of colax functors between noncoherent wild higher precategories + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} + {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} + {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} + (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) + (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) + where --- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : --- map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 --- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = --- comp-map-Noncoherent-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory G) --- ( map-colax-functor-Noncoherent-Wild-Higher-Precategory F) + map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : + map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 + map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + comp-map-Noncoherent-Wild-Higher-Precategory + ( map-colax-functor-Noncoherent-Wild-Higher-Precategory G) + ( map-colax-functor-Noncoherent-Wild-Higher-Precategory F) -- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : -- {l1 l2 l3 l4 l5 l6 : Level} From cab0051bbc85e13e96ce0a01c22bb5d4ceaabae0 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 18 Oct 2024 12:11:22 -0400 Subject: [PATCH 19/42] colax functors of noncoherent wild higher precategories --- .../reflexive-globular-types.lagda.md | 3 +- ...oherent-wild-higher-precategories.lagda.md | 217 +++++++++++------- ...oherent-wild-higher-precategories.lagda.md | 6 +- 3 files changed, 139 insertions(+), 87 deletions(-) diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 217244d45f..91ac2a9d53 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -348,6 +348,7 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ## See also -- [Lax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) +- [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) +- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) - [Reflexive globular maps](structured-tyeps.reflexive-globular-maps.md) - [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both reflexive and [transitive](structured-types.transitive-globular-types.md). diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 33d668c492..48219b2d2b 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -259,7 +259,18 @@ module _ preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - + + colax-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : + colax-reflexive-globular-map + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + colax-reflexive-globular-map.globular-map-colax-reflexive-globular-map + colax-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + map-colax-functor-Noncoherent-Wild-Higher-Precategory + colax-reflexive-globular-map.is-colax-reflexive-colax-reflexive-globular-map + colax-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` - Preservation by colax functors of composition @@ -278,6 +289,18 @@ module _ preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory = preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) + + colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : + colax-transitive-globular-map + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + globular-map-colax-transitive-globular-map + colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + map-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-transitive-colax-transitive-globular-map + colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` - The induced colax functor on the wild category of morphisms between two objects @@ -303,31 +326,49 @@ module _ ### The identity colax functor on a noncoherent wild higher precategory ```agda +map-id-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → + map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 +map-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = + id-map-Noncoherent-Wild-Higher-Precategory 𝒜 + +preserves-id-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 + ( map-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) +preserves-id-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = + is-colax-reflexive-id-colax-reflexive-globular-map + ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + +preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 + ( map-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) +preserves-comp-1-cell-is-colax-transitive-globular-map + ( preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜) + _ _ = + id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 +is-colax-transitive-1-cell-globular-map-is-colax-transitive-globular-map + ( preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜) = + preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( 𝒜) + ( _) + ( _)) + is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory : {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒜 - ( id-map-Noncoherent-Wild-Higher-Precategory 𝒜) + ( map-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory ( is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = - is-colax-reflexive-id-colax-reflexive-globular-map - ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) -is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory (is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = {!!} - -{- - λ where - .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - x → - id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 - .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory - g f → - id-2-hom-Noncoherent-Wild-Higher-Precategory 𝒜 - .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → - is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) --} + preserves-id-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 +is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = + preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜 id-colax-functor-Noncoherent-Wild-Higher-Precategory : {l1 l2 : Level} (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) → @@ -342,9 +383,9 @@ id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = ```agda module _ {l1 l2 l3 l4 l5 l6 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6) (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where @@ -352,65 +393,75 @@ module _ map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = - comp-map-Noncoherent-Wild-Higher-Precategory + comp-map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 ( map-colax-functor-Noncoherent-Wild-Higher-Precategory G) ( map-colax-functor-Noncoherent-Wild-Higher-Precategory F) --- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : --- {l1 l2 l3 l4 l5 l6 : Level} --- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} --- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} --- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} --- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) --- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) → --- is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F) --- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory --- {𝒞 = 𝒞} G F = ? - --- {- --- λ where --- .preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory x → --- comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 --- ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x)) --- ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G --- ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F --- ( x))) --- .preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory g f → --- comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 --- ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F g) --- ( hom-colax-functor-Noncoherent-Wild-Higher-Precategory F f)) --- ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G --- ( preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F --- ( g) --- ( f))) --- .is-colax-functor-map-hom-Noncoherent-Wild-Higher-Precategory x y → --- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( G) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F x) --- ( obj-colax-functor-Noncoherent-Wild-Higher-Precategory F y)) --- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( F) --- ( x) --- ( y)) --- -} - --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} --- {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} --- {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} --- (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) --- (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) --- where - --- comp-colax-functor-Noncoherent-Wild-Higher-Precategory : --- colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 --- pr1 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = --- map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F --- pr2 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = --- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory G F --- ``` +preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : + {l1 l2 l3 l4 l5 l6 : Level} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6) + (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) + (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) → + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 + ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) +preserves-refl-1-cell-is-colax-reflexive-globular-map + ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) x = + comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 + ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G _) + ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G + ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F _)) +is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map + ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) = + preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + 𝒜 _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + 𝒞 _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory + G _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory + F _ _) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6) + (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) + (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) + where + + preserves-comp-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 + ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) + preserves-comp-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-colax-transitive-comp-colax-transitive-globular-map + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) + ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒞) + ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory + G) + ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory F) + + is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : + is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 + ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜 ℬ 𝒞 G F + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + preserves-comp-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + + comp-colax-functor-Noncoherent-Wild-Higher-Precategory : + colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 + pr1 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F + pr2 comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory +``` diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 01f7476660..05b54e1acb 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -133,9 +133,9 @@ module _ ```agda module _ {l1 l2 l3 l4 l5 l6 : Level} - {𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2} - {ℬ : Noncoherent-Wild-Higher-Precategory l3 l4} - {𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6} + (𝒜 : Noncoherent-Wild-Higher-Precategory l1 l2) + (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) + (𝒞 : Noncoherent-Wild-Higher-Precategory l5 l6) (G : map-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where From b16dbd3e27cc7c387bcfffb60ba78dd0ef352ff3 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 18 Oct 2024 15:08:39 -0400 Subject: [PATCH 20/42] work --- .../dependent-reflexive-graphs.lagda.md | 8 +- ...t-large-wild-higher-precategories.lagda.md | 589 +++++++++--------- ...t-large-wild-higher-precategories.lagda.md | 2 +- 3 files changed, 310 insertions(+), 289 deletions(-) diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 14f349416b..80b48b905b 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -20,7 +20,7 @@ open import graph-theory.reflexive-graphs Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A {{#concept "dependent reflexive graph}} `B` over `A` consists of: -- A family `B₀ : A₀ → 𝒰` of vertices +- A family `B₀ : A₀ → 𝒰` of types as the type family of vertices - A family `B₁ : {x y : A₀} → A₁ x y → B₀ x → B₀ y → 𝒰` of [binary relations](foundation.binary-relations.md) between the types of vertices `B₀`, indexed by the type of edges `A₁` in `A`. @@ -34,6 +34,12 @@ Furthermore, [graph homomorphisms](graph-theory.morphisms-reflexive-graphs.md) into the [universal reflexive graph](graph-theory.universal-reflexive-graph.md) are equivalent to dependent reflexive graphs. +Alternatively, a dependent reflexive graph `B` over `A` can be defined by + +- A family `B₀ : A₀ → Reflexive-Graph` of reflexive graphs as the type family of vertices +- A family `B₁ : {x y : A₀} → A₁ x y → (B₀ x)₀ → (B₀ y)₀ → 𝒰`. +- A family `Bᵣ : (x : A₀) → B₁ (Aᵣ x) = (B₀ x)₁ + ## Definitions ### Dependent reflexive graphs diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index 0c6a1e6587..ec5985911e 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -14,6 +14,7 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.colax-reflexive-globular-maps open import structured-types.globular-maps open import structured-types.globular-types @@ -53,299 +54,313 @@ in `ℬ`. ## Definitions -### The predicate of being a colax functor between noncoherent wild higher precategories - -```agda -record - is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - {α1 α2 : Level → Level} - {β1 β2 : Level → Level → Level} - {δ : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) : UUω - where - field - preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Large-Wild-Higher-Precategory F - ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) - ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - { x = obj-map-Noncoherent-Large-Wild-Higher-Precategory F x}) - - preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 l3 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} - {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} - (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) - (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Large-Wild-Higher-Precategory F - ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) - ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-map-Noncoherent-Large-Wild-Higher-Precategory F g) - ( hom-map-Noncoherent-Large-Wild-Higher-Precategory F f)) - - is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) - (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → - is-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory - ( F) - ( x) - ( y)) - -open is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory public -``` - -### The type of colax functors between noncoherent wild higher precategories +### The predicate on maps between large noncoherent wild higher precategories of preserving the identity structure ```agda -record - colax-functor-Noncoherent-Large-Wild-Higher-Precategory - {α1 α2 : Level → Level} +preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory : + {α1 α2 δ : Level → Level} {β1 β2 : Level → Level → Level} - (δ : Level → Level) (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) - (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω - where - - field - map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ - - is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) + (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) → UUω +preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F = + {!is-colax-reflexive-globular-map!} ``` -```agda - obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l : Level} → - obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → - obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) - obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - obj-map-Noncoherent-Large-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - - hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → - hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y → - hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y) - hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - hom-map-Noncoherent-Large-Wild-Higher-Precategory - map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - - preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) - ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - { x = obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x}) - preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - - preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 l3 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} - {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} - (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) - (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) - ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f)) - preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - - 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} - {f g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y} → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 f g → - 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f) - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) - 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory - map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - - hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} - {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → - globular-map - ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) - ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) - hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - - map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) - (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → - map-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ( ℬ) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) - map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - - hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - {l1 l2 : Level} - (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) - (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → - colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ( ℬ) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) - hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - x y = - ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( x) - ( y) , - is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory - ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - ( x) - ( y)) - -open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public -``` - -### The identity colax functor on a noncoherent large wild higher precategory +### The predicate of being a colax functor between noncoherent wild higher precategories ```agda -module _ - {α : Level → Level} {β : Level → Level → Level} - (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) - where - - is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) - is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - x → - id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 - .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - g f → - id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 - .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → - is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ( 𝒜) - ( x) - ( y)) - - id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - colax-functor-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 - id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → - id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 - .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → - is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory -``` - -### Composition of colax functors between noncoherent wild higher precategories -```agda -module _ - {α1 α2 α3 : Level → Level} - {β1 β2 β3 : Level → Level → Level} - {δ1 δ2 : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} - (G : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) - (F : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) - where - - map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 - map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - comp-map-Noncoherent-Large-Wild-Higher-Precategory - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) - ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) - - is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - x → - comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 - ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( G) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x)) - ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G - ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( F) - ( x))) - .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - g f → - comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 - ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( G) - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F g) - ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F f)) - ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G - ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( F) - ( g) - ( f))) - .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → - is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( G) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x) - ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F y)) - ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( F) - ( x) - ( y)) - - comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - colax-functor-Noncoherent-Large-Wild-Higher-Precategory - ( λ l → δ2 (δ1 l)) - ( 𝒜) - ( 𝒞) - comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - λ where - .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → - map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → - is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory -``` +-- record +-- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- {α1 α2 : Level → Level} +-- {β1 β2 : Level → Level → Level} +-- {δ : Level → Level} +-- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} +-- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} +-- (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) : UUω +-- where +-- field +-- preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l : Level} +-- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F +-- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) +-- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- { x = obj-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F x}) + +-- preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 l3 : Level} +-- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} +-- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} +-- {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} +-- (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) +-- (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F +-- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) +-- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F g) +-- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F f)) + +-- is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) +-- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → +-- is-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory ? ? +-- ( F) +-- ( x) +-- ( y)) + +-- open is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory public +-- ``` + +-- ### The type of colax functors between noncoherent wild higher precategories + +-- ```agda +-- record +-- colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- {α1 α2 : Level → Level} +-- {β1 β2 : Level → Level → Level} +-- (δ : Level → Level) +-- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) +-- (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω +-- where + +-- field +-- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ + +-- is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) +-- ``` + +-- ```agda +-- obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l : Level} → +-- obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → +-- obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) +-- obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- obj-map-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + +-- hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} +-- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → +-- hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y → +-- hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y) +-- hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- hom-map-Noncoherent-Large-Wild-Higher-Precategory +-- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + +-- preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l : Level} +-- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) +-- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- { x = obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x}) +-- preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + +-- preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 l3 : Level} +-- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} +-- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} +-- {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} +-- (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) +-- (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) +-- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f)) +-- preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + +-- 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} +-- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} +-- {f g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y} → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 f g → +-- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f) +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) +-- 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory +-- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + +-- hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} +-- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → +-- globular-map +-- ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) +-- ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) +-- hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + +-- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) +-- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → +-- map-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory +-- ( ℬ) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) +-- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + +-- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- {l1 l2 : Level} +-- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) +-- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → +-- colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory +-- ( ℬ) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) +-- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- x y = +-- ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( x) +-- ( y) , +-- is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory +-- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) +-- ( x) +-- ( y)) + +-- open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public +-- ``` + +-- ### The identity colax functor on a noncoherent large wild higher precategory + +-- ```agda +-- module _ +-- {α : Level → Level} {β : Level → Level → Level} +-- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) +-- where + +-- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) +-- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- x → +-- id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 +-- .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- g f → +-- id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 +-- .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → +-- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory +-- ( 𝒜) +-- ( x) +-- ( y)) + +-- id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- colax-functor-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 +-- id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → +-- id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 +-- .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → +-- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ``` + +-- ### Composition of colax functors between noncoherent wild higher precategories + +-- ```agda +-- module _ +-- {α1 α2 α3 : Level → Level} +-- {β1 β2 β3 : Level → Level → Level} +-- {δ1 δ2 : Level → Level} +-- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} +-- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} +-- {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} +-- (G : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) +-- (F : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) +-- where + +-- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 +-- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- comp-map-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) +-- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) + +-- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) +-- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- x → +-- comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 +-- ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( G) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x)) +-- ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G +-- ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( F) +-- ( x))) +-- .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- g f → +-- comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 +-- ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( G) +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F g) +-- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F f)) +-- ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G +-- ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( F) +-- ( g) +-- ( f))) +-- .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → +-- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory +-- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( G) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x) +-- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F y)) +-- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( F) +-- ( x) +-- ( y)) + +-- comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : +-- colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ( λ l → δ2 (δ1 l)) +-- ( 𝒜) +-- ( 𝒞) +-- comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = +-- λ where +-- .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → +-- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → +-- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +-- ``` diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index 3063d56f35..6752b97912 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -65,7 +65,7 @@ map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ = ( large-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ) module _ - {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (δ : Level → Level) + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {δ : Level → Level} (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) From c9f1f92b9508f15cc5aaca38c4d7b6f649eb6704 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 18 Oct 2024 16:41:41 -0400 Subject: [PATCH 21/42] large (co)lax reflexive globular maps --- .../colax-reflexive-globular-maps.lagda.md | 8 +- ...rge-colax-reflexive-globular-maps.lagda.md | 216 ++++++++++++++++++ ...large-lax-reflexive-globular-maps.lagda.md | 216 ++++++++++++++++++ .../large-reflexive-globular-maps.lagda.md | 168 ++++++++++++++ .../large-reflexive-globular-types.lagda.md | 117 +++++++++- .../lax-reflexive-globular-maps.lagda.md | 8 +- .../reflexive-globular-maps.lagda.md | 10 +- .../reflexive-globular-types.lagda.md | 12 +- 8 files changed, 735 insertions(+), 20 deletions(-) create mode 100644 src/structured-types/large-colax-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/large-lax-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/large-reflexive-globular-maps.lagda.md diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md index cf851e06fd..87e2a38248 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -19,7 +19,7 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "colax reflexive globular map" Agda=reflexive-globular-map}} +A {{#concept "colax reflexive globular map" Agda=colax-reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped @@ -159,6 +159,8 @@ record is-colax-reflexive-colax-reflexive-globular-map 1-cell-colax-reflexive-globular-map-colax-reflexive-globular-map = is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-globular-map + +open colax-reflexive-globular-map public ``` ### The identity colax reflexive globular map @@ -184,10 +186,10 @@ is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map id-colax-reflexive-globular-map : {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → colax-reflexive-globular-map G G -colax-reflexive-globular-map.globular-map-colax-reflexive-globular-map +globular-map-colax-reflexive-globular-map ( id-colax-reflexive-globular-map G) = map-id-colax-reflexive-globular-map G -colax-reflexive-globular-map.is-colax-reflexive-colax-reflexive-globular-map +is-colax-reflexive-colax-reflexive-globular-map ( id-colax-reflexive-globular-map G) = ( is-colax-reflexive-id-colax-reflexive-globular-map G) ``` diff --git a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..f791fae6ef --- /dev/null +++ b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md @@ -0,0 +1,216 @@ +# Large colax reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-colax-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.colax-reflexive-globular-maps +open import structured-types.large-globular-maps +open import structured-types.large-reflexive-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "large colax reflexive globular map" Agda=large-colax-reflexive-globular-map}} +between two +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and +`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped +with a family of 2-cells + +```text + (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [colax reflexive](structured-types.colax-reflexive-globular-maps.md). + +### Lack of composition for colax reflexive globular maps + +Note that the large colax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. + +### Lax versus colax + +The notion of [large lax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. + +## Definitions + +### The predicate of colax preserving reflexivity + +```agda +record + is-colax-reflexive-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) + (f : large-globular-map-Large-Reflexive-Globular-Type γ G H) : UUω + where + coinductive + + field + preserves-refl-1-cell-is-colax-reflexive-large-globular-map : + {l1 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 2-cell-Large-Reflexive-Globular-Type H + ( 1-cell-large-globular-map f + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) + ( refl-1-cell-Large-Reflexive-Globular-Type H) + + field + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + is-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open is-colax-reflexive-large-globular-map public +``` + +### Colax reflexive globular maps + +```agda +record + large-colax-reflexive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-colax-reflexive-globular-map : + large-globular-map-Large-Reflexive-Globular-Type γ G H + + 0-cell-large-colax-reflexive-globular-map : + {l1 : Level} → + 0-cell-Large-Reflexive-Globular-Type G l1 → + 0-cell-Large-Reflexive-Globular-Type H (γ l1) + 0-cell-large-colax-reflexive-globular-map = + 0-cell-large-globular-map + large-globular-map-large-colax-reflexive-globular-map + + 1-cell-large-colax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + 1-cell-Large-Reflexive-Globular-Type G x y → + 1-cell-Large-Reflexive-Globular-Type H + ( 0-cell-large-colax-reflexive-globular-map x) + ( 0-cell-large-colax-reflexive-globular-map y) + 1-cell-large-colax-reflexive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-colax-reflexive-globular-map + + 1-cell-globular-map-large-colax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-colax-reflexive-globular-map x) + ( 0-cell-large-colax-reflexive-globular-map y)) + 1-cell-globular-map-large-colax-reflexive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-colax-reflexive-globular-map + + field + is-colax-reflexive-large-colax-reflexive-globular-map : + is-colax-reflexive-large-globular-map G H + large-globular-map-large-colax-reflexive-globular-map + + preserves-refl-1-cell-large-colax-reflexive-globular-map : + {l1 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 2-cell-Large-Reflexive-Globular-Type H + ( 1-cell-large-colax-reflexive-globular-map + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) + ( refl-1-cell-Large-Reflexive-Globular-Type H) + preserves-refl-1-cell-large-colax-reflexive-globular-map = + preserves-refl-1-cell-is-colax-reflexive-large-globular-map + is-colax-reflexive-large-colax-reflexive-globular-map + + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + is-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-colax-reflexive-globular-map x) + ( 0-cell-large-colax-reflexive-globular-map y)) + ( 1-cell-globular-map-large-colax-reflexive-globular-map) + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-large-globular-map = + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map + is-colax-reflexive-large-colax-reflexive-globular-map + + 1-cell-colax-reflexive-globular-map-large-colax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-colax-reflexive-globular-map x) + ( 0-cell-large-colax-reflexive-globular-map y)) + globular-map-colax-reflexive-globular-map + 1-cell-colax-reflexive-globular-map-large-colax-reflexive-globular-map = + 1-cell-globular-map-large-colax-reflexive-globular-map + is-colax-reflexive-colax-reflexive-globular-map + 1-cell-colax-reflexive-globular-map-large-colax-reflexive-globular-map = + is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-large-globular-map + +open large-colax-reflexive-globular-map public +``` + +### The identity large colax reflexive globular map + +```agda +map-id-large-colax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + large-globular-map-Large-Reflexive-Globular-Type id G G +map-id-large-colax-reflexive-globular-map G = id-large-globular-map _ + +is-colax-reflexive-id-large-colax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + is-colax-reflexive-large-globular-map G G + ( map-id-large-colax-reflexive-globular-map G) +preserves-refl-1-cell-is-colax-reflexive-large-globular-map + ( is-colax-reflexive-id-large-colax-reflexive-globular-map G) + x = + refl-2-cell-Large-Reflexive-Globular-Type G +is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map + ( is-colax-reflexive-id-large-colax-reflexive-globular-map G) = + is-colax-reflexive-id-colax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G _ _) + +id-large-colax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + large-colax-reflexive-globular-map id G G +large-globular-map-large-colax-reflexive-globular-map + ( id-large-colax-reflexive-globular-map G) = + map-id-large-colax-reflexive-globular-map G +is-colax-reflexive-large-colax-reflexive-globular-map + ( id-large-colax-reflexive-globular-map G) = + ( is-colax-reflexive-id-large-colax-reflexive-globular-map G) +``` + +## See also + +- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..2b5e069742 --- /dev/null +++ b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md @@ -0,0 +1,216 @@ +# Large lax reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-lax-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.lax-reflexive-globular-maps +open import structured-types.large-globular-maps +open import structured-types.large-reflexive-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "large lax reflexive globular map" Agda=large-lax-reflexive-globular-map}} +between two +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and +`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped +with a family of 2-cells + +```text + (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [lax reflexive](structured-types.lax-reflexive-globular-maps.md). + +### Lack of composition for lax reflexive globular maps + +Note that the large lax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. + +### Lax versus colax + +The notion of [large colax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. + +## Definitions + +### The predicate of lax preserving reflexivity + +```agda +record + is-lax-reflexive-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) + (f : large-globular-map-Large-Reflexive-Globular-Type γ G H) : UUω + where + coinductive + + field + preserves-refl-1-cell-is-lax-reflexive-large-globular-map : + {l1 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 2-cell-Large-Reflexive-Globular-Type H + ( refl-1-cell-Large-Reflexive-Globular-Type H) + ( 1-cell-large-globular-map f + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) + + field + is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + is-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open is-lax-reflexive-large-globular-map public +``` + +### Lax reflexive globular maps + +```agda +record + large-lax-reflexive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-lax-reflexive-globular-map : + large-globular-map-Large-Reflexive-Globular-Type γ G H + + 0-cell-large-lax-reflexive-globular-map : + {l1 : Level} → + 0-cell-Large-Reflexive-Globular-Type G l1 → + 0-cell-Large-Reflexive-Globular-Type H (γ l1) + 0-cell-large-lax-reflexive-globular-map = + 0-cell-large-globular-map + large-globular-map-large-lax-reflexive-globular-map + + 1-cell-large-lax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + 1-cell-Large-Reflexive-Globular-Type G x y → + 1-cell-Large-Reflexive-Globular-Type H + ( 0-cell-large-lax-reflexive-globular-map x) + ( 0-cell-large-lax-reflexive-globular-map y) + 1-cell-large-lax-reflexive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-lax-reflexive-globular-map + + 1-cell-globular-map-large-lax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-lax-reflexive-globular-map x) + ( 0-cell-large-lax-reflexive-globular-map y)) + 1-cell-globular-map-large-lax-reflexive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-lax-reflexive-globular-map + + field + is-lax-reflexive-large-lax-reflexive-globular-map : + is-lax-reflexive-large-globular-map G H + large-globular-map-large-lax-reflexive-globular-map + + preserves-refl-1-cell-large-lax-reflexive-globular-map : + {l1 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 2-cell-Large-Reflexive-Globular-Type H + ( refl-1-cell-Large-Reflexive-Globular-Type H) + ( 1-cell-large-lax-reflexive-globular-map + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) + preserves-refl-1-cell-large-lax-reflexive-globular-map = + preserves-refl-1-cell-is-lax-reflexive-large-globular-map + is-lax-reflexive-large-lax-reflexive-globular-map + + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + is-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-lax-reflexive-globular-map x) + ( 0-cell-large-lax-reflexive-globular-map y)) + ( 1-cell-globular-map-large-lax-reflexive-globular-map) + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-large-globular-map = + is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-large-globular-map + is-lax-reflexive-large-lax-reflexive-globular-map + + 1-cell-lax-reflexive-globular-map-large-lax-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-lax-reflexive-globular-map x) + ( 0-cell-large-lax-reflexive-globular-map y)) + globular-map-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-large-lax-reflexive-globular-map = + 1-cell-globular-map-large-lax-reflexive-globular-map + is-lax-reflexive-lax-reflexive-globular-map + 1-cell-lax-reflexive-globular-map-large-lax-reflexive-globular-map = + is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-large-globular-map + +open large-lax-reflexive-globular-map public +``` + +### The identity large lax reflexive globular map + +```agda +map-id-large-lax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + large-globular-map-Large-Reflexive-Globular-Type id G G +map-id-large-lax-reflexive-globular-map G = id-large-globular-map _ + +is-lax-reflexive-id-large-lax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + is-lax-reflexive-large-globular-map G G + ( map-id-large-lax-reflexive-globular-map G) +preserves-refl-1-cell-is-lax-reflexive-large-globular-map + ( is-lax-reflexive-id-large-lax-reflexive-globular-map G) + x = + refl-2-cell-Large-Reflexive-Globular-Type G +is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-large-globular-map + ( is-lax-reflexive-id-large-lax-reflexive-globular-map G) = + is-lax-reflexive-id-lax-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G _ _) + +id-large-lax-reflexive-globular-map : + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Reflexive-Globular-Type α β) → + large-lax-reflexive-globular-map id G G +large-globular-map-large-lax-reflexive-globular-map + ( id-large-lax-reflexive-globular-map G) = + map-id-large-lax-reflexive-globular-map G +is-lax-reflexive-large-lax-reflexive-globular-map + ( id-large-lax-reflexive-globular-map G) = + ( is-lax-reflexive-id-large-lax-reflexive-globular-map G) +``` + +## See also + +- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-reflexive-globular-maps.lagda.md b/src/structured-types/large-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..54e22e2592 --- /dev/null +++ b/src/structured-types/large-reflexive-globular-maps.lagda.md @@ -0,0 +1,168 @@ +# Reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-reflexive-globular-maps where +``` + +
Imports + +```agda +open import foundation.identity-types +open import foundation.universe-levels + +open import structured-types.large-globular-maps +open import structured-types.large-reflexive-globular-types +open import structured-types.reflexive-globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "large reflexive globular map" Agda=large-reflexive-globular-map}} between two +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and +`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped +with a family of [identifications](foundation-core.identity-types.md) + +```text + (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) +``` + +from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [reflexive](structured-types.reflexive-globular-maps.md). + +Note: In some settings it may be preferred to work with large globular maps preserving +reflexivity cells up to a higher cell. The two notions of maps between reflexive +globular types preserving the reflexivity structure up to a higher cell are, depending of the direction of the coherence cells, the notions of +[large colax reflexive globular maps](structured-types.large-colax-reflexive-globular-maps.md) and [large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). + +## Definitions + +### The predicate of preserving reflexivity + +```agda +record + preserves-refl-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) + (f : large-globular-map-Large-Reflexive-Globular-Type γ G H) : + UUω + where + coinductive + + field + preserves-refl-1-cell-preserves-refl-large-globular-map : + {l1 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 1-cell-large-globular-map f + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x}) = + refl-1-cell-Large-Reflexive-Globular-Type H + + field + preserves-refl-2-cell-globular-map-preserves-refl-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open preserves-refl-large-globular-map +``` + +### Large reflexive globular maps + +```agda +record + large-reflexive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-reflexive-globular-map : + large-globular-map-Large-Reflexive-Globular-Type γ G H + + 0-cell-large-reflexive-globular-map : + {l1 : Level} → + 0-cell-Large-Reflexive-Globular-Type G l1 → + 0-cell-Large-Reflexive-Globular-Type H (γ l1) + 0-cell-large-reflexive-globular-map = + 0-cell-large-globular-map large-globular-map-large-reflexive-globular-map + + 1-cell-large-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + 1-cell-Large-Reflexive-Globular-Type G x y → + 1-cell-Large-Reflexive-Globular-Type H + ( 0-cell-large-reflexive-globular-map x) + ( 0-cell-large-reflexive-globular-map y) + 1-cell-large-reflexive-globular-map = + 1-cell-large-globular-map large-globular-map-large-reflexive-globular-map + + 1-cell-globular-map-large-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + globular-map-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-reflexive-globular-map x) + ( 0-cell-large-reflexive-globular-map y)) + 1-cell-globular-map-large-reflexive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-reflexive-globular-map + + field + preserves-refl-large-reflexive-globular-map : + preserves-refl-large-globular-map G H + large-globular-map-large-reflexive-globular-map + + preserves-refl-1-cell-large-reflexive-globular-map : + {l1 : Level} (x : 0-cell-Large-Reflexive-Globular-Type G l1) → + 1-cell-large-reflexive-globular-map + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x}) = + refl-1-cell-Large-Reflexive-Globular-Type H + preserves-refl-1-cell-large-reflexive-globular-map = + preserves-refl-1-cell-preserves-refl-large-globular-map + preserves-refl-large-reflexive-globular-map + + preserves-refl-2-cell-globular-map-large-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + preserves-refl-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-reflexive-globular-map x) + ( 0-cell-large-reflexive-globular-map y)) + ( 1-cell-globular-map-large-reflexive-globular-map) + preserves-refl-2-cell-globular-map-large-reflexive-globular-map = + preserves-refl-2-cell-globular-map-preserves-refl-large-globular-map + preserves-refl-large-reflexive-globular-map + + 1-cell-reflexive-globular-map-large-reflexive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type G l1} + {y : 0-cell-Large-Reflexive-Globular-Type G l2} → + reflexive-globular-map + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type H + ( 0-cell-large-reflexive-globular-map x) + ( 0-cell-large-reflexive-globular-map y)) + globular-map-reflexive-globular-map + 1-cell-reflexive-globular-map-large-reflexive-globular-map = + 1-cell-globular-map-large-reflexive-globular-map + preserves-refl-reflexive-globular-map + 1-cell-reflexive-globular-map-large-reflexive-globular-map = + preserves-refl-2-cell-globular-map-large-reflexive-globular-map + +open large-reflexive-globular-map public +``` diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index f39af70fa4..2c15ff033c 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -14,6 +14,7 @@ open import foundation.large-binary-relations open import foundation.universe-levels open import structured-types.globular-types +open import structured-types.large-globular-maps open import structured-types.large-globular-types open import structured-types.reflexive-globular-types ``` @@ -37,11 +38,14 @@ record (A : Large-Globular-Type α β) : UUω where + field refl-1-cell-is-reflexive-Large-Globular-Type : is-reflexive-Large-Relation ( 0-cell-Large-Globular-Type A) ( 1-cell-Large-Globular-Type A) + + field is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} @@ -58,6 +62,17 @@ record is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) + is-reflexive-2-cell-globular-type-is-reflexive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type A x y} → + is-reflexive-Globular-Type + ( 2-cell-globular-type-Large-Globular-Type A f g) + is-reflexive-2-cell-globular-type-is-reflexive-Large-Globular-Type = + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + refl-3-cell-is-reflexive-Large-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Globular-Type A l1} @@ -66,9 +81,20 @@ record is-reflexive (3-cell-Large-Globular-Type A {f = f} {g = g}) refl-3-cell-is-reflexive-Large-Globular-Type = is-reflexive-2-cell-is-reflexive-Globular-Type - ( 1-cell-globular-type-Large-Globular-Type A _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type) + is-reflexive-3-cell-globular-type-is-reflexive-Large-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Globular-Type A l1} + {y : 0-cell-Large-Globular-Type A l2} + {f g : 1-cell-Large-Globular-Type A x y} + {s t : 2-cell-Large-Globular-Type A f g} → + is-reflexive-Globular-Type + ( 3-cell-globular-type-Large-Globular-Type A s t) + is-reflexive-3-cell-globular-type-is-reflexive-Large-Globular-Type = + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type + is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + open is-reflexive-Large-Globular-Type public ``` @@ -79,7 +105,11 @@ record Large-Reflexive-Globular-Type ( α : Level → Level) (β : Level → Level → Level) : UUω where +``` + +- The underlying large globular type of a large reflexive globular type +```agda field large-globular-type-Large-Reflexive-Globular-Type : Large-Globular-Type α β @@ -242,11 +272,96 @@ record large-globular-structure-0-cell-Large-Reflexive-Globular-Type = large-globular-structure-0-cell-Large-Globular-Type large-globular-type-Large-Reflexive-Globular-Type +``` +- The reflexivity structure of a large reflexive globular type + +```agda field is-reflexive-Large-Reflexive-Globular-Type : is-reflexive-Large-Globular-Type large-globular-type-Large-Reflexive-Globular-Type + refl-1-cell-Large-Reflexive-Globular-Type : + {l1 : Level} {x : 0-cell-Large-Reflexive-Globular-Type l1} → + 1-cell-Large-Reflexive-Globular-Type x x + refl-1-cell-Large-Reflexive-Globular-Type = + refl-1-cell-is-reflexive-Large-Globular-Type + ( is-reflexive-Large-Reflexive-Globular-Type) + ( _) + + is-reflexive-1-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} → + is-reflexive-Globular-Type + ( 1-cell-globular-type-Large-Reflexive-Globular-Type x y) + is-reflexive-1-cell-globular-type-Large-Reflexive-Globular-Type = + is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type + is-reflexive-Large-Reflexive-Globular-Type + + 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Reflexive-Globular-Type l1) + (y : 0-cell-Large-Reflexive-Globular-Type l2) → + Reflexive-Globular-Type (β l1 l2) (β l1 l2) + globular-type-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type x y) = + 1-cell-globular-type-Large-Reflexive-Globular-Type x y + refl-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type x y) = + is-reflexive-1-cell-globular-type-Large-Reflexive-Globular-Type + + refl-2-cell-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f : 1-cell-Large-Reflexive-Globular-Type x y} → + 2-cell-Large-Reflexive-Globular-Type f f + refl-2-cell-Large-Reflexive-Globular-Type = + refl-2-cell-is-reflexive-Large-Globular-Type + ( is-reflexive-Large-Reflexive-Globular-Type) + ( _) + + is-reflexive-2-cell-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + {f g : 1-cell-Large-Reflexive-Globular-Type x y} → + is-reflexive-Globular-Type + ( 2-cell-globular-type-Large-Reflexive-Globular-Type f g) + is-reflexive-2-cell-globular-type-Large-Reflexive-Globular-Type = + is-reflexive-2-cell-globular-type-is-reflexive-Large-Globular-Type + is-reflexive-Large-Reflexive-Globular-Type + + 2-cell-reflexive-globular-type-Large-Reflexive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Reflexive-Globular-Type l1} + {y : 0-cell-Large-Reflexive-Globular-Type l2} + (f g : 1-cell-Large-Reflexive-Globular-Type x y) → + Reflexive-Globular-Type (β l1 l2) (β l1 l2) + globular-type-Reflexive-Globular-Type + ( 2-cell-reflexive-globular-type-Large-Reflexive-Globular-Type f g) = + 2-cell-globular-type-Large-Reflexive-Globular-Type f g + refl-Reflexive-Globular-Type + ( 2-cell-reflexive-globular-type-Large-Reflexive-Globular-Type f g) = + is-reflexive-2-cell-globular-type-Large-Reflexive-Globular-Type + open Large-Reflexive-Globular-Type public ``` + +### Large globular maps between large reflexive globular types + +```agda +module _ + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Reflexive-Globular-Type α1 β1) + (H : Large-Reflexive-Globular-Type α2 β2) + where + + large-globular-map-Large-Reflexive-Globular-Type : UUω + large-globular-map-Large-Reflexive-Globular-Type = + large-globular-map γ + ( large-globular-type-Large-Reflexive-Globular-Type G) + ( large-globular-type-Large-Reflexive-Globular-Type H) +``` diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md index 4eb37fcffa..fe7fc39df7 100644 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -19,7 +19,7 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "lax reflexive globular map" Agda=reflexive-globular-map}} +A {{#concept "lax reflexive globular map" Agda=lax-reflexive-globular-map}} between two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped @@ -160,6 +160,8 @@ record is-lax-reflexive-lax-reflexive-globular-map 1-cell-lax-reflexive-globular-map-lax-reflexive-globular-map = is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-globular-map + +open lax-reflexive-globular-map public ``` ### The identity lax reflexive globular map @@ -185,10 +187,10 @@ is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-globular-map id-lax-reflexive-globular-map : {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → lax-reflexive-globular-map G G -lax-reflexive-globular-map.globular-map-lax-reflexive-globular-map +globular-map-lax-reflexive-globular-map ( id-lax-reflexive-globular-map G) = map-id-lax-reflexive-globular-map G -lax-reflexive-globular-map.is-lax-reflexive-lax-reflexive-globular-map +is-lax-reflexive-lax-reflexive-globular-map ( id-lax-reflexive-globular-map G) = ( is-lax-reflexive-id-lax-reflexive-globular-map G) ``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index f1da22e066..c8e399841d 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -40,7 +40,7 @@ globular types preserving the reflexivity structure up to a higher cell are, dep ## Definitions -### The predicate of lax preserving reflexivity +### The predicate of preserving reflexivity ```agda record @@ -59,7 +59,7 @@ record refl-1-cell-Reflexive-Globular-Type H field - preserves-refl-2-cell-globular-map-globular-map : + preserves-refl-2-cell-globular-map-preserves-refl-globular-map : {x y : 0-cell-Reflexive-Globular-Type G} → preserves-refl-globular-map ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) @@ -69,7 +69,7 @@ record open preserves-refl-globular-map ``` -### Lax reflexive globular maps +### Reflexive globular maps ```agda record @@ -130,7 +130,7 @@ record ( 0-cell-reflexive-globular-map y)) ( 1-cell-globular-map-reflexive-globular-map) preserves-refl-2-cell-globular-map-reflexive-globular-map = - preserves-refl-2-cell-globular-map-globular-map + preserves-refl-2-cell-globular-map-preserves-refl-globular-map preserves-refl-reflexive-globular-map 1-cell-reflexive-globular-map-reflexive-globular-map : @@ -146,4 +146,6 @@ record preserves-refl-reflexive-globular-map 1-cell-reflexive-globular-map-reflexive-globular-map = preserves-refl-2-cell-globular-map-reflexive-globular-map + +open reflexive-globular-map public ``` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 91ac2a9d53..34b374727c 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -49,7 +49,7 @@ record open is-reflexive-Globular-Type public module _ - {l1 l2 : Level} (G : Globular-Type l1 l2) + {l1 l2 : Level} {G : Globular-Type l1 l2} (r : is-reflexive-Globular-Type G) where @@ -94,7 +94,6 @@ module _ is-reflexive (3-cell-Globular-Type G {x} {y} {f} {g}) is-reflexive-3-cell-is-reflexive-Globular-Type = is-reflexive-2-cell-is-reflexive-Globular-Type - ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) refl-4-cell-is-reflexive-Globular-Type : @@ -103,7 +102,6 @@ module _ {s : 2-cell-Globular-Type G f g} → 3-cell-Globular-Type G s s refl-4-cell-is-reflexive-Globular-Type = refl-3-cell-is-reflexive-Globular-Type - ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) is-reflexive-3-cell-globular-type-is-reflexive-Globular-Type : @@ -114,7 +112,6 @@ module _ ( 3-cell-globular-type-Globular-Type G {x} {y} {f} {g} s t) is-reflexive-3-cell-globular-type-is-reflexive-Globular-Type = is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type - ( 1-cell-globular-type-Globular-Type G _ _) ( is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type r) ``` @@ -180,7 +177,6 @@ record 2-cell-Reflexive-Globular-Type f f refl-2-cell-Reflexive-Globular-Type = is-reflexive-2-cell-is-reflexive-Globular-Type - ( globular-type-Reflexive-Globular-Type) ( refl-Reflexive-Globular-Type) ( _) @@ -241,7 +237,7 @@ module _ is-reflexive-2-cell-is-reflexive-globular-structure : {x y : A} → is-reflexive (2-cell-globular-structure G {x} {y}) is-reflexive-2-cell-is-reflexive-globular-structure {x} {y} = - is-reflexive-2-cell-is-reflexive-Globular-Type (make-Globular-Type G) r + is-reflexive-2-cell-is-reflexive-Globular-Type r refl-3-cell-is-reflexive-globular-structure : {x y : A} {f : 1-cell-globular-structure G x y} → @@ -255,9 +251,7 @@ module _ is-reflexive-globular-structure ( globular-structure-2-cell-globular-structure G f g) is-reflexive-globular-structure-2-cell-is-reflexive-globular-structure = - is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type - ( make-Globular-Type G) - ( r) + is-reflexive-2-cell-globular-type-is-reflexive-Globular-Type r is-reflexive-3-cell-is-reflexive-globular-structure : {x y : A} {f g : 1-cell-globular-structure G x y} → From 3e20e4691b6e8feda4e7ff32f8bc7fcaeb02d866 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 18 Oct 2024 17:50:45 -0400 Subject: [PATCH 22/42] variations of transitive globular maps --- ...ge-colax-transitive-globular-maps.lagda.md | 254 ++++++++++++++++++ ...arge-lax-transitive-globular-maps.lagda.md | 254 ++++++++++++++++++ .../large-transitive-globular-maps.lagda.md | 248 +++++++++++++++++ .../large-transitive-globular-types.lagda.md | 99 ++++++- .../lax-transitive-globular-maps.lagda.md | 224 +++++++++++++++ .../transitive-globular-maps.lagda.md | 219 +++++++++++++++ 6 files changed, 1296 insertions(+), 2 deletions(-) create mode 100644 src/structured-types/large-colax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/large-lax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/large-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/lax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/transitive-globular-maps.lagda.md diff --git a/src/structured-types/large-colax-transitive-globular-maps.lagda.md b/src/structured-types/large-colax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..57111f37d7 --- /dev/null +++ b/src/structured-types/large-colax-transitive-globular-maps.lagda.md @@ -0,0 +1,254 @@ +# Large colax transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-colax-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.large-globular-maps +open import structured-types.large-transitive-globular-types +open import structured-types.colax-transitive-globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "large colax transitive globular map" Agda=large-transitive-globular-map}} between +two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` +and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` +equipped with a family of 2-cells + +```text + H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax +transitive. + +### Lack of identity large colax transitive globular maps + +Note that the large colax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the large transitive globular type `G` is not assumed to be [reflexive](structured-types.large-reflexive-globular-types.md), it might lack such instances of the reflexivity cells. + +## Definitions + +### The predicate of colax preserving transitivity + +```agda +record + is-colax-transitive-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (f : large-globular-map-Large-Transitive-Globular-Type γ G H) : UUω + where + coinductive + + field + preserves-comp-1-cell-is-colax-transitive-large-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} → + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 2-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-globular-map f + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + ( comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-globular-map f q) + ( 1-cell-large-globular-map f p)) + + field + is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open is-colax-transitive-large-globular-map public +``` + +### Colax transitive globular maps + +```agda +record + large-colax-transitive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-colax-transitive-globular-map : + large-globular-map-Large-Transitive-Globular-Type γ G H + + 0-cell-large-colax-transitive-globular-map : + {l1 : Level} → + 0-cell-Large-Transitive-Globular-Type G l1 → + 0-cell-Large-Transitive-Globular-Type H (γ l1) + 0-cell-large-colax-transitive-globular-map = + 0-cell-large-globular-map large-globular-map-large-colax-transitive-globular-map + + 1-cell-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + 1-cell-Large-Transitive-Globular-Type G x y → + 1-cell-Large-Transitive-Globular-Type H + ( 0-cell-large-colax-transitive-globular-map x) + ( 0-cell-large-colax-transitive-globular-map y) + 1-cell-large-colax-transitive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-colax-transitive-globular-map + + 1-cell-globular-map-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-colax-transitive-globular-map x) + ( 0-cell-large-colax-transitive-globular-map y)) + 1-cell-globular-map-large-colax-transitive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-colax-transitive-globular-map + + 2-cell-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + 2-cell-Large-Transitive-Globular-Type G f g → + 2-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-colax-transitive-globular-map f) + ( 1-cell-large-colax-transitive-globular-map g) + 2-cell-large-colax-transitive-globular-map = + 2-cell-large-globular-map + large-globular-map-large-colax-transitive-globular-map + + 2-cell-globular-map-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 1-cell-large-colax-transitive-globular-map f) + ( 1-cell-large-colax-transitive-globular-map g)) + 2-cell-globular-map-large-colax-transitive-globular-map = + 2-cell-globular-map-large-globular-map + ( large-globular-map-large-colax-transitive-globular-map) + ( _) + ( _) + + field + is-colax-transitive-large-colax-transitive-globular-map : + is-colax-transitive-large-globular-map G H + large-globular-map-large-colax-transitive-globular-map + + preserves-comp-1-cell-large-colax-transitive-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 2-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-colax-transitive-globular-map + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + ( comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-colax-transitive-globular-map q) + ( 1-cell-large-colax-transitive-globular-map p)) + preserves-comp-1-cell-large-colax-transitive-globular-map = + preserves-comp-1-cell-is-colax-transitive-large-globular-map + is-colax-transitive-large-colax-transitive-globular-map + + is-colax-transitive-1-cell-globular-map-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-colax-transitive-globular-map x) + ( 0-cell-large-colax-transitive-globular-map y)) + ( 1-cell-globular-map-large-colax-transitive-globular-map) + is-colax-transitive-1-cell-globular-map-large-colax-transitive-globular-map = + is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map + is-colax-transitive-large-colax-transitive-globular-map + + 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-colax-transitive-globular-map x) + ( 0-cell-large-colax-transitive-globular-map y)) + globular-map-colax-transitive-globular-map + 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map = + 1-cell-globular-map-large-colax-transitive-globular-map + is-colax-transitive-colax-transitive-globular-map + 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map = + is-colax-transitive-1-cell-globular-map-large-colax-transitive-globular-map + +open large-colax-transitive-globular-map public +``` + +### Composition of colax transitive maps + +```agda +map-comp-large-colax-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-colax-transitive-globular-map γ2 H K) + (f : large-colax-transitive-globular-map γ1 G H) → + large-globular-map-Large-Transitive-Globular-Type (γ2 ∘ γ1) G K +map-comp-large-colax-transitive-globular-map G H K g f = + comp-large-globular-map + ( large-globular-map-large-colax-transitive-globular-map g) + ( large-globular-map-large-colax-transitive-globular-map f) + +is-colax-transitive-comp-large-colax-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-colax-transitive-globular-map γ2 H K) + (f : large-colax-transitive-globular-map γ1 G H) → + is-colax-transitive-large-globular-map G K + ( map-comp-large-colax-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-colax-transitive-large-globular-map + ( is-colax-transitive-comp-large-colax-transitive-globular-map G H K g f) q p = + comp-2-cell-Large-Transitive-Globular-Type K + ( preserves-comp-1-cell-large-colax-transitive-globular-map g _ _) + ( 2-cell-large-colax-transitive-globular-map g + ( preserves-comp-1-cell-large-colax-transitive-globular-map f q p)) +is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map + ( is-colax-transitive-comp-large-colax-transitive-globular-map G H K g f) = + is-colax-transitive-comp-colax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type K _ _) + ( 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map + g) + ( 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map + f) +``` diff --git a/src/structured-types/large-lax-transitive-globular-maps.lagda.md b/src/structured-types/large-lax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..05ef7a78ab --- /dev/null +++ b/src/structured-types/large-lax-transitive-globular-maps.lagda.md @@ -0,0 +1,254 @@ +# Large lax transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-lax-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.large-globular-maps +open import structured-types.large-transitive-globular-types +open import structured-types.lax-transitive-globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "large lax transitive globular map" Agda=large-transitive-globular-map}} between +two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` +and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` +equipped with a family of 2-cells + +```text + H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax +transitive. + +### Lack of identity large lax transitive globular maps + +Note that the large lax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the large transitive globular type `G` is not assumed to be [reflexive](structured-types.large-reflexive-globular-types.md), it might lack such instances of the reflexivity cells. + +## Definitions + +### The predicate of lax preserving transitivity + +```agda +record + is-lax-transitive-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (f : large-globular-map-Large-Transitive-Globular-Type γ G H) : UUω + where + coinductive + + field + preserves-comp-1-cell-is-lax-transitive-large-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} → + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 2-cell-Large-Transitive-Globular-Type H + ( comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-globular-map f q) + ( 1-cell-large-globular-map f p)) + ( 1-cell-large-globular-map f + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + + field + is-lax-transitive-1-cell-globular-map-is-lax-transitive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open is-lax-transitive-large-globular-map public +``` + +### Lax transitive globular maps + +```agda +record + large-lax-transitive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-lax-transitive-globular-map : + large-globular-map-Large-Transitive-Globular-Type γ G H + + 0-cell-large-lax-transitive-globular-map : + {l1 : Level} → + 0-cell-Large-Transitive-Globular-Type G l1 → + 0-cell-Large-Transitive-Globular-Type H (γ l1) + 0-cell-large-lax-transitive-globular-map = + 0-cell-large-globular-map large-globular-map-large-lax-transitive-globular-map + + 1-cell-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + 1-cell-Large-Transitive-Globular-Type G x y → + 1-cell-Large-Transitive-Globular-Type H + ( 0-cell-large-lax-transitive-globular-map x) + ( 0-cell-large-lax-transitive-globular-map y) + 1-cell-large-lax-transitive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-lax-transitive-globular-map + + 1-cell-globular-map-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-lax-transitive-globular-map x) + ( 0-cell-large-lax-transitive-globular-map y)) + 1-cell-globular-map-large-lax-transitive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-lax-transitive-globular-map + + 2-cell-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + 2-cell-Large-Transitive-Globular-Type G f g → + 2-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-lax-transitive-globular-map f) + ( 1-cell-large-lax-transitive-globular-map g) + 2-cell-large-lax-transitive-globular-map = + 2-cell-large-globular-map + large-globular-map-large-lax-transitive-globular-map + + 2-cell-globular-map-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 1-cell-large-lax-transitive-globular-map f) + ( 1-cell-large-lax-transitive-globular-map g)) + 2-cell-globular-map-large-lax-transitive-globular-map = + 2-cell-globular-map-large-globular-map + ( large-globular-map-large-lax-transitive-globular-map) + ( _) + ( _) + + field + is-lax-transitive-large-lax-transitive-globular-map : + is-lax-transitive-large-globular-map G H + large-globular-map-large-lax-transitive-globular-map + + preserves-comp-1-cell-large-lax-transitive-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 2-cell-Large-Transitive-Globular-Type H + ( comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-lax-transitive-globular-map q) + ( 1-cell-large-lax-transitive-globular-map p)) + ( 1-cell-large-lax-transitive-globular-map + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + preserves-comp-1-cell-large-lax-transitive-globular-map = + preserves-comp-1-cell-is-lax-transitive-large-globular-map + is-lax-transitive-large-lax-transitive-globular-map + + is-lax-transitive-1-cell-globular-map-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-lax-transitive-globular-map x) + ( 0-cell-large-lax-transitive-globular-map y)) + ( 1-cell-globular-map-large-lax-transitive-globular-map) + is-lax-transitive-1-cell-globular-map-large-lax-transitive-globular-map = + is-lax-transitive-1-cell-globular-map-is-lax-transitive-large-globular-map + is-lax-transitive-large-lax-transitive-globular-map + + 1-cell-large-lax-transitive-large-globular-map-large-lax-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-lax-transitive-globular-map x) + ( 0-cell-large-lax-transitive-globular-map y)) + globular-map-lax-transitive-globular-map + 1-cell-large-lax-transitive-large-globular-map-large-lax-transitive-globular-map = + 1-cell-globular-map-large-lax-transitive-globular-map + is-lax-transitive-lax-transitive-globular-map + 1-cell-large-lax-transitive-large-globular-map-large-lax-transitive-globular-map = + is-lax-transitive-1-cell-globular-map-large-lax-transitive-globular-map + +open large-lax-transitive-globular-map public +``` + +### Composition of lax transitive maps + +```agda +map-comp-large-lax-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-lax-transitive-globular-map γ2 H K) + (f : large-lax-transitive-globular-map γ1 G H) → + large-globular-map-Large-Transitive-Globular-Type (γ2 ∘ γ1) G K +map-comp-large-lax-transitive-globular-map G H K g f = + comp-large-globular-map + ( large-globular-map-large-lax-transitive-globular-map g) + ( large-globular-map-large-lax-transitive-globular-map f) + +is-lax-transitive-comp-large-lax-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-lax-transitive-globular-map γ2 H K) + (f : large-lax-transitive-globular-map γ1 G H) → + is-lax-transitive-large-globular-map G K + ( map-comp-large-lax-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-lax-transitive-large-globular-map + ( is-lax-transitive-comp-large-lax-transitive-globular-map G H K g f) q p = + comp-2-cell-Large-Transitive-Globular-Type K + ( 2-cell-large-lax-transitive-globular-map g + ( preserves-comp-1-cell-large-lax-transitive-globular-map f q p)) + ( preserves-comp-1-cell-large-lax-transitive-globular-map g _ _) +is-lax-transitive-1-cell-globular-map-is-lax-transitive-large-globular-map + ( is-lax-transitive-comp-large-lax-transitive-globular-map G H K g f) = + is-lax-transitive-comp-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type K _ _) + ( 1-cell-large-lax-transitive-large-globular-map-large-lax-transitive-globular-map + g) + ( 1-cell-large-lax-transitive-large-globular-map-large-lax-transitive-globular-map + f) +``` diff --git a/src/structured-types/large-transitive-globular-maps.lagda.md b/src/structured-types/large-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..1c65848be2 --- /dev/null +++ b/src/structured-types/large-transitive-globular-maps.lagda.md @@ -0,0 +1,248 @@ +# Large transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.identity-types +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.large-globular-maps +open import structured-types.large-transitive-globular-types +open import structured-types.transitive-globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "large transitive globular map" Agda=large-transitive-globular-map}} between +two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` +and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` +equipped with a family of [identifications](foundation-core.identity-types.md) + +```text + f₁ (q ∘G p) = f₁ q ∘H f₁ p +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again transitive. + +## Definitions + +### The predicate of preserving transitivity + +```agda +record + is-transitive-large-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} {γ : Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (f : large-globular-map-Large-Transitive-Globular-Type γ G H) : UUω + where + coinductive + + field + preserves-comp-1-cell-is-transitive-large-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} → + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 1-cell-large-globular-map f + ( comp-1-cell-Large-Transitive-Globular-Type G q p) = + comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-globular-map f q) + ( 1-cell-large-globular-map f p) + + field + is-transitive-1-cell-globular-map-is-transitive-large-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-large-globular-map f) + +open is-transitive-large-globular-map public +``` + +### transitive globular maps + +```agda +record + large-transitive-globular-map + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) : UUω + where + + field + large-globular-map-large-transitive-globular-map : + large-globular-map-Large-Transitive-Globular-Type γ G H + + 0-cell-large-transitive-globular-map : + {l1 : Level} → + 0-cell-Large-Transitive-Globular-Type G l1 → + 0-cell-Large-Transitive-Globular-Type H (γ l1) + 0-cell-large-transitive-globular-map = + 0-cell-large-globular-map large-globular-map-large-transitive-globular-map + + 1-cell-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + 1-cell-Large-Transitive-Globular-Type G x y → + 1-cell-Large-Transitive-Globular-Type H + ( 0-cell-large-transitive-globular-map x) + ( 0-cell-large-transitive-globular-map y) + 1-cell-large-transitive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-transitive-globular-map + + 1-cell-globular-map-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-transitive-globular-map x) + ( 0-cell-large-transitive-globular-map y)) + 1-cell-globular-map-large-transitive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-transitive-globular-map + + 2-cell-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + 2-cell-Large-Transitive-Globular-Type G f g → + 2-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-transitive-globular-map f) + ( 1-cell-large-transitive-globular-map g) + 2-cell-large-transitive-globular-map = + 2-cell-large-globular-map + large-globular-map-large-transitive-globular-map + + 2-cell-globular-map-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + {f g : 1-cell-Large-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 1-cell-large-transitive-globular-map f) + ( 1-cell-large-transitive-globular-map g)) + 2-cell-globular-map-large-transitive-globular-map = + 2-cell-globular-map-large-globular-map + ( large-globular-map-large-transitive-globular-map) + ( _) + ( _) + + field + is-transitive-large-transitive-globular-map : + is-transitive-large-globular-map G H + large-globular-map-large-transitive-globular-map + + preserves-comp-1-cell-large-transitive-globular-map : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} + {z : 0-cell-Large-Transitive-Globular-Type G l3} + (q : 1-cell-Large-Transitive-Globular-Type G y z) + (p : 1-cell-Large-Transitive-Globular-Type G x y) → + 1-cell-large-transitive-globular-map + ( comp-1-cell-Large-Transitive-Globular-Type G q p) = + comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-transitive-globular-map q) + ( 1-cell-large-transitive-globular-map p) + preserves-comp-1-cell-large-transitive-globular-map = + preserves-comp-1-cell-is-transitive-large-globular-map + is-transitive-large-transitive-globular-map + + is-transitive-1-cell-globular-map-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + is-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-transitive-globular-map x) + ( 0-cell-large-transitive-globular-map y)) + ( 1-cell-globular-map-large-transitive-globular-map) + is-transitive-1-cell-globular-map-large-transitive-globular-map = + is-transitive-1-cell-globular-map-is-transitive-large-globular-map + is-transitive-large-transitive-globular-map + + 1-cell-large-transitive-large-globular-map-large-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H + ( 0-cell-large-transitive-globular-map x) + ( 0-cell-large-transitive-globular-map y)) + globular-map-transitive-globular-map + 1-cell-large-transitive-large-globular-map-large-transitive-globular-map = + 1-cell-globular-map-large-transitive-globular-map + is-transitive-transitive-globular-map + 1-cell-large-transitive-large-globular-map-large-transitive-globular-map = + is-transitive-1-cell-globular-map-large-transitive-globular-map + +open large-transitive-globular-map public +``` + +### Composition of transitive maps + +```agda +map-comp-large-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-transitive-globular-map γ2 H K) + (f : large-transitive-globular-map γ1 G H) → + large-globular-map-Large-Transitive-Globular-Type (γ2 ∘ γ1) G K +map-comp-large-transitive-globular-map G H K g f = + comp-large-globular-map + ( large-globular-map-large-transitive-globular-map g) + ( large-globular-map-large-transitive-globular-map f) + +is-transitive-comp-large-transitive-globular-map : + {α1 α2 α3 γ1 γ2 : Level → Level} {β1 β2 β3 : Level → Level → Level} + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + (K : Large-Transitive-Globular-Type α3 β3) + (g : large-transitive-globular-map γ2 H K) + (f : large-transitive-globular-map γ1 G H) → + is-transitive-large-globular-map G K + ( map-comp-large-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-transitive-large-globular-map + ( is-transitive-comp-large-transitive-globular-map G H K g f) q p = + ( ap (1-cell-large-transitive-globular-map g) + ( preserves-comp-1-cell-large-transitive-globular-map f q p)) ∙ + ( preserves-comp-1-cell-large-transitive-globular-map g _ _) +is-transitive-1-cell-globular-map-is-transitive-large-globular-map + ( is-transitive-comp-large-transitive-globular-map G H K g f) = + is-transitive-comp-transitive-globular-map + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type K _ _) + ( 1-cell-large-transitive-large-globular-map-large-transitive-globular-map + g) + ( 1-cell-large-transitive-large-globular-map-large-transitive-globular-map + f) +``` diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/structured-types/large-transitive-globular-types.lagda.md index a36420b89e..1ec9987e3a 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/structured-types/large-transitive-globular-types.lagda.md @@ -11,6 +11,8 @@ module structured-types.large-transitive-globular-types where ```agda open import foundation.universe-levels +open import structured-types.globular-types +open import structured-types.large-globular-maps open import structured-types.large-globular-types open import structured-types.transitive-globular-types ``` @@ -116,7 +118,7 @@ module _ ( is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type τ) ``` -### The type of large transitive globular types +### Large transitive globular types ```agda record @@ -141,6 +143,15 @@ record 1-cell-Large-Globular-Type large-globular-type-Large-Transitive-Globular-Type + 1-cell-globular-type-Large-Transitive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Transitive-Globular-Type l1) + (y : 0-cell-Large-Transitive-Globular-Type l2) → + Globular-Type (β l1 l2) (β l1 l2) + 1-cell-globular-type-Large-Transitive-Globular-Type = + 1-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + 2-cell-Large-Transitive-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Transitive-Globular-Type l1} @@ -150,6 +161,16 @@ record 2-cell-Large-Globular-Type large-globular-type-Large-Transitive-Globular-Type + 2-cell-globular-type-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + (f g : 1-cell-Large-Transitive-Globular-Type x y) → + Globular-Type (β l1 l2) (β l1 l2) + 2-cell-globular-type-Large-Transitive-Globular-Type = + 2-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + 3-cell-Large-Transitive-Globular-Type : {l1 l2 : Level} {x : 0-cell-Large-Transitive-Globular-Type l1} @@ -160,12 +181,70 @@ record 3-cell-Large-Globular-Type large-globular-type-Large-Transitive-Globular-Type + 3-cell-globular-type-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + {f g : 1-cell-Large-Transitive-Globular-Type x y} + (s t : 2-cell-Large-Transitive-Globular-Type f g) → + Globular-Type (β l1 l2) (β l1 l2) + 3-cell-globular-type-Large-Transitive-Globular-Type = + 3-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Transitive-Globular-Type + field is-transitive-Large-Transitive-Globular-Type : is-transitive-Large-Globular-Type large-globular-type-Large-Transitive-Globular-Type -open Large-Transitive-Globular-Type + comp-1-cell-Large-Transitive-Globular-Type : + {l1 l2 l3 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + {z : 0-cell-Large-Transitive-Globular-Type l3} → + 1-cell-Large-Transitive-Globular-Type y z → + 1-cell-Large-Transitive-Globular-Type x y → + 1-cell-Large-Transitive-Globular-Type x z + comp-1-cell-Large-Transitive-Globular-Type = + comp-1-cell-is-transitive-Large-Globular-Type + is-transitive-Large-Transitive-Globular-Type + + 1-cell-transitive-globular-type-Large-Transitive-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Transitive-Globular-Type l1) + (y : 0-cell-Large-Transitive-Globular-Type l2) → + Transitive-Globular-Type (β l1 l2) (β l1 l2) + globular-type-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type x y) = + 1-cell-globular-type-Large-Transitive-Globular-Type x y + is-transitive-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type x y) = + is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type + is-transitive-Large-Transitive-Globular-Type + + comp-2-cell-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + {f g h : 1-cell-Large-Transitive-Globular-Type x y} → + 2-cell-Large-Transitive-Globular-Type g h → + 2-cell-Large-Transitive-Globular-Type f g → + 2-cell-Large-Transitive-Globular-Type f h + comp-2-cell-Large-Transitive-Globular-Type = + comp-1-cell-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type _ _) + + 2-cell-transitive-globular-type-Large-Transitive-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type l1} + {y : 0-cell-Large-Transitive-Globular-Type l2} + (f g : 1-cell-Large-Transitive-Globular-Type x y) → + Transitive-Globular-Type (β l1 l2) (β l1 l2) + 2-cell-transitive-globular-type-Large-Transitive-Globular-Type = + 1-cell-transitive-globular-type-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Large-Transitive-Globular-Type _ _) + +open Large-Transitive-Globular-Type public ``` ### The predicate of being a transitive large globular structure @@ -246,3 +325,19 @@ record open large-transitive-globular-structure public ``` + +### Large globular maps between large transitive globular types + +```agda +module _ + {α1 α2 : Level → Level} {β1 β2 : Level → Level → Level} (γ : Level → Level) + (G : Large-Transitive-Globular-Type α1 β1) + (H : Large-Transitive-Globular-Type α2 β2) + where + + large-globular-map-Large-Transitive-Globular-Type : UUω + large-globular-map-Large-Transitive-Globular-Type = + large-globular-map γ + ( large-globular-type-Large-Transitive-Globular-Type G) + ( large-globular-type-Large-Transitive-Globular-Type H) +``` diff --git a/src/structured-types/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..173057f299 --- /dev/null +++ b/src/structured-types/lax-transitive-globular-maps.lagda.md @@ -0,0 +1,224 @@ +# Lax transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.lax-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "lax transitive globular map" Agda=transitive-globular-map}} between +two [transitive globular types](structured-types.transitive-globular-types.md) `G` +and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` +equipped with a family of 2-cells + +```text + H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax +transitive. + +### Lack of identity lax transitive globular maps + +Note that the lax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the transitive globular type `G` is not assumed to be [reflexive](structured-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. + +## Definitions + +### The predicate of lax preserving transitivity + +```agda +record + is-lax-transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) (H : Transitive-Globular-Type l3 l4) + (f : globular-map-Transitive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-comp-1-cell-is-lax-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} → + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 2-cell-Transitive-Globular-Type H + ( comp-1-cell-Transitive-Globular-Type H + ( 1-cell-globular-map f q) + ( 1-cell-globular-map f p)) + ( 1-cell-globular-map f + ( comp-1-cell-Transitive-Globular-Type G q p)) + + field + is-lax-transitive-1-cell-globular-map-is-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + is-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map f) + +open is-lax-transitive-globular-map public +``` + +### Lax transitive globular maps + +```agda +record + lax-transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-lax-transitive-globular-map : + globular-map-Transitive-Globular-Type G H + + 0-cell-lax-transitive-globular-map : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-lax-transitive-globular-map = + 0-cell-globular-map globular-map-lax-transitive-globular-map + + 1-cell-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + 1-cell-Transitive-Globular-Type G x y → + 1-cell-Transitive-Globular-Type H + ( 0-cell-lax-transitive-globular-map x) + ( 0-cell-lax-transitive-globular-map y) + 1-cell-lax-transitive-globular-map = + 1-cell-globular-map globular-map-lax-transitive-globular-map + + 1-cell-globular-map-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-lax-transitive-globular-map x) + ( 0-cell-lax-transitive-globular-map y)) + 1-cell-globular-map-lax-transitive-globular-map = + 1-cell-globular-map-globular-map globular-map-lax-transitive-globular-map + + 2-cell-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + 2-cell-Transitive-Globular-Type G f g → + 2-cell-Transitive-Globular-Type H + ( 1-cell-lax-transitive-globular-map f) + ( 1-cell-lax-transitive-globular-map g) + 2-cell-lax-transitive-globular-map = + 2-cell-globular-map globular-map-lax-transitive-globular-map + + 2-cell-globular-map-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Transitive-Globular-Type H + ( 1-cell-lax-transitive-globular-map f) + ( 1-cell-lax-transitive-globular-map g)) + 2-cell-globular-map-lax-transitive-globular-map = + 2-cell-globular-map-globular-map + ( globular-map-lax-transitive-globular-map) + ( _) + ( _) + + field + is-lax-transitive-lax-transitive-globular-map : + is-lax-transitive-globular-map G H + globular-map-lax-transitive-globular-map + + preserves-comp-1-cell-lax-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 2-cell-Transitive-Globular-Type H + ( comp-1-cell-Transitive-Globular-Type H + ( 1-cell-lax-transitive-globular-map q) + ( 1-cell-lax-transitive-globular-map p)) + ( 1-cell-lax-transitive-globular-map + ( comp-1-cell-Transitive-Globular-Type G q p)) + preserves-comp-1-cell-lax-transitive-globular-map = + preserves-comp-1-cell-is-lax-transitive-globular-map + is-lax-transitive-lax-transitive-globular-map + + is-lax-transitive-1-cell-globular-map-lax-transitive-globular-map : + { x y : 0-cell-Transitive-Globular-Type G} → + is-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-lax-transitive-globular-map x) + ( 0-cell-lax-transitive-globular-map y)) + ( 1-cell-globular-map-lax-transitive-globular-map) + is-lax-transitive-1-cell-globular-map-lax-transitive-globular-map = + is-lax-transitive-1-cell-globular-map-is-lax-transitive-globular-map + is-lax-transitive-lax-transitive-globular-map + + 1-cell-lax-transitive-globular-map-lax-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-lax-transitive-globular-map x) + ( 0-cell-lax-transitive-globular-map y)) + globular-map-lax-transitive-globular-map + 1-cell-lax-transitive-globular-map-lax-transitive-globular-map = + 1-cell-globular-map-lax-transitive-globular-map + is-lax-transitive-lax-transitive-globular-map + 1-cell-lax-transitive-globular-map-lax-transitive-globular-map = + is-lax-transitive-1-cell-globular-map-lax-transitive-globular-map + +open lax-transitive-globular-map public +``` + +### Composition of lax transitive maps + +```agda +map-comp-lax-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + lax-transitive-globular-map H K → lax-transitive-globular-map G H → + globular-map-Transitive-Globular-Type G K +map-comp-lax-transitive-globular-map G H K g f = + comp-globular-map + ( globular-map-lax-transitive-globular-map g) + ( globular-map-lax-transitive-globular-map f) + +is-lax-transitive-comp-lax-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + (g : lax-transitive-globular-map H K) + (f : lax-transitive-globular-map G H) → + is-lax-transitive-globular-map G K + ( map-comp-lax-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-lax-transitive-globular-map + ( is-lax-transitive-comp-lax-transitive-globular-map G H K g f) q p = + comp-2-cell-Transitive-Globular-Type K + ( 2-cell-lax-transitive-globular-map g + ( preserves-comp-1-cell-lax-transitive-globular-map f q p)) + ( preserves-comp-1-cell-lax-transitive-globular-map g _ _) +is-lax-transitive-1-cell-globular-map-is-lax-transitive-globular-map + ( is-lax-transitive-comp-lax-transitive-globular-map G H K g f) = + is-lax-transitive-comp-lax-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type K _ _) + ( 1-cell-lax-transitive-globular-map-lax-transitive-globular-map g) + ( 1-cell-lax-transitive-globular-map-lax-transitive-globular-map f) +``` diff --git a/src/structured-types/transitive-globular-maps.lagda.md b/src/structured-types/transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..616db187ba --- /dev/null +++ b/src/structured-types/transitive-globular-maps.lagda.md @@ -0,0 +1,219 @@ +# Transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.identity-types +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A {{#concept "transitive globular map" Agda=transitive-globular-map}} between +two [transitive globular types](structured-types.transitive-globular-types.md) `G` +and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` +equipped with a family of [identifications](foundation-core.identifications.md) + +```text + f₁ (q ∘G p) = f₁ q ∘H f₁ p +``` + +from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again +transitive. + +## Definitions + +### The predicate of preserving transitivity + +```agda +record + is-transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) (H : Transitive-Globular-Type l3 l4) + (f : globular-map-Transitive-Globular-Type G H) : + UU (l1 ⊔ l2 ⊔ l4) + where + coinductive + + field + preserves-comp-1-cell-is-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} → + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 1-cell-globular-map f (comp-1-cell-Transitive-Globular-Type G q p) = + comp-1-cell-Transitive-Globular-Type H + ( 1-cell-globular-map f q) + ( 1-cell-globular-map f p) + + field + is-transitive-1-cell-globular-map-is-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + is-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-globular-map-globular-map f) + +open is-transitive-globular-map public +``` + +### transitive globular maps + +```agda +record + transitive-globular-map + {l1 l2 l3 l4 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + + field + globular-map-transitive-globular-map : + globular-map-Transitive-Globular-Type G H + + 0-cell-transitive-globular-map : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-transitive-globular-map = + 0-cell-globular-map globular-map-transitive-globular-map + + 1-cell-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + 1-cell-Transitive-Globular-Type G x y → + 1-cell-Transitive-Globular-Type H + ( 0-cell-transitive-globular-map x) + ( 0-cell-transitive-globular-map y) + 1-cell-transitive-globular-map = + 1-cell-globular-map globular-map-transitive-globular-map + + 1-cell-globular-map-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + globular-map-Transitive-Globular-Type + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-transitive-globular-map x) + ( 0-cell-transitive-globular-map y)) + 1-cell-globular-map-transitive-globular-map = + 1-cell-globular-map-globular-map globular-map-transitive-globular-map + + 2-cell-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + 2-cell-Transitive-Globular-Type G f g → + 2-cell-Transitive-Globular-Type H + ( 1-cell-transitive-globular-map f) + ( 1-cell-transitive-globular-map g) + 2-cell-transitive-globular-map = + 2-cell-globular-map globular-map-transitive-globular-map + + 2-cell-globular-map-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} + {f g : 1-cell-Transitive-Globular-Type G x y} → + globular-map-Transitive-Globular-Type + ( 2-cell-transitive-globular-type-Transitive-Globular-Type G f g) + ( 2-cell-transitive-globular-type-Transitive-Globular-Type H + ( 1-cell-transitive-globular-map f) + ( 1-cell-transitive-globular-map g)) + 2-cell-globular-map-transitive-globular-map = + 2-cell-globular-map-globular-map + ( globular-map-transitive-globular-map) + ( _) + ( _) + + field + is-transitive-transitive-globular-map : + is-transitive-globular-map G H + globular-map-transitive-globular-map + + preserves-comp-1-cell-transitive-globular-map : + {x y z : 0-cell-Transitive-Globular-Type G} + (q : 1-cell-Transitive-Globular-Type G y z) + (p : 1-cell-Transitive-Globular-Type G x y) → + 1-cell-transitive-globular-map + ( comp-1-cell-Transitive-Globular-Type G q p) = + comp-1-cell-Transitive-Globular-Type H + ( 1-cell-transitive-globular-map q) + ( 1-cell-transitive-globular-map p) + preserves-comp-1-cell-transitive-globular-map = + preserves-comp-1-cell-is-transitive-globular-map + is-transitive-transitive-globular-map + + is-transitive-1-cell-globular-map-transitive-globular-map : + { x y : 0-cell-Transitive-Globular-Type G} → + is-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-transitive-globular-map x) + ( 0-cell-transitive-globular-map y)) + ( 1-cell-globular-map-transitive-globular-map) + is-transitive-1-cell-globular-map-transitive-globular-map = + is-transitive-1-cell-globular-map-is-transitive-globular-map + is-transitive-transitive-globular-map + + 1-cell-transitive-globular-map-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G x y) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H + ( 0-cell-transitive-globular-map x) + ( 0-cell-transitive-globular-map y)) + globular-map-transitive-globular-map + 1-cell-transitive-globular-map-transitive-globular-map = + 1-cell-globular-map-transitive-globular-map + is-transitive-transitive-globular-map + 1-cell-transitive-globular-map-transitive-globular-map = + is-transitive-1-cell-globular-map-transitive-globular-map + +open transitive-globular-map public +``` + +### Composition of transitive maps + +```agda +map-comp-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + transitive-globular-map H K → transitive-globular-map G H → + globular-map-Transitive-Globular-Type G K +map-comp-transitive-globular-map G H K g f = + comp-globular-map + ( globular-map-transitive-globular-map g) + ( globular-map-transitive-globular-map f) + +is-transitive-comp-transitive-globular-map : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Transitive-Globular-Type l1 l2) + (H : Transitive-Globular-Type l3 l4) + (K : Transitive-Globular-Type l5 l6) → + (g : transitive-globular-map H K) + (f : transitive-globular-map G H) → + is-transitive-globular-map G K + ( map-comp-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-transitive-globular-map + ( is-transitive-comp-transitive-globular-map G H K g f) q p = + ( ap + ( 1-cell-transitive-globular-map g) + ( preserves-comp-1-cell-transitive-globular-map f q p)) ∙ + ( preserves-comp-1-cell-transitive-globular-map g _ _) +is-transitive-1-cell-globular-map-is-transitive-globular-map + ( is-transitive-comp-transitive-globular-map G H K g f) = + is-transitive-comp-transitive-globular-map + ( 1-cell-transitive-globular-type-Transitive-Globular-Type G _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type H _ _) + ( 1-cell-transitive-globular-type-Transitive-Globular-Type K _ _) + ( 1-cell-transitive-globular-map-transitive-globular-map g) + ( 1-cell-transitive-globular-map-transitive-globular-map f) +``` From d9588904e8607d90662aab59e128ab892bf508cb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 20 Oct 2024 20:49:58 -0400 Subject: [PATCH 23/42] refacotr colax functors of noncoherent large wild precategories --- .../wild-category-of-types.lagda.md | 23 +- ...ependent-reflexive-globular-types.lagda.md | 10 +- .../wild-category-of-pointed-types.lagda.md | 55 +- ...t-large-wild-higher-precategories.lagda.md | 771 +++++++++++------- ...t-large-wild-higher-precategories.lagda.md | 6 +- ...t-large-wild-higher-precategories.lagda.md | 26 + ...oherent-wild-higher-precategories.lagda.md | 2 - 7 files changed, 546 insertions(+), 347 deletions(-) diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index 9fab54691f..0ab099e3cf 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -68,20 +68,21 @@ globular-structure-Π {A = A} {B = B} = 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-structure - is-reflexive-dependent-function-type-Globular-Type f = refl-htpy -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - is-reflexive-dependent-function-type-Globular-Type f g = +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 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-structure +comp-1-cell-is-transitive-Globular-Type is-transitive-dependent-function-type-Globular-Type K H = H ∙h K -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - is-transitive-dependent-function-type-Globular-Type f g = +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + is-transitive-dependent-function-type-Globular-Type = is-transitive-dependent-function-type-Globular-Type ``` @@ -139,11 +140,11 @@ is-reflexive-Large-Reflexive-Globular-Type is-transitive-Type-Large-Globular-Type : is-transitive-Large-Globular-Type Type-Large-Globular-Type -comp-1-cell-is-transitive-large-globular-structure +comp-1-cell-is-transitive-Large-Globular-Type is-transitive-Type-Large-Globular-Type g f = g ∘ f -is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure - is-transitive-Type-Large-Globular-Type f g = +is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type + is-transitive-Type-Large-Globular-Type = is-transitive-function-type-Globular-Type ``` @@ -152,7 +153,7 @@ is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure ```agda Type-Noncoherent-Large-Wild-Higher-Precategory : Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -large-globular-type-Noncoherent-Large-Wild-Precategory +large-globular-type-Noncoherent-Large-Wild-Higher-Precategory Type-Noncoherent-Large-Wild-Higher-Precategory = Type-Large-Globular-Type id-structure-Noncoherent-Large-Wild-Higher-Precategory diff --git a/src/structured-types/dependent-reflexive-globular-types.lagda.md b/src/structured-types/dependent-reflexive-globular-types.lagda.md index 5462c11871..48e0c5e3db 100644 --- a/src/structured-types/dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/dependent-reflexive-globular-types.lagda.md @@ -176,17 +176,15 @@ is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type : (x : 0-cell-Reflexive-Globular-Type G) → is-reflexive-Globular-Type ( family-globular-types-Dependent-Reflexive-Globular-Type H x) -is-reflexive-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type H x) = refl-1-cell-Dependent-Reflexive-Globular-Type H -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ( is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type - { G = G} H x) - ( u) - ( v) = + {G = G} H x) = is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type - H u v) + H _ _) ( refl-1-cell-Reflexive-Globular-Type G) module _ diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index e082eefd86..52f79b42be 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -90,11 +90,10 @@ uniform-pointed-type-Large-Globular-Type : is-reflexive-uniform-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → is-reflexive-Globular-Type (uniform-pointed-Π-Globular-Type A B) -is-reflexive-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-uniform-pointed-Π-Globular-Type A B) = refl-uniform-pointed-htpy -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-uniform-pointed-Π-Globular-Type A B) f g = +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type (is-reflexive-uniform-pointed-Π-Globular-Type A B) {f} {g} = is-reflexive-uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) is-reflexive-uniform-pointed-map-Globular-Type : @@ -119,11 +118,11 @@ is-reflexive-1-cell-globular-type-is-reflexive-Large-Globular-Type is-transitive-uniform-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → is-transitive-Globular-Type (uniform-pointed-Π-Globular-Type A B) -comp-1-cell-is-transitive-globular-structure +comp-1-cell-is-transitive-Globular-Type ( is-transitive-uniform-pointed-Π-Globular-Type A B) {f} {g} {h} K H = concat-uniform-pointed-htpy {f = f} {g} {h} H K -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-uniform-pointed-Π-Globular-Type A B) f g = +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-uniform-pointed-Π-Globular-Type A B) {f} {g} = is-transitive-uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) uniform-pointed-Π-Transitive-Globular-Type : @@ -148,12 +147,12 @@ uniform-pointed-map-Transitive-Globular-Type A B = comp-structure-uniform-pointed-type-Large-Globular-Type : is-transitive-Large-Globular-Type uniform-pointed-type-Large-Globular-Type -comp-1-cell-is-transitive-large-globular-structure +comp-1-cell-is-transitive-Large-Globular-Type comp-structure-uniform-pointed-type-Large-Globular-Type g f = g ∘∗ f -is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type comp-structure-uniform-pointed-type-Large-Globular-Type = - is-transitive-uniform-pointed-map-Globular-Type + is-transitive-uniform-pointed-Π-Globular-Type _ _ ``` #### The noncoherent large wild higher precategory of pointed types, pointed maps, and uniform pointed homotopies @@ -161,7 +160,7 @@ is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure ```agda uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory : Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -large-globular-type-Noncoherent-Large-Wild-Precategory +large-globular-type-Noncoherent-Large-Wild-Higher-Precategory uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory = uniform-pointed-type-Large-Globular-Type id-structure-Noncoherent-Large-Wild-Higher-Precategory @@ -215,12 +214,12 @@ is-reflexive-pointed-htpy-Globular-Type : {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} (f g : pointed-Π A B) → is-reflexive-Globular-Type (pointed-htpy-Globular-Type f g) -is-reflexive-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-pointed-htpy-Globular-Type f g) = refl-pointed-2-htpy -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure - ( is-reflexive-pointed-htpy-Globular-Type f g) H K = - is-reflexive-globular-type-Type (pointed-2-htpy H K) +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( is-reflexive-pointed-htpy-Globular-Type f g) = + is-reflexive-globular-type-Type (pointed-2-htpy _ _) pointed-htpy-Reflexive-Globular-Type : {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} @@ -235,12 +234,12 @@ refl-Reflexive-Globular-Type is-reflexive-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → is-reflexive-Globular-Type (pointed-Π-Globular-Type A B) -is-reflexive-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-pointed-Π-Globular-Type A B) = refl-pointed-htpy -is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ( is-reflexive-pointed-Π-Globular-Type A B) = - is-reflexive-pointed-htpy-Globular-Type + is-reflexive-pointed-htpy-Globular-Type _ _ pointed-Π-Reflexive-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → @@ -289,22 +288,22 @@ is-transitive-pointed-htpy-Globular-Type : {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} (f g : pointed-Π A B) → is-transitive-Globular-Type (pointed-htpy-Globular-Type f g) -comp-1-cell-is-transitive-globular-structure +comp-1-cell-is-transitive-Globular-Type ( is-transitive-pointed-htpy-Globular-Type f g) K H = concat-pointed-2-htpy H K -is-transitive-globular-structure-1-cell-is-transitive-globular-structure - ( is-transitive-pointed-htpy-Globular-Type f g) H K = - is-transitive-globular-type-Type (pointed-2-htpy H K) +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-pointed-htpy-Globular-Type f g) = + is-transitive-globular-type-Type (pointed-2-htpy _ _) is-transitive-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → is-transitive-Globular-Type (pointed-Π-Globular-Type A B) -comp-1-cell-is-transitive-globular-structure +comp-1-cell-is-transitive-Globular-Type ( is-transitive-pointed-Π-Globular-Type A B) K H = concat-pointed-htpy H K -is-transitive-globular-structure-1-cell-is-transitive-globular-structure +is-transitive-1-cell-globular-type-is-transitive-Globular-Type ( is-transitive-pointed-Π-Globular-Type A B) = - is-transitive-pointed-htpy-Globular-Type + is-transitive-pointed-htpy-Globular-Type _ _ is-transitive-pointed-map-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → @@ -314,12 +313,12 @@ is-transitive-pointed-map-Globular-Type A B = is-transitive-pointed-type-Large-Globular-Type : is-transitive-Large-Globular-Type pointed-type-Large-Globular-Type -comp-1-cell-is-transitive-large-globular-structure +comp-1-cell-is-transitive-Large-Globular-Type is-transitive-pointed-type-Large-Globular-Type g f = g ∘∗ f -is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure +is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type is-transitive-pointed-type-Large-Globular-Type = - is-transitive-pointed-map-Globular-Type + is-transitive-pointed-map-Globular-Type _ _ ``` #### The noncoherent large wild higher precategory of pointed types, pointed maps, and nonuniform pointed homotopies @@ -327,7 +326,7 @@ is-transitive-globular-structure-1-cell-is-transitive-large-globular-structure ```agda pointed-type-Noncoherent-Large-Wild-Higher-Precategory : Noncoherent-Large-Wild-Higher-Precategory lsuc (_⊔_) -large-globular-type-Noncoherent-Large-Wild-Precategory +large-globular-type-Noncoherent-Large-Wild-Higher-Precategory pointed-type-Noncoherent-Large-Wild-Higher-Precategory = pointed-type-Large-Globular-Type id-structure-Noncoherent-Large-Wild-Higher-Precategory diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index ec5985911e..d21e036b1e 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -14,7 +14,9 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.colax-reflexive-globular-maps +open import structured-types.large-colax-reflexive-globular-maps +open import structured-types.large-colax-transitive-globular-maps +open import structured-types.large-globular-maps open import structured-types.globular-maps open import structured-types.globular-types @@ -58,309 +60,484 @@ in `ℬ`. ```agda preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory : - {α1 α2 δ : Level → Level} + {α1 α2 γ : Level → Level} {β1 β2 : Level → Level → Level} (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) - (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) → UUω + (F : map-Noncoherent-Large-Wild-Higher-Precategory γ 𝒜 ℬ) → UUω preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F = - {!is-colax-reflexive-globular-map!} + is-colax-reflexive-large-globular-map + ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ℬ) + ( F) +``` + +### The predicate on maps between large noncoherent wild higher precategories of preserving the composition structure + +```agda +preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory : + {α1 α2 γ : Level → Level} + {β1 β2 : Level → Level → Level} + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) + (F : map-Noncoherent-Large-Wild-Higher-Precategory γ 𝒜 ℬ) → UUω +preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F = + is-colax-transitive-large-globular-map + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ℬ) + ( F) ``` ### The predicate of being a colax functor between noncoherent wild higher precategories ```agda +record + is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + {α1 α2 : Level → Level} + {β1 β2 : Level → Level → Level} + {γ : Level → Level} + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) + (F : map-Noncoherent-Large-Wild-Higher-Precategory γ 𝒜 ℬ) : UUω + where + + field + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory + ( 𝒜) + ( ℬ) + ( F) + + field + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory + ( 𝒜) + ( ℬ) + ( F) + + preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l : Level} + (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F + ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) + ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + { x = obj-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F x}) + preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-refl-1-cell-is-colax-reflexive-large-globular-map + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) + ( 1-cell-globular-map-large-globular-map F) + preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 l3 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} + {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} + (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) + (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F + ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) + ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F g) + ( hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ F f)) + preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-1-cell-is-colax-transitive-large-globular-map + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) + ( 1-cell-globular-map-large-globular-map F) + preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( 1-cell-globular-map-large-globular-map F) + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + +open is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory public +``` + +### The type of colax functors between noncoherent wild higher precategories + +```agda +record + colax-functor-Noncoherent-Large-Wild-Higher-Precategory + {α1 α2 : Level → Level} + {β1 β2 : Level → Level → Level} + (δ : Level → Level) + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω + where +``` + +- The underlying large globular map of a colax functor + +```agda + field + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ + + obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l : Level} → + obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → + obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) + obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + obj-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + + hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y → + hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y) + hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} + {f g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y} → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 f g → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f) + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) + 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + globular-map + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) + ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) + hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + + field + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) +``` + +- Preservation of the identity structure + +```agda + preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + colax-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + large-colax-reflexive-globular-map δ + ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ℬ) + large-globular-map-large-colax-reflexive-globular-map + colax-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-reflexive-large-colax-reflexive-globular-map + colax-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l : Level} + (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) + ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + { x = obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x}) + preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + + preserves-id-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( 1-cell-globular-map-large-globular-map + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + preserves-id-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +``` + +- Preservation of the composition structure + +```agda + preserves-comp-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-comp-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + large-colax-transitive-globular-map δ + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ℬ) + large-globular-map-large-colax-transitive-globular-map + colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-transitive-large-colax-transitive-globular-map + colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 l3 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} + {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} + (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) + (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → + 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) + ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) + ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f)) + preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + + preserves-comp-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( 1-cell-globular-map-large-globular-map + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + preserves-comp-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +``` + +- The globular map on hom-types is again a colax functor --- record --- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- {α1 α2 : Level → Level} --- {β1 β2 : Level → Level → Level} --- {δ : Level → Level} --- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} --- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} --- (F : map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ) : UUω --- where --- field --- preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l : Level} --- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F --- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) --- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- { x = obj-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F x}) - --- preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 l3 : Level} --- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} --- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} --- {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} --- (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) --- (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F --- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) --- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F g) --- ( hom-map-Noncoherent-Large-Wild-Higher-Precategory ? ? F f)) - --- is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) --- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → --- is-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory ? ? --- ( F) --- ( x) --- ( y)) - --- open is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory public --- ``` - --- ### The type of colax functors between noncoherent wild higher precategories - --- ```agda --- record --- colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- {α1 α2 : Level → Level} --- {β1 β2 : Level → Level → Level} --- (δ : Level → Level) --- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) --- (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω --- where - --- field --- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- map-Noncoherent-Large-Wild-Higher-Precategory δ 𝒜 ℬ - --- is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) --- ``` - --- ```agda --- obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l : Level} → --- obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l → --- obj-Noncoherent-Large-Wild-Higher-Precategory ℬ (δ l) --- obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- obj-map-Noncoherent-Large-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - --- hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} --- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → --- hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y → --- hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y) --- hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- hom-map-Noncoherent-Large-Wild-Higher-Precategory --- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - --- preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l : Level} --- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l) → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 {x = x})) --- ( id-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- { x = obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x}) --- preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - --- preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 l3 : Level} --- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} --- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} --- {z : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l3} --- (g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 y z) --- (f : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 g f)) --- ( comp-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f)) --- preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - --- 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} --- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} --- {f g : hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y} → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 f g → --- 2-hom-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory f) --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g) --- 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- 2-hom-map-Noncoherent-Large-Wild-Higher-Precategory --- map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - --- hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} --- {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → --- globular-map --- ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) --- ( hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) --- hom-globular-map-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- hom-globular-map-map-Noncoherent-Large-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - --- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) --- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → --- map-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory --- ( ℬ) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) --- map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- hom-noncoherent-wild-higher-precategory-map-Noncoherent-Large-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) - --- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- {l1 l2 : Level} --- (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) --- (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → --- colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory --- ( ℬ) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) --- hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- x y = --- ( map-hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( x) --- ( y) , --- is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory --- ( is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) --- ( x) --- ( y)) - --- open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public --- ``` - --- ### The identity colax functor on a noncoherent large wild higher precategory - --- ```agda --- module _ --- {α : Level → Level} {β : Level → Level → Level} --- (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) --- where - --- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) --- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- x → --- id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 --- .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- g f → --- id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 --- .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → --- is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory --- ( 𝒜) --- ( x) --- ( y)) - --- id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- colax-functor-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 --- id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → --- id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 --- .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → --- is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ``` - --- ### Composition of colax functors between noncoherent wild higher precategories - --- ```agda --- module _ --- {α1 α2 α3 : Level → Level} --- {β1 β2 β3 : Level → Level → Level} --- {δ1 δ2 : Level → Level} --- {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} --- {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} --- {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} --- (G : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) --- (F : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) --- where - --- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- map-Noncoherent-Large-Wild-Higher-Precategory (λ l → δ2 (δ1 l)) 𝒜 𝒞 --- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- comp-map-Noncoherent-Large-Wild-Higher-Precategory --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) --- ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) - --- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) --- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .preserves-id-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- x → --- comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 --- ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( G) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x)) --- ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G --- ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( F) --- ( x))) --- .preserves-comp-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- g f → --- comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 --- ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( G) --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F g) --- ( hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F f)) --- ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G --- ( preserves-comp-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( F) --- ( g) --- ( f))) --- .is-colax-functor-map-hom-Noncoherent-Large-Wild-Higher-Precategory x y → --- is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory --- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( G) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F x) --- ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F y)) --- ( hom-noncoherent-wild-higher-precategory-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( F) --- ( x) --- ( y)) - --- comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : --- colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ( λ l → δ2 (δ1 l)) --- ( 𝒜) --- ( 𝒞) --- comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = --- λ where --- .map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → --- map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- .is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory → --- is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory --- ``` +```agda + is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} + {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → + is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ( 𝒜) + ( x) + ( y)) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ( ℬ) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) + ( hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + {l1 l2 : Level} + (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) + (y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2) → + colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ( 𝒜) + ( x) + ( y)) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ( ℬ) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) + ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) + pr1 + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x y) = + hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + pr2 + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x y) = + is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + +open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public +``` + +### The identity colax functor on a noncoherent large wild higher precategory + +```agda +module _ + {α : Level → Level} {β : Level → Level → Level} + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α β) + where + + preserves-id-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precatory : + preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒜 + ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) + preserves-id-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precatory = + is-colax-reflexive-id-large-colax-reflexive-globular-map + ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + + preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒜 + ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) + preserves-comp-1-cell-is-colax-transitive-large-globular-map + preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g f = + id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 _ + is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map + preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 _ _) + + is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒜 + ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precatory + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + colax-functor-Noncoherent-Large-Wild-Higher-Precategory id 𝒜 𝒜 + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory +``` + +### Composition of colax functors between noncoherent wild higher precategories + +```agda +module _ + {α1 α2 α3 : Level → Level} + {β1 β2 β3 : Level → Level → Level} + {δ1 δ2 : Level → Level} + {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} + {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} + {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} + (G : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) + (F : colax-functor-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) + where + + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + map-Noncoherent-Large-Wild-Higher-Precategory (δ2 ∘ δ1) 𝒜 𝒞 + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + comp-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ 𝒞 + ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) + ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) + + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-refl-1-cell-is-colax-reflexive-large-globular-map + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x = + comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 + ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( G) + ( _)) + ( 2-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G + ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( F) + ( _))) + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒞 _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + G _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + F _ _) + + preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + is-colax-transitive-comp-large-colax-transitive-globular-map + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒜) + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + ℬ) + ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory + 𝒞) + ( colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + G) + ( colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + F) + + is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory : + is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = + preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + + comp-colax-functor-Noncoherent-Large-Wild-Precategory : + colax-functor-Noncoherent-Large-Wild-Higher-Precategory (δ2 ∘ δ1) 𝒜 𝒞 + map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + comp-colax-functor-Noncoherent-Large-Wild-Precategory = + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + comp-colax-functor-Noncoherent-Large-Wild-Precategory = + is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory +``` diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index 6752b97912..c1a1ada98d 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -152,9 +152,9 @@ module _ {α1 α2 α3 : Level → Level} {β1 β2 β3 : Level → Level → Level} {δ1 δ2 : Level → Level} - {𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1} - {ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2} - {𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3} + (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) + (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) + (𝒞 : Noncoherent-Large-Wild-Higher-Precategory α3 β3) (G : map-Noncoherent-Large-Wild-Higher-Precategory δ2 ℬ 𝒞) (F : map-Noncoherent-Large-Wild-Higher-Precategory δ1 𝒜 ℬ) where diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index 4f17ff0d2a..ba16301485 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -336,6 +336,32 @@ record { x = x} { y}) ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) +``` + +- The underlying reflexive globular type of a noncoherent large wild higher precategory + +```agda + large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + Large-Reflexive-Globular-Type α β + large-globular-type-Large-Reflexive-Globular-Type + large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory + is-reflexive-Large-Reflexive-Globular-Type + large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + id-structure-Noncoherent-Large-Wild-Higher-Precategory +``` + +- The underlying transitive globular type of a noncoherent large wild higher precategory + +```agda + large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory : + Large-Transitive-Globular-Type α β + large-globular-type-Large-Transitive-Globular-Type + large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + large-globular-type-Noncoherent-Large-Wild-Higher-Precategory + is-transitive-Large-Transitive-Globular-Type + large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory = + comp-structure-Noncoherent-Large-Wild-Higher-Precategory open Noncoherent-Large-Wild-Higher-Precategory public ``` diff --git a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md index d7288d4b03..973e2719bf 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -123,7 +123,6 @@ module _ hom-Noncoherent-Wild-Higher-Precategory x x id-hom-Noncoherent-Wild-Higher-Precategory {x} = refl-2-cell-is-reflexive-Globular-Type - globular-type-Noncoherent-Wild-Higher-Precategory id-structure-Noncoherent-Wild-Higher-Precategory id-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory : @@ -230,7 +229,6 @@ module _ 2-hom-Noncoherent-Wild-Higher-Precategory f f id-2-hom-Noncoherent-Wild-Higher-Precategory = refl-3-cell-is-reflexive-Globular-Type - globular-type-Noncoherent-Wild-Higher-Precategory id-structure-Noncoherent-Wild-Higher-Precategory comp-2-hom-Noncoherent-Wild-Higher-Precategory : From f2bec3488aa9b95bea158092b8010fb3c4c5da44 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 20 Oct 2024 21:40:23 -0400 Subject: [PATCH 24/42] make pre-commit --- src/graph-theory.lagda.md | 6 ++ ...endent-coproducts-directed-graphs.lagda.md | 5 +- .../dependent-reflexive-graphs.lagda.md | 6 +- .../directed-graph-duality.lagda.md | 9 +- .../fibers-directed-graphs.lagda.md | 13 ++- .../fibers-morphisms-directed-graphs.lagda.md | 15 +++- ...rphisms-dependent-directed-graphs.lagda.md | 7 +- src/structured-types.lagda.md | 19 ++++- .../colax-reflexive-globular-maps.lagda.md | 20 ++++- .../colax-transitive-globular-maps.lagda.md | 17 ++-- ...pendent-coproducts-globular-types.lagda.md | 6 +- .../fibers-globular-maps.lagda.md | 8 +- ...rge-colax-reflexive-globular-maps.lagda.md | 29 +++++-- ...ge-colax-transitive-globular-maps.lagda.md | 32 +++++--- .../large-globular-maps.lagda.md | 8 +- ...large-lax-reflexive-globular-maps.lagda.md | 31 +++++-- ...arge-lax-transitive-globular-maps.lagda.md | 25 ++++-- .../large-reflexive-globular-maps.lagda.md | 30 ++++--- .../large-reflexive-globular-types.lagda.md | 2 +- .../large-transitive-globular-maps.lagda.md | 17 ++-- .../lax-reflexive-globular-maps.lagda.md | 25 ++++-- .../lax-transitive-globular-maps.lagda.md | 17 ++-- ...ullbacks-dependent-globular-types.lagda.md | 7 +- .../reflexive-globular-maps.lagda.md | 7 +- .../reflexive-globular-types.lagda.md | 4 +- ...sections-dependent-globular-types.lagda.md | 8 +- .../transitive-globular-maps.lagda.md | 11 +-- .../transitive-globular-types.lagda.md | 6 +- .../wild-category-of-pointed-types.lagda.md | 5 +- ...t-large-wild-higher-precategories.lagda.md | 82 +++++++++++-------- ...oherent-wild-higher-precategories.lagda.md | 49 ++++++----- ...t-large-wild-higher-precategories.lagda.md | 2 +- ...oherent-wild-higher-precategories.lagda.md | 12 ++- ...t-large-wild-higher-precategories.lagda.md | 6 +- 34 files changed, 377 insertions(+), 169 deletions(-) diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index aa93c0c52c..afbdec9b96 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -14,8 +14,11 @@ open import graph-theory.complete-multipartite-graphs public open import graph-theory.complete-undirected-graphs public open import graph-theory.connected-undirected-graphs public open import graph-theory.cycles-undirected-graphs public +open import graph-theory.dependent-coproducts-directed-graphs public open import graph-theory.dependent-directed-graphs public open import graph-theory.dependent-products-directed-graphs public +open import graph-theory.dependent-reflexive-graphs public +open import graph-theory.directed-graph-duality public open import graph-theory.directed-graph-structures-on-standard-finite-sets public open import graph-theory.directed-graphs public open import graph-theory.discrete-graphs public @@ -24,6 +27,7 @@ open import graph-theory.edge-coloured-undirected-graphs public open import graph-theory.embeddings-directed-graphs public open import graph-theory.embeddings-undirected-graphs public open import graph-theory.enriched-undirected-graphs public +open import graph-theory.equivalences-dependent-directed-graphs public open import graph-theory.equivalences-directed-graphs public open import graph-theory.equivalences-enriched-undirected-graphs public open import graph-theory.equivalences-undirected-graphs public @@ -31,6 +35,7 @@ open import graph-theory.eulerian-circuits-undirected-graphs public open import graph-theory.exponents-directed-graphs public open import graph-theory.faithful-morphisms-undirected-graphs public open import graph-theory.fibers-directed-graphs public +open import graph-theory.fibers-morphisms-directed-graphs public open import graph-theory.finite-graphs public open import graph-theory.geometric-realizations-undirected-graphs public open import graph-theory.higher-directed-graphs public @@ -39,6 +44,7 @@ open import graph-theory.large-higher-directed-graphs public open import graph-theory.large-reflexive-graphs public open import graph-theory.matchings public open import graph-theory.mere-equivalences-undirected-graphs public +open import graph-theory.morphisms-dependent-directed-graphs public open import graph-theory.morphisms-directed-graphs public open import graph-theory.morphisms-undirected-graphs public open import graph-theory.neighbors-undirected-graphs public diff --git a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md index 5bd2966c99..5833dbd7a3 100644 --- a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md @@ -21,7 +21,10 @@ open import graph-theory.sections-dependent-directed-graphs ## Idea -Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `H` over a [directed graph](graph-theory.directed-graphs.md) `G`. The {{#concept "dependent coproduct" Disambiguation="directed graphs" Agda=Σ-Directed-Graph}} `Σ G H` is the directed graph given by +Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) +`H` over a [directed graph](graph-theory.directed-graphs.md) `G`. The +{{#concept "dependent coproduct" Disambiguation="directed graphs" Agda=Σ-Directed-Graph}} +`Σ G H` is the directed graph given by ```text (Σ G H)₀ := Σ G₀ H₀ diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 80b48b905b..90228f82ac 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -24,7 +24,8 @@ Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A - A family `B₁ : {x y : A₀} → A₁ x y → B₀ x → B₀ y → 𝒰` of [binary relations](foundation.binary-relations.md) between the types of vertices `B₀`, indexed by the type of edges `A₁` in `A`. -- A family of elements `Bᵣ : (x : A₀) (y : B₀ x) → B₁ (Aᵣ x) y y` witnessing the reflexivity of `B₁` over the reflexivity `Aᵣ` of `A₁`. +- A family of elements `Bᵣ : (x : A₀) (y : B₀ x) → B₁ (Aᵣ x) y y` witnessing the + reflexivity of `B₁` over the reflexivity `Aᵣ` of `A₁`. This definition may appear overly general. However, one can observe that the type of reflexive graphs itself is [equivalent](foundation-core.equivalences.md) @@ -36,7 +37,8 @@ are equivalent to dependent reflexive graphs. Alternatively, a dependent reflexive graph `B` over `A` can be defined by -- A family `B₀ : A₀ → Reflexive-Graph` of reflexive graphs as the type family of vertices +- A family `B₀ : A₀ → Reflexive-Graph` of reflexive graphs as the type family of + vertices - A family `B₁ : {x y : A₀} → A₁ x y → (B₀ x)₀ → (B₀ y)₀ → 𝒰`. - A family `Bᵣ : (x : A₀) → B₁ (Aᵣ x) = (B₀ x)₁ diff --git a/src/graph-theory/directed-graph-duality.lagda.md b/src/graph-theory/directed-graph-duality.lagda.md index 2f4f80356d..47b01de7e7 100644 --- a/src/graph-theory/directed-graph-duality.lagda.md +++ b/src/graph-theory/directed-graph-duality.lagda.md @@ -30,7 +30,14 @@ open import graph-theory.morphisms-directed-graphs ## Idea -{{#concept "Directed graph duality}} is an [equivalence](foundation-core.equivalences.md) between [dependent directed graphs](graph-theory.dependent-directed-graphs.md) over a [directed graph](graph-theory.directed-graphs.md) `G` and [morphisms of directed graphs](graph-theory.morphisms-directed-graphs.md) into `G`. This result is analogous to [type duality](foundation.type-duality.md), which asserts that type families over a type `A` are equivalently described as maps into `A`. +{{#concept "Directed graph duality}} is an +[equivalence](foundation-core.equivalences.md) between +[dependent directed graphs](graph-theory.dependent-directed-graphs.md) over a +[directed graph](graph-theory.directed-graphs.md) `G` and +[morphisms of directed graphs](graph-theory.morphisms-directed-graphs.md) into +`G`. This result is analogous to [type duality](foundation.type-duality.md), +which asserts that type families over a type `A` are equivalently described as +maps into `A`. ## Definitions diff --git a/src/graph-theory/fibers-directed-graphs.lagda.md b/src/graph-theory/fibers-directed-graphs.lagda.md index 2dd5fb0a85..3ded28d294 100644 --- a/src/graph-theory/fibers-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-directed-graphs.lagda.md @@ -31,13 +31,20 @@ open import trees.directed-trees ## Idea Consider a vertex `x` in a [directed graph](graph-theory.directed-graphs.md) -`G`. The {{#concept "fiber" Disambiguation="directed graph" Agda=fiber-Directed-Graph}} of `G` at `x` is a [directed tree](trees.directed-trees.md) -of which the type of nodes consists of vertices `y` equipped with a +`G`. The +{{#concept "fiber" Disambiguation="directed graph" Agda=fiber-Directed-Graph}} +of `G` at `x` is a [directed tree](trees.directed-trees.md) of which the type of +nodes consists of vertices `y` equipped with a [walk](graph-theory.walks-directed-graphs.md) `w` from `y` to `x`, and the type of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that `w = cons e v`. -_Note:_ The fiber of a directed graphs should not be confused with the [fiber of a morphism of directed graphs](graph-theory.fibers-morphisms-directed-graphs.md), which is the [dependent directed graph](graph-theory.dependent-directed-graph.md) consisting of the [fibers](foundation-core.fibers-of-maps.md) of the actions on vertices and edges. +_Note:_ The fiber of a directed graphs should not be confused with the +[fiber of a morphism of directed graphs](graph-theory.fibers-morphisms-directed-graphs.md), +which is the +[dependent directed graph](graph-theory.dependent-directed-graph.md) consisting +of the [fibers](foundation-core.fibers-of-maps.md) of the actions on vertices +and edges. ## Definitions diff --git a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md index f0011de09a..a1c95d3b87 100644 --- a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md @@ -26,15 +26,22 @@ open import graph-theory.morphisms-directed-graphs ## Idea -Consider a [morphism](graph-theory.morphisms-directed-graphs.md) `f : H → G` of [directed graphs](graph-theory.directed-graphs.md). The {{#concept "fiber" Disambiguation="morphisms of directed graphs"}} of `f` is the [dependent directed graph](graph-theory.dependent-directed-graphs.md) `fib_f` over `G` given by +Consider a [morphism](graph-theory.morphisms-directed-graphs.md) `f : H → G` of +[directed graphs](graph-theory.directed-graphs.md). The +{{#concept "fiber" Disambiguation="morphisms of directed graphs"}} of `f` is the +[dependent directed graph](graph-theory.dependent-directed-graphs.md) `fib_f` +over `G` given by ```text (fib_f)₀ x := fib f₀ (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e. ``` -_Note:_ The fiber of a morphism of directed graphs should not be confused with the [fiber of a directed graph at a vertex](graph-theory.fibers-directed-graphs.md), which are the [directed trees](trees.directed-trees.md) -of which the type of nodes consists of vertices `y` equipped with a +_Note:_ The fiber of a morphism of directed graphs should not be confused with +the +[fiber of a directed graph at a vertex](graph-theory.fibers-directed-graphs.md), +which are the [directed trees](trees.directed-trees.md) of which the type of +nodes consists of vertices `y` equipped with a [walk](graph-theory.walks-directed-graphs.md) `w` from `y` to `x`, and the type of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that `w = cons e v`. @@ -168,7 +175,7 @@ module _ equiv-fiber-pr1 _ vertex-compute-fiber-pr1-Σ-Directed-Graph : - {x : vertex-Directed-Graph G} → + {x : vertex-Directed-Graph G} → vertex-fiber-pr1-Σ-Directed-Graph x → vertex-Dependent-Directed-Graph H x vertex-compute-fiber-pr1-Σ-Directed-Graph = diff --git a/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md b/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md index 7ec8f806c7..ef0c365ed0 100644 --- a/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/morphisms-dependent-directed-graphs.lagda.md @@ -19,8 +19,11 @@ open import graph-theory.directed-graphs ## Idea -Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and `K` over a [directed graph](graph-theory.directed-graphs.md) `G`. -A {{#concept "morphism of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} from `H` to `K` consists of a family of maps +Consider two +[dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and +`K` over a [directed graph](graph-theory.directed-graphs.md) `G`. A +{{#concept "morphism of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} +from `H` to `K` consists of a family of maps ```text f₀ : {x : G₀} → H₀ x → K₀ x diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index e172337240..bca7ac548f 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -12,6 +12,8 @@ module structured-types where open import structured-types.binary-globular-maps public open import structured-types.cartesian-products-types-equipped-with-endomorphisms public open import structured-types.central-h-spaces public +open import structured-types.colax-reflexive-globular-maps public +open import structured-types.colax-transitive-globular-maps public open import structured-types.commuting-squares-of-pointed-homotopies public open import structured-types.commuting-squares-of-pointed-maps public open import structured-types.commuting-triangles-of-pointed-maps public @@ -20,6 +22,7 @@ open import structured-types.conjugation-pointed-types public open import structured-types.constant-pointed-maps public open import structured-types.contractible-pointed-types public open import structured-types.cyclic-types public +open import structured-types.dependent-coproducts-globular-types public open import structured-types.dependent-globular-types public open import structured-types.dependent-products-h-spaces public open import structured-types.dependent-products-pointed-types public @@ -27,18 +30,19 @@ open import structured-types.dependent-products-wild-monoids public open import structured-types.dependent-reflexive-globular-types public open import structured-types.dependent-types-equipped-with-automorphisms public open import structured-types.equality-globular-types public -open import structured-types.globular-equivalences public open import structured-types.equivalences-h-spaces public open import structured-types.equivalences-pointed-arrows public open import structured-types.equivalences-types-equipped-with-automorphisms public open import structured-types.equivalences-types-equipped-with-endomorphisms public open import structured-types.exponents-globular-types public open import structured-types.faithful-pointed-maps public +open import structured-types.fibers-globular-maps public open import structured-types.fibers-of-pointed-maps public open import structured-types.finite-multiplication-magmas public open import structured-types.function-h-spaces public open import structured-types.function-magmas public open import structured-types.function-wild-monoids public +open import structured-types.globular-equivalences public open import structured-types.globular-homotopies public open import structured-types.globular-maps public open import structured-types.globular-types public @@ -48,12 +52,20 @@ open import structured-types.involutive-type-of-h-space-structures public open import structured-types.involutive-types public open import structured-types.iterated-cartesian-products-types-equipped-with-endomorphisms public open import structured-types.iterated-pointed-cartesian-product-types public +open import structured-types.large-colax-reflexive-globular-maps public +open import structured-types.large-colax-transitive-globular-maps public +open import structured-types.large-globular-maps public open import structured-types.large-globular-types public +open import structured-types.large-lax-reflexive-globular-maps public +open import structured-types.large-lax-transitive-globular-maps public +open import structured-types.large-reflexive-globular-maps public open import structured-types.large-reflexive-globular-types public open import structured-types.large-symmetric-globular-types public +open import structured-types.large-transitive-globular-maps public open import structured-types.large-transitive-globular-types public +open import structured-types.lax-reflexive-globular-maps public +open import structured-types.lax-transitive-globular-maps public open import structured-types.magmas public -open import structured-types.large-globular-maps public open import structured-types.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public open import structured-types.morphisms-magmas public @@ -84,13 +96,16 @@ open import structured-types.pointed-universal-property-contractible-types publi open import structured-types.postcomposition-pointed-maps public open import structured-types.precomposition-pointed-maps public open import structured-types.products-families-of-globular-types public +open import structured-types.pullbacks-dependent-globular-types public open import structured-types.reflexive-globular-maps public open import structured-types.reflexive-globular-types public +open import structured-types.sections-dependent-globular-types public open import structured-types.sets-equipped-with-automorphisms public open import structured-types.small-pointed-types public open import structured-types.symmetric-elements-involutive-types public open import structured-types.symmetric-globular-types public open import structured-types.symmetric-h-spaces public +open import structured-types.transitive-globular-maps public open import structured-types.transitive-globular-types public open import structured-types.transposition-pointed-span-diagrams public open import structured-types.types-equipped-with-automorphisms public diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md index 87e2a38248..ae9d8334fa 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -35,18 +35,30 @@ colax reflexive. ### Lack of composition for colax reflexive globular maps -Note that the colax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. +Note that the colax reflexive globular maps lack composition. For the +composition of `g` and `f` to exist, there should be a `2`-cell from +`g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` +preserves reflexivity with the action of `g` on the 2-cell that `f` preserves +reflexivity. However, since the reflexive globular type `G` is not assumed to be +[transitive](structured-types.transitive-globular-types.md), it might lack such +instances of the compositions. ### Colax reflexive globular maps versus the morphisms of presheaves on the reflexive globe category -When reflexive globular types are viewed as type-valued presheaves over -the reflexive globe category, the resulting notion of morphism is that of +When reflexive globular types are viewed as type-valued presheaves over the +reflexive globe category, the resulting notion of morphism is that of [reflexive globular maps](structured-types.reflexive-globular-maps.md), which is stricter than the notion of colax reflexive globular maps. ### Lax versus colax -The notion of [lax reflexive globular map](structured-types.lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. +The notion of +[lax reflexive globular map](structured-types.lax-reflexive-globular-maps.md) is +almost the same, except with the direction of the 2-cell reversed. In general, +the direction of lax coherence cells is determined by applying the morphism +componentwise first, and then the operations, while the direction of colax +coherence cells is determined by first applying the operations and then the +morphism. ## Definitions diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md index 5d9a561d69..5f3ee0c99e 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -19,8 +19,9 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "colax transitive globular map" Agda=transitive-globular-map}} between -two [transitive globular types](structured-types.transitive-globular-types.md) `G` +A {{#concept "colax transitive globular map" Agda=transitive-globular-map}} +between two +[transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped with a family of 2-cells @@ -28,12 +29,18 @@ equipped with a family of 2-cells H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax -transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again colax transitive. ### Lack of identity colax transitive globular maps -Note that the colax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the transitive globular type `G` is not assumed to be [reflexive](structured-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. +Note that the colax transitive globular maps lack an identity morphism. For an +identity morphism to exist on a transitive globular type `G`, there should be a +`2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` +and `p`. However, since the transitive globular type `G` is not assumed to be +[reflexive](structured-types.reflexive-globular-types.md), it might lack such +instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/dependent-coproducts-globular-types.lagda.md b/src/structured-types/dependent-coproducts-globular-types.lagda.md index 85b500ad4d..9478783b07 100644 --- a/src/structured-types/dependent-coproducts-globular-types.lagda.md +++ b/src/structured-types/dependent-coproducts-globular-types.lagda.md @@ -23,7 +23,11 @@ open import structured-types.sections-dependent-globular-types ## Idea -Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over a [globular type](structured-types.globular-types.md) `G`. The {{#concept "dependent coproduct" Disambiguation="globular types" Agda=Σ-Globular-Type}} `Σ G H` of `H` is the globular type given by +Consider a +[dependent globular type](structured-types.dependent-globular-types.md) `H` over +a [globular type](structured-types.globular-types.md) `G`. The +{{#concept "dependent coproduct" Disambiguation="globular types" Agda=Σ-Globular-Type}} +`Σ G H` of `H` is the globular type given by ```text (Σ G H)₀ := Σ G₀ H₀ diff --git a/src/structured-types/fibers-globular-maps.lagda.md b/src/structured-types/fibers-globular-maps.lagda.md index fa7c268279..993b1cd72f 100644 --- a/src/structured-types/fibers-globular-maps.lagda.md +++ b/src/structured-types/fibers-globular-maps.lagda.md @@ -23,7 +23,11 @@ open import structured-types.globular-types ## Idea -Consider a [globular map](structured-types.globular-maps.md) `f : H → G` between two [globular types](structured-types.globular-types.md) `H` and `G`. The {{#concept "fiber" Disambiguation="globular map" Agda=fiber-globular-map}} of `f` is a [dependent globular type](structured-types.dependent-globular-types.md) `fib_f` given by +Consider a [globular map](structured-types.globular-maps.md) `f : H → G` between +two [globular types](structured-types.globular-types.md) `H` and `G`. The +{{#concept "fiber" Disambiguation="globular map" Agda=fiber-globular-map}} of +`f` is a [dependent globular type](structured-types.dependent-globular-types.md) +`fib_f` given by ```text (fib_f)₀ x := fib f₀ x @@ -41,7 +45,7 @@ fiber-globular-map : (f : globular-map H G) → Dependent-Globular-Type (l1 ⊔ l3) (l2 ⊔ l4) G 0-cell-Dependent-Globular-Type - ( fiber-globular-map H G f)= + ( fiber-globular-map H G f) = fiber (0-cell-globular-map f) 1-cell-dependent-globular-type-Dependent-Globular-Type ( fiber-globular-map H G f) {x} {x'} (y , refl) (y' , refl) = diff --git a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md index f791fae6ef..69c95dbdeb 100644 --- a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md @@ -22,26 +22,41 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "large colax reflexive globular map" Agda=large-colax-reflexive-globular-map}} +A +{{#concept "large colax reflexive globular map" Agda=large-colax-reflexive-globular-map}} between two -[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and -`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped -with a family of 2-cells +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of 2-cells ```text (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at -`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [colax reflexive](structured-types.colax-reflexive-globular-maps.md). +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) +`f' : G' x y → H' (f₀ x) (f₀ y)` is +[colax reflexive](structured-types.colax-reflexive-globular-maps.md). ### Lack of composition for colax reflexive globular maps -Note that the large colax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. +Note that the large colax reflexive globular maps lack composition. For the +composition of `g` and `f` to exist, there should be a `2`-cell from +`g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` +preserves reflexivity with the action of `g` on the 2-cell that `f` preserves +reflexivity. However, since the reflexive globular type `G` is not assumed to be +[transitive](structured-types.transitive-globular-types.md), it might lack such +instances of the compositions. ### Lax versus colax -The notion of [large lax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. +The notion of +[large lax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) +is almost the same, except with the direction of the 2-cell reversed. In +general, the direction of lax coherence cells is determined by applying the +morphism componentwise first, and then the operations, while the direction of +colax coherence cells is determined by first applying the operations and then +the morphism. ## Definitions diff --git a/src/structured-types/large-colax-transitive-globular-maps.lagda.md b/src/structured-types/large-colax-transitive-globular-maps.lagda.md index 57111f37d7..b93d7ded85 100644 --- a/src/structured-types/large-colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-transitive-globular-maps.lagda.md @@ -12,9 +12,9 @@ module structured-types.large-colax-transitive-globular-maps where open import foundation.function-types open import foundation.universe-levels +open import structured-types.colax-transitive-globular-maps open import structured-types.large-globular-maps open import structured-types.large-transitive-globular-types -open import structured-types.colax-transitive-globular-maps open import structured-types.transitive-globular-types ``` @@ -22,21 +22,30 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "large colax transitive globular map" Agda=large-transitive-globular-map}} between -two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` -and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` -equipped with a family of 2-cells +A +{{#concept "large colax transitive globular map" Agda=large-transitive-globular-map}} +between two +[large transitive globular types](structured-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of 2-cells ```text H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again colax -transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again colax transitive. ### Lack of identity large colax transitive globular maps -Note that the large colax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the large transitive globular type `G` is not assumed to be [reflexive](structured-types.large-reflexive-globular-types.md), it might lack such instances of the reflexivity cells. +Note that the large colax transitive globular maps lack an identity morphism. +For an identity morphism to exist on a transitive globular type `G`, there +should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of +`1`-cells `q` and `p`. However, since the large transitive globular type `G` is +not assumed to be +[reflexive](structured-types.large-reflexive-globular-types.md), it might lack +such instances of the reflexivity cells. ## Definitions @@ -99,7 +108,8 @@ record 0-cell-Large-Transitive-Globular-Type G l1 → 0-cell-Large-Transitive-Globular-Type H (γ l1) 0-cell-large-colax-transitive-globular-map = - 0-cell-large-globular-map large-globular-map-large-colax-transitive-globular-map + 0-cell-large-globular-map + large-globular-map-large-colax-transitive-globular-map 1-cell-large-colax-transitive-globular-map : {l1 l2 : Level} @@ -236,7 +246,9 @@ is-colax-transitive-comp-large-colax-transitive-globular-map : is-colax-transitive-large-globular-map G K ( map-comp-large-colax-transitive-globular-map G H K g f) preserves-comp-1-cell-is-colax-transitive-large-globular-map - ( is-colax-transitive-comp-large-colax-transitive-globular-map G H K g f) q p = + ( is-colax-transitive-comp-large-colax-transitive-globular-map G H K g f) + ( q) + ( p) = comp-2-cell-Large-Transitive-Globular-Type K ( preserves-comp-1-cell-large-colax-transitive-globular-map g _ _) ( 2-cell-large-colax-transitive-globular-map g diff --git a/src/structured-types/large-globular-maps.lagda.md b/src/structured-types/large-globular-maps.lagda.md index df47e8e117..7cf5c480c5 100644 --- a/src/structured-types/large-globular-maps.lagda.md +++ b/src/structured-types/large-globular-maps.lagda.md @@ -23,10 +23,10 @@ open import structured-types.large-globular-types ## Idea -A {{#concept "large globular map" Agda=large-globular-map}} -`f` between [large globular types](structured-types.large-globular-types.md) `A` -and `B` consists of a map `F₀` of $0$-cells, and for every pair of $n$-cells `x` and `y`, -a map of $(n+1)$-cells +A {{#concept "large globular map" Agda=large-globular-map}} `f` between +[large globular types](structured-types.large-globular-types.md) `A` and `B` +consists of a map `F₀` of $0$-cells, and for every pair of $n$-cells `x` and +`y`, a map of $(n+1)$-cells ```text Fₙ₊₁ : (𝑛+1)-Cell A x y → (𝑛+1)-Cell B (Fₙ x) (Fₙ y). diff --git a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md index 2b5e069742..7ab4b658b9 100644 --- a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md @@ -12,9 +12,9 @@ module structured-types.large-lax-reflexive-globular-maps where open import foundation.function-types open import foundation.universe-levels -open import structured-types.lax-reflexive-globular-maps open import structured-types.large-globular-maps open import structured-types.large-reflexive-globular-types +open import structured-types.lax-reflexive-globular-maps open import structured-types.reflexive-globular-types ``` @@ -22,26 +22,41 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "large lax reflexive globular map" Agda=large-lax-reflexive-globular-map}} +A +{{#concept "large lax reflexive globular map" Agda=large-lax-reflexive-globular-map}} between two -[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and -`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped -with a family of 2-cells +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of 2-cells ```text (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at -`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [lax reflexive](structured-types.lax-reflexive-globular-maps.md). +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) +`f' : G' x y → H' (f₀ x) (f₀ y)` is +[lax reflexive](structured-types.lax-reflexive-globular-maps.md). ### Lack of composition for lax reflexive globular maps -Note that the large lax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. +Note that the large lax reflexive globular maps lack composition. For the +composition of `g` and `f` to exist, there should be a `2`-cell from +`g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` +preserves reflexivity with the action of `g` on the 2-cell that `f` preserves +reflexivity. However, since the reflexive globular type `G` is not assumed to be +[transitive](structured-types.transitive-globular-types.md), it might lack such +instances of the compositions. ### Lax versus colax -The notion of [large colax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. +The notion of +[large colax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) +is almost the same, except with the direction of the 2-cell reversed. In +general, the direction of lax coherence cells is determined by applying the +morphism componentwise first, and then the operations, while the direction of +colax coherence cells is determined by first applying the operations and then +the morphism. ## Definitions diff --git a/src/structured-types/large-lax-transitive-globular-maps.lagda.md b/src/structured-types/large-lax-transitive-globular-maps.lagda.md index 05ef7a78ab..8de23ad35e 100644 --- a/src/structured-types/large-lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-transitive-globular-maps.lagda.md @@ -22,21 +22,29 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "large lax transitive globular map" Agda=large-transitive-globular-map}} between -two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` -and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` -equipped with a family of 2-cells +A +{{#concept "large lax transitive globular map" Agda=large-transitive-globular-map}} +between two +[large transitive globular types](structured-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of 2-cells ```text H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax -transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again lax transitive. ### Lack of identity large lax transitive globular maps -Note that the large lax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the large transitive globular type `G` is not assumed to be [reflexive](structured-types.large-reflexive-globular-types.md), it might lack such instances of the reflexivity cells. +Note that the large lax transitive globular maps lack an identity morphism. For +an identity morphism to exist on a transitive globular type `G`, there should be +a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` +and `p`. However, since the large transitive globular type `G` is not assumed to +be [reflexive](structured-types.large-reflexive-globular-types.md), it might +lack such instances of the reflexivity cells. ## Definitions @@ -99,7 +107,8 @@ record 0-cell-Large-Transitive-Globular-Type G l1 → 0-cell-Large-Transitive-Globular-Type H (γ l1) 0-cell-large-lax-transitive-globular-map = - 0-cell-large-globular-map large-globular-map-large-lax-transitive-globular-map + 0-cell-large-globular-map + large-globular-map-large-lax-transitive-globular-map 1-cell-large-lax-transitive-globular-map : {l1 l2 : Level} diff --git a/src/structured-types/large-reflexive-globular-maps.lagda.md b/src/structured-types/large-reflexive-globular-maps.lagda.md index 54e22e2592..8df176bdc4 100644 --- a/src/structured-types/large-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-reflexive-globular-maps.lagda.md @@ -1,4 +1,4 @@ -# Reflexive globular maps +# Large reflexive globular maps ```agda {-# OPTIONS --guardedness #-} @@ -22,22 +22,30 @@ open import structured-types.reflexive-globular-types ## Idea -A {{#concept "large reflexive globular map" Agda=large-reflexive-globular-map}} between two -[large reflexive globular types](structured-types.large-reflexive-globular-types.md) `G` and -`H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` equipped -with a family of [identifications](foundation-core.identity-types.md) +A {{#concept "large reflexive globular map" Agda=large-reflexive-globular-map}} +between two +[large reflexive globular types](structured-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of +[identifications](foundation-core.identity-types.md) ```text (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at -`f₀ x`, such that the [globular map](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is [reflexive](structured-types.reflexive-globular-maps.md). - -Note: In some settings it may be preferred to work with large globular maps preserving -reflexivity cells up to a higher cell. The two notions of maps between reflexive -globular types preserving the reflexivity structure up to a higher cell are, depending of the direction of the coherence cells, the notions of -[large colax reflexive globular maps](structured-types.large-colax-reflexive-globular-maps.md) and [large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). +`f₀ x`, such that the [globular map](structured-types.globular-maps.md) +`f' : G' x y → H' (f₀ x) (f₀ y)` is +[reflexive](structured-types.reflexive-globular-maps.md). + +Note: In some settings it may be preferred to work with large globular maps +preserving reflexivity cells up to a higher cell. The two notions of maps +between reflexive globular types preserving the reflexivity structure up to a +higher cell are, depending of the direction of the coherence cells, the notions +of +[large colax reflexive globular maps](structured-types.large-colax-reflexive-globular-maps.md) +and +[large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). ## Definitions diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 2c15ff033c..36b25221d7 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -38,7 +38,7 @@ record (A : Large-Globular-Type α β) : UUω where - + field refl-1-cell-is-reflexive-Large-Globular-Type : is-reflexive-Large-Relation diff --git a/src/structured-types/large-transitive-globular-maps.lagda.md b/src/structured-types/large-transitive-globular-maps.lagda.md index 1c65848be2..af909f7b5e 100644 --- a/src/structured-types/large-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-transitive-globular-maps.lagda.md @@ -10,8 +10,8 @@ module structured-types.large-transitive-globular-maps where ```agda open import foundation.action-on-identifications-functions -open import foundation.identity-types open import foundation.function-types +open import foundation.identity-types open import foundation.universe-levels open import structured-types.large-globular-maps @@ -24,16 +24,21 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "large transitive globular map" Agda=large-transitive-globular-map}} between -two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` -and `H` is a [large globular map](structured-types.large-globular-maps.md) `f : G → H` -equipped with a family of [identifications](foundation-core.identity-types.md) +A +{{#concept "large transitive globular map" Agda=large-transitive-globular-map}} +between two +[large transitive globular types](structured-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](structured-types.large-globular-maps.md) +`f : G → H` equipped with a family of +[identifications](foundation-core.identity-types.md) ```text f₁ (q ∘G p) = f₁ q ∘H f₁ p ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again transitive. ## Definitions diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md index fe7fc39df7..837d6376b7 100644 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -30,24 +30,35 @@ with a family of 2-cells ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at -`f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again -lax reflexive. +`f₀ x`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax +reflexive. ### Lack of composition for lax reflexive globular maps -Note that the lax reflexive globular maps lack composition. For the composition of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to `refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity with the action of `g` on the 2-cell that `f` preserves reflexivity. However, since the reflexive globular type `G` is not assumed to be [transitive](structured-types.transitive-globular-types.md), it might lack such instances of the compositions. +Note that the lax reflexive globular maps lack composition. For the composition +of `g` and `f` to exist, there should be a `2`-cell from `g (f (refl G x))` to +`refl K (g (f x))`, we need to compose the 2-cell that `g` preserves reflexivity +with the action of `g` on the 2-cell that `f` preserves reflexivity. However, +since the reflexive globular type `G` is not assumed to be +[transitive](structured-types.transitive-globular-types.md), it might lack such +instances of the compositions. ### Lax reflexive globular maps versus the morphisms of presheaves on the reflexive globe category -When reflexive globular types are viewed as type-valued presheaves over -the reflexive globe category, the resulting notion of morphism is that of +When reflexive globular types are viewed as type-valued presheaves over the +reflexive globe category, the resulting notion of morphism is that of [reflexive globular maps](structured-types.reflexive-globular-maps.md), which is stricter than the notion of lax reflexive globular maps. ### Lax versus colax -The notion of [colax reflexive globular map](structured-types.colax-reflexive-globular-maps.md) is almost the same, except with the direction of the 2-cell reversed. In general, the direction of lax coherence cells is determined by applying the morphism componentwise first, and then the operations, while the direction of colax coherence cells is determined by first applying the operations and then the morphism. - +The notion of +[colax reflexive globular map](structured-types.colax-reflexive-globular-maps.md) +is almost the same, except with the direction of the 2-cell reversed. In +general, the direction of lax coherence cells is determined by applying the +morphism componentwise first, and then the operations, while the direction of +colax coherence cells is determined by first applying the operations and then +the morphism. ## Definitions diff --git a/src/structured-types/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md index 173057f299..eedb8d05f9 100644 --- a/src/structured-types/lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/lax-transitive-globular-maps.lagda.md @@ -19,8 +19,9 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "lax transitive globular map" Agda=transitive-globular-map}} between -two [transitive globular types](structured-types.transitive-globular-types.md) `G` +A {{#concept "lax transitive globular map" Agda=transitive-globular-map}} +between two +[transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped with a family of 2-cells @@ -28,12 +29,18 @@ equipped with a family of 2-cells H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again lax -transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again lax transitive. ### Lack of identity lax transitive globular maps -Note that the lax transitive globular maps lack an identity morphism. For an identity morphism to exist on a transitive globular type `G`, there should be a `2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` and `p`. However, since the transitive globular type `G` is not assumed to be [reflexive](structured-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. +Note that the lax transitive globular maps lack an identity morphism. For an +identity morphism to exist on a transitive globular type `G`, there should be a +`2`-cell from `q ∘G p` to `q ∘G p` for every composable pair of `1`-cells `q` +and `p`. However, since the transitive globular type `G` is not assumed to be +[reflexive](structured-types.reflexive-globular-types.md), it might lack such +instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/pullbacks-dependent-globular-types.lagda.md b/src/structured-types/pullbacks-dependent-globular-types.lagda.md index 5401541def..f84d981f62 100644 --- a/src/structured-types/pullbacks-dependent-globular-types.lagda.md +++ b/src/structured-types/pullbacks-dependent-globular-types.lagda.md @@ -20,7 +20,12 @@ open import structured-types.globular-types ## Idea -Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over `G`, and consider a [globular map](structured-types.globular-maps.md) `f : K → G`. The {{#concept "pullback" Disambiguation="dependent globular types" agda=pullback-Dependent-Globular-Type}} of `H` along `f` is the dependent globular type `f*H` given by +Consider a +[dependent globular type](structured-types.dependent-globular-types.md) `H` over +`G`, and consider a [globular map](structured-types.globular-maps.md) +`f : K → G`. The +{{#concept "pullback" Disambiguation="dependent globular types" agda=pullback-Dependent-Globular-Type}} +of `H` along `f` is the dependent globular type `f*H` given by ```text (f*H)₀ x := H₀ (f₀ x) diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index c8e399841d..d18bbd900a 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -35,8 +35,11 @@ reflexive. Note: In some settings it may be preferred to work with globular maps preserving reflexivity cells up to a higher cell. The two notions of maps between reflexive -globular types preserving the reflexivity structure up to a higher cell are, depending of the direction of the coherence cells, the notions of -[colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) and [lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). +globular types preserving the reflexivity structure up to a higher cell are, +depending of the direction of the coherence cells, the notions of +[colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) +and +[lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). ## Definitions diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 34b374727c..c1238b0e40 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -345,4 +345,6 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type - [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) - [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) - [Reflexive globular maps](structured-tyeps.reflexive-globular-maps.md) -- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both reflexive and [transitive](structured-types.transitive-globular-types.md). +- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) + are globular types that are both reflexive and + [transitive](structured-types.transitive-globular-types.md). diff --git a/src/structured-types/sections-dependent-globular-types.lagda.md b/src/structured-types/sections-dependent-globular-types.lagda.md index e05444819c..cc2c6c7594 100644 --- a/src/structured-types/sections-dependent-globular-types.lagda.md +++ b/src/structured-types/sections-dependent-globular-types.lagda.md @@ -19,7 +19,11 @@ open import structured-types.globular-types ## Idea -Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over a [globular type](structured-types.globular-types.md) `G`. A {{#concept "section" Disambiguation="dependent globular type" Agda=section-Dependent-Globular-Type}} `f` of `H` consists of +Consider a +[dependent globular type](structured-types.dependent-globular-types.md) `H` over +a [globular type](structured-types.globular-types.md) `G`. A +{{#concept "section" Disambiguation="dependent globular type" Agda=section-Dependent-Globular-Type}} +`f` of `H` consists of ```text s₀ : (x : G₀) → H₀ x @@ -49,7 +53,7 @@ record ( 1-cell-dependent-globular-type-Dependent-Globular-Type H ( 0-cell-section-Dependent-Globular-Type x) ( 0-cell-section-Dependent-Globular-Type x')) - + open section-Dependent-Globular-Type public module _ diff --git a/src/structured-types/transitive-globular-maps.lagda.md b/src/structured-types/transitive-globular-maps.lagda.md index 616db187ba..51e58a3cc5 100644 --- a/src/structured-types/transitive-globular-maps.lagda.md +++ b/src/structured-types/transitive-globular-maps.lagda.md @@ -22,16 +22,17 @@ open import structured-types.transitive-globular-types ## Idea A {{#concept "transitive globular map" Agda=transitive-globular-map}} between -two [transitive globular types](structured-types.transitive-globular-types.md) `G` -and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` +two [transitive globular types](structured-types.transitive-globular-types.md) +`G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` equipped with a family of [identifications](foundation-core.identifications.md) ```text f₁ (q ∘G p) = f₁ q ∘H f₁ p ``` -from the image of the composite of two 1-cells `q` and `p` in `G` to the composite of `f₁ q` and `f₁ p` in `H`, such that the globular map `f' : G' x y → H' (f₀ x) (f₀ y)` is again -transitive. +from the image of the composite of two 1-cells `q` and `p` in `G` to the +composite of `f₁ q` and `f₁ p` in `H`, such that the globular map +`f' : G' x y → H' (f₀ x) (f₀ y)` is again transitive. ## Definitions @@ -141,7 +142,7 @@ record (q : 1-cell-Transitive-Globular-Type G y z) (p : 1-cell-Transitive-Globular-Type G x y) → 1-cell-transitive-globular-map - ( comp-1-cell-Transitive-Globular-Type G q p) = + ( comp-1-cell-Transitive-Globular-Type G q p) = comp-1-cell-Transitive-Globular-Type H ( 1-cell-transitive-globular-map q) ( 1-cell-transitive-globular-map p) diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 9764f430dd..1a4df2b3f6 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -228,7 +228,7 @@ is-transitive-globular-structure : {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) → UU (l1 ⊔ l2) is-transitive-globular-structure G = is-transitive-Globular-Type (make-Globular-Type G) - + module _ {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} (t : is-transitive-globular-structure G) @@ -354,4 +354,6 @@ transitive-globular-structure-Id A = ## See also - [Composition structure on globular types](structured-types.composition-structure-globular-types.md) -- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both [reflexive](structured-types.reflexive-globular-types.md) and transitive. +- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) + are globular types that are both + [reflexive](structured-types.reflexive-globular-types.md) and transitive. diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 52f79b42be..9aa6f628a5 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -93,7 +93,10 @@ is-reflexive-uniform-pointed-Π-Globular-Type : is-reflexive-1-cell-is-reflexive-Globular-Type ( is-reflexive-uniform-pointed-Π-Globular-Type A B) = refl-uniform-pointed-htpy -is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type (is-reflexive-uniform-pointed-Π-Globular-Type A B) {f} {g} = +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( is-reflexive-uniform-pointed-Π-Globular-Type A B) + { f} + { g} = is-reflexive-uniform-pointed-Π-Globular-Type A (eq-value-Pointed-Fam f g) is-reflexive-uniform-pointed-map-Globular-Type : diff --git a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md index d21e036b1e..e55282da42 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-large-wild-higher-precategories.lagda.md @@ -14,11 +14,11 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels +open import structured-types.globular-maps +open import structured-types.globular-types open import structured-types.large-colax-reflexive-globular-maps open import structured-types.large-colax-transitive-globular-maps open import structured-types.large-globular-maps -open import structured-types.globular-maps -open import structured-types.globular-types open import wild-category-theory.colax-functors-noncoherent-wild-higher-precategories open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories @@ -89,7 +89,7 @@ preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 ℬ 𝒜) ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory ℬ) - ( F) + ( F) ``` ### The predicate of being a colax functor between noncoherent wild higher precategories @@ -183,11 +183,14 @@ record is-colax-functor-Noncoherent-Wild-Higher-Precategory ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) ( 1-cell-globular-map-large-globular-map F) - is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = + is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = + is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory open is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory public @@ -273,7 +276,7 @@ record map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory colax-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : large-colax-reflexive-globular-map δ @@ -305,8 +308,10 @@ record {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) ( 1-cell-globular-map-large-globular-map map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) preserves-id-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = @@ -359,8 +364,10 @@ record {x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1} {y : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l2} → preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory 𝒜 x y) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 x y) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) ( 1-cell-globular-map-large-globular-map map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) preserves-comp-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = @@ -391,7 +398,7 @@ record is-transitive-is-colax-functor-Noncoherent-Wild-Higher-Precategory is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = preserves-comp-structure-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - + hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : {l1 l2 : Level} (x : obj-Noncoherent-Large-Wild-Higher-Precategory 𝒜 l1) @@ -406,10 +413,12 @@ record ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x) ( obj-colax-functor-Noncoherent-Large-Wild-Higher-Precategory y)) pr1 - ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x y) = + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + x y) = hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory pr2 - ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x y) = + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + x y) = is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public @@ -435,7 +444,8 @@ module _ preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒜 ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) preserves-comp-1-cell-is-colax-transitive-large-globular-map - preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory g f = + preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + g f = id-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒜 _ is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = @@ -446,9 +456,11 @@ module _ is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒜 ( id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜) - preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = preserves-id-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precatory - preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = preserves-comp-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : @@ -484,9 +496,10 @@ module _ preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 - map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory preserves-refl-1-cell-is-colax-reflexive-large-globular-map - preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x = + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + x = comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ( G) @@ -495,22 +508,23 @@ module _ ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ( F) ( _))) - is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - 𝒜 _ _) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - ℬ _ _) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory - 𝒞 _ _) - ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - G _ _) - ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - F _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒜 _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Large-Wild-Higher-Precategory + 𝒞 _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + G _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + F _ _) preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 - map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = is-colax-transitive-comp-large-colax-transitive-globular-map ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory @@ -527,9 +541,11 @@ module _ is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory : is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory 𝒜 𝒞 map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = + preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = + preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = preserves-comp-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory comp-colax-functor-Noncoherent-Large-Wild-Precategory : diff --git a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md index 48219b2d2b..4a76d12e3e 100644 --- a/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/colax-functors-noncoherent-wild-higher-precategories.lagda.md @@ -33,9 +33,11 @@ A `F` between [noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) `𝒜` and `ℬ` is a -[map of noncoherent wild higher precategories](wild-category-theory.maps-noncoherent-wild-higher-precategories.md) which is [colax reflexive](structured-types.colax-reflexive-globular-maps.md) and [colax transitive](structured-types.colax-transitive-globular-maps.md). This means that for -every $n$-morphism `f` in `𝒜`, where we take $0$-morphisms to be objects, there -is an $(n+1)$-morphism +[map of noncoherent wild higher precategories](wild-category-theory.maps-noncoherent-wild-higher-precategories.md) +which is [colax reflexive](structured-types.colax-reflexive-globular-maps.md) +and [colax transitive](structured-types.colax-transitive-globular-maps.md). This +means that for every $n$-morphism `f` in `𝒜`, where we take $0$-morphisms to be +objects, there is an $(n+1)$-morphism ```text Fₙ₊₁ (id-hom 𝒜 f) ⇒ id-hom ℬ (Fₙ f) @@ -61,7 +63,7 @@ module _ (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where - + preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory : UU (l1 ⊔ l2 ⊔ l4) preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory = @@ -101,7 +103,7 @@ record (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) : UU (l1 ⊔ l2 ⊔ l4) where coinductive - + field is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory : preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ F @@ -270,7 +272,7 @@ module _ colax-reflexive-globular-map.is-colax-reflexive-colax-reflexive-globular-map colax-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory - is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory + is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` - Preservation by colax functors of composition @@ -303,7 +305,8 @@ module _ is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` -- The induced colax functor on the wild category of morphisms between two objects +- The induced colax functor on the wild category of morphisms between two + objects ```agda hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory : @@ -407,24 +410,27 @@ preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) preserves-refl-1-cell-is-colax-reflexive-globular-map - ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) x = + ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜 ℬ 𝒞 G F) + x = comp-2-hom-Noncoherent-Wild-Higher-Precategory 𝒞 ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G _) ( 2-hom-colax-functor-Noncoherent-Wild-Higher-Precategory G ( preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory F _)) is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map - ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) = - preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜 ℬ 𝒞 G F) = + preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory 𝒜 _ _) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - ℬ _ _) - ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory - 𝒞 _ _) - ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory - G _ _) - ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory - F _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + ℬ _ _) + ( hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory + 𝒞 _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory + G _ _) + ( hom-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory + F _ _) module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -434,7 +440,7 @@ module _ (G : colax-functor-Noncoherent-Wild-Higher-Precategory ℬ 𝒞) (F : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where - + preserves-comp-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 ( map-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) @@ -445,7 +451,8 @@ module _ ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒞) ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory G) - ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory F) + ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory + F) is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 diff --git a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md index c1a1ada98d..06d482bef1 100644 --- a/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-large-wild-higher-precategories.lagda.md @@ -16,8 +16,8 @@ open import foundation.universe-levels open import structured-types.globular-maps open import structured-types.globular-types -open import structured-types.large-globular-types open import structured-types.large-globular-maps +open import structured-types.large-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-large-wild-higher-precategories diff --git a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md index 05b54e1acb..9a5a76e199 100644 --- a/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/maps-noncoherent-wild-higher-precategories.lagda.md @@ -28,8 +28,11 @@ A {{#concept "map" Disambiguation="between noncoherent wild higher precategories" Agda=map-Noncoherent-Wild-Higher-Precategory}} `f` between [noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) -`𝒜` and `ℬ` is a [globular map](structured-types.globular-maps.md) between their underlying [globular types](structured-types.globular-types.md). More specifically, a map `F` between noncoherent wild higher precategories consists of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every -pair of $n$-morphisms `f` and `g`, a map of $(n+1)$-morphisms +`𝒜` and `ℬ` is a [globular map](structured-types.globular-maps.md) between their +underlying [globular types](structured-types.globular-types.md). More +specifically, a map `F` between noncoherent wild higher precategories consists +of a map on objects `F₀ : obj 𝒜 → obj ℬ`, and for every pair of $n$-morphisms +`f` and `g`, a map of $(n+1)$-morphisms ```text Fₙ₊₁ : (𝑛+1)-hom 𝒞 f g → (𝑛+1)-hom 𝒟 (Fₙ f) (Fₙ g). @@ -62,7 +65,7 @@ module _ (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) where - + obj-map-Noncoherent-Wild-Higher-Precategory : obj-Noncoherent-Wild-Higher-Precategory 𝒜 → obj-Noncoherent-Wild-Higher-Precategory ℬ @@ -111,7 +114,8 @@ module _ ( ℬ) ( obj-map-Noncoherent-Wild-Higher-Precategory x) ( obj-map-Noncoherent-Wild-Higher-Precategory y)) - hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory x y = + hom-noncoherent-wild-higher-precategory-map-Noncoherent-Wild-Higher-Precategory + x y = 1-cell-globular-map-globular-map F ``` diff --git a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md index ba16301485..6fbd453f3a 100644 --- a/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-large-wild-higher-precategories.lagda.md @@ -338,7 +338,8 @@ record ( comp-structure-hom-globular-type-Noncoherent-Large-Wild-Higher-Precategory) ``` -- The underlying reflexive globular type of a noncoherent large wild higher precategory +- The underlying reflexive globular type of a noncoherent large wild higher + precategory ```agda large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory : @@ -351,7 +352,8 @@ record id-structure-Noncoherent-Large-Wild-Higher-Precategory ``` -- The underlying transitive globular type of a noncoherent large wild higher precategory +- The underlying transitive globular type of a noncoherent large wild higher + precategory ```agda large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory : From d019b03a3e75e1c12ec740c23489cf70656c3aed Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 20 Oct 2024 22:09:03 -0400 Subject: [PATCH 25/42] fix concept macros --- src/graph-theory/dependent-directed-graphs.lagda.md | 2 +- src/graph-theory/dependent-reflexive-graphs.lagda.md | 2 +- src/graph-theory/directed-graph-duality.lagda.md | 2 +- .../equivalences-dependent-directed-graphs.lagda.md | 2 +- src/structured-types/colax-transitive-globular-maps.lagda.md | 2 +- .../large-colax-transitive-globular-maps.lagda.md | 2 +- .../large-lax-transitive-globular-maps.lagda.md | 2 +- src/structured-types/large-reflexive-globular-types.lagda.md | 2 +- src/structured-types/lax-transitive-globular-maps.lagda.md | 2 +- src/structured-types/wild-category-of-pointed-types.lagda.md | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md index a3b5206c41..0a15f70540 100644 --- a/src/graph-theory/dependent-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -18,7 +18,7 @@ open import graph-theory.directed-graphs ## Idea Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A -{{#concept "dependent directed graph}} `B` over `A` consists of: +{{#concept "dependent directed graph" Agda=Dependent-Directed-Graph}} `B` over `A` consists of: - A family `B₀ : A₀ → 𝒰` of vertices - A family `B₁ : (x y : A₀) → A₁ x y → B₀ x → B₀ y → 𝒰` of diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 90228f82ac..d8b1d2f565 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -18,7 +18,7 @@ open import graph-theory.reflexive-graphs ## Idea Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A -{{#concept "dependent reflexive graph}} `B` over `A` consists of: +{{#concept "dependent reflexive graph" Agda=Dependent-Reflexive-Graph}} `B` over `A` consists of: - A family `B₀ : A₀ → 𝒰` of types as the type family of vertices - A family `B₁ : {x y : A₀} → A₁ x y → B₀ x → B₀ y → 𝒰` of diff --git a/src/graph-theory/directed-graph-duality.lagda.md b/src/graph-theory/directed-graph-duality.lagda.md index 47b01de7e7..eb550aa74e 100644 --- a/src/graph-theory/directed-graph-duality.lagda.md +++ b/src/graph-theory/directed-graph-duality.lagda.md @@ -30,7 +30,7 @@ open import graph-theory.morphisms-directed-graphs ## Idea -{{#concept "Directed graph duality}} is an +{{#concept "Directed graph duality" Agda=duality-Directed-Graph}} is an [equivalence](foundation-core.equivalences.md) between [dependent directed graphs](graph-theory.dependent-directed-graphs.md) over a [directed graph](graph-theory.directed-graphs.md) `G` and diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md index 1055edfc4f..5d1bc6c629 100644 --- a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -30,7 +30,7 @@ open import graph-theory.directed-graphs Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and `K` over a [directed graph](graph-theory.directed-graphs.md) `G`. A -{{#concept "equivalence of dependent directed graphs" Agda=hom-Dependent-Directed-Graph}} +{{#concept "equivalence of dependent directed graphs" Agda=equiv-Dependent-Directed-Graph}} from `H` to `K` consists of a [family of equivalences](foundation.families-of-equivalences.md) diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md index 5f3ee0c99e..29410269d9 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -19,7 +19,7 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "colax transitive globular map" Agda=transitive-globular-map}} +A {{#concept "colax transitive globular map" Agda=colax-transitive-globular-map}} between two [transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` diff --git a/src/structured-types/large-colax-transitive-globular-maps.lagda.md b/src/structured-types/large-colax-transitive-globular-maps.lagda.md index b93d7ded85..5f9b666ed1 100644 --- a/src/structured-types/large-colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-transitive-globular-maps.lagda.md @@ -23,7 +23,7 @@ open import structured-types.transitive-globular-types ## Idea A -{{#concept "large colax transitive globular map" Agda=large-transitive-globular-map}} +{{#concept "large colax transitive globular map" Agda=large-colax-transitive-globular-map}} between two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` and `H` is a [large globular map](structured-types.large-globular-maps.md) diff --git a/src/structured-types/large-lax-transitive-globular-maps.lagda.md b/src/structured-types/large-lax-transitive-globular-maps.lagda.md index 8de23ad35e..103002d0d7 100644 --- a/src/structured-types/large-lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-transitive-globular-maps.lagda.md @@ -23,7 +23,7 @@ open import structured-types.transitive-globular-types ## Idea A -{{#concept "large lax transitive globular map" Agda=large-transitive-globular-map}} +{{#concept "large lax transitive globular map" Agda=large-lax-transitive-globular-map}} between two [large transitive globular types](structured-types.large-transitive-globular-types.md) `G` and `H` is a [large globular map](structured-types.large-globular-maps.md) diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 36b25221d7..4f7259013c 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -24,7 +24,7 @@ open import structured-types.reflexive-globular-types ## Idea A [large globular type](structured-types.large-globular-types.md) is -{{#concept "reflexive" Disambiguation="large globular type" Agda=is-reflexive-large-globular-structure}} +{{#concept "reflexive" Disambiguation="large globular type" Agda=is-reflexive-Large-Globular-Type}} if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definition diff --git a/src/structured-types/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md index eedb8d05f9..6a4341e5d1 100644 --- a/src/structured-types/lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/lax-transitive-globular-maps.lagda.md @@ -19,7 +19,7 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "lax transitive globular map" Agda=transitive-globular-map}} +A {{#concept "lax transitive globular map" Agda=lax-transitive-globular-map}} between two [transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` diff --git a/src/structured-types/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index 9aa6f628a5..e0457a6a59 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -39,7 +39,7 @@ open import wild-category-theory.noncoherent-wild-higher-precategories ## Idea The -{{#concept "wild category of pointed types" Agda=uniform-Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory Agda=Pointed-Type-Noncoherent-Large-Wild-Higher-Precategory}} +{{#concept "wild category of pointed types" Agda=uniform-pointed-type-Noncoherent-Large-Wild-Higher-Precategory Agda=pointed-type-Noncoherent-Large-Wild-Higher-Precategory}} consists of [pointed types](structured-types.pointed-types.md), [pointed functions](structured-types.pointed-maps.md), and [pointed homotopies](structured-types.pointed-homotopies.md). From 66679f5659d342326163eee3708f1cc366777ddb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 20 Oct 2024 22:13:14 -0400 Subject: [PATCH 26/42] make pre-commit --- src/graph-theory/dependent-directed-graphs.lagda.md | 3 ++- src/graph-theory/dependent-reflexive-graphs.lagda.md | 3 ++- src/structured-types/colax-transitive-globular-maps.lagda.md | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md index 0a15f70540..532ab9b0f8 100644 --- a/src/graph-theory/dependent-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -18,7 +18,8 @@ open import graph-theory.directed-graphs ## Idea Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A -{{#concept "dependent directed graph" Agda=Dependent-Directed-Graph}} `B` over `A` consists of: +{{#concept "dependent directed graph" Agda=Dependent-Directed-Graph}} `B` over +`A` consists of: - A family `B₀ : A₀ → 𝒰` of vertices - A family `B₁ : (x y : A₀) → A₁ x y → B₀ x → B₀ y → 𝒰` of diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index d8b1d2f565..7372c9e233 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -18,7 +18,8 @@ open import graph-theory.reflexive-graphs ## Idea Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A -{{#concept "dependent reflexive graph" Agda=Dependent-Reflexive-Graph}} `B` over `A` consists of: +{{#concept "dependent reflexive graph" Agda=Dependent-Reflexive-Graph}} `B` over +`A` consists of: - A family `B₀ : A₀ → 𝒰` of types as the type family of vertices - A family `B₁ : {x y : A₀} → A₁ x y → B₀ x → B₀ y → 𝒰` of diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md index 29410269d9..b48bc0daa2 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -19,7 +19,8 @@ open import structured-types.transitive-globular-types ## Idea -A {{#concept "colax transitive globular map" Agda=colax-transitive-globular-map}} +A +{{#concept "colax transitive globular map" Agda=colax-transitive-globular-map}} between two [transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` From f340e8158923083fd98ffe662f499a3e9267aa90 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 10:00:32 -0400 Subject: [PATCH 27/42] reflexive graphs --- .../dependent-coproducts-directed-graphs.lagda.md | 2 +- .../dependent-products-directed-graphs.lagda.md | 2 +- src/graph-theory/discrete-graphs.lagda.md | 2 +- src/graph-theory/reflexive-graphs.lagda.md | 15 ++++++++------- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md index 5833dbd7a3..988734b5c4 100644 --- a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md @@ -116,4 +116,4 @@ module _ ## See also -- [Dependent product directed graphs](graph-theory.dependent-product-directed-graphs.md) +- [Dependent product directed graphs](graph-theory.dependent-products-directed-graphs.md) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index 328397225b..72cb04341d 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -263,4 +263,4 @@ module _ ## See also -- [Dependent coproduct directed graphs](graph-theory.dependent-coproduct-directed-graphs.md) +- [Dependent coproduct directed graphs](graph-theory.dependent-coproducts-directed-graphs.md) diff --git a/src/graph-theory/discrete-graphs.lagda.md b/src/graph-theory/discrete-graphs.lagda.md index 4e5a0b8a2a..2dddd57dcf 100644 --- a/src/graph-theory/discrete-graphs.lagda.md +++ b/src/graph-theory/discrete-graphs.lagda.md @@ -66,7 +66,7 @@ module _ is-discrete-prop-Reflexive-Graph : Prop (l1 ⊔ l2) is-discrete-prop-Reflexive-Graph = - is-discrete-prop-Graph (graph-Reflexive-Graph G) + is-discrete-prop-Graph (directed-graph-Reflexive-Graph G) is-discrete-Reflexive-Graph : UU (l1 ⊔ l2) is-discrete-Reflexive-Graph = diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index bc9c5c1679..f824d3e71e 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -26,23 +26,24 @@ A {{#concept "reflexive graph" Agda=Reflexive-Graph}} is a ```agda Reflexive-Graph : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) Reflexive-Graph l1 l2 = - Σ (UU l1) (λ V → Σ (V → V → UU l2) (λ E → (v : V) → E v v)) + Σ ( Directed-Graph l1 l2) + ( λ G → (x : vertex-Directed-Graph G) → edge-Directed-Graph G x x) module _ {l1 l2 : Level} (G : Reflexive-Graph l1 l2) where + directed-graph-Reflexive-Graph : Directed-Graph l1 l2 + directed-graph-Reflexive-Graph = pr1 G + vertex-Reflexive-Graph : UU l1 - vertex-Reflexive-Graph = pr1 G + vertex-Reflexive-Graph = vertex-Directed-Graph directed-graph-Reflexive-Graph edge-Reflexive-Graph : vertex-Reflexive-Graph → vertex-Reflexive-Graph → UU l2 - edge-Reflexive-Graph = pr1 (pr2 G) + edge-Reflexive-Graph = edge-Directed-Graph directed-graph-Reflexive-Graph refl-Reflexive-Graph : (x : vertex-Reflexive-Graph) → edge-Reflexive-Graph x x - refl-Reflexive-Graph = pr2 (pr2 G) - - graph-Reflexive-Graph : Directed-Graph l1 l2 - graph-Reflexive-Graph = vertex-Reflexive-Graph , edge-Reflexive-Graph + refl-Reflexive-Graph = pr2 G ``` ## See also From 5236141d1cde1360025e17954fce5e59f20783be Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 10:00:36 -0400 Subject: [PATCH 28/42] reflexive graphs --- .../morphisms-reflexive-graphs.lagda.md | 156 ++++++++++++++++++ .../terminal-reflexive-graphs.lagda.md | 102 ++++++++++++ 2 files changed, 258 insertions(+) create mode 100644 src/graph-theory/morphisms-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/terminal-reflexive-graphs.lagda.md diff --git a/src/graph-theory/morphisms-reflexive-graphs.lagda.md b/src/graph-theory/morphisms-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..017836fded --- /dev/null +++ b/src/graph-theory/morphisms-reflexive-graphs.lagda.md @@ -0,0 +1,156 @@ +# Morphisms of reflexive graphs + +```agda +module graph-theory.morphisms-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.binary-transport +open import foundation.commuting-squares-of-identifications +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.function-types +open import foundation.functoriality-dependent-pair-types +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopies +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.universe-levels + +open import graph-theory.morphisms-directed-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +A {{#concept "morphism of reflexive graphs" Agda=hom-Reflexive-Graph}} from `G` to `H` consists of a map `f₀ : G₀ → H₀` from the +vertices of `G` to the vertices of `H`, a family of maps `f₁` from the edges +`G₁ x y` in `G` to the edges `H₁ (f₀ x) (f₀ y)` in `H`, equipped with an [identification](foundation-core.identity-types.md) + +```text + fᵣ : f₁ (Gᵣ x) = Hᵣ (f₀ x) +``` + +from the image of the reflexivity edge `Gᵣ x` to the reflexivity edge at `f₀ x` in `H`. + +## Definitions + +### Morphisms of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + where + + hom-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + hom-Reflexive-Graph = + Σ ( hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H)) + ( λ (f₀ , f₁) → + (x : vertex-Reflexive-Graph G) → + f₁ x x (refl-Reflexive-Graph G x) = refl-Reflexive-Graph H (f₀ x)) + + module _ + (f : hom-Reflexive-Graph) + where + + hom-directed-graph-hom-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + hom-directed-graph-hom-Reflexive-Graph = pr1 f + + vertex-hom-Reflexive-Graph : + vertex-Reflexive-Graph G → vertex-Reflexive-Graph H + vertex-hom-Reflexive-Graph = + vertex-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph) + + edge-hom-Reflexive-Graph : + {x y : vertex-Reflexive-Graph G} (e : edge-Reflexive-Graph G x y) → + edge-Reflexive-Graph H + ( vertex-hom-Reflexive-Graph x) + ( vertex-hom-Reflexive-Graph y) + edge-hom-Reflexive-Graph = + edge-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph) + + refl-hom-Reflexive-Graph : + (x : vertex-Reflexive-Graph G) → + edge-hom-Reflexive-Graph (refl-Reflexive-Graph G x) = + refl-Reflexive-Graph H (vertex-hom-Reflexive-Graph x) + refl-hom-Reflexive-Graph = pr2 f +``` + +### Composition of morphisms graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (K : Reflexive-Graph l5 l6) + (g : hom-Reflexive-Graph H K) (f : hom-Reflexive-Graph G H) + where + + vertex-comp-hom-Reflexive-Graph : + vertex-Reflexive-Graph G → vertex-Reflexive-Graph K + vertex-comp-hom-Reflexive-Graph = + (vertex-hom-Reflexive-Graph H K g) ∘ (vertex-hom-Reflexive-Graph G H f) + + edge-comp-hom-Reflexive-Graph : + {x y : vertex-Reflexive-Graph G} → + edge-Reflexive-Graph G x y → + edge-Reflexive-Graph K + ( vertex-comp-hom-Reflexive-Graph x) + ( vertex-comp-hom-Reflexive-Graph y) + edge-comp-hom-Reflexive-Graph e = + edge-hom-Reflexive-Graph H K g (edge-hom-Reflexive-Graph G H f e) + + hom-directed-graph-comp-hom-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph K) + pr1 hom-directed-graph-comp-hom-Reflexive-Graph = + vertex-comp-hom-Reflexive-Graph + pr2 hom-directed-graph-comp-hom-Reflexive-Graph _ _ = + edge-comp-hom-Reflexive-Graph + + refl-comp-hom-Reflexive-Graph : + (x : vertex-Reflexive-Graph G) → + edge-comp-hom-Reflexive-Graph (refl-Reflexive-Graph G x) = + refl-Reflexive-Graph K (vertex-comp-hom-Reflexive-Graph x) + refl-comp-hom-Reflexive-Graph x = + ( ap (edge-hom-Reflexive-Graph H K g) (refl-hom-Reflexive-Graph G H f _)) ∙ + ( refl-hom-Reflexive-Graph H K g _) + + comp-hom-Reflexive-Graph : + hom-Reflexive-Graph G K + pr1 comp-hom-Reflexive-Graph = hom-directed-graph-comp-hom-Reflexive-Graph + pr2 comp-hom-Reflexive-Graph = refl-comp-hom-Reflexive-Graph +``` + +### Identity morphisms graphs + +```agda +module _ + {l1 l2 : Level} (G : Reflexive-Graph l1 l2) + where + + id-hom-Reflexive-Graph : hom-Reflexive-Graph G G + pr1 id-hom-Reflexive-Graph = id-hom-Directed-Graph _ + pr2 id-hom-Reflexive-Graph _ = refl +``` diff --git a/src/graph-theory/terminal-reflexive-graphs.lagda.md b/src/graph-theory/terminal-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..31ff8ae60a --- /dev/null +++ b/src/graph-theory/terminal-reflexive-graphs.lagda.md @@ -0,0 +1,102 @@ +# Terminal reflexive graphs + +```agda +module graph-theory.terminal-reflexive-graphs where +``` + +
Idea + +```agda +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.propositions +open import foundation.unit-type +open import foundation.universe-levels + +open import graph-theory.directed-graphs +open import graph-theory.reflexive-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.terminal-directed-graphs +``` + +
+ +## Idea + +The {{#concept "terminal reflexive graph"}} is a +[reflexive graph](graph-theory.reflexive-graphs.md) `1` such that the type of +[graph homomorphisms](graph-theory.morphisms-reflexive-graphs.md) `hom A 1` is +[contractible](foundation-core.contractible-types.md) for any reflexive graph +`A`. + +Concretely, the terminal reflexive graph `1` is defined by + +```text + 1₀ := 1 + 1₁ x y := 1. +``` + +## Definitions + +### The predicate of being a terminal reflexive graph + +The (small) predicate of being a terminal reflexive graph asserts that the type +of vertices and all types of edges are contractible. + +```agda +module _ + {l1 l2 : Level} (A : Reflexive-Graph l1 l2) + where + + is-terminal-prop-Reflexive-Graph : Prop (l1 ⊔ l2) + is-terminal-prop-Reflexive-Graph = + product-Prop + ( is-contr-Prop (vertex-Reflexive-Graph A)) + ( Π-Prop + ( vertex-Reflexive-Graph A) + ( λ x → + Π-Prop + ( vertex-Reflexive-Graph A) + ( λ y → is-contr-Prop (edge-Reflexive-Graph A x y)))) + + is-terminal-Reflexive-Graph : UU (l1 ⊔ l2) + is-terminal-Reflexive-Graph = type-Prop is-terminal-prop-Reflexive-Graph + + is-prop-is-terminal-Reflexive-Graph : + is-prop is-terminal-Reflexive-Graph + is-prop-is-terminal-Reflexive-Graph = + is-prop-type-Prop is-terminal-prop-Reflexive-Graph +``` + +### The universal property of being a terminal reflexive graph + +```agda +module _ + {l1 l2 : Level} (A : Reflexive-Graph l1 l2) + where + + universal-property-terminal-Reflexive-Graph : UUω + universal-property-terminal-Reflexive-Graph = + {l3 l4 : Level} (X : Reflexive-Graph l3 l4) → + is-contr (hom-Reflexive-Graph X A) +``` + +### The terminal reflexive graph + +```agda +directed-graph-terminal-Reflexive-Graph : Directed-Graph lzero lzero +directed-graph-terminal-Reflexive-Graph = terminal-Directed-Graph + +vertex-terminal-Reflexive-Graph : UU lzero +vertex-terminal-Reflexive-Graph = + vertex-Directed-Graph directed-graph-terminal-Reflexive-Graph + +edge-terminal-Reflexive-Graph : + (x y : vertex-terminal-Reflexive-Graph) → UU lzero +edge-terminal-Reflexive-Graph = + edge-Directed-Graph directed-graph-terminal-Reflexive-Graph + +terminal-Reflexive-Graph : Reflexive-Graph lzero lzero +pr1 terminal-Reflexive-Graph = terminal-Directed-Graph +pr2 terminal-Reflexive-Graph _ = star +``` From 0773c074dd6efcb3d57ace0159e64bcda6080d50 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 10:07:55 -0400 Subject: [PATCH 29/42] make pre-commit --- src/graph-theory.lagda.md | 2 ++ src/graph-theory/morphisms-reflexive-graphs.lagda.md | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index afbdec9b96..76ea9d9b64 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -46,6 +46,7 @@ open import graph-theory.matchings public open import graph-theory.mere-equivalences-undirected-graphs public open import graph-theory.morphisms-dependent-directed-graphs public open import graph-theory.morphisms-directed-graphs public +open import graph-theory.morphisms-reflexive-graphs public open import graph-theory.morphisms-undirected-graphs public open import graph-theory.neighbors-undirected-graphs public open import graph-theory.orientations-undirected-graphs public @@ -60,6 +61,7 @@ open import graph-theory.sections-dependent-directed-graphs public open import graph-theory.simple-undirected-graphs public open import graph-theory.stereoisomerism-enriched-undirected-graphs public open import graph-theory.terminal-directed-graphs public +open import graph-theory.terminal-reflexive-graphs public open import graph-theory.totally-faithful-morphisms-undirected-graphs public open import graph-theory.trails-directed-graphs public open import graph-theory.trails-undirected-graphs public diff --git a/src/graph-theory/morphisms-reflexive-graphs.lagda.md b/src/graph-theory/morphisms-reflexive-graphs.lagda.md index 017836fded..8f63a0e3e2 100644 --- a/src/graph-theory/morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/morphisms-reflexive-graphs.lagda.md @@ -31,15 +31,18 @@ open import graph-theory.reflexive-graphs ## Idea -A {{#concept "morphism of reflexive graphs" Agda=hom-Reflexive-Graph}} from `G` to `H` consists of a map `f₀ : G₀ → H₀` from the -vertices of `G` to the vertices of `H`, a family of maps `f₁` from the edges -`G₁ x y` in `G` to the edges `H₁ (f₀ x) (f₀ y)` in `H`, equipped with an [identification](foundation-core.identity-types.md) +A {{#concept "morphism of reflexive graphs" Agda=hom-Reflexive-Graph}} from `G` +to `H` consists of a map `f₀ : G₀ → H₀` from the vertices of `G` to the vertices +of `H`, a family of maps `f₁` from the edges `G₁ x y` in `G` to the edges +`H₁ (f₀ x) (f₀ y)` in `H`, equipped with an +[identification](foundation-core.identity-types.md) ```text fᵣ : f₁ (Gᵣ x) = Hᵣ (f₀ x) ``` -from the image of the reflexivity edge `Gᵣ x` to the reflexivity edge at `f₀ x` in `H`. +from the image of the reflexivity edge `Gᵣ x` to the reflexivity edge at `f₀ x` +in `H`. ## Definitions From 04893a9e82f1df8700b25c6cd9353f5957f3f602 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 10:15:35 -0400 Subject: [PATCH 30/42] fix bugs --- .../displayed-large-reflexive-graphs.lagda.md | 6 +++--- .../wide-displayed-large-reflexive-graphs.lagda.md | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/graph-theory/displayed-large-reflexive-graphs.lagda.md b/src/graph-theory/displayed-large-reflexive-graphs.lagda.md index 6dbfaa4390..7040f628b1 100644 --- a/src/graph-theory/displayed-large-reflexive-graphs.lagda.md +++ b/src/graph-theory/displayed-large-reflexive-graphs.lagda.md @@ -135,10 +135,10 @@ module _ fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph : Reflexive-Graph (α2 l) (β2 l l) - pr1 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph = + pr1 (pr1 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph) = vertex-Displayed-Large-Reflexive-Graph H x - pr1 (pr2 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph) = + pr2 (pr1 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph) = edge-Displayed-Large-Reflexive-Graph H (refl-Large-Reflexive-Graph G x) - pr2 (pr2 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph) = + pr2 fiber-vertex-reflexive-graph-Displayed-Large-Reflexive-Graph = refl-Displayed-Large-Reflexive-Graph H ``` diff --git a/src/graph-theory/wide-displayed-large-reflexive-graphs.lagda.md b/src/graph-theory/wide-displayed-large-reflexive-graphs.lagda.md index 89f3933328..4392870452 100644 --- a/src/graph-theory/wide-displayed-large-reflexive-graphs.lagda.md +++ b/src/graph-theory/wide-displayed-large-reflexive-graphs.lagda.md @@ -120,11 +120,11 @@ module _ fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph : Reflexive-Graph lzero (β2 l l) - pr1 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph = unit - pr1 (pr2 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph) + pr1 (pr1 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph) = + unit + pr2 (pr1 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph) _ _ = edge-Wide-Displayed-Large-Reflexive-Graph H (refl-Large-Reflexive-Graph G x) - pr2 (pr2 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph) - _ = + pr2 fiber-vertex-reflexive-graph-Wide-Displayed-Large-Reflexive-Graph _ = refl-Wide-Displayed-Large-Reflexive-Graph H x ``` From f38ef287cafc5077c1ff52ca35b615b75e4ee779 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 12:14:51 -0400 Subject: [PATCH 31/42] work on broken links --- .../dependent-reflexive-graphs.lagda.md | 82 +++++++++++-------- ...position-structure-globular-types.lagda.md | 2 +- .../globular-homotopies.lagda.md | 4 +- .../reflexive-globular-types.lagda.md | 2 +- .../transitive-globular-maps.lagda.md | 2 +- 5 files changed, 53 insertions(+), 39 deletions(-) diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 7372c9e233..7cf5c20a5b 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -10,6 +10,7 @@ module graph-theory.dependent-reflexive-graphs where open import foundation.dependent-pair-types open import foundation.universe-levels +open import graph-theory.dependent-directed-graphs open import graph-theory.reflexive-graphs ``` @@ -52,54 +53,67 @@ Dependent-Reflexive-Graph : {l1 l2 : Level} (l3 l4 : Level) → Reflexive-Graph l1 l2 → UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) Dependent-Reflexive-Graph l3 l4 A = - Σ ( vertex-Reflexive-Graph A → UU l3) - ( λ B₀ → - {x y : vertex-Reflexive-Graph A} → - edge-Reflexive-Graph A x y → B₀ x → B₀ y → UU l4) + Σ ( Dependent-Directed-Graph l3 l4 (directed-graph-Reflexive-Graph A)) + ( λ B → + (x : vertex-Reflexive-Graph A) (y : vertex-Dependent-Directed-Graph B x) → + edge-Dependent-Directed-Graph B (refl-Reflexive-Graph A x) y y) module _ {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} (B : Dependent-Reflexive-Graph l3 l4 A) where + dependent-directed-graph-Dependent-Reflexive-Graph : + Dependent-Directed-Graph l3 l4 (directed-graph-Reflexive-Graph A) + dependent-directed-graph-Dependent-Reflexive-Graph = pr1 B + vertex-Dependent-Reflexive-Graph : vertex-Reflexive-Graph A → UU l3 - vertex-Dependent-Reflexive-Graph = pr1 B + vertex-Dependent-Reflexive-Graph = + vertex-Dependent-Directed-Graph + dependent-directed-graph-Dependent-Reflexive-Graph edge-Dependent-Reflexive-Graph : {x y : vertex-Reflexive-Graph A} → edge-Reflexive-Graph A x y → vertex-Dependent-Reflexive-Graph x → vertex-Dependent-Reflexive-Graph y → UU l4 - edge-Dependent-Reflexive-Graph = pr2 B + edge-Dependent-Reflexive-Graph = + edge-Dependent-Directed-Graph + dependent-directed-graph-Dependent-Reflexive-Graph + + refl-Dependent-Directed-Graph : + (x : vertex-Reflexive-Graph A) (y : vertex-Dependent-Reflexive-Graph x) → + edge-Dependent-Reflexive-Graph (refl-Reflexive-Graph A x) y y + refl-Dependent-Directed-Graph = pr2 B ``` ### Constant dependent reflexive graphs -```agda -module _ - {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) - where - - vertex-constant-Dependent-Reflexive-Graph : - vertex-Reflexive-Graph A → UU l3 - vertex-constant-Dependent-Reflexive-Graph x = vertex-Reflexive-Graph B - - edge-constant-Dependent-Reflexive-Graph : - {x y : vertex-Reflexive-Graph A} → - edge-Reflexive-Graph A x y → - vertex-constant-Dependent-Reflexive-Graph x → - vertex-constant-Dependent-Reflexive-Graph y → UU l4 - edge-constant-Dependent-Reflexive-Graph e = - edge-Reflexive-Graph B - - constant-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l3 l4 A - pr1 constant-Dependent-Reflexive-Graph = - vertex-constant-Dependent-Reflexive-Graph - pr2 constant-Dependent-Reflexive-Graph = - edge-constant-Dependent-Reflexive-Graph -``` - -## See also - -- The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) -- [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) +-- where + +-- vertex-constant-Dependent-Reflexive-Graph : +-- vertex-Reflexive-Graph A → UU l3 +-- vertex-constant-Dependent-Reflexive-Graph x = vertex-Reflexive-Graph B + +-- edge-constant-Dependent-Reflexive-Graph : +-- {x y : vertex-Reflexive-Graph A} → +-- edge-Reflexive-Graph A x y → +-- vertex-constant-Dependent-Reflexive-Graph x → +-- vertex-constant-Dependent-Reflexive-Graph y → UU l4 +-- edge-constant-Dependent-Reflexive-Graph e = +-- edge-Reflexive-Graph B + +-- constant-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l3 l4 A +-- pr1 constant-Dependent-Reflexive-Graph = +-- vertex-constant-Dependent-Reflexive-Graph +-- pr2 constant-Dependent-Reflexive-Graph = +-- edge-constant-Dependent-Reflexive-Graph +-- ``` + +-- ## See also + +-- - The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) +-- - [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) diff --git a/src/structured-types/composition-structure-globular-types.lagda.md b/src/structured-types/composition-structure-globular-types.lagda.md index 1f6ef4913a..7029d9376c 100644 --- a/src/structured-types/composition-structure-globular-types.lagda.md +++ b/src/structured-types/composition-structure-globular-types.lagda.md @@ -22,7 +22,7 @@ open import structured-types.globular-types A {{#concept "composition structure" Disambiguation="globular type" Agda=composition-Globular-Type}} on a [globular type](structured-types.globular-types.md) `G` consists of a -[binary globular map] +[binary globular map](structured-types.binary-globular-maps.md) ```text - ∘ - : G' y z → G' x y → G' x z, diff --git a/src/structured-types/globular-homotopies.lagda.md b/src/structured-types/globular-homotopies.lagda.md index 4ff9bb3818..b790b8f64a 100644 --- a/src/structured-types/globular-homotopies.lagda.md +++ b/src/structured-types/globular-homotopies.lagda.md @@ -31,5 +31,5 @@ A {{#concept "standard globular homotopy"}} between `H : f ~ g` consists of h' : {x y : G₀} → h₀ x y ∘ f' x y ~ g' x y ``` -where `f'` and `g'` are the globular maps between the [globular -types](structured types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` +where `f'` and `g'` are the globular maps between the +[globular types](structured-types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index c1238b0e40..f1055e1c13 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -344,7 +344,7 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type - [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) - [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-tyeps.reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) - [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) are globular types that are both reflexive and [transitive](structured-types.transitive-globular-types.md). diff --git a/src/structured-types/transitive-globular-maps.lagda.md b/src/structured-types/transitive-globular-maps.lagda.md index 51e58a3cc5..aa994efec4 100644 --- a/src/structured-types/transitive-globular-maps.lagda.md +++ b/src/structured-types/transitive-globular-maps.lagda.md @@ -24,7 +24,7 @@ open import structured-types.transitive-globular-types A {{#concept "transitive globular map" Agda=transitive-globular-map}} between two [transitive globular types](structured-types.transitive-globular-types.md) `G` and `H` is a [globular map](structured-types.globular-maps.md) `f : G → H` -equipped with a family of [identifications](foundation-core.identifications.md) +equipped with a family of [identifications](foundation-core.identity-types.md) ```text f₁ (q ∘G p) = f₁ q ∘H f₁ p From 1cea2fb497dae8767cd11c03090cdf7716006815 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Mon, 21 Oct 2024 13:23:03 -0400 Subject: [PATCH 32/42] make pre-commit --- src/graph-theory.lagda.md | 1 + .../dependent-reflexive-graphs.lagda.md | 74 +++++++++-------- .../fibers-directed-graphs.lagda.md | 2 +- ...lbacks-dependent-reflexive-graphs.lagda.md | 82 +++++++++++++++++++ .../globular-homotopies.lagda.md | 3 +- 5 files changed, 128 insertions(+), 34 deletions(-) create mode 100644 src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index 76ea9d9b64..d1b6a89587 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -53,6 +53,7 @@ open import graph-theory.orientations-undirected-graphs public open import graph-theory.paths-undirected-graphs public open import graph-theory.polygons public open import graph-theory.pullbacks-dependent-directed-graphs public +open import graph-theory.pullbacks-dependent-reflexive-graphs public open import graph-theory.raising-universe-levels-directed-graphs public open import graph-theory.reflecting-maps-undirected-graphs public open import graph-theory.reflexive-graphs public diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 7cf5c20a5b..d1f29d6d48 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -67,7 +67,8 @@ module _ Dependent-Directed-Graph l3 l4 (directed-graph-Reflexive-Graph A) dependent-directed-graph-Dependent-Reflexive-Graph = pr1 B - vertex-Dependent-Reflexive-Graph : vertex-Reflexive-Graph A → UU l3 + vertex-Dependent-Reflexive-Graph : + vertex-Reflexive-Graph A → UU l3 vertex-Dependent-Reflexive-Graph = vertex-Dependent-Directed-Graph dependent-directed-graph-Dependent-Reflexive-Graph @@ -81,39 +82,48 @@ module _ edge-Dependent-Directed-Graph dependent-directed-graph-Dependent-Reflexive-Graph - refl-Dependent-Directed-Graph : - (x : vertex-Reflexive-Graph A) (y : vertex-Dependent-Reflexive-Graph x) → + refl-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph A} (y : vertex-Dependent-Reflexive-Graph x) → edge-Dependent-Reflexive-Graph (refl-Reflexive-Graph A x) y y - refl-Dependent-Directed-Graph = pr2 B + refl-Dependent-Reflexive-Graph = pr2 B _ ``` ### Constant dependent reflexive graphs --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) --- where - --- vertex-constant-Dependent-Reflexive-Graph : --- vertex-Reflexive-Graph A → UU l3 --- vertex-constant-Dependent-Reflexive-Graph x = vertex-Reflexive-Graph B - --- edge-constant-Dependent-Reflexive-Graph : --- {x y : vertex-Reflexive-Graph A} → --- edge-Reflexive-Graph A x y → --- vertex-constant-Dependent-Reflexive-Graph x → --- vertex-constant-Dependent-Reflexive-Graph y → UU l4 --- edge-constant-Dependent-Reflexive-Graph e = --- edge-Reflexive-Graph B - --- constant-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l3 l4 A --- pr1 constant-Dependent-Reflexive-Graph = --- vertex-constant-Dependent-Reflexive-Graph --- pr2 constant-Dependent-Reflexive-Graph = --- edge-constant-Dependent-Reflexive-Graph --- ``` - --- ## See also - --- - The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) --- - [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) + where + + vertex-constant-Dependent-Reflexive-Graph : + vertex-Reflexive-Graph A → UU l3 + vertex-constant-Dependent-Reflexive-Graph x = vertex-Reflexive-Graph B + + edge-constant-Dependent-Reflexive-Graph : + {x y : vertex-Reflexive-Graph A} → + edge-Reflexive-Graph A x y → + vertex-constant-Dependent-Reflexive-Graph x → + vertex-constant-Dependent-Reflexive-Graph y → UU l4 + edge-constant-Dependent-Reflexive-Graph _ = + edge-Reflexive-Graph B + + refl-constant-Dependent-Reflexive-Graph : + (x : vertex-Reflexive-Graph A) + (y : vertex-constant-Dependent-Reflexive-Graph x) → + edge-constant-Dependent-Reflexive-Graph (refl-Reflexive-Graph A x) y y + refl-constant-Dependent-Reflexive-Graph _ = + refl-Reflexive-Graph B + + constant-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l3 l4 A + pr1 (pr1 constant-Dependent-Reflexive-Graph) = + vertex-constant-Dependent-Reflexive-Graph + pr2 (pr1 constant-Dependent-Reflexive-Graph) _ _ = + edge-constant-Dependent-Reflexive-Graph + pr2 constant-Dependent-Reflexive-Graph = + refl-constant-Dependent-Reflexive-Graph +``` + +## See also + +- The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) +- [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) diff --git a/src/graph-theory/fibers-directed-graphs.lagda.md b/src/graph-theory/fibers-directed-graphs.lagda.md index 3ded28d294..26fbc4c637 100644 --- a/src/graph-theory/fibers-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-directed-graphs.lagda.md @@ -42,7 +42,7 @@ of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that _Note:_ The fiber of a directed graphs should not be confused with the [fiber of a morphism of directed graphs](graph-theory.fibers-morphisms-directed-graphs.md), which is the -[dependent directed graph](graph-theory.dependent-directed-graph.md) consisting +[dependent directed graph](graph-theory.dependent-directed-graphs.md) consisting of the [fibers](foundation-core.fibers-of-maps.md) of the actions on vertices and edges. diff --git a/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md b/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..0589164d3c --- /dev/null +++ b/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md @@ -0,0 +1,82 @@ +# Pullbacks of dependent reflexive graphs + +```agda +module graph-theory.pullbacks-dependent-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.identity-types +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import graph-theory.dependent-directed-graphs +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.pullbacks-dependent-directed-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +Consider a +[dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `B` over +a [reflexive graph](graph-theory.reflexive-graphs.md) `A`, and consider a +[graph homomorphism](graph-theory.morphisms-reflexive-graphs.md) `f : C → A`. +The {{#concept "pullback" Disambiguation="dependent reflexive graphs"}} `f*B` of +`B` along `f` is defined by substituting the values of `f` into `B`. More +precisely, `f*B` is defined by + +```text + (f*B)₀ c := B₀ (f₀ c) + (f*B)₁ e := B₁ (f₁ e). +``` + +## Definitions + +### The pullback of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : Reflexive-Graph l1 l2} + (C : Reflexive-Graph l3 l4) (f : hom-Reflexive-Graph C A) + (B : Dependent-Reflexive-Graph l5 l6 A) + where + + dependent-directed-graph-pullback-Dependent-Reflexive-Graph : + Dependent-Directed-Graph l5 l6 (directed-graph-Reflexive-Graph C) + dependent-directed-graph-pullback-Dependent-Reflexive-Graph = + pullback-Dependent-Directed-Graph + ( directed-graph-Reflexive-Graph C) + ( hom-directed-graph-hom-Reflexive-Graph C A f) + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + + vertex-pullback-Dependent-Reflexive-Graph : + (x : vertex-Reflexive-Graph C) → UU l5 + vertex-pullback-Dependent-Reflexive-Graph = + vertex-Dependent-Directed-Graph + dependent-directed-graph-pullback-Dependent-Reflexive-Graph + + edge-pullback-Dependent-Reflexive-Graph : + {x y : vertex-Reflexive-Graph C} (e : edge-Reflexive-Graph C x y) → + vertex-pullback-Dependent-Reflexive-Graph x → + vertex-pullback-Dependent-Reflexive-Graph y → UU l6 + edge-pullback-Dependent-Reflexive-Graph = + edge-Dependent-Directed-Graph + dependent-directed-graph-pullback-Dependent-Reflexive-Graph + + refl-pullback-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph C} + (y : vertex-pullback-Dependent-Reflexive-Graph x) → + edge-pullback-Dependent-Reflexive-Graph (refl-Reflexive-Graph C x) y y + refl-pullback-Dependent-Reflexive-Graph {x} y = + tr + ( λ u → edge-Dependent-Reflexive-Graph B u y y) + ( inv (refl-hom-Reflexive-Graph C A f x)) + ( refl-Dependent-Reflexive-Graph B y) +``` diff --git a/src/structured-types/globular-homotopies.lagda.md b/src/structured-types/globular-homotopies.lagda.md index b790b8f64a..d0b1d16fcb 100644 --- a/src/structured-types/globular-homotopies.lagda.md +++ b/src/structured-types/globular-homotopies.lagda.md @@ -32,4 +32,5 @@ A {{#concept "standard globular homotopy"}} between `H : f ~ g` consists of ``` where `f'` and `g'` are the globular maps between the -[globular types](structured-types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` +[globular types](structured-types.globular-types.md) `G' x y` and +`H' (f₀ x) (f₀ y)` From fa04874e1553ebef6dfd57f7d02d60145ae6902e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 22 Oct 2024 15:57:31 -0400 Subject: [PATCH 33/42] work on reflexive graphs --- ...ations-binary-dependent-functions.lagda.md | 52 +++ ...-identifications-binary-functions.lagda.md | 1 + ...entifications-dependent-functions.lagda.md | 4 + .../dependent-function-types.lagda.md | 4 + .../dependent-identifications.lagda.md | 4 + .../doubly-dependent-identifications.lagda.md | 40 +++ ...bular-type-of-dependent-functions.lagda.md | 100 ++++++ .../globular-type-of-functions.lagda.md | 82 +++++ src/foundation/reflexive-relations.lagda.md | 39 +- .../wild-category-of-types.lagda.md | 78 +--- ...ndent-coproducts-reflexive-graphs.lagda.md | 190 ++++++++++ .../dependent-reflexive-graphs.lagda.md | 22 ++ ...alences-dependent-directed-graphs.lagda.md | 60 ++-- ...lences-dependent-reflexive-graphs.lagda.md | 335 ++++++++++++++++++ .../equivalences-directed-graphs.lagda.md | 35 +- .../equivalences-reflexive-graphs.lagda.md | 173 +++++++++ ...fibers-morphisms-reflexive-graphs.lagda.md | 251 +++++++++++++ ...lbacks-dependent-reflexive-graphs.lagda.md | 7 + src/graph-theory/reflexive-graphs.lagda.md | 17 + ...ctions-dependent-reflexive-graphs.lagda.md | 263 ++++++++++++++ 20 files changed, 1640 insertions(+), 117 deletions(-) create mode 100644 src/foundation/action-on-identifications-binary-dependent-functions.lagda.md create mode 100644 src/foundation/doubly-dependent-identifications.lagda.md create mode 100644 src/foundation/globular-type-of-dependent-functions.lagda.md create mode 100644 src/foundation/globular-type-of-functions.lagda.md create mode 100644 src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/equivalences-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/sections-dependent-reflexive-graphs.lagda.md diff --git a/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md b/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md new file mode 100644 index 0000000000..9546d7a3a9 --- /dev/null +++ b/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md @@ -0,0 +1,52 @@ +# The binary action on identifications of binary dependent functions + +```agda +module foundation.action-on-identifications-binary-dependent-functions where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-dependent-functions +open import foundation.doubly-dependent-identifications +open import foundation.universe-levels + +open import foundation-core.identity-types +``` + +
+ +## 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 [doubly dependent identification](foundation.doubly-dependent-identifications.md) + +```text + apd-binary f p q : doubly-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') → + doubly-dependent-identification C p q (f x y) (f x' y') + apd-binary refl q = apd (f _) q +``` + +## 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). diff --git a/src/foundation/action-on-identifications-binary-functions.lagda.md b/src/foundation/action-on-identifications-binary-functions.lagda.md index 626856cd0b..300b1fe86e 100644 --- a/src/foundation/action-on-identifications-binary-functions.lagda.md +++ b/src/foundation/action-on-identifications-binary-functions.lagda.md @@ -198,6 +198,7 @@ module _ ## See also +- [Action of binary dependent functions on identifications](foundation.action-on-identifications-binary-dependent-functions.md) - [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). diff --git a/src/foundation/action-on-identifications-dependent-functions.lagda.md b/src/foundation/action-on-identifications-dependent-functions.lagda.md index eecad428e0..21f3a5cc3f 100644 --- a/src/foundation/action-on-identifications-dependent-functions.lagda.md +++ b/src/foundation/action-on-identifications-dependent-functions.lagda.md @@ -43,6 +43,10 @@ apd : apd f refl = refl ``` +## Properties + +### The action on identifications of dependent functions over dependent functions + ## See also - [Action of functions on identifications](foundation.action-on-identifications-functions.md) diff --git a/src/foundation/dependent-function-types.lagda.md b/src/foundation/dependent-function-types.lagda.md index 51ebd0bde3..9ac456c7c7 100644 --- a/src/foundation/dependent-function-types.lagda.md +++ b/src/foundation/dependent-function-types.lagda.md @@ -79,3 +79,7 @@ module _ ( span-type-family-Π B) ( universal-property-dependent-function-types-Π B) ``` + +## See also + +- [The globular type of dependent functions](foundation.globular-type-of-dependent-functions.md) diff --git a/src/foundation/dependent-identifications.lagda.md b/src/foundation/dependent-identifications.lagda.md index 0db1b41f3c..0c2a1184c6 100644 --- a/src/foundation/dependent-identifications.lagda.md +++ b/src/foundation/dependent-identifications.lagda.md @@ -302,3 +302,7 @@ module _ ( inv-dependent-identification B p p')) distributive-inv-concat-dependent-identification refl refl refl refl = refl ``` + +## See also + +- [Doubly dependent identifications](foundation.doubly-dependent-identifications.md) diff --git a/src/foundation/doubly-dependent-identifications.lagda.md b/src/foundation/doubly-dependent-identifications.lagda.md new file mode 100644 index 0000000000..712b7650a9 --- /dev/null +++ b/src/foundation/doubly-dependent-identifications.lagda.md @@ -0,0 +1,40 @@ +# Doubly dependent identifications + +```agda +module foundation.doubly-dependent-identifications where +``` + +
Imports + +```agda +open import foundation.dependent-identifications +open import foundation.identity-types +open import foundation.transport-along-identifications +open import foundation.universe-levels +``` + +
+ +## 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 "doubly dependent identification" Agda=doubly-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 + +### Doubly dependent identifications + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (C : A → B → UU l3) + where + + doubly-dependent-identification : + {x x' : A} (p : x = x') {y y' : B} (q : y = y') → + C x y → C x' y' → UU l3 + doubly-dependent-identification p q c c' = + dependent-identification (C _) q (tr (λ u → C u _) p c) c' +``` diff --git a/src/foundation/globular-type-of-dependent-functions.lagda.md b/src/foundation/globular-type-of-dependent-functions.lagda.md new file mode 100644 index 0000000000..ddaa937474 --- /dev/null +++ b/src/foundation/globular-type-of-dependent-functions.lagda.md @@ -0,0 +1,100 @@ +# The globular type of dependent functions + +```agda +{-# OPTIONS --guardedness #-} + +module foundation.globular-type-of-dependent-functions where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import foundation-core.homotopies + +open import structured-types.globular-types +open import structured-types.reflexive-globular-types +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +The +{{#concept "globular type of dependent functions" Agda=dependent-function-type-Globular-Type}} is the [globular type](structured-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](structured-types.reflexive-globular-types.md) and [transitive](structured-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) diff --git a/src/foundation/globular-type-of-functions.lagda.md b/src/foundation/globular-type-of-functions.lagda.md new file mode 100644 index 0000000000..212ad15341 --- /dev/null +++ b/src/foundation/globular-type-of-functions.lagda.md @@ -0,0 +1,82 @@ +# The globular type of functions + +```agda +{-# OPTIONS --guardedness #-} + +module foundation.globular-type-of-functions where +``` + +
Imports + +```agda +open import foundation.globular-type-of-dependent-functions +open import foundation.universe-levels + +open import foundation-core.homotopies + +open import structured-types.globular-types +open import structured-types.reflexive-globular-types +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +The +{{#concept "globular type of functions" Agda=function-type-Globular-Type}} is the [globular type](structured-types.globular-types.md) consisting of [functions](foundation.function-types.md) and [homotopies](foundation-core.homotopies.md) between them. Since functions are dependent functions of constant type families, we define the globular type of functions in terms of the [globular type of dependent functions](foundation.globular-type-of-dependent-functions.md). + +The globular type of functions of a type family `B` over `A` is [reflexive](structured-types.reflexive-globular-types.md) and [transitive](structured-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 functions + +```agda +function-type-Globular-Type : + {l1 l2 : Level} (A : UU l1) (B : UU l2) → + Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +function-type-Globular-Type A B = + dependent-function-type-Globular-Type A (λ _ → B) +``` + +## Properties + +### The globular type of functions is reflexive + +```agda +is-reflexive-function-type-Globular-Type : + {l1 l2 : Level} {A : UU l1} {B : UU l2} → + is-reflexive-Globular-Type (function-type-Globular-Type A B) +is-reflexive-function-type-Globular-Type {l1} {l2} {A} {B} = + is-reflexive-dependent-function-type-Globular-Type + +function-type-Reflexive-Globular-Type : + {l1 l2 : Level} (A : UU l1) (B : UU l2) → + Reflexive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +function-type-Reflexive-Globular-Type A B = + dependent-function-type-Reflexive-Globular-Type A (λ _ → B) +``` + +### The globular type of functions is transitive + +```agda +is-transitive-function-type-Globular-Type : + {l1 l2 : Level} {A : UU l1} {B : UU l2} → + is-transitive-Globular-Type (function-type-Globular-Type A B) +is-transitive-function-type-Globular-Type = + is-transitive-dependent-function-type-Globular-Type + +function-type-Transitive-Globular-Type : + {l1 l2 : Level} (A : UU l1) (B : UU l2) → + Transitive-Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) +function-type-Transitive-Globular-Type A B = + dependent-function-type-Transitive-Globular-Type A (λ _ → B) +``` + +## See also + +- [The globular type of functions](foundation.globular-type-of-functions.md) +- [The wild category of types](foundation.wild-category-of-types.md) diff --git a/src/foundation/reflexive-relations.lagda.md b/src/foundation/reflexive-relations.lagda.md index 65190e7d3e..d297c08cbd 100644 --- a/src/foundation/reflexive-relations.lagda.md +++ b/src/foundation/reflexive-relations.lagda.md @@ -9,6 +9,7 @@ module foundation.reflexive-relations where ```agda open import foundation.binary-relations open import foundation.dependent-pair-types +open import foundation.doubly-dependent-identifications open import foundation.universe-levels open import foundation-core.identity-types @@ -38,8 +39,8 @@ module _ rel-Reflexive-Relation : Relation l2 A rel-Reflexive-Relation = pr1 R - is-reflexive-Reflexive-Relation : is-reflexive rel-Reflexive-Relation - is-reflexive-Reflexive-Relation = pr2 R + refl-Reflexive-Relation : is-reflexive rel-Reflexive-Relation + refl-Reflexive-Relation = pr2 R ``` ### The identity reflexive relation on a type @@ -48,3 +49,37 @@ module _ Id-Reflexive-Relation : {l : Level} (A : UU l) → Reflexive-Relation l A Id-Reflexive-Relation A = (Id , (λ x → refl)) ``` + +## Properties + +### A formulation of the dependent action on identifications of reflexivity + +Consider a reflexive relation `R` on a type `A` with reflexivity `r : (x : A) → R x x`, and consider an [identification](foundation-core.identity-types.md) `p : x = y` in `A`. The usual [action on identifications](foundation.action-on-identifications-dependent-functions.md) yields a [dependent identification](foundation.dependent-identifications.md) + +```text + tr (λ u → R u u) p (r x) = (r y). +``` + +However, since `R` is a binary indexed family of types, there is also the [doubly dependent identity type](foundation.doubly-dependent-identifications.md), which can be used to express another version of the action on identifications of the reflexivity element `r`: + +```text + doubly-dependent-identification R p p (r x) (r y). +``` + +This action on identifications can be seen as an instance of a dependent function over the diagonal map `Δ : A → A × A`, a situation wich can be generalized. At the present time, however, the library lacks infrastructure for the general formulation of the action on identifications of dependent functions over functions yielding doubly dependent identifications. + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (R : Reflexive-Relation l2 A) + where + + doubly-dependent-identification-refl-Reflexive-Relation : + {x y : A} (p : x = y) → + doubly-dependent-identification + ( rel-Reflexive-Relation R) + ( p) + ( p) + ( refl-Reflexive-Relation R x) + ( refl-Reflexive-Relation R y) + doubly-dependent-identification-refl-Reflexive-Relation refl = refl +``` diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index 0ab099e3cf..ea2edac1e1 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -11,6 +11,7 @@ module foundation.wild-category-of-types where ```agda open import foundation.dependent-pair-types open import foundation.fundamental-theorem-of-identity-types +open import foundation.globular-type-of-functions open import foundation.homotopies open import foundation.isomorphisms-of-sets open import foundation.sets @@ -42,76 +43,11 @@ open import wild-category-theory.noncoherent-wild-higher-precategories The {{#concept "wild category of types" Agda=Type-Noncoherent-Large-Wild-Higher-Precategory}} -consists of types and functions and homotopies. +consists of types and [functions](foundation.dependent-function-types.md) and +[homotopies](foundation-core.homotopies.md). ## Definitions -### The globular type of dependent function types - -```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) - -globular-structure-Π : - {l1 l2 : Level} {A : UU l1} {B : A → UU l2} → - globular-structure (l1 ⊔ l2) ((x : A) → B x) -globular-structure-Π {A = A} {B = B} = - globular-structure-0-cell-Globular-Type - ( dependent-function-type-Globular-Type A B) - -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 - -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 -``` - -### The globular type of function types - -```agda -function-type-Globular-Type : - {l1 l2 : Level} (A : UU l1) (B : UU l2) → - Globular-Type (l1 ⊔ l2) (l1 ⊔ l2) -function-type-Globular-Type A B = - dependent-function-type-Globular-Type A (λ _ → B) - -globular-structure-function-type : - {l1 l2 : Level} {A : UU l1} {B : UU l2} → globular-structure (l1 ⊔ l2) (A → B) -globular-structure-function-type = globular-structure-Π - -is-reflexive-function-type-Globular-Type : - {l1 l2 : Level} {A : UU l1} {B : UU l2} → - is-reflexive-Globular-Type (function-type-Globular-Type A B) -is-reflexive-function-type-Globular-Type {l1} {l2} {A} {B} = - is-reflexive-dependent-function-type-Globular-Type - -is-transitive-function-type-Globular-Type : - {l1 l2 : Level} {A : UU l1} {B : UU l2} → - is-transitive-Globular-Type (function-type-Globular-Type A B) -is-transitive-function-type-Globular-Type = - is-transitive-dependent-function-type-Globular-Type -``` - ### The large globular type of types ```agda @@ -146,6 +82,14 @@ comp-1-cell-is-transitive-Large-Globular-Type is-transitive-1-cell-globular-type-is-transitive-Large-Globular-Type is-transitive-Type-Large-Globular-Type = is-transitive-function-type-Globular-Type + +Type-Large-Transitive-Globular-Type : Large-Transitive-Globular-Type lsuc (_⊔_) +large-globular-type-Large-Transitive-Globular-Type + Type-Large-Transitive-Globular-Type = + Type-Large-Globular-Type +is-transitive-Large-Transitive-Globular-Type + Type-Large-Transitive-Globular-Type = + is-transitive-Type-Large-Globular-Type ``` ### The noncoherent large wild higher precategory of types diff --git a/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md b/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..8e1642dd08 --- /dev/null +++ b/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md @@ -0,0 +1,190 @@ +# Dependent coproducts reflexive graphs + +```agda +module graph-theory.dependent-coproducts-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.identity-types +open import foundation.universe-levels + +open import graph-theory.dependent-coproducts-directed-graphs +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.directed-graphs +open import graph-theory.reflexive-graphs +open import graph-theory.morphisms-directed-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.pullbacks-dependent-reflexive-graphs +open import graph-theory.sections-dependent-directed-graphs +open import graph-theory.sections-dependent-reflexive-graphs +``` + +
+ +## Idea + +Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) +`H` over a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The +{{#concept "dependent coproduct" Disambiguation="reflexive graphs" Agda=Σ-Reflexive-Graph}} +`Σ G H` is the reflexive graph given by + +```text + (Σ G H)₀ := Σ G₀ H₀ + (Σ G H)₁ (x , y) (x' , y') := Σ (e : G₁ x x') (H₁ e y y') + (Σ G H)ᵣ (x , y) := (Gᵣ x , Hᵣ y). +``` + +## Definitions + +### The dependent coproduct of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + directed-graph-Σ-Reflexive-Graph : + Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) + directed-graph-Σ-Reflexive-Graph = + Σ-Directed-Graph (dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-Σ-Reflexive-Graph : UU (l1 ⊔ l3) + vertex-Σ-Reflexive-Graph = + vertex-Directed-Graph directed-graph-Σ-Reflexive-Graph + + edge-Σ-Reflexive-Graph : + (x y : vertex-Σ-Reflexive-Graph) → UU (l2 ⊔ l4) + edge-Σ-Reflexive-Graph = + edge-Directed-Graph directed-graph-Σ-Reflexive-Graph + + refl-Σ-Reflexive-Graph : + (x : vertex-Σ-Reflexive-Graph) → edge-Σ-Reflexive-Graph x x + pr1 (refl-Σ-Reflexive-Graph (x , y)) = refl-Reflexive-Graph G x + pr2 (refl-Σ-Reflexive-Graph (x , y)) = refl-Dependent-Reflexive-Graph H y + + Σ-Reflexive-Graph : Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) + pr1 Σ-Reflexive-Graph = directed-graph-Σ-Reflexive-Graph + pr2 Σ-Reflexive-Graph = refl-Σ-Reflexive-Graph +``` + +### The first projection of the dependent coproduct reflexive graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + hom-directed-graph-pr1-Σ-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-Σ-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + hom-directed-graph-pr1-Σ-Reflexive-Graph = + pr1-Σ-Directed-Graph (dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-pr1-Σ-Reflexive-Graph : + vertex-Σ-Reflexive-Graph H → vertex-Reflexive-Graph G + vertex-pr1-Σ-Reflexive-Graph = + vertex-hom-Directed-Graph + ( directed-graph-Σ-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + ( hom-directed-graph-pr1-Σ-Reflexive-Graph) + + edge-pr1-Σ-Reflexive-Graph : + {x y : vertex-Σ-Reflexive-Graph H} → + edge-Σ-Reflexive-Graph H x y → + edge-Reflexive-Graph G + ( vertex-pr1-Σ-Reflexive-Graph x) + ( vertex-pr1-Σ-Reflexive-Graph y) + edge-pr1-Σ-Reflexive-Graph = + edge-hom-Directed-Graph + ( directed-graph-Σ-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + ( hom-directed-graph-pr1-Σ-Reflexive-Graph) + + refl-pr1-Σ-Reflexive-Graph : + (x : vertex-Σ-Reflexive-Graph H) → + edge-pr1-Σ-Reflexive-Graph (refl-Σ-Reflexive-Graph H x) = + refl-Reflexive-Graph G (vertex-pr1-Σ-Reflexive-Graph x) + refl-pr1-Σ-Reflexive-Graph x = refl + + pr1-Σ-Reflexive-Graph : hom-Reflexive-Graph (Σ-Reflexive-Graph H) G + pr1 pr1-Σ-Reflexive-Graph = hom-directed-graph-pr1-Σ-Reflexive-Graph + pr2 pr1-Σ-Reflexive-Graph = refl-pr1-Σ-Reflexive-Graph +``` + +### The second projection of the dependent coproduct reflexive graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + section-dependent-directed-graph-pr2-Σ-Reflexive-Graph : + section-dependent-directed-graph-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H)) + section-dependent-directed-graph-pr2-Σ-Reflexive-Graph = + pr2-Σ-Directed-Graph (dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-pr2-Σ-Reflexive-Graph : + (x : vertex-Σ-Reflexive-Graph H) → + vertex-pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H) + ( x) + vertex-pr2-Σ-Reflexive-Graph = + vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H)) + ( section-dependent-directed-graph-pr2-Σ-Reflexive-Graph) + + edge-pr2-Σ-Reflexive-Graph : + {x y : vertex-Σ-Reflexive-Graph H} + (e : edge-Σ-Reflexive-Graph H x y) → + edge-pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H) + ( e) + ( vertex-pr2-Σ-Reflexive-Graph x) + ( vertex-pr2-Σ-Reflexive-Graph y) + edge-pr2-Σ-Reflexive-Graph = + edge-section-dependent-directed-graph-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H)) + ( section-dependent-directed-graph-pr2-Σ-Reflexive-Graph) + + refl-pr2-Σ-Reflexive-Graph : + (x : vertex-Σ-Reflexive-Graph H) → + edge-pr2-Σ-Reflexive-Graph (refl-Σ-Reflexive-Graph H x) = + refl-Dependent-Reflexive-Graph H (vertex-pr2-Σ-Reflexive-Graph x) + refl-pr2-Σ-Reflexive-Graph x = refl + + pr2-Σ-Reflexive-Graph : + section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( pr1-Σ-Reflexive-Graph H) + ( H)) + pr1 pr2-Σ-Reflexive-Graph = + section-dependent-directed-graph-pr2-Σ-Reflexive-Graph + pr2 pr2-Σ-Reflexive-Graph = + refl-pr2-Σ-Reflexive-Graph +``` + +## See also + +- [Dependent product reflexive graphs](graph-theory.dependent-products-reflexive-graphs.md) diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index d1f29d6d48..206a2353a1 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -8,6 +8,7 @@ module graph-theory.dependent-reflexive-graphs where ```agda open import foundation.dependent-pair-types +open import foundation.equivalences open import foundation.universe-levels open import graph-theory.dependent-directed-graphs @@ -88,6 +89,27 @@ module _ refl-Dependent-Reflexive-Graph = pr2 B _ ``` +### An equivalent definition of dependent reflexive graphs + +The second definition of dependent reflexive graphs is more closely equivalent to the concept of morphisms into the [universal reflexive graph](graph-theory.universal-reflexive-graph.md). + +```agda +Dependent-Reflexive-Graph' : + {l1 l2 : Level} (l3 l4 : Level) → Reflexive-Graph l1 l2 → + UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) +Dependent-Reflexive-Graph' l3 l4 G = + Σ ( Σ ( vertex-Reflexive-Graph G → Reflexive-Graph l3 l4) + ( λ H → + (x y : vertex-Reflexive-Graph G) + (e : edge-Reflexive-Graph G x y) → + vertex-Reflexive-Graph (H x) → vertex-Reflexive-Graph (H y) → UU l4)) + ( λ (H₀ , H₁) → + (x : vertex-Reflexive-Graph G) + (u v : vertex-Reflexive-Graph (H₀ x)) → + H₁ x x (refl-Reflexive-Graph G x) u v ≃ + edge-Reflexive-Graph (H₀ x) u v) +``` + ### Constant dependent reflexive graphs ```agda diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md index 5d1bc6c629..4d916919bf 100644 --- a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -103,15 +103,15 @@ module _ edge-equiv-Dependent-Directed-Graph : (e : equiv-Dependent-Directed-Graph) → {x x' : vertex-Directed-Graph G} - (a : edge-Directed-Graph G x x') + {a : edge-Directed-Graph G x x'} {y : vertex-Dependent-Directed-Graph H x} {y' : vertex-Dependent-Directed-Graph H x'} → edge-Dependent-Directed-Graph H a y y' → edge-Dependent-Directed-Graph K a ( vertex-equiv-Dependent-Directed-Graph e y) ( vertex-equiv-Dependent-Directed-Graph e y') - edge-equiv-Dependent-Directed-Graph e a = - map-equiv (edge-equiv-equiv-Dependent-Directed-Graph e a _ _) + edge-equiv-Dependent-Directed-Graph e = + map-equiv (edge-equiv-equiv-Dependent-Directed-Graph e _ _ _) ``` ### The identity equivalence of a dependent directed graph @@ -122,11 +122,11 @@ module _ (H : Dependent-Directed-Graph l3 l4 G) where - equiv-vertex-id-equiv-Dependent-Directed-Graph : + vertex-equiv-id-equiv-Dependent-Directed-Graph : fam-equiv ( vertex-Dependent-Directed-Graph H) ( vertex-Dependent-Directed-Graph H) - equiv-vertex-id-equiv-Dependent-Directed-Graph x = id-equiv + vertex-equiv-id-equiv-Dependent-Directed-Graph x = id-equiv vertex-id-equiv-Dependent-Directed-Graph : {x : vertex-Directed-Graph G} → @@ -148,7 +148,7 @@ module _ id-equiv-Dependent-Directed-Graph : equiv-Dependent-Directed-Graph H H pr1 id-equiv-Dependent-Directed-Graph = - equiv-vertex-id-equiv-Dependent-Directed-Graph + vertex-equiv-id-equiv-Dependent-Directed-Graph pr2 id-equiv-Dependent-Directed-Graph _ _ = equiv-edge-id-equiv-Dependent-Directed-Graph ``` @@ -163,22 +163,23 @@ module _ (H : Dependent-Directed-Graph l3 l4 G) where - is-torsorial-equiv-Dependent-Directed-Graph : - is-torsorial (equiv-Dependent-Directed-Graph {l5 = l3} {l6 = l4} H) - is-torsorial-equiv-Dependent-Directed-Graph = - is-torsorial-Eq-structure - ( is-torsorial-equiv-fam (vertex-Dependent-Directed-Graph H)) - ( vertex-Dependent-Directed-Graph H , id-equiv-fam _) - ( is-torsorial-Eq-Π - ( λ x → - is-torsorial-Eq-Π - ( λ x' → - is-torsorial-Eq-Π - ( λ a → - is-torsorial-Eq-Π - ( λ y → - is-torsorial-Eq-Π - ( λ y' → is-torsorial-equiv _)))))) + abstract + is-torsorial-equiv-Dependent-Directed-Graph : + is-torsorial (equiv-Dependent-Directed-Graph {l5 = l3} {l6 = l4} H) + is-torsorial-equiv-Dependent-Directed-Graph = + is-torsorial-Eq-structure + ( is-torsorial-equiv-fam (vertex-Dependent-Directed-Graph H)) + ( vertex-Dependent-Directed-Graph H , id-equiv-fam _) + ( is-torsorial-Eq-Π + ( λ x → + is-torsorial-Eq-Π + ( λ x' → + is-torsorial-Eq-Π + ( λ a → + is-torsorial-Eq-Π + ( λ y → + is-torsorial-Eq-Π + ( λ y' → is-torsorial-equiv _)))))) equiv-eq-Dependent-Directed-Graph : (K : Dependent-Directed-Graph l3 l4 G) → @@ -186,13 +187,14 @@ module _ equiv-eq-Dependent-Directed-Graph K refl = id-equiv-Dependent-Directed-Graph H - is-equiv-equiv-eq-Dependent-Directed-Graph : - (K : Dependent-Directed-Graph l3 l4 G) → - is-equiv (equiv-eq-Dependent-Directed-Graph K) - is-equiv-equiv-eq-Dependent-Directed-Graph = - fundamental-theorem-id - is-torsorial-equiv-Dependent-Directed-Graph - equiv-eq-Dependent-Directed-Graph + abstract + is-equiv-equiv-eq-Dependent-Directed-Graph : + (K : Dependent-Directed-Graph l3 l4 G) → + is-equiv (equiv-eq-Dependent-Directed-Graph K) + is-equiv-equiv-eq-Dependent-Directed-Graph = + fundamental-theorem-id + is-torsorial-equiv-Dependent-Directed-Graph + equiv-eq-Dependent-Directed-Graph extensionality-Dependent-Directed-Graph : (K : Dependent-Directed-Graph l3 l4 G) → diff --git a/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..96d6066b32 --- /dev/null +++ b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md @@ -0,0 +1,335 @@ +# Equivalences of dependent reflexive graphs + +```agda +module graph-theory.equivalences-dependent-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-identifications +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.families-of-equivalences +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.universe-levels + +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.equivalences-dependent-directed-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +Consider two +[dependent reflexive graphs](graph-theory.dependent-reflexive-graphs.md) `H` and +`K` over a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. An +{{#concept "equivalence of dependent reflexive graphs" Agda=equiv-Dependent-Reflexive-Graph}} +from `H` to `K` is an +[equivalence of dependent directed graphs](graph-theory.equivalences-dependent-directed-graphs.md) +from `H` to `K` preserving reflexivity. More specifically, an equivalence `α` +from `H` to `K` consists of + +```text + α₀ : (x : G₀) → H₀ x ≃ K₀ x + α₁ : (x x' : G₀) (e : G₁ x x') (y : H₀ x) (y' : H₀ x') → H₁ e y y' ≃ K₁ e (α₀ y) (α₀ y') + αᵣ : (x : G₀) (y : H₀ x) → α₁ (Gᵣ x) (Hᵣ y) = Kᵣ x (α₀ y). +``` + +## Definitions + +### Equivalences of dependent directed graphs between dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + (K : Dependent-Reflexive-Graph l5 l6 G) + where + + equiv-dependent-directed-graph-Dependent-Reflexive-Graph : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + equiv-dependent-directed-graph-Dependent-Reflexive-Graph = + equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + (K : Dependent-Reflexive-Graph l5 l6 G) + (α : equiv-dependent-directed-graph-Dependent-Reflexive-Graph H K) + where + + vertex-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph : + fam-equiv + ( vertex-Dependent-Reflexive-Graph H) + ( vertex-Dependent-Reflexive-Graph K) + vertex-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph = + vertex-equiv-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( α) + + vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} → + vertex-Dependent-Reflexive-Graph H x → + vertex-Dependent-Reflexive-Graph K x + vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph = + vertex-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( α) + + edge-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + (e : edge-Reflexive-Graph G x x') + (y : vertex-Dependent-Reflexive-Graph H x) + (y' : vertex-Dependent-Reflexive-Graph H x') → + edge-Dependent-Reflexive-Graph H e y y' ≃ + edge-Dependent-Reflexive-Graph K e + ( vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph y) + ( vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph y') + edge-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph = + edge-equiv-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( α) + + edge-equiv-dependent-directed-graph-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + {e : edge-Reflexive-Graph G x x'} + {y : vertex-Dependent-Reflexive-Graph H x} + {y' : vertex-Dependent-Reflexive-Graph H x'} → + edge-Dependent-Reflexive-Graph H e y y' → + edge-Dependent-Reflexive-Graph K e + ( vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph y) + ( vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph y') + edge-equiv-dependent-directed-graph-Dependent-Reflexive-Graph = + edge-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( α) +``` + +### Equivalences of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + (K : Dependent-Reflexive-Graph l5 l6 G) + where + + equiv-Dependent-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + equiv-Dependent-Reflexive-Graph = + Σ ( equiv-dependent-directed-graph-Dependent-Reflexive-Graph H K) + ( λ (α₀ , α₁) → + (x : vertex-Reflexive-Graph G) + (y : vertex-Dependent-Reflexive-Graph H x) → + map-equiv + ( α₁ x x (refl-Reflexive-Graph G x) y y) + ( refl-Dependent-Reflexive-Graph H y) = + refl-Dependent-Reflexive-Graph K (map-equiv (α₀ x) y)) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + (K : Dependent-Reflexive-Graph l5 l6 G) + (α : equiv-Dependent-Reflexive-Graph H K) + where + + equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph : + equiv-dependent-directed-graph-Dependent-Reflexive-Graph H K + equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph = pr1 α + + vertex-equiv-equiv-Dependent-Reflexive-Graph : + fam-equiv + ( vertex-Dependent-Reflexive-Graph H) + ( vertex-Dependent-Reflexive-Graph K) + vertex-equiv-equiv-Dependent-Reflexive-Graph = + vertex-equiv-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph) + + vertex-equiv-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} → + vertex-Dependent-Reflexive-Graph H x → + vertex-Dependent-Reflexive-Graph K x + vertex-equiv-Dependent-Reflexive-Graph = + vertex-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph) + + edge-equiv-equiv-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + (a : edge-Reflexive-Graph G x x') + (y : vertex-Dependent-Reflexive-Graph H x) + (y' : vertex-Dependent-Reflexive-Graph H x') → + edge-Dependent-Reflexive-Graph H a y y' ≃ + edge-Dependent-Reflexive-Graph K a + ( vertex-equiv-Dependent-Reflexive-Graph y) + ( vertex-equiv-Dependent-Reflexive-Graph y') + edge-equiv-equiv-Dependent-Reflexive-Graph = + edge-equiv-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph) + + edge-equiv-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + {a : edge-Reflexive-Graph G x x'} + {y : vertex-Dependent-Reflexive-Graph H x} + {y' : vertex-Dependent-Reflexive-Graph H x'} → + edge-Dependent-Reflexive-Graph H a y y' → + edge-Dependent-Reflexive-Graph K a + ( vertex-equiv-Dependent-Reflexive-Graph y) + ( vertex-equiv-Dependent-Reflexive-Graph y') + edge-equiv-Dependent-Reflexive-Graph = + edge-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + ( dependent-directed-graph-Dependent-Reflexive-Graph K) + ( equiv-dependent-directed-graph-equiv-Dependent-Reflexive-Graph) + + refl-equiv-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} + (y : vertex-Dependent-Reflexive-Graph H x) → + edge-equiv-Dependent-Reflexive-Graph (refl-Dependent-Reflexive-Graph H y) = + refl-Dependent-Reflexive-Graph K (vertex-equiv-Dependent-Reflexive-Graph y) + refl-equiv-Dependent-Reflexive-Graph = pr2 α _ +``` + +### The identity equivalence of a dependent reflexive graph + +````agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph : + equiv-dependent-directed-graph-Dependent-Reflexive-Graph H H + equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph = + id-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-equiv-id-equiv-Dependent-Reflexive-Graph : + fam-equiv + ( vertex-Dependent-Reflexive-Graph H) + ( vertex-Dependent-Reflexive-Graph H) + vertex-equiv-id-equiv-Dependent-Reflexive-Graph = + vertex-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph + ( H) + ( H) + ( equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph) + + vertex-id-equiv-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} → + vertex-Dependent-Reflexive-Graph H x → vertex-Dependent-Reflexive-Graph H x + vertex-id-equiv-Dependent-Reflexive-Graph = + vertex-equiv-dependent-directed-graph-Dependent-Reflexive-Graph + ( H) + ( H) + ( equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph) + + edge-equiv-id-equiv-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + (e : edge-Reflexive-Graph G x x') + (y : vertex-Dependent-Reflexive-Graph H x) + (y' : vertex-Dependent-Reflexive-Graph H x') → + edge-Dependent-Reflexive-Graph H e y y' ≃ + edge-Dependent-Reflexive-Graph H e y y' + edge-equiv-id-equiv-Dependent-Reflexive-Graph = + edge-equiv-equiv-dependent-directed-graph-Dependent-Reflexive-Graph + ( H) + ( H) + ( equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph) + + edge-id-equiv-Dependent-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + {e : edge-Reflexive-Graph G x x'} + {y : vertex-Dependent-Reflexive-Graph H x} + {y' : vertex-Dependent-Reflexive-Graph H x'} → + edge-Dependent-Reflexive-Graph H e y y' → + edge-Dependent-Reflexive-Graph H e y y' + edge-id-equiv-Dependent-Reflexive-Graph = + edge-equiv-dependent-directed-graph-Dependent-Reflexive-Graph + ( H) + ( H) + ( equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph) + + refl-id-equiv-Dependent-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} + (y : vertex-Dependent-Reflexive-Graph H x) → + edge-id-equiv-Dependent-Reflexive-Graph + ( refl-Dependent-Reflexive-Graph H y) = + refl-Dependent-Reflexive-Graph H y + refl-id-equiv-Dependent-Reflexive-Graph y = refl + + id-equiv-Dependent-Reflexive-Graph : + equiv-Dependent-Reflexive-Graph H H + pr1 id-equiv-Dependent-Reflexive-Graph = + equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph + pr2 id-equiv-Dependent-Reflexive-Graph _ = + refl-id-equiv-Dependent-Reflexive-Graph +``` + +## Properties + +### Equivalences characterize identifications of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + abstract + is-torsorial-equiv-Dependent-Reflexive-Graph : + is-torsorial (equiv-Dependent-Reflexive-Graph {l5 = l3} {l6 = l4} H) + is-torsorial-equiv-Dependent-Reflexive-Graph = + is-torsorial-Eq-structure + ( is-torsorial-equiv-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H)) + ( dependent-directed-graph-Dependent-Reflexive-Graph H , + equiv-dependent-directed-graph-id-equiv-Dependent-Reflexive-Graph H) + ( is-torsorial-Eq-Π (λ x → is-torsorial-htpy _)) + + equiv-eq-Dependent-Reflexive-Graph : + (K : Dependent-Reflexive-Graph l3 l4 G) → + H = K → equiv-Dependent-Reflexive-Graph H K + equiv-eq-Dependent-Reflexive-Graph K refl = + id-equiv-Dependent-Reflexive-Graph H + + abstract + is-equiv-equiv-eq-Dependent-Reflexive-Graph : + (K : Dependent-Reflexive-Graph l3 l4 G) → + is-equiv (equiv-eq-Dependent-Reflexive-Graph K) + is-equiv-equiv-eq-Dependent-Reflexive-Graph = + fundamental-theorem-id + is-torsorial-equiv-Dependent-Reflexive-Graph + equiv-eq-Dependent-Reflexive-Graph + + extensionality-Dependent-Reflexive-Graph : + (K : Dependent-Reflexive-Graph l3 l4 G) → + (H = K) ≃ equiv-Dependent-Reflexive-Graph H K + pr1 (extensionality-Dependent-Reflexive-Graph K) = + equiv-eq-Dependent-Reflexive-Graph K + pr2 (extensionality-Dependent-Reflexive-Graph K) = + is-equiv-equiv-eq-Dependent-Reflexive-Graph K + + eq-equiv-Dependent-Reflexive-Graph : + (K : Dependent-Reflexive-Graph l3 l4 G) → + equiv-Dependent-Reflexive-Graph H K → H = K + eq-equiv-Dependent-Reflexive-Graph K = + map-inv-equiv (extensionality-Dependent-Reflexive-Graph K) +``` diff --git a/src/graph-theory/equivalences-directed-graphs.lagda.md b/src/graph-theory/equivalences-directed-graphs.lagda.md index 29a98d2251..984918510f 100644 --- a/src/graph-theory/equivalences-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-directed-graphs.lagda.md @@ -38,7 +38,7 @@ open import graph-theory.morphisms-directed-graphs ## Idea -An **equivalence of directed graphs** from a +An {{#concept "equivalence of directed graphs" Agda=equiv-Directed-Graph}} from a [directed graph](graph-theory.directed-graphs.md) `(V,E)` to a directed graph `(V',E')` consists of an [equivalence](foundation-core.equivalences.md) `e : V ≃ V'` of vertices, and a family of equivalences `E x y ≃ E' (e x) (e y)` @@ -101,16 +101,17 @@ module _ edge-equiv-equiv-Directed-Graph = pr2 e edge-equiv-Directed-Graph : - (x y : vertex-Directed-Graph G) → + {x y : vertex-Directed-Graph G} → edge-Directed-Graph G x y → edge-Directed-Graph H ( vertex-equiv-Directed-Graph x) ( vertex-equiv-Directed-Graph y) - edge-equiv-Directed-Graph x y = - map-equiv (edge-equiv-equiv-Directed-Graph x y) + edge-equiv-Directed-Graph = + map-equiv (edge-equiv-equiv-Directed-Graph _ _) is-edge-equiv-equiv-Directed-Graph : - (x y : vertex-Directed-Graph G) → is-equiv (edge-equiv-Directed-Graph x y) + (x y : vertex-Directed-Graph G) → + is-equiv (edge-equiv-Directed-Graph {x} {y}) is-edge-equiv-equiv-Directed-Graph x y = is-equiv-map-equiv (edge-equiv-equiv-Directed-Graph x y) ``` @@ -155,7 +156,8 @@ module _ compute-hom-equiv-Directed-Graph : (e : equiv-Directed-Graph G H) → hom-equiv-Directed-Graph e = - ( vertex-equiv-Directed-Graph G H e , edge-equiv-Directed-Graph G H e) + ( vertex-equiv-Directed-Graph G H e , + λ _ _ → edge-equiv-Directed-Graph G H e) compute-hom-equiv-Directed-Graph e = refl is-equiv-equiv-Directed-Graph : @@ -391,17 +393,17 @@ module _ ( inv (is-section-vertex-inv-equiv-Directed-Graph y))) edge-inv-equiv-Directed-Graph : - (x y : vertex-Directed-Graph H) → + {x y : vertex-Directed-Graph H} → edge-Directed-Graph H x y → edge-Directed-Graph G ( vertex-inv-equiv-Directed-Graph x) ( vertex-inv-equiv-Directed-Graph y) - edge-inv-equiv-Directed-Graph x y = - map-equiv (equiv-edge-inv-equiv-Directed-Graph x y) + edge-inv-equiv-Directed-Graph = + map-equiv (equiv-edge-inv-equiv-Directed-Graph _ _) hom-inv-equiv-Directed-Graph : hom-Directed-Graph H G pr1 hom-inv-equiv-Directed-Graph = vertex-inv-equiv-Directed-Graph - pr2 hom-inv-equiv-Directed-Graph = edge-inv-equiv-Directed-Graph + pr2 hom-inv-equiv-Directed-Graph _ _ = edge-inv-equiv-Directed-Graph inv-equiv-Directed-Graph : equiv-Directed-Graph H G pr1 inv-equiv-Directed-Graph = equiv-vertex-inv-equiv-Directed-Graph @@ -419,9 +421,7 @@ module _ ( vertex-is-section-inv-equiv-Directed-Graph x) ( vertex-is-section-inv-equiv-Directed-Graph y) ( edge-equiv-Directed-Graph G H f - ( vertex-inv-equiv-Directed-Graph x) - ( vertex-inv-equiv-Directed-Graph y) - ( edge-inv-equiv-Directed-Graph x y e)) = e + ( edge-inv-equiv-Directed-Graph e)) = e edge-is-section-inv-equiv-Directed-Graph x y e = ( ap ( binary-tr @@ -470,10 +470,7 @@ module _ ( edge-Directed-Graph G) ( vertex-is-retraction-inv-equiv-Directed-Graph x) ( vertex-is-retraction-inv-equiv-Directed-Graph y) - ( edge-inv-equiv-Directed-Graph - ( vertex-equiv-Directed-Graph G H f x) - ( vertex-equiv-Directed-Graph G H f y) - ( edge-equiv-Directed-Graph G H f x y e)) = e + ( edge-inv-equiv-Directed-Graph (edge-equiv-Directed-Graph G H f e)) = e edge-is-retraction-inv-equiv-Directed-Graph x y e = transpose-binary-path-over' ( edge-Directed-Graph G) @@ -491,7 +488,7 @@ module _ ( edge-Directed-Graph H) ( u) ( v) - ( edge-equiv-Directed-Graph G H f x y e)) + ( edge-equiv-Directed-Graph G H f e)) ( ( ap ( inv) ( coherence-map-inv-equiv @@ -512,7 +509,7 @@ module _ ( vertex-is-retraction-inv-equiv-Directed-Graph y))))) ∙ ( binary-tr-ap ( edge-Directed-Graph H) - ( edge-equiv-Directed-Graph G H f) + ( λ _ _ → edge-equiv-Directed-Graph G H f) ( inv (vertex-is-retraction-inv-equiv-Directed-Graph x)) ( inv (vertex-is-retraction-inv-equiv-Directed-Graph y)) ( refl)))) diff --git a/src/graph-theory/equivalences-reflexive-graphs.lagda.md b/src/graph-theory/equivalences-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..479ab41f98 --- /dev/null +++ b/src/graph-theory/equivalences-reflexive-graphs.lagda.md @@ -0,0 +1,173 @@ +# Equivalences of reflexive graphs + +```agda +module graph-theory.equivalences-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.identity-types +open import foundation.universe-levels + +open import graph-theory.equivalences-directed-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +An {{#concept "equivalence of reflexive graphs" Agda=equiv-Reflexive-Graph}} from a +[reflexive graph](graph-theory.reflexive-graphs.md) `(V,E,r)` to a reflexive graph +`(V',E',r')` consists of an [equivalence](graph-theory.equivalences-directed-graphs.md) `(e₀, e₁)` of directed graphs from `(V,E)` to `(V',E')` equipped with an identification + +```text + e₁ (r x) = r' (e₀ x) +``` + +for each `x : V`. More specifically, an equivalence of reflexive graphs consists of an [equivalence](foundation-core.equivalences.md) +`e₀ : V ≃ V'` of vertices, a family of equivalences `e₁ : E x y ≃ E' (e x) (e y)` +of edges indexed by `x y : V`, and a family of identifications + +```text + e₁ (r x) = r' (e₀ x) +``` + +indexed by `x : V`. + +## Definitions + +### Equivalences of directed graphs between reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + where + + equiv-directed-graph-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + equiv-directed-graph-Reflexive-Graph = + equiv-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (e : equiv-directed-graph-Reflexive-Graph G H) + where + + vertex-equiv-equiv-directed-graph-Reflexive-Graph : + vertex-Reflexive-Graph G ≃ vertex-Reflexive-Graph H + vertex-equiv-equiv-directed-graph-Reflexive-Graph = + vertex-equiv-equiv-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( e) + + vertex-equiv-directed-graph-Reflexive-Graph : + vertex-Reflexive-Graph G → vertex-Reflexive-Graph H + vertex-equiv-directed-graph-Reflexive-Graph = + vertex-equiv-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( e) + + edge-equiv-equiv-directed-graph-Reflexive-Graph : + (x x' : vertex-Reflexive-Graph G) → + edge-Reflexive-Graph G x x' ≃ + edge-Reflexive-Graph H + ( vertex-equiv-directed-graph-Reflexive-Graph x) + ( vertex-equiv-directed-graph-Reflexive-Graph x') + edge-equiv-equiv-directed-graph-Reflexive-Graph = + edge-equiv-equiv-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( e) + + edge-equiv-directed-graph-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} → + edge-Reflexive-Graph G x x' → + edge-Reflexive-Graph H + ( vertex-equiv-directed-graph-Reflexive-Graph x) + ( vertex-equiv-directed-graph-Reflexive-Graph x') + edge-equiv-directed-graph-Reflexive-Graph = + edge-equiv-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( e) +``` + +### Equivalences of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + where + + equiv-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + equiv-Reflexive-Graph = + Σ ( equiv-directed-graph-Reflexive-Graph G H) + ( λ e → + (x : vertex-Reflexive-Graph G) → + edge-equiv-directed-graph-Reflexive-Graph G H e + ( refl-Reflexive-Graph G x) = + refl-Reflexive-Graph H + (vertex-equiv-directed-graph-Reflexive-Graph G H e x)) + +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (e : equiv-Reflexive-Graph G H) + where + + equiv-directed-graph-equiv-Reflexive-Graph : + equiv-directed-graph-Reflexive-Graph G H + equiv-directed-graph-equiv-Reflexive-Graph = pr1 e + + vertex-equiv-equiv-Reflexive-Graph : + vertex-Reflexive-Graph G ≃ vertex-Reflexive-Graph H + vertex-equiv-equiv-Reflexive-Graph = + vertex-equiv-equiv-directed-graph-Reflexive-Graph G H + equiv-directed-graph-equiv-Reflexive-Graph + + vertex-equiv-Reflexive-Graph : + vertex-Reflexive-Graph G → vertex-Reflexive-Graph H + vertex-equiv-Reflexive-Graph = + vertex-equiv-directed-graph-Reflexive-Graph G H + equiv-directed-graph-equiv-Reflexive-Graph + + edge-equiv-equiv-Reflexive-Graph : + (x x' : vertex-Reflexive-Graph G) → + edge-Reflexive-Graph G x x' ≃ + edge-Reflexive-Graph H + ( vertex-equiv-Reflexive-Graph x) + ( vertex-equiv-Reflexive-Graph x') + edge-equiv-equiv-Reflexive-Graph = + edge-equiv-equiv-directed-graph-Reflexive-Graph G H + equiv-directed-graph-equiv-Reflexive-Graph + + edge-equiv-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} → + edge-Reflexive-Graph G x x' → + edge-Reflexive-Graph H + ( vertex-equiv-Reflexive-Graph x) + ( vertex-equiv-Reflexive-Graph x') + edge-equiv-Reflexive-Graph = + edge-equiv-directed-graph-Reflexive-Graph G H + equiv-directed-graph-equiv-Reflexive-Graph + + refl-equiv-Reflexive-Graph : + (x : vertex-Reflexive-Graph G) → + edge-equiv-Reflexive-Graph (refl-Reflexive-Graph G x) = + refl-Reflexive-Graph H (vertex-equiv-Reflexive-Graph x) + refl-equiv-Reflexive-Graph = pr2 e + + hom-equiv-Reflexive-Graph : + hom-Reflexive-Graph G H + pr1 (pr1 hom-equiv-Reflexive-Graph) = vertex-equiv-Reflexive-Graph + pr2 (pr1 hom-equiv-Reflexive-Graph) _ _ = edge-equiv-Reflexive-Graph + pr2 hom-equiv-Reflexive-Graph = refl-equiv-Reflexive-Graph +``` + diff --git a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..b0f60f75c8 --- /dev/null +++ b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md @@ -0,0 +1,251 @@ +# Fibers of morphisms into reflexive graphs + +```agda +module graph-theory.fibers-morphisms-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.dependent-identifications +open import foundation.dependent-pair-types +open import foundation.equality-dependent-pair-types +open import foundation.equivalences +open import foundation.families-of-equivalences +open import foundation.fibers-of-maps +open import foundation.identity-types +open import foundation.universe-levels + +open import graph-theory.dependent-coproducts-reflexive-graphs +open import graph-theory.dependent-directed-graphs +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.fibers-morphisms-directed-graphs +open import graph-theory.reflexive-graphs +open import graph-theory.equivalences-dependent-reflexive-graphs +open import graph-theory.equivalences-reflexive-graphs +open import graph-theory.morphisms-reflexive-graphs +``` + +
+ +## Idea + +Consider a [morphism](graph-theory.morphisms-reflexive-graphs.md) `f : H → G` of +[reflexive graphs](graph-theory.reflexive-graphs.md). The +{{#concept "fiber" Disambiguation="morphisms of reflexive graphs"}} of `f` is the +[dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `fib_f` +over `G` given by + +```text + (fib_f)₀ x := fib f₀ + (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e + (fib_f)ᵣ (y , refl) := (Hᵣ x , fᵣ x). +``` + +## Definitions + +### The fiber of a morphism of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) + (f : hom-Reflexive-Graph H G) + where + + dependent-directed-graph-fiber-hom-Reflexive-Graph : + Dependent-Directed-Graph + ( l1 ⊔ l3) + ( l2 ⊔ l4) + ( directed-graph-Reflexive-Graph G) + dependent-directed-graph-fiber-hom-Reflexive-Graph = + fiber-hom-Directed-Graph + ( directed-graph-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + ( hom-directed-graph-hom-Reflexive-Graph H G f) + + vertex-fiber-hom-Reflexive-Graph : + vertex-Reflexive-Graph G → UU (l1 ⊔ l3) + vertex-fiber-hom-Reflexive-Graph = + vertex-Dependent-Directed-Graph + dependent-directed-graph-fiber-hom-Reflexive-Graph + + edge-fiber-hom-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} (e : edge-Reflexive-Graph G x x') → + vertex-fiber-hom-Reflexive-Graph x → + vertex-fiber-hom-Reflexive-Graph x' → UU (l2 ⊔ l4) + edge-fiber-hom-Reflexive-Graph = + edge-Dependent-Directed-Graph + dependent-directed-graph-fiber-hom-Reflexive-Graph + + refl-fiber-hom-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} + (y : vertex-fiber-hom-Reflexive-Graph x) → + edge-fiber-hom-Reflexive-Graph (refl-Reflexive-Graph G x) y y + pr1 (refl-fiber-hom-Reflexive-Graph (y , refl)) = + refl-Reflexive-Graph H y + pr2 (refl-fiber-hom-Reflexive-Graph (y , refl)) = + refl-hom-Reflexive-Graph H G f y + + fiber-hom-Reflexive-Graph : + Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + pr1 fiber-hom-Reflexive-Graph = + dependent-directed-graph-fiber-hom-Reflexive-Graph + pr2 fiber-hom-Reflexive-Graph _ = + refl-fiber-hom-Reflexive-Graph +``` + +## Properties + +### The coproduct of the fibers of a morphism of reflexive graphs is the equivalent to the codomain + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) + (f : hom-Reflexive-Graph H G) + where + + equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph : + equiv-directed-graph-Reflexive-Graph + ( H) + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph = + compute-Σ-fiber-hom-Directed-Graph + ( directed-graph-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + ( hom-directed-graph-hom-Reflexive-Graph H G f) + + vertex-compute-Σ-fiber-hom-Reflexive-Graph : + vertex-Reflexive-Graph H → + vertex-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f) + vertex-compute-Σ-fiber-hom-Reflexive-Graph = + vertex-equiv-directed-graph-Reflexive-Graph H + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + ( equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph) + + edge-compute-Σ-fiber-hom-Reflexive-graph : + {x x' : vertex-Reflexive-Graph H} → + edge-Reflexive-Graph H x x' → + edge-Σ-Reflexive-Graph + ( fiber-hom-Reflexive-Graph H G f) + ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x) + ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x') + edge-compute-Σ-fiber-hom-Reflexive-graph = + edge-equiv-directed-graph-Reflexive-Graph H + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + ( equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph) + + refl-compute-Σ-fiber-hom-Reflexive-Graph : + (x : vertex-Reflexive-Graph H) → + edge-compute-Σ-fiber-hom-Reflexive-graph (refl-Reflexive-Graph H x) = + refl-Σ-Reflexive-Graph + ( fiber-hom-Reflexive-Graph H G f) + ( vertex-compute-Σ-fiber-hom-Reflexive-Graph x) + refl-compute-Σ-fiber-hom-Reflexive-Graph x = + eq-pair-Σ + ( refl-hom-Reflexive-Graph H G f x) + ( ( inv + ( compute-tr-fiber + ( edge-hom-Reflexive-Graph H G f) + ( refl-hom-Reflexive-Graph H G f x) + ( _))) ∙ + ( refl)) + + compute-Σ-fiber-hom-Reflexive-Graph : + equiv-Reflexive-Graph + ( H) + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + pr1 compute-Σ-fiber-hom-Reflexive-Graph = + equiv-directed-graph-compute-Σ-fiber-hom-Reflexive-Graph + pr2 compute-Σ-fiber-hom-Reflexive-Graph = + refl-compute-Σ-fiber-hom-Reflexive-Graph + + hom-compute-Σ-fiber-hom-Reflexive-Graph : + hom-Reflexive-Graph + ( H) + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + hom-compute-Σ-fiber-hom-Reflexive-Graph = + hom-equiv-Reflexive-Graph H + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + ( compute-Σ-fiber-hom-Reflexive-Graph) +``` + +### The equivalence of the domain and the total graph of the fibers of a morphism of graphs fits in a commuting triangle + +```agda +module _ + {l1 l2 l3 l4 : Level} (H : Reflexive-Graph l1 l2) (G : Reflexive-Graph l3 l4) + (f : hom-Reflexive-Graph H G) + where + +-- htpy-compute-Σ-fiber-hom-Reflexive-Graph : +-- htpy-hom-Reflexive-Graph H G f +-- ( comp-hom-Reflexive-Graph H +-- ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) +-- ( G) +-- ( pr1-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) +-- ( hom-compute-Σ-fiber-hom-Reflexive-Graph H G f)) +-- htpy-compute-Σ-fiber-hom-Reflexive-Graph = +-- refl-htpy-hom-Reflexive-Graph H G f +-- ``` + +-- ### The fibers of the first projection of a dependent coproduct reflexive graph + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} +-- (H : Dependent-Reflexive-Graph l3 l4 G) +-- where + +-- fiber-pr1-Σ-Reflexive-Graph : Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G +-- fiber-pr1-Σ-Reflexive-Graph = +-- fiber-hom-Reflexive-Graph +-- ( Σ-Reflexive-Graph H) +-- ( G) +-- ( pr1-Σ-Reflexive-Graph H) + +-- vertex-fiber-pr1-Σ-Reflexive-Graph : +-- (x : vertex-Reflexive-Graph G) → UU (l1 ⊔ l3) +-- vertex-fiber-pr1-Σ-Reflexive-Graph = +-- vertex-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph + +-- edge-fiber-pr1-Σ-Reflexive-Graph : +-- {x x' : vertex-Reflexive-Graph G} → +-- edge-Reflexive-Graph G x x' → +-- vertex-fiber-pr1-Σ-Reflexive-Graph x → +-- vertex-fiber-pr1-Σ-Reflexive-Graph x' → UU (l2 ⊔ l4) +-- edge-fiber-pr1-Σ-Reflexive-Graph = +-- edge-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph + +-- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph : +-- fam-equiv +-- ( vertex-fiber-pr1-Σ-Reflexive-Graph) +-- ( vertex-Dependent-Reflexive-Graph H) +-- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph = +-- equiv-fiber-pr1 _ + +-- vertex-compute-fiber-pr1-Σ-Reflexive-Graph : +-- {x : vertex-Reflexive-Graph G} → +-- vertex-fiber-pr1-Σ-Reflexive-Graph x → +-- vertex-Dependent-Reflexive-Graph H x +-- vertex-compute-fiber-pr1-Σ-Reflexive-Graph = +-- map-fiber-pr1 _ _ + +-- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph : +-- {x x' : vertex-Reflexive-Graph G} +-- (a : edge-Reflexive-Graph G x x') → +-- (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → +-- (y' : vertex-fiber-pr1-Σ-Reflexive-Graph x') → +-- edge-fiber-pr1-Σ-Reflexive-Graph a y y' ≃ +-- edge-Dependent-Reflexive-Graph H a +-- ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) +-- ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') +-- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph a (y , refl) (y' , refl) = +-- equiv-fiber-pr1 _ _ + +-- compute-fiber-pr1-Σ-Reflexive-Graph : +-- equiv-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph H +-- pr1 compute-fiber-pr1-Σ-Reflexive-Graph = +-- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph +-- pr2 compute-fiber-pr1-Σ-Reflexive-Graph _ _ = +-- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph +-- ``` diff --git a/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md b/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md index 0589164d3c..d82dd16ca7 100644 --- a/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md @@ -79,4 +79,11 @@ module _ ( λ u → edge-Dependent-Reflexive-Graph B u y y) ( inv (refl-hom-Reflexive-Graph C A f x)) ( refl-Dependent-Reflexive-Graph B y) + + pullback-Dependent-Reflexive-Graph : + Dependent-Reflexive-Graph l5 l6 C + pr1 pullback-Dependent-Reflexive-Graph = + dependent-directed-graph-pullback-Dependent-Reflexive-Graph + pr2 pullback-Dependent-Reflexive-Graph _ = + refl-pullback-Dependent-Reflexive-Graph ``` diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index f824d3e71e..49aed977b9 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -8,6 +8,9 @@ module graph-theory.reflexive-graphs where ```agda open import foundation.dependent-pair-types +open import foundation.doubly-dependent-identifications +open import foundation.identity-types +open import foundation.reflexive-relations open import foundation.universe-levels open import graph-theory.directed-graphs @@ -44,6 +47,20 @@ module _ refl-Reflexive-Graph : (x : vertex-Reflexive-Graph) → edge-Reflexive-Graph x x refl-Reflexive-Graph = pr2 G + + reflexive-relation-Reflexive-Graph : + Reflexive-Relation l2 vertex-Reflexive-Graph + pr1 reflexive-relation-Reflexive-Graph = edge-Reflexive-Graph + pr2 reflexive-relation-Reflexive-Graph = refl-Reflexive-Graph + + doubly-dependent-identification-refl-Reflexive-Graph : + {x y : vertex-Reflexive-Graph} (p : x = y) → + doubly-dependent-identification edge-Reflexive-Graph p p + ( refl-Reflexive-Graph x) + ( refl-Reflexive-Graph y) + doubly-dependent-identification-refl-Reflexive-Graph = + doubly-dependent-identification-refl-Reflexive-Relation + reflexive-relation-Reflexive-Graph ``` ## See also diff --git a/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..02324da79a --- /dev/null +++ b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md @@ -0,0 +1,263 @@ +# Sections of dependent reflexive graphs + +```agda +module graph-theory.sections-dependent-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-binary-dependent-functions +open import foundation.action-on-identifications-dependent-functions +open import foundation.action-on-identifications-functions +open import foundation.commuting-squares-of-identifications +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.function-types +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopies +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.reflexive-relations +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.reflexive-graphs +open import graph-theory.sections-dependent-directed-graphs +``` + +
+ +## Idea + +Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) +`B` over a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A +{{#concept "section" Disambiguation="dependent reflexive graph" Agda=section-Dependent-Reflexive-Graph}} +`f` of `B` consists of + +- A dependent function `f₀ : (x : A₀) → B₀ x` +- A family of dependent functions + + ```text + f₁ : (e : A₁ x y) → B₁ e (f₀ x) (f₀ y) + ``` + + indexed by `x y : A₀`. + +Note that [graph homomorphisms](graph-theory.morphisms-reflexive-graphs.md) from +`A` to `B` are sections of the constant dependent reflexive graph at `B` over +`A`. + +## Definitions + +### The type of sections of dependent directed graphs of a dependent reflexive graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + where + + section-dependent-directed-graph-Dependent-Reflexive-Graph : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + section-dependent-directed-graph-Dependent-Reflexive-Graph = + section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + + vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph : + section-dependent-directed-graph-Dependent-Reflexive-Graph → + (x : vertex-Reflexive-Graph A) → + vertex-Dependent-Reflexive-Graph B x + vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph = + vertex-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + + edge-section-dependent-directed-graph-Dependent-Reflexive-Graph : + (f : section-dependent-directed-graph-Dependent-Reflexive-Graph) → + {x y : vertex-Reflexive-Graph A} + (e : edge-Reflexive-Graph A x y) → + edge-Dependent-Reflexive-Graph B e + ( vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph f x) + ( vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph f y) + edge-section-dependent-directed-graph-Dependent-Reflexive-Graph = + edge-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) +``` + +### Sections of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + where + + section-Dependent-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + section-Dependent-Reflexive-Graph = + Σ ( section-dependent-directed-graph-Dependent-Reflexive-Graph B) + ( λ f → + ( x : vertex-Reflexive-Graph A) → + edge-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( f) + ( refl-Reflexive-Graph A x) = + refl-Dependent-Reflexive-Graph B + ( vertex-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( f) + ( x))) +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + (f : section-Dependent-Reflexive-Graph B) + where + + section-dependent-directed-graph-section-Dependent-Reflexive-Graph : + section-dependent-directed-graph-Dependent-Reflexive-Graph B + section-dependent-directed-graph-section-Dependent-Reflexive-Graph = + pr1 f + + vertex-section-Dependent-Reflexive-Graph : + (x : vertex-Reflexive-Graph A) → + vertex-Dependent-Reflexive-Graph B x + vertex-section-Dependent-Reflexive-Graph = + vertex-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph) + + edge-section-Dependent-Reflexive-Graph : + {x y : vertex-Reflexive-Graph A} → + (e : edge-Reflexive-Graph A x y) → + edge-Dependent-Reflexive-Graph B e + ( vertex-section-Dependent-Reflexive-Graph x) + ( vertex-section-Dependent-Reflexive-Graph y) + edge-section-Dependent-Reflexive-Graph = + edge-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph) + + refl-section-Dependent-Reflexive-Graph : + (x : vertex-Reflexive-Graph A) → + edge-section-Dependent-Reflexive-Graph + ( refl-Reflexive-Graph A x) = + refl-Dependent-Reflexive-Graph B + ( vertex-section-Dependent-Reflexive-Graph x) + refl-section-Dependent-Reflexive-Graph = pr2 f +``` + +### Homotopies of sections of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + (f : section-Dependent-Reflexive-Graph B) + where + + htpy-section-Dependent-Reflexive-Graph : + section-Dependent-Reflexive-Graph B → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + htpy-section-Dependent-Reflexive-Graph g = + Σ ( htpy-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph + B f) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph + B g)) + ( λ (H₀ , H₁) → + (x : vertex-Reflexive-Graph A) → + coherence-square-identifications + ( ap + ( ( tr + ( edge-Dependent-Reflexive-Graph B + ( refl-Reflexive-Graph A x) + ( vertex-section-Dependent-Reflexive-Graph B g x)) + ( H₀ x)) ∘ + ( tr + ( λ u → + edge-Dependent-Reflexive-Graph B + ( refl-Reflexive-Graph A x) + ( u) + ( vertex-section-Dependent-Reflexive-Graph B f x)) + ( H₀ x))) + ( refl-section-Dependent-Reflexive-Graph B f x)) + ( H₁ (refl-Reflexive-Graph A x)) + ( doubly-dependent-identification-refl-Reflexive-Relation + ( edge-Dependent-Reflexive-Graph B (refl-Reflexive-Graph A x) , + refl-Dependent-Reflexive-Graph B) + ( H₀ x)) + ( refl-section-Dependent-Reflexive-Graph B g x)) + + refl-htpy-section-Dependent-Reflexive-Graph : + htpy-section-Dependent-Reflexive-Graph f + pr1 refl-htpy-section-Dependent-Reflexive-Graph = + refl-htpy-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph B f) + pr2 refl-htpy-section-Dependent-Reflexive-Graph x = + inv (right-unit ∙ ap-id _) +``` + +## Properties + +### Extensionality of sections of dependent reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : Reflexive-Graph l1 l2} + (B : Dependent-Reflexive-Graph l3 l4 A) + (f : section-Dependent-Reflexive-Graph B) + where + + abstract + is-torsorial-htpy-section-Dependent-Reflexive-Graph : + is-torsorial (htpy-section-Dependent-Reflexive-Graph B f) + is-torsorial-htpy-section-Dependent-Reflexive-Graph = + is-torsorial-Eq-structure + ( is-torsorial-htpy-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph + ( B) + ( f))) + ( ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph + ( B) + ( f)) , + ( refl-htpy-section-Dependent-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph B) + ( section-dependent-directed-graph-section-Dependent-Reflexive-Graph + ( B) + ( f)))) + ( is-torsorial-htpy' _) + + htpy-eq-section-Dependent-Reflexive-Graph : + (g : section-Dependent-Reflexive-Graph B) → + f = g → htpy-section-Dependent-Reflexive-Graph B f g + htpy-eq-section-Dependent-Reflexive-Graph g refl = + refl-htpy-section-Dependent-Reflexive-Graph B f + + abstract + is-equiv-htpy-eq-section-Dependent-Reflexive-Graph : + (g : section-Dependent-Reflexive-Graph B) → + is-equiv (htpy-eq-section-Dependent-Reflexive-Graph g) + is-equiv-htpy-eq-section-Dependent-Reflexive-Graph = + fundamental-theorem-id + is-torsorial-htpy-section-Dependent-Reflexive-Graph + htpy-eq-section-Dependent-Reflexive-Graph + + extensionality-section-Dependent-Reflexive-Graph : + (g : section-Dependent-Reflexive-Graph B) → + (f = g) ≃ htpy-section-Dependent-Reflexive-Graph B f g + pr1 (extensionality-section-Dependent-Reflexive-Graph g) = + htpy-eq-section-Dependent-Reflexive-Graph g + pr2 (extensionality-section-Dependent-Reflexive-Graph g) = + is-equiv-htpy-eq-section-Dependent-Reflexive-Graph g + + eq-htpy-section-Dependent-Reflexive-Graph : + (g : section-Dependent-Reflexive-Graph B) → + htpy-section-Dependent-Reflexive-Graph B f g → f = g + eq-htpy-section-Dependent-Reflexive-Graph g = + map-inv-equiv (extensionality-section-Dependent-Reflexive-Graph g) +``` From cd31b2059d7f322cc564708992fef82cb1c07215 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 22 Oct 2024 16:05:00 -0400 Subject: [PATCH 34/42] bugs --- src/graph-theory/walks-directed-graphs.lagda.md | 2 +- src/trees/equivalences-directed-trees.lagda.md | 12 ++++++------ .../equivalences-enriched-directed-trees.lagda.md | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/graph-theory/walks-directed-graphs.lagda.md b/src/graph-theory/walks-directed-graphs.lagda.md index 89c43351a6..b7e9537b73 100644 --- a/src/graph-theory/walks-directed-graphs.lagda.md +++ b/src/graph-theory/walks-directed-graphs.lagda.md @@ -650,7 +650,7 @@ module _ square-compute-total-walk-of-length-equiv-Directed-Graph x y (succ-ℕ n , z , f , w) = ap - ( cons-walk-Directed-Graph (edge-equiv-Directed-Graph G H e x z f)) + ( cons-walk-Directed-Graph (edge-equiv-Directed-Graph G H e f)) ( square-compute-total-walk-of-length-equiv-Directed-Graph z y (n , w)) is-equiv-walk-equiv-Directed-Graph : diff --git a/src/trees/equivalences-directed-trees.lagda.md b/src/trees/equivalences-directed-trees.lagda.md index 196cd3673f..7a6c160ca5 100644 --- a/src/trees/equivalences-directed-trees.lagda.md +++ b/src/trees/equivalences-directed-trees.lagda.md @@ -144,7 +144,7 @@ module _ ( e) edge-equiv-Directed-Tree : - (x y : node-Directed-Tree S) → + {x y : node-Directed-Tree S} → edge-Directed-Tree S x y → edge-Directed-Tree T ( node-equiv-Directed-Tree x) @@ -156,7 +156,7 @@ module _ ( e) is-edge-equiv-equiv-Directed-Tree : - (x y : node-Directed-Tree S) → is-equiv (edge-equiv-Directed-Tree x y) + (x y : node-Directed-Tree S) → is-equiv (edge-equiv-Directed-Tree {x} {y}) is-edge-equiv-equiv-Directed-Tree = is-edge-equiv-equiv-Directed-Graph ( graph-Directed-Tree S) @@ -268,7 +268,7 @@ module _ edge-equiv-equiv-Directed-Tree R T comp-equiv-Directed-Tree edge-comp-equiv-Directed-Tree : - (x y : node-Directed-Tree R) → + {x y : node-Directed-Tree R} → edge-Directed-Tree R x y → edge-Directed-Tree T ( node-comp-equiv-Directed-Tree x) @@ -306,8 +306,8 @@ module _ ( edge-Directed-Tree T) ( node-htpy-equiv-Directed-Tree α x) ( node-htpy-equiv-Directed-Tree α y) - ( edge-equiv-Directed-Tree S T f x y e) = - edge-equiv-Directed-Tree S T g x y e + ( edge-equiv-Directed-Tree S T f e) = + edge-equiv-Directed-Tree S T g e edge-htpy-equiv-Directed-Tree = edge-htpy-hom-Directed-Tree S T ( hom-equiv-Directed-Tree S T f) @@ -530,7 +530,7 @@ module _ ( f) edge-inv-equiv-Directed-Tree : - (x y : node-Directed-Tree T) → + {x y : node-Directed-Tree T} → edge-Directed-Tree T x y → edge-Directed-Tree S ( node-inv-equiv-Directed-Tree x) diff --git a/src/trees/equivalences-enriched-directed-trees.lagda.md b/src/trees/equivalences-enriched-directed-trees.lagda.md index e77aef9f75..620a0344b9 100644 --- a/src/trees/equivalences-enriched-directed-trees.lagda.md +++ b/src/trees/equivalences-enriched-directed-trees.lagda.md @@ -165,7 +165,7 @@ module _ ( equiv-directed-tree-equiv-Enriched-Directed-Tree) edge-equiv-Enriched-Directed-Tree : - (x y : node-Enriched-Directed-Tree A B S) → + {x y : node-Enriched-Directed-Tree A B S} → edge-Enriched-Directed-Tree A B S x y → edge-Enriched-Directed-Tree A B T ( node-equiv-Enriched-Directed-Tree x) @@ -326,7 +326,7 @@ module _ ( equiv-directed-tree-comp-equiv-Enriched-Directed-Tree) edge-comp-equiv-Enriched-Directed-Tree : - (x y : node-Enriched-Directed-Tree A B R) → + {x y : node-Enriched-Directed-Tree A B R} → edge-Enriched-Directed-Tree A B R x y → edge-Enriched-Directed-Tree A B T ( node-comp-equiv-Enriched-Directed-Tree x) From c12c18d04c43956068c0d41dc0d805141cf74c04 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 23 Oct 2024 09:54:30 -0400 Subject: [PATCH 35/42] work --- ...ations-binary-dependent-functions.lagda.md | 11 +- .../binary-dependent-identifications.lagda.md | 43 ++++++++ src/foundation/binary-transport.lagda.md | 2 +- .../dependent-identifications.lagda.md | 2 +- .../doubly-dependent-identifications.lagda.md | 40 ------- src/foundation/reflexive-relations.lagda.md | 28 +++-- .../morphisms-directed-graphs.lagda.md | 4 +- .../morphisms-reflexive-graphs.lagda.md | 103 +++++++++++++++++- src/graph-theory/reflexive-graphs.lagda.md | 10 +- ...ctions-dependent-reflexive-graphs.lagda.md | 7 +- 10 files changed, 183 insertions(+), 67 deletions(-) create mode 100644 src/foundation/binary-dependent-identifications.lagda.md delete mode 100644 src/foundation/doubly-dependent-identifications.lagda.md diff --git a/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md b/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md index 9546d7a3a9..fafa19d405 100644 --- a/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md +++ b/src/foundation/action-on-identifications-binary-dependent-functions.lagda.md @@ -8,7 +8,7 @@ module foundation.action-on-identifications-binary-dependent-functions where ```agda open import foundation.action-on-identifications-dependent-functions -open import foundation.doubly-dependent-identifications +open import foundation.binary-dependent-identifications open import foundation.universe-levels open import foundation-core.identity-types @@ -20,10 +20,11 @@ open import foundation-core.identity-types 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 [doubly dependent identification](foundation.doubly-dependent-identifications.md) +`q : y = y'` in `B`, we obtain a +[binary dependent identification](foundation.binary-dependent-identifications.md) ```text - apd-binary f p q : doubly-dependent-identification p q (f x y) (f x' y') + apd-binary f p q : binary-dependent-identification p q (f x y) (f x' y') ``` we call this the @@ -41,8 +42,8 @@ module _ apd-binary : {x x' : A} (p : x = x') {y y' : B} (q : y = y') → - doubly-dependent-identification C p q (f x y) (f x' y') - apd-binary refl q = apd (f _) q + binary-dependent-identification C p q (f x y) (f x' y') + apd-binary refl refl = refl ``` ## See also diff --git a/src/foundation/binary-dependent-identifications.lagda.md b/src/foundation/binary-dependent-identifications.lagda.md new file mode 100644 index 0000000000..5dad67267d --- /dev/null +++ b/src/foundation/binary-dependent-identifications.lagda.md @@ -0,0 +1,43 @@ +# Binary dependent identifications + +```agda +module foundation.binary-dependent-identifications where +``` + +
Imports + +```agda +open import foundation.binary-transport +open import foundation.identity-types +open import foundation.universe-levels +``` + +
+ +## 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 + +### Doubly 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' +``` diff --git a/src/foundation/binary-transport.lagda.md b/src/foundation/binary-transport.lagda.md index 5ac3a40225..5ce9abd175 100644 --- a/src/foundation/binary-transport.lagda.md +++ b/src/foundation/binary-transport.lagda.md @@ -37,7 +37,7 @@ module _ where binary-tr : (p : x = x') (q : y = y') → C x y → C x' y' - binary-tr refl refl = id + binary-tr p q c = tr (C _) q (tr (λ u → C u _) p c) is-equiv-binary-tr : (p : x = x') (q : y = y') → is-equiv (binary-tr p q) is-equiv-binary-tr refl refl = is-equiv-id diff --git a/src/foundation/dependent-identifications.lagda.md b/src/foundation/dependent-identifications.lagda.md index 0c2a1184c6..878dc6e3de 100644 --- a/src/foundation/dependent-identifications.lagda.md +++ b/src/foundation/dependent-identifications.lagda.md @@ -305,4 +305,4 @@ module _ ## See also -- [Doubly dependent identifications](foundation.doubly-dependent-identifications.md) +- [Doubly dependent identifications](foundation.binary-dependent-identifications.md) diff --git a/src/foundation/doubly-dependent-identifications.lagda.md b/src/foundation/doubly-dependent-identifications.lagda.md deleted file mode 100644 index 712b7650a9..0000000000 --- a/src/foundation/doubly-dependent-identifications.lagda.md +++ /dev/null @@ -1,40 +0,0 @@ -# Doubly dependent identifications - -```agda -module foundation.doubly-dependent-identifications where -``` - -
Imports - -```agda -open import foundation.dependent-identifications -open import foundation.identity-types -open import foundation.transport-along-identifications -open import foundation.universe-levels -``` - -
- -## 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 "doubly dependent identification" Agda=doubly-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 - -### Doubly dependent identifications - -```agda -module _ - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (C : A → B → UU l3) - where - - doubly-dependent-identification : - {x x' : A} (p : x = x') {y y' : B} (q : y = y') → - C x y → C x' y' → UU l3 - doubly-dependent-identification p q c c' = - dependent-identification (C _) q (tr (λ u → C u _) p c) c' -``` diff --git a/src/foundation/reflexive-relations.lagda.md b/src/foundation/reflexive-relations.lagda.md index d297c08cbd..5d6ee9f16b 100644 --- a/src/foundation/reflexive-relations.lagda.md +++ b/src/foundation/reflexive-relations.lagda.md @@ -9,7 +9,7 @@ module foundation.reflexive-relations where ```agda open import foundation.binary-relations open import foundation.dependent-pair-types -open import foundation.doubly-dependent-identifications +open import foundation.binary-dependent-identifications open import foundation.universe-levels open import foundation-core.identity-types @@ -54,32 +54,44 @@ Id-Reflexive-Relation A = (Id , (λ x → refl)) ### A formulation of the dependent action on identifications of reflexivity -Consider a reflexive relation `R` on a type `A` with reflexivity `r : (x : A) → R x x`, and consider an [identification](foundation-core.identity-types.md) `p : x = y` in `A`. The usual [action on identifications](foundation.action-on-identifications-dependent-functions.md) yields a [dependent identification](foundation.dependent-identifications.md) +Consider a reflexive relation `R` on a type `A` with reflexivity +`r : (x : A) → R x x`, and consider an +[identification](foundation-core.identity-types.md) `p : x = y` in `A`. The +usual +[action on identifications](foundation.action-on-identifications-dependent-functions.md) +yields a [dependent identification](foundation.dependent-identifications.md) ```text tr (λ u → R u u) p (r x) = (r y). ``` -However, since `R` is a binary indexed family of types, there is also the [doubly dependent identity type](foundation.doubly-dependent-identifications.md), which can be used to express another version of the action on identifications of the reflexivity element `r`: +However, since `R` is a binary indexed family of types, there is also the +[binary dependent identity type](foundation.binary-dependent-identifications.md), +which can be used to express another version of the action on identifications of +the reflexivity element `r`: ```text - doubly-dependent-identification R p p (r x) (r y). + binary-dependent-identification R p p (r x) (r y). ``` -This action on identifications can be seen as an instance of a dependent function over the diagonal map `Δ : A → A × A`, a situation wich can be generalized. At the present time, however, the library lacks infrastructure for the general formulation of the action on identifications of dependent functions over functions yielding doubly dependent identifications. +This action on identifications can be seen as an instance of a dependent +function over the diagonal map `Δ : A → A × A`, a situation wich can be +generalized. At the present time, however, the library lacks infrastructure for +the general formulation of the action on identifications of dependent functions +over functions yielding binary dependent identifications. ```agda module _ {l1 l2 : Level} {A : UU l1} (R : Reflexive-Relation l2 A) where - doubly-dependent-identification-refl-Reflexive-Relation : + binary-dependent-identification-refl-Reflexive-Relation : {x y : A} (p : x = y) → - doubly-dependent-identification + binary-dependent-identification ( rel-Reflexive-Relation R) ( p) ( p) ( refl-Reflexive-Relation R x) ( refl-Reflexive-Relation R y) - doubly-dependent-identification-refl-Reflexive-Relation refl = refl + binary-dependent-identification-refl-Reflexive-Relation refl = refl ``` diff --git a/src/graph-theory/morphisms-directed-graphs.lagda.md b/src/graph-theory/morphisms-directed-graphs.lagda.md index 3e2227c652..b8254dd141 100644 --- a/src/graph-theory/morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/morphisms-directed-graphs.lagda.md @@ -85,7 +85,7 @@ module _ ( λ y → edge-hom-Directed-Graph) ``` -### Composition of morphisms graphs +### Composition of morphisms of directed graphs ```agda module _ @@ -117,7 +117,7 @@ module _ pr2 (comp-hom-Directed-Graph g f) = edge-comp-hom-Directed-Graph g f ``` -### Identity morphisms graphs +### Identity morphisms of directed graphs ```agda module _ diff --git a/src/graph-theory/morphisms-reflexive-graphs.lagda.md b/src/graph-theory/morphisms-reflexive-graphs.lagda.md index 8f63a0e3e2..0108f5c2f4 100644 --- a/src/graph-theory/morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/morphisms-reflexive-graphs.lagda.md @@ -7,6 +7,7 @@ module graph-theory.morphisms-reflexive-graphs where
Imports ```agda +open import foundation.action-on-identifications-binary-dependent-functions open import foundation.action-on-identifications-functions open import foundation.binary-transport open import foundation.commuting-squares-of-identifications @@ -99,7 +100,7 @@ module _ refl-hom-Reflexive-Graph = pr2 f ``` -### Composition of morphisms graphs +### Composition of morphisms of reflexive graphs ```agda module _ @@ -146,7 +147,7 @@ module _ pr2 comp-hom-Reflexive-Graph = refl-comp-hom-Reflexive-Graph ``` -### Identity morphisms graphs +### Identity morphisms of reflexive graphs ```agda module _ @@ -157,3 +158,101 @@ module _ pr1 id-hom-Reflexive-Graph = id-hom-Directed-Graph _ pr2 id-hom-Reflexive-Graph _ = refl ``` + +### Homotopies of morphisms of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (f g : hom-Reflexive-Graph G H) + where + + htpy-hom-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + htpy-hom-Reflexive-Graph = + Σ ( htpy-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph G H f) + ( hom-directed-graph-hom-Reflexive-Graph G H g)) + ( λ (h₀ , h₁) → + (x : vertex-Reflexive-Graph G) → + coherence-square-identifications + ( ap + ( binary-tr (edge-Reflexive-Graph H) (h₀ x) (h₀ x)) + ( refl-hom-Reflexive-Graph G H f x)) + ( h₁ x x (refl-Reflexive-Graph G x)) + ( binary-dependent-identification-refl-Reflexive-Graph H (h₀ x)) + ( refl-hom-Reflexive-Graph G H g x)) +``` + +### The reflexive homotopy of morphisms of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (f : hom-Reflexive-Graph G H) + where + + refl-htpy-hom-Reflexive-Graph : htpy-hom-Reflexive-Graph G H f f + pr1 refl-htpy-hom-Reflexive-Graph = + refl-htpy-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph G H f) + pr2 refl-htpy-hom-Reflexive-Graph x = + inv (right-unit ∙ ap-id _) +``` + +## Properties + +### Extensionality of morphisms of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (G : Reflexive-Graph l1 l2) (H : Reflexive-Graph l3 l4) + (f : hom-Reflexive-Graph G H) + where + + is-torsorial-htpy-hom-Reflexive-Graph : + is-torsorial (htpy-hom-Reflexive-Graph G H f) + is-torsorial-htpy-hom-Reflexive-Graph = + is-torsorial-Eq-structure + ( is-torsorial-htpy-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph G H f)) + ( hom-directed-graph-hom-Reflexive-Graph G H f , + refl-htpy-hom-Directed-Graph + ( directed-graph-Reflexive-Graph G) + ( directed-graph-Reflexive-Graph H) + ( hom-directed-graph-hom-Reflexive-Graph G H f)) + ( is-torsorial-htpy' _) + + htpy-eq-hom-Reflexive-Graph : + (g : hom-Reflexive-Graph G H) → + f = g → htpy-hom-Reflexive-Graph G H f g + htpy-eq-hom-Reflexive-Graph g refl = + refl-htpy-hom-Reflexive-Graph G H f + + is-equiv-htpy-eq-hom-Reflexive-Graph : + (g : hom-Reflexive-Graph G H) → + is-equiv (htpy-eq-hom-Reflexive-Graph g) + is-equiv-htpy-eq-hom-Reflexive-Graph = + fundamental-theorem-id + is-torsorial-htpy-hom-Reflexive-Graph + htpy-eq-hom-Reflexive-Graph + + extensionality-hom-Reflexive-Graph : + (g : hom-Reflexive-Graph G H) → + (f = g) ≃ htpy-hom-Reflexive-Graph G H f g + pr1 (extensionality-hom-Reflexive-Graph g) = + htpy-eq-hom-Reflexive-Graph g + pr2 (extensionality-hom-Reflexive-Graph g) = + is-equiv-htpy-eq-hom-Reflexive-Graph g + + eq-htpy-hom-Reflexive-Graph : + (g : hom-Reflexive-Graph G H) → + htpy-hom-Reflexive-Graph G H f g → f = g + eq-htpy-hom-Reflexive-Graph g = + map-inv-equiv (extensionality-hom-Reflexive-Graph g) +``` diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index 49aed977b9..74116b8913 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -8,7 +8,7 @@ module graph-theory.reflexive-graphs where ```agda open import foundation.dependent-pair-types -open import foundation.doubly-dependent-identifications +open import foundation.binary-dependent-identifications open import foundation.identity-types open import foundation.reflexive-relations open import foundation.universe-levels @@ -53,13 +53,13 @@ module _ pr1 reflexive-relation-Reflexive-Graph = edge-Reflexive-Graph pr2 reflexive-relation-Reflexive-Graph = refl-Reflexive-Graph - doubly-dependent-identification-refl-Reflexive-Graph : + binary-dependent-identification-refl-Reflexive-Graph : {x y : vertex-Reflexive-Graph} (p : x = y) → - doubly-dependent-identification edge-Reflexive-Graph p p + binary-dependent-identification edge-Reflexive-Graph p p ( refl-Reflexive-Graph x) ( refl-Reflexive-Graph y) - doubly-dependent-identification-refl-Reflexive-Graph = - doubly-dependent-identification-refl-Reflexive-Relation + binary-dependent-identification-refl-Reflexive-Graph = + binary-dependent-identification-refl-Reflexive-Relation reflexive-relation-Reflexive-Graph ``` diff --git a/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md index 02324da79a..4e7a8917e8 100644 --- a/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md @@ -34,8 +34,9 @@ open import graph-theory.sections-dependent-directed-graphs ## Idea -Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) -`B` over a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A +Consider a +[dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `B` over +a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A {{#concept "section" Disambiguation="dependent reflexive graph" Agda=section-Dependent-Reflexive-Graph}} `f` of `B` consists of @@ -185,7 +186,7 @@ module _ ( H₀ x))) ( refl-section-Dependent-Reflexive-Graph B f x)) ( H₁ (refl-Reflexive-Graph A x)) - ( doubly-dependent-identification-refl-Reflexive-Relation + ( binary-dependent-identification-refl-Reflexive-Relation ( edge-Dependent-Reflexive-Graph B (refl-Reflexive-Graph A x) , refl-Dependent-Reflexive-Graph B) ( H₀ x)) From 6221b386f87b9cba8d3bdac1b34a4229d00a0e3a Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 23 Oct 2024 18:08:56 -0400 Subject: [PATCH 36/42] fibers of morphisms of reflexive graphs --- .../equality-dependent-pair-types.lagda.md | 18 +- ...alences-dependent-directed-graphs.lagda.md | 6 +- .../equivalences-directed-graphs.lagda.md | 38 +-- .../equivalences-undirected-graphs.lagda.md | 6 +- .../fibers-morphisms-directed-graphs.lagda.md | 24 +- ...fibers-morphisms-reflexive-graphs.lagda.md | 217 +++++++++++------- .../neighbors-undirected-graphs.lagda.md | 2 +- src/graph-theory/polygons.lagda.md | 10 +- ...g-universe-levels-directed-graphs.lagda.md | 16 +- src/trees/combinator-directed-trees.lagda.md | 14 +- .../equivalences-directed-trees.lagda.md | 20 +- ...ivalences-enriched-directed-trees.lagda.md | 8 +- ...functoriality-fiber-directed-tree.lagda.md | 8 +- ...ng-universe-levels-directed-trees.lagda.md | 12 +- ...oalgebras-polynomial-endofunctors.lagda.md | 28 +-- ...ying-trees-of-elements-of-w-types.lagda.md | 24 +- 16 files changed, 270 insertions(+), 181 deletions(-) diff --git a/src/foundation-core/equality-dependent-pair-types.lagda.md b/src/foundation-core/equality-dependent-pair-types.lagda.md index ffa4c8674f..626c99a1e6 100644 --- a/src/foundation-core/equality-dependent-pair-types.lagda.md +++ b/src/foundation-core/equality-dependent-pair-types.lagda.md @@ -71,11 +71,11 @@ module _ eq-pair-Σ' : {s t : Σ A B} → Eq-Σ s t → s = t eq-pair-Σ' p = eq-pair-Σ (pr1 p) (pr2 p) - + ap-pr1-eq-pair-eq-fiber : {x : A} {s t : B x} (p : s = t) → ap pr1 (eq-pair-eq-fiber p) = refl ap-pr1-eq-pair-eq-fiber refl = refl - + is-retraction-pair-eq-Σ : (s t : Σ A B) → pair-eq-Σ {s} {t} ∘ eq-pair-Σ' {s} {t} ~ id {A = Eq-Σ s t} is-retraction-pair-eq-Σ (pair x y) (pair .x .y) (pair refl refl) = refl @@ -155,6 +155,20 @@ tr-eq-pair-Σ : tr-eq-pair-Σ C refl refl u = refl ``` +### The action of `pr1` on identifcations of the form `eq-pair-Σ` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A → UU l2} + where + + ap-pr1-eq-pair-Σ : + {x x' : A} {y : B x} {y' : B x'} + (p : x = x') (q : dependent-identification B p y y') → + ap pr1 (eq-pair-Σ p q) = p + ap-pr1-eq-pair-Σ refl refl = refl +``` + ## See also - Equality proofs in cartesian product types are characterized in diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md index 4d916919bf..2cbd096355 100644 --- a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -134,7 +134,7 @@ module _ vertex-Dependent-Directed-Graph H x vertex-id-equiv-Dependent-Directed-Graph = id - equiv-edge-id-equiv-Dependent-Directed-Graph : + edge-equiv-id-equiv-Dependent-Directed-Graph : {x x' : vertex-Directed-Graph G} (a : edge-Directed-Graph G x x') (y : vertex-Dependent-Directed-Graph H x) @@ -143,14 +143,14 @@ module _ edge-Dependent-Directed-Graph H a ( vertex-id-equiv-Dependent-Directed-Graph y) ( vertex-id-equiv-Dependent-Directed-Graph y') - equiv-edge-id-equiv-Dependent-Directed-Graph a y y' = id-equiv + edge-equiv-id-equiv-Dependent-Directed-Graph a y y' = id-equiv id-equiv-Dependent-Directed-Graph : equiv-Dependent-Directed-Graph H H pr1 id-equiv-Dependent-Directed-Graph = vertex-equiv-id-equiv-Dependent-Directed-Graph pr2 id-equiv-Dependent-Directed-Graph _ _ = - equiv-edge-id-equiv-Dependent-Directed-Graph + edge-equiv-id-equiv-Dependent-Directed-Graph ``` ## Properties diff --git a/src/graph-theory/equivalences-directed-graphs.lagda.md b/src/graph-theory/equivalences-directed-graphs.lagda.md index 984918510f..a95e1ea270 100644 --- a/src/graph-theory/equivalences-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-directed-graphs.lagda.md @@ -38,8 +38,8 @@ open import graph-theory.morphisms-directed-graphs ## Idea -An {{#concept "equivalence of directed graphs" Agda=equiv-Directed-Graph}} from a -[directed graph](graph-theory.directed-graphs.md) `(V,E)` to a directed graph +An {{#concept "equivalence of directed graphs" Agda=equiv-Directed-Graph}} from +a [directed graph](graph-theory.directed-graphs.md) `(V,E)` to a directed graph `(V',E')` consists of an [equivalence](foundation-core.equivalences.md) `e : V ≃ V'` of vertices, and a family of equivalences `E x y ≃ E' (e x) (e y)` of edges indexed by `x y : V`. @@ -186,24 +186,24 @@ module _ (g : equiv-Directed-Graph H K) (f : equiv-Directed-Graph G H) where - equiv-vertex-comp-equiv-Directed-Graph : + vertex-equiv-comp-equiv-Directed-Graph : vertex-Directed-Graph G ≃ vertex-Directed-Graph K - equiv-vertex-comp-equiv-Directed-Graph = + vertex-equiv-comp-equiv-Directed-Graph = ( vertex-equiv-equiv-Directed-Graph H K g) ∘e ( vertex-equiv-equiv-Directed-Graph G H f) vertex-comp-equiv-Directed-Graph : vertex-Directed-Graph G → vertex-Directed-Graph K vertex-comp-equiv-Directed-Graph = - map-equiv equiv-vertex-comp-equiv-Directed-Graph + map-equiv vertex-equiv-comp-equiv-Directed-Graph - equiv-edge-comp-equiv-Directed-Graph : + edge-equiv-comp-equiv-Directed-Graph : (x y : vertex-Directed-Graph G) → edge-Directed-Graph G x y ≃ edge-Directed-Graph K ( vertex-comp-equiv-Directed-Graph x) ( vertex-comp-equiv-Directed-Graph y) - equiv-edge-comp-equiv-Directed-Graph x y = + edge-equiv-comp-equiv-Directed-Graph x y = ( edge-equiv-equiv-Directed-Graph H K g ( vertex-equiv-Directed-Graph G H f x) ( vertex-equiv-Directed-Graph G H f y)) ∘e @@ -216,14 +216,14 @@ module _ ( vertex-comp-equiv-Directed-Graph x) ( vertex-comp-equiv-Directed-Graph y) edge-comp-equiv-Directed-Graph x y = - map-equiv (equiv-edge-comp-equiv-Directed-Graph x y) + map-equiv (edge-equiv-comp-equiv-Directed-Graph x y) comp-equiv-Directed-Graph : equiv-Directed-Graph G K pr1 comp-equiv-Directed-Graph = - equiv-vertex-comp-equiv-Directed-Graph + vertex-equiv-comp-equiv-Directed-Graph pr2 comp-equiv-Directed-Graph = - equiv-edge-comp-equiv-Directed-Graph + edge-equiv-comp-equiv-Directed-Graph ``` ### Homotopies of equivalences of directed graphs @@ -349,9 +349,9 @@ module _ (f : equiv-Directed-Graph G H) where - equiv-vertex-inv-equiv-Directed-Graph : + vertex-equiv-inv-equiv-Directed-Graph : vertex-Directed-Graph H ≃ vertex-Directed-Graph G - equiv-vertex-inv-equiv-Directed-Graph = + vertex-equiv-inv-equiv-Directed-Graph = inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) vertex-inv-equiv-Directed-Graph : @@ -371,18 +371,18 @@ module _ is-retraction-vertex-inv-equiv-Directed-Graph = is-retraction-map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) - is-equiv-vertex-inv-equiv-Directed-Graph : + is-vertex-equiv-inv-equiv-Directed-Graph : is-equiv vertex-inv-equiv-Directed-Graph - is-equiv-vertex-inv-equiv-Directed-Graph = + is-vertex-equiv-inv-equiv-Directed-Graph = is-equiv-map-inv-equiv (vertex-equiv-equiv-Directed-Graph G H f) - equiv-edge-inv-equiv-Directed-Graph : + edge-equiv-inv-equiv-Directed-Graph : (x y : vertex-Directed-Graph H) → edge-Directed-Graph H x y ≃ edge-Directed-Graph G ( vertex-inv-equiv-Directed-Graph x) ( vertex-inv-equiv-Directed-Graph y) - equiv-edge-inv-equiv-Directed-Graph x y = + edge-equiv-inv-equiv-Directed-Graph x y = ( inv-equiv ( edge-equiv-equiv-Directed-Graph G H f ( vertex-inv-equiv-Directed-Graph x) @@ -399,15 +399,15 @@ module _ ( vertex-inv-equiv-Directed-Graph x) ( vertex-inv-equiv-Directed-Graph y) edge-inv-equiv-Directed-Graph = - map-equiv (equiv-edge-inv-equiv-Directed-Graph _ _) + map-equiv (edge-equiv-inv-equiv-Directed-Graph _ _) hom-inv-equiv-Directed-Graph : hom-Directed-Graph H G pr1 hom-inv-equiv-Directed-Graph = vertex-inv-equiv-Directed-Graph pr2 hom-inv-equiv-Directed-Graph _ _ = edge-inv-equiv-Directed-Graph inv-equiv-Directed-Graph : equiv-Directed-Graph H G - pr1 inv-equiv-Directed-Graph = equiv-vertex-inv-equiv-Directed-Graph - pr2 inv-equiv-Directed-Graph = equiv-edge-inv-equiv-Directed-Graph + pr1 inv-equiv-Directed-Graph = vertex-equiv-inv-equiv-Directed-Graph + pr2 inv-equiv-Directed-Graph = edge-equiv-inv-equiv-Directed-Graph vertex-is-section-inv-equiv-Directed-Graph : ( vertex-equiv-Directed-Graph G H f ∘ vertex-inv-equiv-Directed-Graph) ~ id diff --git a/src/graph-theory/equivalences-undirected-graphs.lagda.md b/src/graph-theory/equivalences-undirected-graphs.lagda.md index 8841a0e3bd..4b98ef0d5e 100644 --- a/src/graph-theory/equivalences-undirected-graphs.lagda.md +++ b/src/graph-theory/equivalences-undirected-graphs.lagda.md @@ -111,14 +111,14 @@ module _ edge-equiv-Undirected-Graph f p = map-equiv (edge-equiv-equiv-Undirected-Graph f p) - equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph : + edge-equiv-standard-unordered-pair-vertices-equiv-Undirected-Graph : (e : equiv-Undirected-Graph) (x y : vertex-Undirected-Graph G) → edge-Undirected-Graph G (standard-unordered-pair x y) ≃ edge-Undirected-Graph H ( standard-unordered-pair ( vertex-equiv-Undirected-Graph e x) ( vertex-equiv-Undirected-Graph e y)) - equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph e x y = + edge-equiv-standard-unordered-pair-vertices-equiv-Undirected-Graph e x y = ( equiv-tr ( edge-Undirected-Graph H) ( standard-unordered-pair-vertices-equiv-Undirected-Graph e x y)) ∘e @@ -133,7 +133,7 @@ module _ ( vertex-equiv-Undirected-Graph e y)) edge-standard-unordered-pair-vertices-equiv-Undirected-Graph e x y = map-equiv - ( equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph + ( edge-equiv-standard-unordered-pair-vertices-equiv-Undirected-Graph e x y) hom-equiv-Undirected-Graph : diff --git a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md index a1c95d3b87..114820bbb5 100644 --- a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md @@ -167,11 +167,11 @@ module _ edge-fiber-pr1-Σ-Directed-Graph = edge-Dependent-Directed-Graph fiber-pr1-Σ-Directed-Graph - equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph : + vertex-equiv-compute-fiber-pr1-Σ-Directed-Graph : fam-equiv ( vertex-fiber-pr1-Σ-Directed-Graph) ( vertex-Dependent-Directed-Graph H) - equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph = + vertex-equiv-compute-fiber-pr1-Σ-Directed-Graph = equiv-fiber-pr1 _ vertex-compute-fiber-pr1-Σ-Directed-Graph : @@ -181,7 +181,7 @@ module _ vertex-compute-fiber-pr1-Σ-Directed-Graph = map-fiber-pr1 _ _ - equiv-edge-compute-fiber-pr1-Σ-Directed-Graph : + edge-equiv-compute-fiber-pr1-Σ-Directed-Graph : {x x' : vertex-Directed-Graph G} (a : edge-Directed-Graph G x x') → (y : vertex-fiber-pr1-Σ-Directed-Graph x) → @@ -190,13 +190,25 @@ module _ edge-Dependent-Directed-Graph H a ( vertex-compute-fiber-pr1-Σ-Directed-Graph y) ( vertex-compute-fiber-pr1-Σ-Directed-Graph y') - equiv-edge-compute-fiber-pr1-Σ-Directed-Graph a (y , refl) (y' , refl) = + edge-equiv-compute-fiber-pr1-Σ-Directed-Graph a (y , refl) (y' , refl) = equiv-fiber-pr1 _ _ + edge-compute-fiber-pr1-Σ-Directed-Graph : + {x x' : vertex-Directed-Graph G} + {a : edge-Directed-Graph G x x'} → + {y : vertex-fiber-pr1-Σ-Directed-Graph x} → + {y' : vertex-fiber-pr1-Σ-Directed-Graph x'} → + edge-fiber-pr1-Σ-Directed-Graph a y y' → + edge-Dependent-Directed-Graph H a + ( vertex-compute-fiber-pr1-Σ-Directed-Graph y) + ( vertex-compute-fiber-pr1-Σ-Directed-Graph y') + edge-compute-fiber-pr1-Σ-Directed-Graph = + map-equiv (edge-equiv-compute-fiber-pr1-Σ-Directed-Graph _ _ _) + compute-fiber-pr1-Σ-Directed-Graph : equiv-Dependent-Directed-Graph fiber-pr1-Σ-Directed-Graph H pr1 compute-fiber-pr1-Σ-Directed-Graph = - equiv-vertex-compute-fiber-pr1-Σ-Directed-Graph + vertex-equiv-compute-fiber-pr1-Σ-Directed-Graph pr2 compute-fiber-pr1-Σ-Directed-Graph _ _ = - equiv-edge-compute-fiber-pr1-Σ-Directed-Graph + edge-equiv-compute-fiber-pr1-Σ-Directed-Graph ``` diff --git a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md index b0f60f75c8..16c65afccb 100644 --- a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md @@ -7,6 +7,9 @@ module graph-theory.fibers-morphisms-reflexive-graphs where
Imports ```agda +open import foundation.action-on-identifications-functions +open import foundation.binary-transport +open import foundation.commuting-squares-of-identifications open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.equality-dependent-pair-types @@ -19,11 +22,12 @@ open import foundation.universe-levels open import graph-theory.dependent-coproducts-reflexive-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.dependent-reflexive-graphs -open import graph-theory.fibers-morphisms-directed-graphs -open import graph-theory.reflexive-graphs +open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-dependent-reflexive-graphs open import graph-theory.equivalences-reflexive-graphs +open import graph-theory.fibers-morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.reflexive-graphs ```
@@ -32,9 +36,9 @@ open import graph-theory.morphisms-reflexive-graphs Consider a [morphism](graph-theory.morphisms-reflexive-graphs.md) `f : H → G` of [reflexive graphs](graph-theory.reflexive-graphs.md). The -{{#concept "fiber" Disambiguation="morphisms of reflexive graphs"}} of `f` is the -[dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `fib_f` -over `G` given by +{{#concept "fiber" Disambiguation="morphisms of reflexive graphs"}} of `f` is +the [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) +`fib_f` over `G` given by ```text (fib_f)₀ x := fib f₀ @@ -177,75 +181,134 @@ module _ (f : hom-Reflexive-Graph H G) where --- htpy-compute-Σ-fiber-hom-Reflexive-Graph : --- htpy-hom-Reflexive-Graph H G f --- ( comp-hom-Reflexive-Graph H --- ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) --- ( G) --- ( pr1-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) --- ( hom-compute-Σ-fiber-hom-Reflexive-Graph H G f)) --- htpy-compute-Σ-fiber-hom-Reflexive-Graph = --- refl-htpy-hom-Reflexive-Graph H G f --- ``` - --- ### The fibers of the first projection of a dependent coproduct reflexive graph - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} --- (H : Dependent-Reflexive-Graph l3 l4 G) --- where - --- fiber-pr1-Σ-Reflexive-Graph : Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G --- fiber-pr1-Σ-Reflexive-Graph = --- fiber-hom-Reflexive-Graph --- ( Σ-Reflexive-Graph H) --- ( G) --- ( pr1-Σ-Reflexive-Graph H) - --- vertex-fiber-pr1-Σ-Reflexive-Graph : --- (x : vertex-Reflexive-Graph G) → UU (l1 ⊔ l3) --- vertex-fiber-pr1-Σ-Reflexive-Graph = --- vertex-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph - --- edge-fiber-pr1-Σ-Reflexive-Graph : --- {x x' : vertex-Reflexive-Graph G} → --- edge-Reflexive-Graph G x x' → --- vertex-fiber-pr1-Σ-Reflexive-Graph x → --- vertex-fiber-pr1-Σ-Reflexive-Graph x' → UU (l2 ⊔ l4) --- edge-fiber-pr1-Σ-Reflexive-Graph = --- edge-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph - --- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph : --- fam-equiv --- ( vertex-fiber-pr1-Σ-Reflexive-Graph) --- ( vertex-Dependent-Reflexive-Graph H) --- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph = --- equiv-fiber-pr1 _ - --- vertex-compute-fiber-pr1-Σ-Reflexive-Graph : --- {x : vertex-Reflexive-Graph G} → --- vertex-fiber-pr1-Σ-Reflexive-Graph x → --- vertex-Dependent-Reflexive-Graph H x --- vertex-compute-fiber-pr1-Σ-Reflexive-Graph = --- map-fiber-pr1 _ _ - --- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph : --- {x x' : vertex-Reflexive-Graph G} --- (a : edge-Reflexive-Graph G x x') → --- (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → --- (y' : vertex-fiber-pr1-Σ-Reflexive-Graph x') → --- edge-fiber-pr1-Σ-Reflexive-Graph a y y' ≃ --- edge-Dependent-Reflexive-Graph H a --- ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) --- ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') --- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph a (y , refl) (y' , refl) = --- equiv-fiber-pr1 _ _ - --- compute-fiber-pr1-Σ-Reflexive-Graph : --- equiv-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph H --- pr1 compute-fiber-pr1-Σ-Reflexive-Graph = --- equiv-vertex-compute-fiber-pr1-Σ-Reflexive-Graph --- pr2 compute-fiber-pr1-Σ-Reflexive-Graph _ _ = --- equiv-edge-compute-fiber-pr1-Σ-Reflexive-Graph --- ``` + htpy-compute-Σ-fiber-hom-Reflexive-Graph : + htpy-hom-Reflexive-Graph H G f + ( comp-hom-Reflexive-Graph H + ( Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + ( G) + ( pr1-Σ-Reflexive-Graph (fiber-hom-Reflexive-Graph H G f)) + ( hom-compute-Σ-fiber-hom-Reflexive-Graph H G f)) + pr1 htpy-compute-Σ-fiber-hom-Reflexive-Graph = + htpy-compute-Σ-fiber-hom-Directed-Graph + ( directed-graph-Reflexive-Graph H) + ( directed-graph-Reflexive-Graph G) + ( hom-directed-graph-hom-Reflexive-Graph H G f) + pr2 htpy-compute-Σ-fiber-hom-Reflexive-Graph x = + ap + ( _∙ refl) + ( ( ap-pr1-eq-pair-Σ + ( refl-hom-Reflexive-Graph H G f x) + ( _)) ∙ + ( inv (ap-id (refl-hom-Reflexive-Graph H G f x)))) +``` + +### The fibers of the first projection of a dependent coproduct reflexive graph + +````agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + fiber-pr1-Σ-Reflexive-Graph : Dependent-Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) G + fiber-pr1-Σ-Reflexive-Graph = + fiber-hom-Reflexive-Graph + ( Σ-Reflexive-Graph H) + ( G) + ( pr1-Σ-Reflexive-Graph H) + + dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph : + Dependent-Directed-Graph + ( l1 ⊔ l3) + ( l2 ⊔ l4) + ( directed-graph-Reflexive-Graph G) + dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph = + dependent-directed-graph-Dependent-Reflexive-Graph + fiber-pr1-Σ-Reflexive-Graph + + vertex-fiber-pr1-Σ-Reflexive-Graph : + (x : vertex-Reflexive-Graph G) → UU (l1 ⊔ l3) + vertex-fiber-pr1-Σ-Reflexive-Graph = + vertex-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph + + edge-fiber-pr1-Σ-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} → + edge-Reflexive-Graph G x x' → + vertex-fiber-pr1-Σ-Reflexive-Graph x → + vertex-fiber-pr1-Σ-Reflexive-Graph x' → UU (l2 ⊔ l4) + edge-fiber-pr1-Σ-Reflexive-Graph = + edge-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph + + refl-fiber-pr1-Σ-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → + edge-fiber-pr1-Σ-Reflexive-Graph (refl-Reflexive-Graph G x) y y + refl-fiber-pr1-Σ-Reflexive-Graph = + refl-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph + + equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph : + equiv-Dependent-Directed-Graph + ( dependent-directed-graph-fiber-pr1-Σ-Reflexive-Graph) + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph = + compute-fiber-pr1-Σ-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-equiv-compute-fiber-pr1-Σ-Reflexive-Graph : + fam-equiv + ( vertex-fiber-pr1-Σ-Reflexive-Graph) + ( vertex-Dependent-Reflexive-Graph H) + vertex-equiv-compute-fiber-pr1-Σ-Reflexive-Graph = + vertex-equiv-compute-fiber-pr1-Σ-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + vertex-compute-fiber-pr1-Σ-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} → + vertex-fiber-pr1-Σ-Reflexive-Graph x → + vertex-Dependent-Reflexive-Graph H x + vertex-compute-fiber-pr1-Σ-Reflexive-Graph = + vertex-compute-fiber-pr1-Σ-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + edge-equiv-compute-fiber-pr1-Σ-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + (a : edge-Reflexive-Graph G x x') → + (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → + (y' : vertex-fiber-pr1-Σ-Reflexive-Graph x') → + edge-fiber-pr1-Σ-Reflexive-Graph a y y' ≃ + edge-Dependent-Reflexive-Graph H a + ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) + ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') + edge-equiv-compute-fiber-pr1-Σ-Reflexive-Graph = + edge-equiv-compute-fiber-pr1-Σ-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + edge-compute-fiber-pr1-Σ-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph G} + {a : edge-Reflexive-Graph G x x'} → + {y : vertex-fiber-pr1-Σ-Reflexive-Graph x} → + {y' : vertex-fiber-pr1-Σ-Reflexive-Graph x'} → + edge-fiber-pr1-Σ-Reflexive-Graph a y y' → + edge-Dependent-Reflexive-Graph H a + ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) + ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y') + edge-compute-fiber-pr1-Σ-Reflexive-Graph = + edge-compute-fiber-pr1-Σ-Directed-Graph + ( dependent-directed-graph-Dependent-Reflexive-Graph H) + + refl-compute-fiber-pr1-Σ-Reflexive-Graph : + {x : vertex-Reflexive-Graph G} + (y : vertex-fiber-pr1-Σ-Reflexive-Graph x) → + edge-compute-fiber-pr1-Σ-Reflexive-Graph + ( refl-fiber-pr1-Σ-Reflexive-Graph y) = + refl-Dependent-Reflexive-Graph H + ( vertex-compute-fiber-pr1-Σ-Reflexive-Graph y) + refl-compute-fiber-pr1-Σ-Reflexive-Graph ((x , y) , refl) = + refl + + compute-fiber-pr1-Σ-Reflexive-Graph : + equiv-Dependent-Reflexive-Graph fiber-pr1-Σ-Reflexive-Graph H + pr1 compute-fiber-pr1-Σ-Reflexive-Graph = + equiv-dependent-directed-graph-compute-fiber-pr1-Σ-Reflexive-Graph + pr2 compute-fiber-pr1-Σ-Reflexive-Graph _ = + refl-compute-fiber-pr1-Σ-Reflexive-Graph +``` diff --git a/src/graph-theory/neighbors-undirected-graphs.lagda.md b/src/graph-theory/neighbors-undirected-graphs.lagda.md index 713e6c1c4d..9b6fba97e3 100644 --- a/src/graph-theory/neighbors-undirected-graphs.lagda.md +++ b/src/graph-theory/neighbors-undirected-graphs.lagda.md @@ -61,7 +61,7 @@ module _ edge-Undirected-Graph H ( standard-unordered-pair (vertex-equiv-Undirected-Graph G H e x) y)) ( vertex-equiv-equiv-Undirected-Graph G H e) - ( equiv-edge-standard-unordered-pair-vertices-equiv-Undirected-Graph + ( edge-equiv-standard-unordered-pair-vertices-equiv-Undirected-Graph G H e x) neighbor-equiv-Undirected-Graph : diff --git a/src/graph-theory/polygons.lagda.md b/src/graph-theory/polygons.lagda.md index 051c552289..68f0117f77 100644 --- a/src/graph-theory/polygons.lagda.md +++ b/src/graph-theory/polygons.lagda.md @@ -97,8 +97,8 @@ module _ edge-Polygon : unordered-pair-vertices-Polygon → UU lzero edge-Polygon = edge-Undirected-Graph undirected-graph-Polygon - mere-equiv-vertex-Polygon : mere-equiv (ℤ-Mod k) vertex-Polygon - mere-equiv-vertex-Polygon = + vertex-mere-equiv-Polygon : mere-equiv (ℤ-Mod k) vertex-Polygon + vertex-mere-equiv-Polygon = map-trunc-Prop ( vertex-equiv-equiv-Undirected-Graph ( standard-polygon-Undirected-Graph k) @@ -107,16 +107,16 @@ module _ is-finite-vertex-Polygon : is-nonzero-ℕ k → is-finite vertex-Polygon is-finite-vertex-Polygon H = - is-finite-mere-equiv mere-equiv-vertex-Polygon (is-finite-ℤ-Mod H) + is-finite-mere-equiv vertex-mere-equiv-Polygon (is-finite-ℤ-Mod H) is-set-vertex-Polygon : is-set vertex-Polygon is-set-vertex-Polygon = - is-set-mere-equiv' mere-equiv-vertex-Polygon (is-set-ℤ-Mod k) + is-set-mere-equiv' vertex-mere-equiv-Polygon (is-set-ℤ-Mod k) has-decidable-equality-vertex-Polygon : has-decidable-equality vertex-Polygon has-decidable-equality-vertex-Polygon = has-decidable-equality-mere-equiv' - ( mere-equiv-vertex-Polygon) + ( vertex-mere-equiv-Polygon) ( has-decidable-equality-ℤ-Mod k) ``` diff --git a/src/graph-theory/raising-universe-levels-directed-graphs.lagda.md b/src/graph-theory/raising-universe-levels-directed-graphs.lagda.md index 356c1b05be..ff763cffc0 100644 --- a/src/graph-theory/raising-universe-levels-directed-graphs.lagda.md +++ b/src/graph-theory/raising-universe-levels-directed-graphs.lagda.md @@ -36,28 +36,28 @@ module _ vertex-raise-Directed-Graph : UU (l1 ⊔ l3) vertex-raise-Directed-Graph = raise l3 (vertex-Directed-Graph G) - equiv-vertex-compute-raise-Directed-Graph : + vertex-equiv-compute-raise-Directed-Graph : vertex-Directed-Graph G ≃ vertex-raise-Directed-Graph - equiv-vertex-compute-raise-Directed-Graph = + vertex-equiv-compute-raise-Directed-Graph = compute-raise l3 (vertex-Directed-Graph G) vertex-compute-raise-Directed-Graph : vertex-Directed-Graph G → vertex-raise-Directed-Graph vertex-compute-raise-Directed-Graph = - map-equiv equiv-vertex-compute-raise-Directed-Graph + map-equiv vertex-equiv-compute-raise-Directed-Graph edge-raise-Directed-Graph : (x y : vertex-raise-Directed-Graph) → UU (l2 ⊔ l4) edge-raise-Directed-Graph (map-raise x) (map-raise y) = raise l4 (edge-Directed-Graph G x y) - equiv-edge-compute-raise-Directed-Graph : + edge-equiv-compute-raise-Directed-Graph : (x y : vertex-Directed-Graph G) → edge-Directed-Graph G x y ≃ edge-raise-Directed-Graph ( vertex-compute-raise-Directed-Graph x) ( vertex-compute-raise-Directed-Graph y) - equiv-edge-compute-raise-Directed-Graph x y = + edge-equiv-compute-raise-Directed-Graph x y = compute-raise l4 (edge-Directed-Graph G x y) edge-compute-raise-Directed-Graph : @@ -67,7 +67,7 @@ module _ ( vertex-compute-raise-Directed-Graph x) ( vertex-compute-raise-Directed-Graph y) edge-compute-raise-Directed-Graph x y = - map-equiv (equiv-edge-compute-raise-Directed-Graph x y) + map-equiv (edge-equiv-compute-raise-Directed-Graph x y) raise-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) pr1 raise-Directed-Graph = vertex-raise-Directed-Graph @@ -75,8 +75,8 @@ module _ compute-raise-Directed-Graph : equiv-Directed-Graph G raise-Directed-Graph - pr1 compute-raise-Directed-Graph = equiv-vertex-compute-raise-Directed-Graph - pr2 compute-raise-Directed-Graph = equiv-edge-compute-raise-Directed-Graph + pr1 compute-raise-Directed-Graph = vertex-equiv-compute-raise-Directed-Graph + pr2 compute-raise-Directed-Graph = edge-equiv-compute-raise-Directed-Graph walk-raise-Directed-Graph : (x y : vertex-raise-Directed-Graph) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) diff --git a/src/trees/combinator-directed-trees.lagda.md b/src/trees/combinator-directed-trees.lagda.md index 05e15871fd..4d2862298f 100644 --- a/src/trees/combinator-directed-trees.lagda.md +++ b/src/trees/combinator-directed-trees.lagda.md @@ -745,21 +745,21 @@ module _ ( cases-map-inv-node-combinator-fiber-base-Directed-Tree x) ( eq-is-contr ( unique-walk-to-base-Directed-Tree T x)) - is-equiv-node-combinator-fiber-base-Directed-Tree : + is-node-equiv-combinator-fiber-base-Directed-Tree : is-equiv node-combinator-fiber-base-Directed-Tree - is-equiv-node-combinator-fiber-base-Directed-Tree = + is-node-equiv-combinator-fiber-base-Directed-Tree = is-equiv-is-invertible map-inv-node-combinator-fiber-base-Directed-Tree is-section-map-inv-node-combinator-fiber-base-Directed-Tree is-retraction-map-inv-node-combinator-fiber-base-Directed-Tree - equiv-node-combinator-fiber-base-Directed-Tree : + node-equiv-combinator-fiber-base-Directed-Tree : node-combinator-Directed-Tree (fiber-base-Directed-Tree T) ≃ node-Directed-Tree T - pr1 equiv-node-combinator-fiber-base-Directed-Tree = + pr1 node-equiv-combinator-fiber-base-Directed-Tree = node-combinator-fiber-base-Directed-Tree - pr2 equiv-node-combinator-fiber-base-Directed-Tree = - is-equiv-node-combinator-fiber-base-Directed-Tree + pr2 node-equiv-combinator-fiber-base-Directed-Tree = + is-node-equiv-combinator-fiber-base-Directed-Tree edge-combinator-fiber-base-Directed-Tree : (x y : node-combinator-Directed-Tree (fiber-base-Directed-Tree T)) → @@ -791,7 +791,7 @@ module _ ( combinator-Directed-Tree (fiber-base-Directed-Tree T)) ( T) ( hom-combinator-fiber-base-Directed-Tree) - ( is-equiv-node-combinator-fiber-base-Directed-Tree) + ( is-node-equiv-combinator-fiber-base-Directed-Tree) combinator-fiber-base-Directed-Tree : equiv-Directed-Tree diff --git a/src/trees/equivalences-directed-trees.lagda.md b/src/trees/equivalences-directed-trees.lagda.md index 7a6c160ca5..5b7a6ffa00 100644 --- a/src/trees/equivalences-directed-trees.lagda.md +++ b/src/trees/equivalences-directed-trees.lagda.md @@ -248,9 +248,9 @@ module _ ( g) ( f) - equiv-node-comp-equiv-Directed-Tree : + node-equiv-comp-equiv-Directed-Tree : node-Directed-Tree R ≃ node-Directed-Tree T - equiv-node-comp-equiv-Directed-Tree = + node-equiv-comp-equiv-Directed-Tree = node-equiv-equiv-Directed-Tree R T comp-equiv-Directed-Tree node-comp-equiv-Directed-Tree : @@ -258,13 +258,13 @@ module _ node-comp-equiv-Directed-Tree = node-equiv-Directed-Tree R T comp-equiv-Directed-Tree - equiv-edge-comp-equiv-Directed-Tree : + edge-equiv-comp-equiv-Directed-Tree : (x y : node-Directed-Tree R) → edge-Directed-Tree R x y ≃ edge-Directed-Tree T ( node-comp-equiv-Directed-Tree x) ( node-comp-equiv-Directed-Tree y) - equiv-edge-comp-equiv-Directed-Tree = + edge-equiv-comp-equiv-Directed-Tree = edge-equiv-equiv-Directed-Tree R T comp-equiv-Directed-Tree edge-comp-equiv-Directed-Tree : @@ -513,10 +513,10 @@ module _ ( graph-Directed-Tree T) ( f) - equiv-node-inv-equiv-Directed-Tree : + node-equiv-inv-equiv-Directed-Tree : node-Directed-Tree T ≃ node-Directed-Tree S - equiv-node-inv-equiv-Directed-Tree = - equiv-vertex-inv-equiv-Directed-Graph + node-equiv-inv-equiv-Directed-Tree = + vertex-equiv-inv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( f) @@ -541,14 +541,14 @@ module _ ( graph-Directed-Tree T) ( f) - equiv-edge-inv-equiv-Directed-Tree : + edge-equiv-inv-equiv-Directed-Tree : (x y : node-Directed-Tree T) → edge-Directed-Tree T x y ≃ edge-Directed-Tree S ( node-inv-equiv-Directed-Tree x) ( node-inv-equiv-Directed-Tree y) - equiv-edge-inv-equiv-Directed-Tree = - equiv-edge-inv-equiv-Directed-Graph + edge-equiv-inv-equiv-Directed-Tree = + edge-equiv-inv-equiv-Directed-Graph ( graph-Directed-Tree S) ( graph-Directed-Tree T) ( f) diff --git a/src/trees/equivalences-enriched-directed-trees.lagda.md b/src/trees/equivalences-enriched-directed-trees.lagda.md index 620a0344b9..410b7c1709 100644 --- a/src/trees/equivalences-enriched-directed-trees.lagda.md +++ b/src/trees/equivalences-enriched-directed-trees.lagda.md @@ -295,10 +295,10 @@ module _ ( equiv-directed-tree-equiv-Enriched-Directed-Tree A B S T g) ( equiv-directed-tree-equiv-Enriched-Directed-Tree A B R S f) - equiv-node-comp-equiv-Enriched-Directed-Tree : + node-equiv-comp-equiv-Enriched-Directed-Tree : node-Enriched-Directed-Tree A B R ≃ node-Enriched-Directed-Tree A B T - equiv-node-comp-equiv-Enriched-Directed-Tree = + node-equiv-comp-equiv-Enriched-Directed-Tree = node-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B R) ( directed-tree-Enriched-Directed-Tree A B T) @@ -313,13 +313,13 @@ module _ ( directed-tree-Enriched-Directed-Tree A B T) ( equiv-directed-tree-comp-equiv-Enriched-Directed-Tree) - equiv-edge-comp-equiv-Enriched-Directed-Tree : + edge-equiv-comp-equiv-Enriched-Directed-Tree : (x y : node-Enriched-Directed-Tree A B R) → edge-Enriched-Directed-Tree A B R x y ≃ edge-Enriched-Directed-Tree A B T ( node-comp-equiv-Enriched-Directed-Tree x) ( node-comp-equiv-Enriched-Directed-Tree y) - equiv-edge-comp-equiv-Enriched-Directed-Tree = + edge-equiv-comp-equiv-Enriched-Directed-Tree = edge-equiv-equiv-Directed-Tree ( directed-tree-Enriched-Directed-Tree A B R) ( directed-tree-Enriched-Directed-Tree A B T) diff --git a/src/trees/functoriality-fiber-directed-tree.lagda.md b/src/trees/functoriality-fiber-directed-tree.lagda.md index b8e4bc9015..2338441e60 100644 --- a/src/trees/functoriality-fiber-directed-tree.lagda.md +++ b/src/trees/functoriality-fiber-directed-tree.lagda.md @@ -94,14 +94,14 @@ module _ node-fiber-equiv-Directed-Tree = map-equiv equiv-node-fiber-equiv-Directed-Tree - equiv-edge-fiber-equiv-Directed-Tree : + edge-equiv-fiber-equiv-Directed-Tree : (y z : node-fiber-Directed-Tree S x) → edge-fiber-Directed-Tree S x y z ≃ edge-fiber-Directed-Tree T ( node-equiv-Directed-Tree S T f x) ( node-fiber-equiv-Directed-Tree y) ( node-fiber-equiv-Directed-Tree z) - equiv-edge-fiber-equiv-Directed-Tree (y , v) (z , w) = + edge-equiv-fiber-equiv-Directed-Tree (y , v) (z , w) = equiv-Σ ( λ e → walk-equiv-Directed-Tree S T f v = @@ -121,7 +121,7 @@ module _ ( node-fiber-equiv-Directed-Tree y) ( node-fiber-equiv-Directed-Tree z) edge-fiber-equiv-Directed-Tree y z = - map-equiv (equiv-edge-fiber-equiv-Directed-Tree y z) + map-equiv (edge-equiv-fiber-equiv-Directed-Tree y z) fiber-equiv-Directed-Tree : equiv-Directed-Tree @@ -130,5 +130,5 @@ module _ pr1 fiber-equiv-Directed-Tree = equiv-node-fiber-equiv-Directed-Tree pr2 fiber-equiv-Directed-Tree = - equiv-edge-fiber-equiv-Directed-Tree + edge-equiv-fiber-equiv-Directed-Tree ``` diff --git a/src/trees/raising-universe-levels-directed-trees.lagda.md b/src/trees/raising-universe-levels-directed-trees.lagda.md index 9d6797efb7..8f1e1ac294 100644 --- a/src/trees/raising-universe-levels-directed-trees.lagda.md +++ b/src/trees/raising-universe-levels-directed-trees.lagda.md @@ -40,10 +40,10 @@ module _ node-raise-Directed-Tree : UU (l1 ⊔ l3) node-raise-Directed-Tree = vertex-Directed-Graph graph-raise-Directed-Tree - equiv-node-compute-raise-Directed-Tree : + node-equiv-compute-raise-Directed-Tree : node-Directed-Tree T ≃ node-raise-Directed-Tree - equiv-node-compute-raise-Directed-Tree = - equiv-vertex-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T) + node-equiv-compute-raise-Directed-Tree = + vertex-equiv-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T) node-compute-raise-Directed-Tree : node-Directed-Tree T → node-raise-Directed-Tree @@ -54,14 +54,14 @@ module _ (x y : node-raise-Directed-Tree) → UU (l2 ⊔ l4) edge-raise-Directed-Tree = edge-Directed-Graph graph-raise-Directed-Tree - equiv-edge-compute-raise-Directed-Tree : + edge-equiv-compute-raise-Directed-Tree : (x y : node-Directed-Tree T) → edge-Directed-Tree T x y ≃ edge-raise-Directed-Tree ( node-compute-raise-Directed-Tree x) ( node-compute-raise-Directed-Tree y) - equiv-edge-compute-raise-Directed-Tree = - equiv-edge-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T) + edge-equiv-compute-raise-Directed-Tree = + edge-equiv-compute-raise-Directed-Graph l3 l4 (graph-Directed-Tree T) edge-compute-raise-Directed-Tree : (x y : node-Directed-Tree T) → diff --git a/src/trees/underlying-trees-elements-coalgebras-polynomial-endofunctors.lagda.md b/src/trees/underlying-trees-elements-coalgebras-polynomial-endofunctors.lagda.md index 75e7da1e47..9184f6da42 100644 --- a/src/trees/underlying-trees-elements-coalgebras-polynomial-endofunctors.lagda.md +++ b/src/trees/underlying-trees-elements-coalgebras-polynomial-endofunctors.lagda.md @@ -721,24 +721,24 @@ module _ ( node-inclusion-element-coalgebra (b , refl) x) = refl - is-equiv-node-compute-directed-tree-element-coalgebra : + is-node-equiv-compute-directed-tree-element-coalgebra : is-equiv node-compute-directed-tree-element-coalgebra - is-equiv-node-compute-directed-tree-element-coalgebra = + is-node-equiv-compute-directed-tree-element-coalgebra = is-equiv-is-invertible map-inv-node-compute-directed-tree-element-coalgebra is-section-map-inv-node-compute-directed-tree-element-coalgebra is-retraction-map-inv-node-compute-directed-tree-element-coalgebra - equiv-node-compute-directed-tree-element-coalgebra : + node-equiv-compute-directed-tree-element-coalgebra : node-element-coalgebra X w ≃ node-combinator-Directed-Tree ( λ b → directed-tree-element-coalgebra X ( component-coalgebra-polynomial-endofunctor X w b)) - pr1 equiv-node-compute-directed-tree-element-coalgebra = + pr1 node-equiv-compute-directed-tree-element-coalgebra = node-compute-directed-tree-element-coalgebra - pr2 equiv-node-compute-directed-tree-element-coalgebra = - is-equiv-node-compute-directed-tree-element-coalgebra + pr2 node-equiv-compute-directed-tree-element-coalgebra = + is-node-equiv-compute-directed-tree-element-coalgebra edge-compute-directed-tree-element-coalgebra : (x y : node-element-coalgebra X w) → @@ -862,16 +862,16 @@ module _ is-retraction-map-inv-edge-compute-directed-tree-element-coalgebra ._ ._ ( edge-inclusion-element-coalgebra (b , refl) e) = refl - is-equiv-edge-compute-directed-tree-element-coalgebra : + is-edge-equiv-compute-directed-tree-element-coalgebra : (x y : node-element-coalgebra X w) → is-equiv (edge-compute-directed-tree-element-coalgebra x y) - is-equiv-edge-compute-directed-tree-element-coalgebra x y = + is-edge-equiv-compute-directed-tree-element-coalgebra x y = is-equiv-is-invertible ( map-inv-edge-compute-directed-tree-element-coalgebra x y) ( is-section-map-inv-edge-compute-directed-tree-element-coalgebra x y) ( is-retraction-map-inv-edge-compute-directed-tree-element-coalgebra x y) - equiv-edge-compute-directed-tree-element-coalgebra : + edge-equiv-compute-directed-tree-element-coalgebra : (x y : node-element-coalgebra X w) → edge-element-coalgebra X w x y ≃ edge-combinator-Directed-Tree @@ -880,10 +880,10 @@ module _ ( component-coalgebra-polynomial-endofunctor X w b)) ( node-compute-directed-tree-element-coalgebra x) ( node-compute-directed-tree-element-coalgebra y) - pr1 (equiv-edge-compute-directed-tree-element-coalgebra x y) = + pr1 (edge-equiv-compute-directed-tree-element-coalgebra x y) = edge-compute-directed-tree-element-coalgebra x y - pr2 (equiv-edge-compute-directed-tree-element-coalgebra x y) = - is-equiv-edge-compute-directed-tree-element-coalgebra x y + pr2 (edge-equiv-compute-directed-tree-element-coalgebra x y) = + is-edge-equiv-compute-directed-tree-element-coalgebra x y compute-directed-tree-element-coalgebra : equiv-Directed-Tree @@ -893,9 +893,9 @@ module _ directed-tree-element-coalgebra X ( component-coalgebra-polynomial-endofunctor X w b))) pr1 compute-directed-tree-element-coalgebra = - equiv-node-compute-directed-tree-element-coalgebra + node-equiv-compute-directed-tree-element-coalgebra pr2 compute-directed-tree-element-coalgebra = - equiv-edge-compute-directed-tree-element-coalgebra + edge-equiv-compute-directed-tree-element-coalgebra shape-compute-enriched-directed-tree-element-coalgebra : shape-element-coalgebra X w ~ diff --git a/src/trees/underlying-trees-of-elements-of-w-types.lagda.md b/src/trees/underlying-trees-of-elements-of-w-types.lagda.md index 12927994dc..bd9f754279 100644 --- a/src/trees/underlying-trees-of-elements-of-w-types.lagda.md +++ b/src/trees/underlying-trees-of-elements-of-w-types.lagda.md @@ -359,17 +359,17 @@ module _ ( 𝕎-Coalg A B) ( w) - is-equiv-node-compute-directed-tree-element-𝕎 : + is-node-equiv-compute-directed-tree-element-𝕎 : is-equiv node-compute-directed-tree-element-𝕎 - is-equiv-node-compute-directed-tree-element-𝕎 = - is-equiv-node-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w + is-node-equiv-compute-directed-tree-element-𝕎 = + is-node-equiv-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w - equiv-node-compute-directed-tree-element-𝕎 : + node-equiv-compute-directed-tree-element-𝕎 : node-element-𝕎 w ≃ node-combinator-Directed-Tree ( λ b → directed-tree-element-𝕎 (component-𝕎 w b)) - equiv-node-compute-directed-tree-element-𝕎 = - equiv-node-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w + node-equiv-compute-directed-tree-element-𝕎 = + node-equiv-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w edge-compute-directed-tree-element-𝕎 : (x y : node-element-𝕎 w) → @@ -414,21 +414,21 @@ module _ ( 𝕎-Coalg A B) ( w) - is-equiv-edge-compute-directed-tree-element-𝕎 : + is-edge-equiv-compute-directed-tree-element-𝕎 : (x y : node-element-𝕎 w) → is-equiv (edge-compute-directed-tree-element-𝕎 x y) - is-equiv-edge-compute-directed-tree-element-𝕎 = - is-equiv-edge-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w + is-edge-equiv-compute-directed-tree-element-𝕎 = + is-edge-equiv-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w - equiv-edge-compute-directed-tree-element-𝕎 : + edge-equiv-compute-directed-tree-element-𝕎 : (x y : node-element-𝕎 w) → edge-element-𝕎 w x y ≃ edge-combinator-Directed-Tree ( λ b → directed-tree-element-𝕎 (component-𝕎 w b)) ( node-compute-directed-tree-element-𝕎 x) ( node-compute-directed-tree-element-𝕎 y) - equiv-edge-compute-directed-tree-element-𝕎 = - equiv-edge-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w + edge-equiv-compute-directed-tree-element-𝕎 = + edge-equiv-compute-directed-tree-element-coalgebra (𝕎-Coalg A B) w compute-directed-tree-element-𝕎 : equiv-Directed-Tree From e5ad3f50442fd0be58ce504bb4ca411190a5d808 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 23 Oct 2024 18:14:33 -0400 Subject: [PATCH 37/42] make pre-commit --- .../equality-dependent-pair-types.lagda.md | 4 ++-- src/foundation.lagda.md | 4 ++++ ...entifications-dependent-functions.lagda.md | 4 ---- ...bular-type-of-dependent-functions.lagda.md | 19 ++++++++++++----- .../globular-type-of-functions.lagda.md | 21 +++++++++++++------ src/foundation/reflexive-relations.lagda.md | 2 +- src/graph-theory.lagda.md | 5 +++++ ...ndent-coproducts-reflexive-graphs.lagda.md | 9 ++++---- .../dependent-reflexive-graphs.lagda.md | 4 +++- ...lences-dependent-reflexive-graphs.lagda.md | 2 +- .../equivalences-reflexive-graphs.lagda.md | 16 +++++++------- ...fibers-morphisms-reflexive-graphs.lagda.md | 2 +- src/graph-theory/reflexive-graphs.lagda.md | 2 +- 13 files changed, 61 insertions(+), 33 deletions(-) diff --git a/src/foundation-core/equality-dependent-pair-types.lagda.md b/src/foundation-core/equality-dependent-pair-types.lagda.md index 626c99a1e6..6b6374433d 100644 --- a/src/foundation-core/equality-dependent-pair-types.lagda.md +++ b/src/foundation-core/equality-dependent-pair-types.lagda.md @@ -71,11 +71,11 @@ module _ eq-pair-Σ' : {s t : Σ A B} → Eq-Σ s t → s = t eq-pair-Σ' p = eq-pair-Σ (pr1 p) (pr2 p) - + ap-pr1-eq-pair-eq-fiber : {x : A} {s t : B x} (p : s = t) → ap pr1 (eq-pair-eq-fiber p) = refl ap-pr1-eq-pair-eq-fiber refl = refl - + is-retraction-pair-eq-Σ : (s t : Σ A B) → pair-eq-Σ {s} {t} ∘ eq-pair-Σ' {s} {t} ~ id {A = Eq-Σ s t} is-retraction-pair-eq-Σ (pair x y) (pair .x .y) (pair refl refl) = refl diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index 9d2c66f3a9..5ff583e534 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -20,6 +20,7 @@ open import foundation.action-on-equivalences-type-families public open import foundation.action-on-equivalences-type-families-over-subuniverses public open import foundation.action-on-higher-identifications-functions public open import foundation.action-on-homotopies-functions public +open import foundation.action-on-identifications-binary-dependent-functions public open import foundation.action-on-identifications-binary-functions public open import foundation.action-on-identifications-dependent-functions public open import foundation.action-on-identifications-functions public @@ -30,6 +31,7 @@ open import foundation.automorphisms public open import foundation.axiom-of-choice public open import foundation.bands public open import foundation.base-changes-span-diagrams public +open import foundation.binary-dependent-identifications public open import foundation.binary-embeddings public open import foundation.binary-equivalences public open import foundation.binary-equivalences-unordered-pairs-of-types public @@ -203,6 +205,8 @@ open import foundation.functoriality-truncation public open import foundation.fundamental-theorem-of-identity-types public open import foundation.global-choice public open import foundation.global-subuniverses public +open import foundation.globular-type-of-dependent-functions public +open import foundation.globular-type-of-functions public open import foundation.higher-homotopies-morphisms-arrows public open import foundation.hilberts-epsilon-operators public open import foundation.homotopies public diff --git a/src/foundation/action-on-identifications-dependent-functions.lagda.md b/src/foundation/action-on-identifications-dependent-functions.lagda.md index 21f3a5cc3f..eecad428e0 100644 --- a/src/foundation/action-on-identifications-dependent-functions.lagda.md +++ b/src/foundation/action-on-identifications-dependent-functions.lagda.md @@ -43,10 +43,6 @@ apd : apd f refl = refl ``` -## Properties - -### The action on identifications of dependent functions over dependent functions - ## See also - [Action of functions on identifications](foundation.action-on-identifications-functions.md) diff --git a/src/foundation/globular-type-of-dependent-functions.lagda.md b/src/foundation/globular-type-of-dependent-functions.lagda.md index ddaa937474..ac01ad8d14 100644 --- a/src/foundation/globular-type-of-dependent-functions.lagda.md +++ b/src/foundation/globular-type-of-dependent-functions.lagda.md @@ -23,11 +23,20 @@ open import structured-types.transitive-globular-types ## Idea The -{{#concept "globular type of dependent functions" Agda=dependent-function-type-Globular-Type}} is the [globular type](structured-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](structured-types.reflexive-globular-types.md) and [transitive](structured-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). +{{#concept "globular type of dependent functions" Agda=dependent-function-type-Globular-Type}} +is the [globular type](structured-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](structured-types.reflexive-globular-types.md) and +[transitive](structured-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 diff --git a/src/foundation/globular-type-of-functions.lagda.md b/src/foundation/globular-type-of-functions.lagda.md index 212ad15341..5dd8c2acee 100644 --- a/src/foundation/globular-type-of-functions.lagda.md +++ b/src/foundation/globular-type-of-functions.lagda.md @@ -23,12 +23,21 @@ open import structured-types.transitive-globular-types ## Idea -The -{{#concept "globular type of functions" Agda=function-type-Globular-Type}} is the [globular type](structured-types.globular-types.md) consisting of [functions](foundation.function-types.md) and [homotopies](foundation-core.homotopies.md) between them. Since functions are dependent functions of constant type families, we define the globular type of functions in terms of the [globular type of dependent functions](foundation.globular-type-of-dependent-functions.md). - -The globular type of functions of a type family `B` over `A` is [reflexive](structured-types.reflexive-globular-types.md) and [transitive](structured-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). +The {{#concept "globular type of functions" Agda=function-type-Globular-Type}} +is the [globular type](structured-types.globular-types.md) consisting of +[functions](foundation.function-types.md) and +[homotopies](foundation-core.homotopies.md) between them. Since functions are +dependent functions of constant type families, we define the globular type of +functions in terms of the +[globular type of dependent functions](foundation.globular-type-of-dependent-functions.md). + +The globular type of functions of a type family `B` over `A` is +[reflexive](structured-types.reflexive-globular-types.md) and +[transitive](structured-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 diff --git a/src/foundation/reflexive-relations.lagda.md b/src/foundation/reflexive-relations.lagda.md index 5d6ee9f16b..f20116669a 100644 --- a/src/foundation/reflexive-relations.lagda.md +++ b/src/foundation/reflexive-relations.lagda.md @@ -7,9 +7,9 @@ module foundation.reflexive-relations where
Imports ```agda +open import foundation.binary-dependent-identifications open import foundation.binary-relations open import foundation.dependent-pair-types -open import foundation.binary-dependent-identifications open import foundation.universe-levels open import foundation-core.identity-types diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index d1b6a89587..72e29e70ae 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -15,6 +15,7 @@ open import graph-theory.complete-undirected-graphs public open import graph-theory.connected-undirected-graphs public open import graph-theory.cycles-undirected-graphs public open import graph-theory.dependent-coproducts-directed-graphs public +open import graph-theory.dependent-coproducts-reflexive-graphs public open import graph-theory.dependent-directed-graphs public open import graph-theory.dependent-products-directed-graphs public open import graph-theory.dependent-reflexive-graphs public @@ -28,14 +29,17 @@ open import graph-theory.embeddings-directed-graphs public open import graph-theory.embeddings-undirected-graphs public open import graph-theory.enriched-undirected-graphs public open import graph-theory.equivalences-dependent-directed-graphs public +open import graph-theory.equivalences-dependent-reflexive-graphs public open import graph-theory.equivalences-directed-graphs public open import graph-theory.equivalences-enriched-undirected-graphs public +open import graph-theory.equivalences-reflexive-graphs public open import graph-theory.equivalences-undirected-graphs public open import graph-theory.eulerian-circuits-undirected-graphs public open import graph-theory.exponents-directed-graphs public open import graph-theory.faithful-morphisms-undirected-graphs public open import graph-theory.fibers-directed-graphs public open import graph-theory.fibers-morphisms-directed-graphs public +open import graph-theory.fibers-morphisms-reflexive-graphs public open import graph-theory.finite-graphs public open import graph-theory.geometric-realizations-undirected-graphs public open import graph-theory.higher-directed-graphs public @@ -59,6 +63,7 @@ open import graph-theory.reflecting-maps-undirected-graphs public open import graph-theory.reflexive-graphs public open import graph-theory.regular-undirected-graphs public open import graph-theory.sections-dependent-directed-graphs public +open import graph-theory.sections-dependent-reflexive-graphs public open import graph-theory.simple-undirected-graphs public open import graph-theory.stereoisomerism-enriched-undirected-graphs public open import graph-theory.terminal-directed-graphs public diff --git a/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md b/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md index 8e1642dd08..afbca74b3d 100644 --- a/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md @@ -14,10 +14,10 @@ open import foundation.universe-levels open import graph-theory.dependent-coproducts-directed-graphs open import graph-theory.dependent-reflexive-graphs open import graph-theory.directed-graphs -open import graph-theory.reflexive-graphs open import graph-theory.morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs open import graph-theory.pullbacks-dependent-reflexive-graphs +open import graph-theory.reflexive-graphs open import graph-theory.sections-dependent-directed-graphs open import graph-theory.sections-dependent-reflexive-graphs ``` @@ -26,8 +26,9 @@ open import graph-theory.sections-dependent-reflexive-graphs ## Idea -Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) -`H` over a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The +Consider a +[dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `H` over +a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The {{#concept "dependent coproduct" Disambiguation="reflexive graphs" Agda=Σ-Reflexive-Graph}} `Σ G H` is the reflexive graph given by @@ -111,7 +112,7 @@ module _ edge-pr1-Σ-Reflexive-Graph (refl-Σ-Reflexive-Graph H x) = refl-Reflexive-Graph G (vertex-pr1-Σ-Reflexive-Graph x) refl-pr1-Σ-Reflexive-Graph x = refl - + pr1-Σ-Reflexive-Graph : hom-Reflexive-Graph (Σ-Reflexive-Graph H) G pr1 pr1-Σ-Reflexive-Graph = hom-directed-graph-pr1-Σ-Reflexive-Graph pr2 pr1-Σ-Reflexive-Graph = refl-pr1-Σ-Reflexive-Graph diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 206a2353a1..124bfbf508 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -91,7 +91,9 @@ module _ ### An equivalent definition of dependent reflexive graphs -The second definition of dependent reflexive graphs is more closely equivalent to the concept of morphisms into the [universal reflexive graph](graph-theory.universal-reflexive-graph.md). +The second definition of dependent reflexive graphs is more closely equivalent +to the concept of morphisms into the +[universal reflexive graph](graph-theory.universal-reflexive-graph.md). ```agda Dependent-Reflexive-Graph' : diff --git a/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md index 96d6066b32..8dfeec904c 100644 --- a/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md @@ -210,7 +210,7 @@ module _ ### The identity equivalence of a dependent reflexive graph -````agda +```agda module _ {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} (H : Dependent-Reflexive-Graph l3 l4 G) diff --git a/src/graph-theory/equivalences-reflexive-graphs.lagda.md b/src/graph-theory/equivalences-reflexive-graphs.lagda.md index 479ab41f98..ae2ff0ebab 100644 --- a/src/graph-theory/equivalences-reflexive-graphs.lagda.md +++ b/src/graph-theory/equivalences-reflexive-graphs.lagda.md @@ -21,17 +21,20 @@ open import graph-theory.reflexive-graphs ## Idea -An {{#concept "equivalence of reflexive graphs" Agda=equiv-Reflexive-Graph}} from a -[reflexive graph](graph-theory.reflexive-graphs.md) `(V,E,r)` to a reflexive graph -`(V',E',r')` consists of an [equivalence](graph-theory.equivalences-directed-graphs.md) `(e₀, e₁)` of directed graphs from `(V,E)` to `(V',E')` equipped with an identification +An {{#concept "equivalence of reflexive graphs" Agda=equiv-Reflexive-Graph}} +from a [reflexive graph](graph-theory.reflexive-graphs.md) `(V,E,r)` to a +reflexive graph `(V',E',r')` consists of an +[equivalence](graph-theory.equivalences-directed-graphs.md) `(e₀, e₁)` of +directed graphs from `(V,E)` to `(V',E')` equipped with an identification ```text e₁ (r x) = r' (e₀ x) ``` -for each `x : V`. More specifically, an equivalence of reflexive graphs consists of an [equivalence](foundation-core.equivalences.md) -`e₀ : V ≃ V'` of vertices, a family of equivalences `e₁ : E x y ≃ E' (e x) (e y)` -of edges indexed by `x y : V`, and a family of identifications +for each `x : V`. More specifically, an equivalence of reflexive graphs consists +of an [equivalence](foundation-core.equivalences.md) `e₀ : V ≃ V'` of vertices, +a family of equivalences `e₁ : E x y ≃ E' (e x) (e y)` of edges indexed by +`x y : V`, and a family of identifications ```text e₁ (r x) = r' (e₀ x) @@ -170,4 +173,3 @@ module _ pr2 (pr1 hom-equiv-Reflexive-Graph) _ _ = edge-equiv-Reflexive-Graph pr2 hom-equiv-Reflexive-Graph = refl-equiv-Reflexive-Graph ``` - diff --git a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md index 16c65afccb..70ea536c38 100644 --- a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md @@ -204,7 +204,7 @@ module _ ### The fibers of the first projection of a dependent coproduct reflexive graph -````agda +```agda module _ {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} (H : Dependent-Reflexive-Graph l3 l4 G) diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index 74116b8913..3f6a80c200 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -7,8 +7,8 @@ module graph-theory.reflexive-graphs where
Imports ```agda -open import foundation.dependent-pair-types open import foundation.binary-dependent-identifications +open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.reflexive-relations open import foundation.universe-levels From c8b95965d8e60813c429be8ecc0c895493060d3d Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 23 Oct 2024 18:26:57 -0400 Subject: [PATCH 38/42] typo --- src/foundation/binary-dependent-identifications.lagda.md | 2 +- src/foundation/dependent-identifications.lagda.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/foundation/binary-dependent-identifications.lagda.md b/src/foundation/binary-dependent-identifications.lagda.md index 5dad67267d..28877b6bcd 100644 --- a/src/foundation/binary-dependent-identifications.lagda.md +++ b/src/foundation/binary-dependent-identifications.lagda.md @@ -29,7 +29,7 @@ from `c : C x y` to `c' : C x' y'` over `p` and `q` is a ## Definitions -### Doubly dependent identifications +### Binary dependent identifications ```agda module _ diff --git a/src/foundation/dependent-identifications.lagda.md b/src/foundation/dependent-identifications.lagda.md index 878dc6e3de..84d954f616 100644 --- a/src/foundation/dependent-identifications.lagda.md +++ b/src/foundation/dependent-identifications.lagda.md @@ -305,4 +305,4 @@ module _ ## See also -- [Doubly dependent identifications](foundation.binary-dependent-identifications.md) +- [Binary dependent identifications](foundation.binary-dependent-identifications.md) From 3aabeb8dbb51686e17c03fb8e718348dabd22b7e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 24 Oct 2024 19:04:07 -0400 Subject: [PATCH 39/42] dependent products of reflexive graphs --- src/graph-theory.lagda.md | 2 + ...rtesian-products-reflexive-graphs.lagda.md | 174 +++++ ...ependent-products-directed-graphs.lagda.md | 28 +- ...pendent-products-reflexive-graphs.lagda.md | 605 ++++++++++++++++++ ...ctions-dependent-reflexive-graphs.lagda.md | 17 +- 5 files changed, 802 insertions(+), 24 deletions(-) create mode 100644 src/graph-theory/cartesian-products-reflexive-graphs.lagda.md create mode 100644 src/graph-theory/dependent-products-reflexive-graphs.lagda.md diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index 72e29e70ae..c570e2e819 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -7,6 +7,7 @@ module graph-theory where open import graph-theory.acyclic-undirected-graphs public open import graph-theory.cartesian-products-directed-graphs public +open import graph-theory.cartesian-products-reflexive-graphs public open import graph-theory.circuits-undirected-graphs public open import graph-theory.closed-walks-undirected-graphs public open import graph-theory.complete-bipartite-graphs public @@ -18,6 +19,7 @@ open import graph-theory.dependent-coproducts-directed-graphs public open import graph-theory.dependent-coproducts-reflexive-graphs public open import graph-theory.dependent-directed-graphs public open import graph-theory.dependent-products-directed-graphs public +open import graph-theory.dependent-products-reflexive-graphs public open import graph-theory.dependent-reflexive-graphs public open import graph-theory.directed-graph-duality public open import graph-theory.directed-graph-structures-on-standard-finite-sets public diff --git a/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..31f2d0db0f --- /dev/null +++ b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md @@ -0,0 +1,174 @@ +# Cartesian products of reflexive graphs + +```agda +module graph-theory.cartesian-products-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.cartesian-product-types +open import foundation.dependent-pair-types +open import foundation.identity-types +open import foundation.universe-levels + +open import graph-theory.cartesian-products-directed-graphs +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +Consider two [reflexive graphs](graph-theory.reflexive-graphs.md) +`A := (A₀ , A₁)` and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is +the reflexive graph `A × B` given by + +```text + (A × B)₀ := A₀ × B₀ + (A × B)₁ (x , y) (x' , y') := A₁ x x' × B₁ y y' + (A × B)ᵣ (x , y) := (Aᵣ x , Bᵣ y). +``` + +## Definitions + +### The cartesian product of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) + where + + directed-graph-product-Reflexive-Graph : + Directed-Graph (l1 ⊔ l3) (l2 ⊔ l4) + directed-graph-product-Reflexive-Graph = + product-Directed-Graph + ( directed-graph-Reflexive-Graph A) + ( directed-graph-Reflexive-Graph B) + + vertex-product-Reflexive-Graph : UU (l1 ⊔ l3) + vertex-product-Reflexive-Graph = + vertex-Directed-Graph directed-graph-product-Reflexive-Graph + + edge-product-Reflexive-Graph : + (x y : vertex-product-Reflexive-Graph) → UU (l2 ⊔ l4) + edge-product-Reflexive-Graph = + edge-Directed-Graph directed-graph-product-Reflexive-Graph + + refl-product-Reflexive-Graph : + (x : vertex-product-Reflexive-Graph) → edge-product-Reflexive-Graph x x + pr1 (refl-product-Reflexive-Graph (x , y)) = refl-Reflexive-Graph A x + pr2 (refl-product-Reflexive-Graph (x , y)) = refl-Reflexive-Graph B y + + product-Reflexive-Graph : + Reflexive-Graph (l1 ⊔ l3) (l2 ⊔ l4) + pr1 product-Reflexive-Graph = + directed-graph-product-Reflexive-Graph + pr2 product-Reflexive-Graph = + refl-product-Reflexive-Graph +``` + +### The projections out of cartesian products of reflexive graphs + +#### The first projection out of the cartesian product of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) + where + + hom-directed-graph-pr1-product-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph A) + hom-directed-graph-pr1-product-Reflexive-Graph = + pr1-product-Directed-Graph + ( directed-graph-Reflexive-Graph A) + ( directed-graph-Reflexive-Graph B) + + vertex-pr1-product-Reflexive-Graph : + vertex-product-Reflexive-Graph A B → vertex-Reflexive-Graph A + vertex-pr1-product-Reflexive-Graph = + vertex-hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph A) + ( hom-directed-graph-pr1-product-Reflexive-Graph) + + edge-pr1-product-Reflexive-Graph : + {x y : vertex-product-Reflexive-Graph A B} → + edge-product-Reflexive-Graph A B x y → + edge-Reflexive-Graph A + ( vertex-pr1-product-Reflexive-Graph x) + ( vertex-pr1-product-Reflexive-Graph y) + edge-pr1-product-Reflexive-Graph = + edge-hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph A) + ( hom-directed-graph-pr1-product-Reflexive-Graph) + + refl-pr1-product-Reflexive-Graph : + (x : vertex-product-Reflexive-Graph A B) → + edge-pr1-product-Reflexive-Graph (refl-product-Reflexive-Graph A B x) = + refl-Reflexive-Graph A (vertex-pr1-product-Reflexive-Graph x) + refl-pr1-product-Reflexive-Graph x = refl + + pr1-product-Reflexive-Graph : + hom-Reflexive-Graph (product-Reflexive-Graph A B) A + pr1 pr1-product-Reflexive-Graph = + hom-directed-graph-pr1-product-Reflexive-Graph + pr2 pr1-product-Reflexive-Graph = + refl-pr1-product-Reflexive-Graph +``` + +#### The second projection out of the cartesian product of two reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) (B : Reflexive-Graph l3 l4) + where + + hom-directed-graph-pr2-product-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph B) + hom-directed-graph-pr2-product-Reflexive-Graph = + pr2-product-Directed-Graph + ( directed-graph-Reflexive-Graph A) + ( directed-graph-Reflexive-Graph B) + + vertex-pr2-product-Reflexive-Graph : + vertex-product-Reflexive-Graph A B → vertex-Reflexive-Graph B + vertex-pr2-product-Reflexive-Graph = + vertex-hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph B) + ( hom-directed-graph-pr2-product-Reflexive-Graph) + + edge-pr2-product-Reflexive-Graph : + {x y : vertex-product-Reflexive-Graph A B} → + edge-product-Reflexive-Graph A B x y → + edge-Reflexive-Graph B + ( vertex-pr2-product-Reflexive-Graph x) + ( vertex-pr2-product-Reflexive-Graph y) + edge-pr2-product-Reflexive-Graph = + edge-hom-Directed-Graph + ( directed-graph-product-Reflexive-Graph A B) + ( directed-graph-Reflexive-Graph B) + ( hom-directed-graph-pr2-product-Reflexive-Graph) + + refl-pr2-product-Reflexive-Graph : + (x : vertex-product-Reflexive-Graph A B) → + edge-pr2-product-Reflexive-Graph (refl-product-Reflexive-Graph A B x) = + refl-Reflexive-Graph B (vertex-pr2-product-Reflexive-Graph x) + refl-pr2-product-Reflexive-Graph x = refl + + pr2-product-Reflexive-Graph : + hom-Reflexive-Graph (product-Reflexive-Graph A B) B + pr1 pr2-product-Reflexive-Graph = + hom-directed-graph-pr2-product-Reflexive-Graph + pr2 pr2-product-Reflexive-Graph = + refl-pr2-product-Reflexive-Graph +``` diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index 72cb04341d..38106f6f31 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -49,8 +49,9 @@ The universal property of the dependent product gives that the type of [sections](graph-theory.sections-dependent-directed-graphs.md) of `B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into -`Π A B`, which is in turn equivalent to the type of vertices `f₀` of the Π -`Π A B` equipped with a loop `(Π A B)₁ f f`. Indeed, this data consists of: +`Π A B`, which is in turn equivalent to the type of vertices `f₀` of the +dependent product `Π A B` equipped with a loop `(Π A B)₁ f f`. Indeed, this data +consists of: - A map `f₀ : A₀ → B₀` - A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, @@ -59,7 +60,7 @@ as expected for the type of sections of a dependent directed graph. ## Definitions -### The Π of directed graphs +### The dependent product of directed graphs ```agda module _ @@ -85,9 +86,9 @@ module _ ## Properties -### The Π directed graph satisfies the universal property of the Π +### The dependent product of directed graphs satisfies the universal property of the dependent product -#### The evaluation of a morphism into an Π of directed graphs +#### The evaluation of a morphism into a dependent product of directed graphs ```agda module _ @@ -172,7 +173,7 @@ module _ edge-uncurry-section-product-Directed-Graph ``` -#### The equivalence of the adjunction between products and Πs of directed graphs +#### The equivalence of the adjunction between products and dependent products of directed graphs ```agda module _ @@ -196,8 +197,13 @@ module _ ( ev-section-Π-Directed-Graph A B C ( uncurry-section-product-Directed-Graph A B C f)) ( f) - pr1 (htpy-is-section-uncurry-section-product-Directed-Graph f) = refl-htpy - pr2 (htpy-is-section-uncurry-section-product-Directed-Graph f) = refl-htpy + htpy-is-section-uncurry-section-product-Directed-Graph f = + refl-htpy-section-Dependent-Directed-Graph + ( pullback-Dependent-Directed-Graph + ( product-Directed-Graph C A) + ( pr2-product-Directed-Graph C A) + ( B)) + ( f) is-section-uncurry-section-product-Directed-Graph : is-section @@ -222,10 +228,8 @@ module _ ( uncurry-section-product-Directed-Graph A B C ( ev-section-Π-Directed-Graph A B C f)) ( f) - pr1 (htpy-is-retraction-uncurry-section-product-Directed-Graph f) = - refl-htpy - pr2 (htpy-is-retraction-uncurry-section-product-Directed-Graph f) x y = - refl-htpy + htpy-is-retraction-uncurry-section-product-Directed-Graph f = + refl-htpy-hom-Directed-Graph C (Π-Directed-Graph A B) f is-retraction-uncurry-section-product-Directed-Graph : is-retraction diff --git a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..f2baa02635 --- /dev/null +++ b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md @@ -0,0 +1,605 @@ +# Dependent products of reflexive graphs + +```agda +module graph-theory.dependent-products-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.binary-dependent-identifications +open import foundation.binary-transport +open import foundation.commuting-squares-of-identifications +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.equality-dependent-function-types +open import foundation.equivalences +open import foundation.function-extensionality +open import foundation.function-types +open import foundation.functoriality-dependent-function-types +open import foundation.functoriality-dependent-pair-types +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopies +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.reflexive-relations +open import foundation.retractions +open import foundation.sections +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import graph-theory.cartesian-products-reflexive-graphs +open import graph-theory.dependent-products-directed-graphs +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs +open import graph-theory.morphisms-reflexive-graphs +open import graph-theory.pullbacks-dependent-reflexive-graphs +open import graph-theory.reflexive-graphs +open import graph-theory.sections-dependent-reflexive-graphs +``` + +
+ +## Idea + +Given a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) +`B` over a [reflexive graphs](graph-theory.reflexive-graphs.md) `A`, the +{{#concept "dependent product" Disambiguation="reflexive graph" agda=Π-Reflexive-Graph}} +`Π A B` is the reflexive graph that satisfies the universal property + +```text + hom X (Π A B) ≃ hom (X × A) B. +``` + +Concretely, the reflexive graph `Π A B` has + +- The type of [sections](graph-theory.sections-dependent-reflexive-graphs.md) + `section A B` as its type of vertices. +- For any two sections `f g : section A B`, an edge from `f` to `g` is an + element of type + + ```text + (x y : A₀) (e : A₁ x y) → B₁ e (f₀ x) (g₀ y). + ``` + +- For any section `f : section A B`, the reflexivity edge is given by `f₁`. + +The universal property of the dependent product gives that the type of +[sections](graph-theory.sections-dependent-reflexive-graphs.md) of `B` is +[equivalent](foundation-core.equivalences.md) to the type of morphisms from the +[terminal reflexive graph](graph-theory.terminal-reflexive-graphs.md) into +`Π A B`, which is in turn equivalent to the type of vertices `f₀` of the +dependent product `Π A B`, i.e., the type of sections of `B`. + +## Definitions + +### The dependent product of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 : Level} (A : Reflexive-Graph l1 l2) + (B : Dependent-Reflexive-Graph l3 l4 A) + where + + vertex-Π-Reflexive-Graph : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + vertex-Π-Reflexive-Graph = + section-Dependent-Reflexive-Graph B + + edge-Π-Reflexive-Graph : + (f g : vertex-Π-Reflexive-Graph) → UU (l1 ⊔ l2 ⊔ l4) + edge-Π-Reflexive-Graph f g = + (x x' : vertex-Reflexive-Graph A) → + (e : edge-Reflexive-Graph A x x') → + edge-Dependent-Reflexive-Graph B e + ( vertex-section-Dependent-Reflexive-Graph B f x) + ( vertex-section-Dependent-Reflexive-Graph B g x') + + refl-Π-Reflexive-Graph : + (f : vertex-Π-Reflexive-Graph) → edge-Π-Reflexive-Graph f f + refl-Π-Reflexive-Graph f _ _ = + edge-section-Dependent-Reflexive-Graph B f + + directed-graph-Π-Reflexive-Graph : + Directed-Graph (l1 ⊔ l2 ⊔ l3 ⊔ l4) (l1 ⊔ l2 ⊔ l4) + pr1 directed-graph-Π-Reflexive-Graph = vertex-Π-Reflexive-Graph + pr2 directed-graph-Π-Reflexive-Graph = edge-Π-Reflexive-Graph + + Π-Reflexive-Graph : Reflexive-Graph (l1 ⊔ l2 ⊔ l3 ⊔ l4) (l1 ⊔ l2 ⊔ l4) + pr1 Π-Reflexive-Graph = directed-graph-Π-Reflexive-Graph + pr2 Π-Reflexive-Graph = refl-Π-Reflexive-Graph +``` + +## Properties + +### The dependent product of reflexive graphs satisfies the universal property of the dependent product + +#### The evaluation of a morphism into a dependent product of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Reflexive-Graph l1 l2) (B : Dependent-Reflexive-Graph l3 l4 A) + (C : Reflexive-Graph l5 l6) + (f : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) + where + + vertex-ev-section-Π-Reflexive-Graph : + (x : vertex-product-Reflexive-Graph C A) → + vertex-Dependent-Reflexive-Graph B (pr2 x) + vertex-ev-section-Π-Reflexive-Graph (c , a) = + vertex-section-Dependent-Reflexive-Graph B + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f c) + ( a) + + edge-ev-section-Π-Reflexive-Graph : + {x x' : vertex-product-Reflexive-Graph C A} + (e : edge-product-Reflexive-Graph C A x x') → + edge-Dependent-Reflexive-Graph B + ( pr2 e) + ( vertex-ev-section-Π-Reflexive-Graph x) + ( vertex-ev-section-Π-Reflexive-Graph x') + edge-ev-section-Π-Reflexive-Graph (d , e) = + edge-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f d _ _ e + + refl-ev-section-Π-Reflexive-Graph : + (x : vertex-product-Reflexive-Graph C A) → + edge-ev-section-Π-Reflexive-Graph (refl-product-Reflexive-Graph C A x) = + refl-Dependent-Reflexive-Graph B (vertex-ev-section-Π-Reflexive-Graph x) + refl-ev-section-Π-Reflexive-Graph (x , y) = + ( htpy-eq + ( htpy-eq + ( htpy-eq (refl-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) y) + ( y)) + ( refl-Reflexive-Graph A y)) ∙ + ( refl-section-Dependent-Reflexive-Graph B + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) + ( y)) + + section-dependent-directed-graph-ev-section-Π-Reflexive-Graph : + section-dependent-directed-graph-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + pr1 section-dependent-directed-graph-ev-section-Π-Reflexive-Graph = + vertex-ev-section-Π-Reflexive-Graph + pr2 section-dependent-directed-graph-ev-section-Π-Reflexive-Graph = + edge-ev-section-Π-Reflexive-Graph + + ev-section-Π-Reflexive-Graph : + section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + pr1 ev-section-Π-Reflexive-Graph = + section-dependent-directed-graph-ev-section-Π-Reflexive-Graph + pr2 ev-section-Π-Reflexive-Graph = + refl-ev-section-Π-Reflexive-Graph +``` + +#### Uncurrying a morphism from a cartesian product into a reflexive graph + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Reflexive-Graph l1 l2) (B : Dependent-Reflexive-Graph l3 l4 A) + (C : Reflexive-Graph l5 l6) + (f : + section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B))) + where + + module _ + (x : vertex-Reflexive-Graph C) + where + + vertex-vertex-uncurry-section-product-Reflexive-Graph : + (y : vertex-Reflexive-Graph A) → vertex-Dependent-Reflexive-Graph B y + vertex-vertex-uncurry-section-product-Reflexive-Graph y = + vertex-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( f) + ( x , y) + + edge-vertex-uncurry-section-product-Reflexive-Graph : + {y y' : vertex-Reflexive-Graph A} (e : edge-Reflexive-Graph A y y') → + edge-Dependent-Reflexive-Graph B e + ( vertex-vertex-uncurry-section-product-Reflexive-Graph y) + ( vertex-vertex-uncurry-section-product-Reflexive-Graph y') + edge-vertex-uncurry-section-product-Reflexive-Graph e = + edge-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( f) + ( refl-Reflexive-Graph C x , e) + + refl-vertex-uncurry-section-product-Reflexive-Graph : + (y : vertex-Reflexive-Graph A) → + edge-vertex-uncurry-section-product-Reflexive-Graph + ( refl-Reflexive-Graph A y) = + refl-Dependent-Reflexive-Graph B + ( vertex-vertex-uncurry-section-product-Reflexive-Graph y) + refl-vertex-uncurry-section-product-Reflexive-Graph y = + refl-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( f) + ( x , y) + + section-dependent-directed-graph-vertex-uncurry-section-product-Reflexive-Graph : + section-dependent-directed-graph-Dependent-Reflexive-Graph B + pr1 + section-dependent-directed-graph-vertex-uncurry-section-product-Reflexive-Graph = + vertex-vertex-uncurry-section-product-Reflexive-Graph + pr2 + section-dependent-directed-graph-vertex-uncurry-section-product-Reflexive-Graph = + edge-vertex-uncurry-section-product-Reflexive-Graph + + vertex-uncurry-section-product-Reflexive-Graph : + vertex-Reflexive-Graph C → vertex-Π-Reflexive-Graph A B + pr1 (vertex-uncurry-section-product-Reflexive-Graph x) = + section-dependent-directed-graph-vertex-uncurry-section-product-Reflexive-Graph + x + pr2 (vertex-uncurry-section-product-Reflexive-Graph x) = + refl-vertex-uncurry-section-product-Reflexive-Graph x + + edge-uncurry-section-product-Reflexive-Graph : + {x x' : vertex-Reflexive-Graph C} (d : edge-Reflexive-Graph C x x') → + edge-Π-Reflexive-Graph A B + ( vertex-uncurry-section-product-Reflexive-Graph x) + ( vertex-uncurry-section-product-Reflexive-Graph x') + edge-uncurry-section-product-Reflexive-Graph d y y' e = + edge-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( f) + ( d , e) + + refl-uncurry-section-product-Reflexive-Graph : + (x : vertex-Reflexive-Graph C) → + edge-uncurry-section-product-Reflexive-Graph (refl-Reflexive-Graph C x) = + refl-Π-Reflexive-Graph A B + ( vertex-uncurry-section-product-Reflexive-Graph x) + refl-uncurry-section-product-Reflexive-Graph x = + refl + + hom-directed-graph-uncurry-section-product-Reflexive-Graph : + hom-Directed-Graph + ( directed-graph-Reflexive-Graph C) + ( directed-graph-Π-Reflexive-Graph A B) + pr1 hom-directed-graph-uncurry-section-product-Reflexive-Graph = + vertex-uncurry-section-product-Reflexive-Graph + pr2 hom-directed-graph-uncurry-section-product-Reflexive-Graph _ _ = + edge-uncurry-section-product-Reflexive-Graph + + uncurry-section-product-Reflexive-Graph : + hom-Reflexive-Graph C (Π-Reflexive-Graph A B) + pr1 uncurry-section-product-Reflexive-Graph = + hom-directed-graph-uncurry-section-product-Reflexive-Graph + pr2 uncurry-section-product-Reflexive-Graph = + refl-uncurry-section-product-Reflexive-Graph +``` + +#### The equivalence of the adjunction between products and dependent products of reflexive graphs + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (A : Reflexive-Graph l1 l2) (B : Dependent-Reflexive-Graph l3 l4 A) + (C : Reflexive-Graph l5 l6) + where + + htpy-is-section-uncurry-section-product-Reflexive-Graph : + ( f : + section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B))) → + htpy-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( ev-section-Π-Reflexive-Graph A B C + ( uncurry-section-product-Reflexive-Graph A B C f)) + ( f) + pr1 (pr1 (htpy-is-section-uncurry-section-product-Reflexive-Graph f)) = + refl-htpy + pr2 (pr1 (htpy-is-section-uncurry-section-product-Reflexive-Graph f)) = + refl-htpy + pr2 (htpy-is-section-uncurry-section-product-Reflexive-Graph f) x = + inv (right-unit ∙ ap-id _) + + is-section-uncurry-section-product-Reflexive-Graph : + is-section + ( ev-section-Π-Reflexive-Graph A B C) + ( uncurry-section-product-Reflexive-Graph A B C) + is-section-uncurry-section-product-Reflexive-Graph f = + eq-htpy-section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + ( ev-section-Π-Reflexive-Graph A B C + ( uncurry-section-product-Reflexive-Graph A B C f)) + ( f) + ( htpy-is-section-uncurry-section-product-Reflexive-Graph f) + + htpy-hom-Π-Reflexive-Graph : + (f g : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + htpy-hom-Π-Reflexive-Graph f g = + Σ ( Σ ( (x : vertex-Reflexive-Graph C) → + htpy-section-Dependent-Reflexive-Graph B + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) g x)) + ( λ h₀ → + (x x' : vertex-Reflexive-Graph C) + (d : edge-Reflexive-Graph C x x') + (y y' : vertex-Reflexive-Graph A) + (e : edge-Reflexive-Graph A y y') → + binary-tr + ( edge-Dependent-Reflexive-Graph B e) + ( pr1 (pr1 (h₀ x)) y) + ( pr1 (pr1 (h₀ x')) y') + ( edge-hom-Reflexive-Graph C + ( Π-Reflexive-Graph A B) + ( f) + ( d) + ( y) + ( y') + ( e)) = + edge-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) g d y y' e)) + ( λ h → + (x : vertex-Reflexive-Graph C) + (y y' : vertex-Reflexive-Graph A) (e : edge-Reflexive-Graph A y y') → + coherence-square-identifications + ( ap + ( binary-tr + ( edge-Dependent-Reflexive-Graph B e) + ( pr1 (pr1 (pr1 h x)) y) + ( pr1 (pr1 (pr1 h x)) y')) + ( htpy-eq + ( htpy-eq + ( htpy-eq + ( refl-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) + ( y)) + ( y')) + ( e))) + ( pr2 h x x (refl-Reflexive-Graph C x) y y' e) + ( pr2 (pr1 (pr1 h x)) e) + ( htpy-eq + ( htpy-eq + ( htpy-eq + ( refl-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) g x) + ( y)) + ( y')) + ( e))) + + refl-htpy-hom-Π-Reflexive-Graph : + (f : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + htpy-hom-Π-Reflexive-Graph f f + pr1 (pr1 (refl-htpy-hom-Π-Reflexive-Graph f)) x = + refl-htpy-section-Dependent-Reflexive-Graph B + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) + pr2 (pr1 (refl-htpy-hom-Π-Reflexive-Graph f)) x x' d y y' e = refl + pr2 (refl-htpy-hom-Π-Reflexive-Graph f) x y y' e = + inv (right-unit ∙ ap-id _) + + abstract + is-torsorial-htpy-hom-Π-Reflexive-Graph : + (f : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + is-torsorial (htpy-hom-Π-Reflexive-Graph f) + is-torsorial-htpy-hom-Π-Reflexive-Graph f = + is-torsorial-Eq-structure + ( is-torsorial-Eq-structure + ( is-torsorial-Eq-Π + ( λ x → + is-torsorial-htpy-section-Dependent-Reflexive-Graph B + ( vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x))) + ( ( λ x → vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) , + ( λ x → refl-htpy-section-Dependent-Reflexive-Graph B _)) + ( is-torsorial-Eq-Π + ( λ x → + is-torsorial-Eq-Π + ( λ x' → + is-torsorial-Eq-Π + ( λ d → + is-torsorial-Eq-Π + ( λ y → + is-torsorial-Eq-Π + ( λ y' → + is-torsorial-Eq-Π + ( λ e → + is-torsorial-Id _)))))))) + ( ( ( λ x → vertex-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f x) , + ( λ x x' d y y' e → _)) , + ( λ x → refl-htpy-section-Dependent-Reflexive-Graph B _) , + ( λ x x' d y y' e → refl)) + ( is-torsorial-Eq-Π + ( λ x → + is-contr-equiv + ( Σ ( (y y' : vertex-Reflexive-Graph A) + (e : edge-Reflexive-Graph A y y') → + ( edge-hom-Reflexive-Graph C + ( Π-Reflexive-Graph A B) + ( f) + ( refl-Reflexive-Graph C x) + ( y) + ( y') + ( e)) = + ( refl-Π-Reflexive-Graph A B + ( vertex-hom-Reflexive-Graph C + ( Π-Reflexive-Graph A B) + ( f) + ( x)) + ( y) + ( y') + ( e))) + ( λ H → + (y y' : vertex-Reflexive-Graph A) + (e : edge-Reflexive-Graph A y y') → + coherence-square-identifications + ( ap + ( id) + ( htpy-eq + ( htpy-eq + ( htpy-eq + ( refl-hom-Reflexive-Graph C + ( Π-Reflexive-Graph A B) + ( f) + ( x)) + ( y)) + ( y')) + ( e))) + ( refl) + ( refl) + ( H y y' e))) + ( equiv-Σ-equiv-base _ + ( ( equiv-Π-equiv-family + ( λ y → + ( equiv-Π-equiv-family (λ y' → equiv-funext)) ∘e + ( equiv-funext))) ∘e + ( equiv-funext))) + ( is-torsorial-Eq-Π + ( λ y → + is-torsorial-Eq-Π + ( λ y' → is-torsorial-Eq-Π (λ e → is-torsorial-Id' _)))))) + + htpy-eq-hom-Π-Reflexive-Graph : + (f g : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + f = g → htpy-hom-Π-Reflexive-Graph f g + htpy-eq-hom-Π-Reflexive-Graph f .f refl = + refl-htpy-hom-Π-Reflexive-Graph f + + abstract + is-equiv-htpy-eq-hom-Π-Reflexive-Graph : + (f g : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + is-equiv (htpy-eq-hom-Π-Reflexive-Graph f g) + is-equiv-htpy-eq-hom-Π-Reflexive-Graph f = + fundamental-theorem-id + ( is-torsorial-htpy-hom-Π-Reflexive-Graph f) + ( htpy-eq-hom-Π-Reflexive-Graph f) + + extensionality-hom-Π-Reflexive-Graph : + (f g : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + (f = g) ≃ htpy-hom-Π-Reflexive-Graph f g + pr1 (extensionality-hom-Π-Reflexive-Graph f g) = + htpy-eq-hom-Π-Reflexive-Graph f g + pr2 (extensionality-hom-Π-Reflexive-Graph f g) = + is-equiv-htpy-eq-hom-Π-Reflexive-Graph f g + + eq-htpy-hom-Π-Reflexive-Graph : + (f g : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + htpy-hom-Π-Reflexive-Graph f g → f = g + eq-htpy-hom-Π-Reflexive-Graph f g = + map-inv-equiv (extensionality-hom-Π-Reflexive-Graph f g) + + htpy-is-retraction-uncurry-section-product-Reflexive-Graph : + (f : hom-Reflexive-Graph C (Π-Reflexive-Graph A B)) → + htpy-hom-Π-Reflexive-Graph + ( uncurry-section-product-Reflexive-Graph A B C + ( ev-section-Π-Reflexive-Graph A B C f)) + ( f) + pr1 + ( pr1 + ( pr1 + ( pr1 + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f)) + ( x))) = + refl-htpy + pr2 + ( pr1 + ( pr1 + ( pr1 + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f)) + ( x))) + { y} + { y'} + ( e) = + htpy-eq + ( htpy-eq + ( htpy-eq + ( refl-hom-Reflexive-Graph C (Π-Reflexive-Graph A B) f _) + ( y)) + ( y')) + ( e) + pr2 + ( pr1 + ( pr1 + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f)) + ( x)) + ( y) = + inv (right-unit ∙ ap-id _) + pr2 + ( pr1 + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f)) + ( x) + ( x') + ( d) + ( y) + ( y') + ( e) = + refl + pr2 + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f) + ( x) + ( y) + ( y') + ( e) = + refl + + is-retraction-uncurry-section-product-Reflexive-Graph : + is-retraction + ( ev-section-Π-Reflexive-Graph A B C) + ( uncurry-section-product-Reflexive-Graph A B C) + is-retraction-uncurry-section-product-Reflexive-Graph f = + eq-htpy-hom-Π-Reflexive-Graph + ( uncurry-section-product-Reflexive-Graph A B C + ( ev-section-Π-Reflexive-Graph A B C f)) + ( f) + ( htpy-is-retraction-uncurry-section-product-Reflexive-Graph f) + + abstract + is-equiv-ev-section-Π-Reflexive-Graph : + is-equiv (ev-section-Π-Reflexive-Graph A B C) + is-equiv-ev-section-Π-Reflexive-Graph = + is-equiv-is-invertible + ( uncurry-section-product-Reflexive-Graph A B C) + ( is-section-uncurry-section-product-Reflexive-Graph) + ( is-retraction-uncurry-section-product-Reflexive-Graph) + + ev-equiv-hom-Π-Reflexive-Graph : + hom-Reflexive-Graph C (Π-Reflexive-Graph A B) ≃ + section-Dependent-Reflexive-Graph + ( pullback-Dependent-Reflexive-Graph + ( product-Reflexive-Graph C A) + ( pr2-product-Reflexive-Graph C A) + ( B)) + pr1 ev-equiv-hom-Π-Reflexive-Graph = + ev-section-Π-Reflexive-Graph A B C + pr2 ev-equiv-hom-Π-Reflexive-Graph = + is-equiv-ev-section-Π-Reflexive-Graph +``` + +## See also + +- [Dependent coproduct reflexive graphs](graph-theory.dependent-coproducts-reflexive-graphs.md) diff --git a/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md index 4e7a8917e8..792b3557f8 100644 --- a/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/sections-dependent-reflexive-graphs.lagda.md @@ -10,6 +10,7 @@ module graph-theory.sections-dependent-reflexive-graphs where open import foundation.action-on-identifications-binary-dependent-functions open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions +open import foundation.binary-transport open import foundation.commuting-squares-of-identifications open import foundation.dependent-pair-types open import foundation.equality-dependent-function-types @@ -172,18 +173,10 @@ module _ (x : vertex-Reflexive-Graph A) → coherence-square-identifications ( ap - ( ( tr - ( edge-Dependent-Reflexive-Graph B - ( refl-Reflexive-Graph A x) - ( vertex-section-Dependent-Reflexive-Graph B g x)) - ( H₀ x)) ∘ - ( tr - ( λ u → - edge-Dependent-Reflexive-Graph B - ( refl-Reflexive-Graph A x) - ( u) - ( vertex-section-Dependent-Reflexive-Graph B f x)) - ( H₀ x))) + ( binary-tr + ( edge-Dependent-Reflexive-Graph B (refl-Reflexive-Graph A x)) + ( H₀ x) + ( H₀ x)) ( refl-section-Dependent-Reflexive-Graph B f x)) ( H₁ (refl-Reflexive-Graph A x)) ( binary-dependent-identification-refl-Reflexive-Relation From b39c097d5a34d448b42a331bd7033827b6bdbf4a Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 24 Oct 2024 19:57:15 -0400 Subject: [PATCH 40/42] minor edit --- src/graph-theory/morphisms-directed-graphs.lagda.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/graph-theory/morphisms-directed-graphs.lagda.md b/src/graph-theory/morphisms-directed-graphs.lagda.md index b8254dd141..9c85662c76 100644 --- a/src/graph-theory/morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/morphisms-directed-graphs.lagda.md @@ -7,6 +7,7 @@ module graph-theory.morphisms-directed-graphs where
Imports ```agda +open import foundation.binary-dependent-identifications open import foundation.binary-transport open import foundation.dependent-pair-types open import foundation.equality-dependent-function-types @@ -144,12 +145,12 @@ module _ Σ ( vertex-hom-Directed-Graph G H f ~ vertex-hom-Directed-Graph G H g) ( λ α → ( x y : vertex-Directed-Graph G) (e : edge-Directed-Graph G x y) → - binary-tr + binary-dependent-identification ( edge-Directed-Graph H) ( α x) ( α y) - ( edge-hom-Directed-Graph G H f e) = - edge-hom-Directed-Graph G H g e) + ( edge-hom-Directed-Graph G H f e) + ( edge-hom-Directed-Graph G H g e)) module _ (f g : hom-Directed-Graph G H) (α : htpy-hom-Directed-Graph f g) @@ -161,12 +162,12 @@ module _ edge-htpy-hom-Directed-Graph : (x y : vertex-Directed-Graph G) (e : edge-Directed-Graph G x y) → - binary-tr + binary-dependent-identification ( edge-Directed-Graph H) ( vertex-htpy-hom-Directed-Graph x) ( vertex-htpy-hom-Directed-Graph y) - ( edge-hom-Directed-Graph G H f e) = - edge-hom-Directed-Graph G H g e + ( edge-hom-Directed-Graph G H f e) + ( edge-hom-Directed-Graph G H g e) edge-htpy-hom-Directed-Graph = pr2 α refl-htpy-hom-Directed-Graph : From d1e54480fc70eb7d3b4d17bd1708c39cece7e461 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 25 Oct 2024 14:18:47 -0400 Subject: [PATCH 41/42] review comments --- references.bib | 10 +- src/foundation/reflexive-relations.lagda.md | 6 +- src/graph-theory.lagda.md | 10 +- ...change-dependent-directed-graphs.lagda.md} | 34 +++--- ...hange-dependent-reflexive-graphs.lagda.md} | 55 ++++----- ...artesian-products-directed-graphs.lagda.md | 5 +- ...rtesian-products-reflexive-graphs.lagda.md | 5 +- .../dependent-directed-graphs.lagda.md | 9 +- ...ependent-products-directed-graphs.lagda.md | 22 ++-- ...pendent-products-reflexive-graphs.lagda.md | 26 ++--- .../dependent-reflexive-graphs.lagda.md | 15 ++- ...> dependent-sums-directed-graphs.lagda.md} | 16 +-- ... dependent-sums-reflexive-graphs.lagda.md} | 28 ++--- .../directed-graph-duality.lagda.md | 2 +- ...alences-dependent-directed-graphs.lagda.md | 2 +- .../fibers-directed-graphs.lagda.md | 2 +- .../fibers-morphisms-directed-graphs.lagda.md | 6 +- ...fibers-morphisms-reflexive-graphs.lagda.md | 4 +- ... => internal-hom-directed-graphs.lagda.md} | 104 +++++++++--------- .../universal-directed-graph.lagda.md | 28 ++--- .../universal-reflexive-graph.lagda.md | 78 +++++++++++-- src/structured-types.lagda.md | 6 +- ...-change-dependent-globular-types.lagda.md} | 40 +++---- ...=> dependent-sums-globular-types.lagda.md} | 24 ++-- ...d => exponentials-globular-types.lagda.md} | 44 ++++---- .../universal-globular-type.lagda.md | 19 ++-- ...universal-reflexive-globular-type.lagda.md | 6 +- 27 files changed, 337 insertions(+), 269 deletions(-) rename src/graph-theory/{pullbacks-dependent-directed-graphs.lagda.md => base-change-dependent-directed-graphs.lagda.md} (55%) rename src/graph-theory/{pullbacks-dependent-reflexive-graphs.lagda.md => base-change-dependent-reflexive-graphs.lagda.md} (51%) rename src/graph-theory/{dependent-coproducts-directed-graphs.lagda.md => dependent-sums-directed-graphs.lagda.md} (86%) rename src/graph-theory/{dependent-coproducts-reflexive-graphs.lagda.md => dependent-sums-reflexive-graphs.lagda.md} (88%) rename src/graph-theory/{exponents-directed-graphs.lagda.md => internal-hom-directed-graphs.lagda.md} (63%) rename src/structured-types/{pullbacks-dependent-globular-types.lagda.md => base-change-dependent-globular-types.lagda.md} (57%) rename src/structured-types/{dependent-coproducts-globular-types.lagda.md => dependent-sums-globular-types.lagda.md} (86%) rename src/structured-types/{exponents-globular-types.lagda.md => exponentials-globular-types.lagda.md} (54%) diff --git a/references.bib b/references.bib index bece2977e9..939fec76db 100644 --- a/references.bib +++ b/references.bib @@ -28,21 +28,15 @@ @article{AKS15 langid = {english} } -@ARTICLE{Awodey22, +@misc{Awodey22, author = {{Awodey}, Steve}, title = "{On Hofmann-Streicher universes}", - journal = {arXiv e-prints}, keywords = {Mathematics - Category Theory, Mathematics - Logic}, year = 2022, month = may, - eid = {arXiv:2205.10917}, - pages = {arXiv:2205.10917}, - doi = {10.48550/arXiv.2205.10917}, archivePrefix = {arXiv}, eprint = {2205.10917}, - primaryClass = {math.CT}, - adsurl = {https://ui.adsabs.harvard.edu/abs/2022arXiv220510917A}, - adsnote = {Provided by the SAO/NASA Astrophysics Data System} + primaryClass = {math.CT} } @online{BCDE21, diff --git a/src/foundation/reflexive-relations.lagda.md b/src/foundation/reflexive-relations.lagda.md index f20116669a..1491483087 100644 --- a/src/foundation/reflexive-relations.lagda.md +++ b/src/foundation/reflexive-relations.lagda.md @@ -76,9 +76,9 @@ the reflexivity element `r`: This action on identifications can be seen as an instance of a dependent function over the diagonal map `Δ : A → A × A`, a situation wich can be -generalized. At the present time, however, the library lacks infrastructure for -the general formulation of the action on identifications of dependent functions -over functions yielding binary dependent identifications. +generalized. At the time of writing, however, the library lacks infrastructure +for the general formulation of the action on identifications of dependent +functions over functions yielding binary dependent identifications. ```agda module _ diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index c570e2e819..7d127b4622 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -6,6 +6,8 @@ module graph-theory where open import graph-theory.acyclic-undirected-graphs public +open import graph-theory.base-change-dependent-directed-graphs public +open import graph-theory.base-change-dependent-reflexive-graphs public open import graph-theory.cartesian-products-directed-graphs public open import graph-theory.cartesian-products-reflexive-graphs public open import graph-theory.circuits-undirected-graphs public @@ -15,12 +17,12 @@ open import graph-theory.complete-multipartite-graphs public open import graph-theory.complete-undirected-graphs public open import graph-theory.connected-undirected-graphs public open import graph-theory.cycles-undirected-graphs public -open import graph-theory.dependent-coproducts-directed-graphs public -open import graph-theory.dependent-coproducts-reflexive-graphs public open import graph-theory.dependent-directed-graphs public open import graph-theory.dependent-products-directed-graphs public open import graph-theory.dependent-products-reflexive-graphs public open import graph-theory.dependent-reflexive-graphs public +open import graph-theory.dependent-sums-directed-graphs public +open import graph-theory.dependent-sums-reflexive-graphs public open import graph-theory.directed-graph-duality public open import graph-theory.directed-graph-structures-on-standard-finite-sets public open import graph-theory.directed-graphs public @@ -37,7 +39,6 @@ open import graph-theory.equivalences-enriched-undirected-graphs public open import graph-theory.equivalences-reflexive-graphs public open import graph-theory.equivalences-undirected-graphs public open import graph-theory.eulerian-circuits-undirected-graphs public -open import graph-theory.exponents-directed-graphs public open import graph-theory.faithful-morphisms-undirected-graphs public open import graph-theory.fibers-directed-graphs public open import graph-theory.fibers-morphisms-directed-graphs public @@ -46,6 +47,7 @@ open import graph-theory.finite-graphs public open import graph-theory.geometric-realizations-undirected-graphs public open import graph-theory.higher-directed-graphs public open import graph-theory.hypergraphs public +open import graph-theory.internal-hom-directed-graphs public open import graph-theory.large-higher-directed-graphs public open import graph-theory.large-reflexive-graphs public open import graph-theory.matchings public @@ -58,8 +60,6 @@ open import graph-theory.neighbors-undirected-graphs public open import graph-theory.orientations-undirected-graphs public open import graph-theory.paths-undirected-graphs public open import graph-theory.polygons public -open import graph-theory.pullbacks-dependent-directed-graphs public -open import graph-theory.pullbacks-dependent-reflexive-graphs public open import graph-theory.raising-universe-levels-directed-graphs public open import graph-theory.reflecting-maps-undirected-graphs public open import graph-theory.reflexive-graphs public diff --git a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md b/src/graph-theory/base-change-dependent-directed-graphs.lagda.md similarity index 55% rename from src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md rename to src/graph-theory/base-change-dependent-directed-graphs.lagda.md index d5549de49b..839b1619cd 100644 --- a/src/graph-theory/pullbacks-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/base-change-dependent-directed-graphs.lagda.md @@ -1,7 +1,7 @@ -# Pullbacks of dependent directed graphs +# Base change of dependent directed graphs ```agda -module graph-theory.pullbacks-dependent-directed-graphs where +module graph-theory.base-change-dependent-directed-graphs where ```
Imports @@ -22,9 +22,9 @@ open import graph-theory.morphisms-directed-graphs Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `B` over a [directed graph](graph-theory.directed-graphs.md) `A`, and consider a [graph homomorphism](graph-theory.morphisms-directed-graphs.md) `f : C → A`. The -{{#concept "pullback" Disambiguation="dependent directed graphs"}} `f*B` of `B` -along `f` is defined by substituting the values of `f` into `B`. More precisely, -`f*B` is defined by +{{#concept "base change" Disambiguation="dependent directed graphs" Agda=base-change-Dependent-Directed-Graph}} +`f*B` of `B` along `f` is defined by substituting the values of `f` into `B`. +More precisely, `f*B` is defined by ```text (f*B)₀ c := B₀ (f₀ c) @@ -33,7 +33,7 @@ along `f` is defined by substituting the values of `f` into `B`. More precisely, ## Definitions -### The pullback of dependent directed graphs +### Base change of dependent directed graphs ```agda module _ @@ -43,22 +43,22 @@ module _ (B : Dependent-Directed-Graph l5 l6 A) where - vertex-pullback-Dependent-Directed-Graph : + vertex-base-change-Dependent-Directed-Graph : (c : vertex-Directed-Graph C) → UU l5 - vertex-pullback-Dependent-Directed-Graph c = + vertex-base-change-Dependent-Directed-Graph c = vertex-Dependent-Directed-Graph B (vertex-hom-Directed-Graph C A f c) - edge-pullback-Dependent-Directed-Graph : + edge-base-change-Dependent-Directed-Graph : {x y : vertex-Directed-Graph C} (e : edge-Directed-Graph C x y) → - vertex-pullback-Dependent-Directed-Graph x → - vertex-pullback-Dependent-Directed-Graph y → UU l6 - edge-pullback-Dependent-Directed-Graph e = + vertex-base-change-Dependent-Directed-Graph x → + vertex-base-change-Dependent-Directed-Graph y → UU l6 + edge-base-change-Dependent-Directed-Graph e = edge-Dependent-Directed-Graph B (edge-hom-Directed-Graph C A f e) - pullback-Dependent-Directed-Graph : + base-change-Dependent-Directed-Graph : Dependent-Directed-Graph l5 l6 C - pr1 pullback-Dependent-Directed-Graph = - vertex-pullback-Dependent-Directed-Graph - pr2 pullback-Dependent-Directed-Graph _ _ = - edge-pullback-Dependent-Directed-Graph + pr1 base-change-Dependent-Directed-Graph = + vertex-base-change-Dependent-Directed-Graph + pr2 base-change-Dependent-Directed-Graph _ _ = + edge-base-change-Dependent-Directed-Graph ``` diff --git a/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md b/src/graph-theory/base-change-dependent-reflexive-graphs.lagda.md similarity index 51% rename from src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md rename to src/graph-theory/base-change-dependent-reflexive-graphs.lagda.md index d82dd16ca7..d1168be9c8 100644 --- a/src/graph-theory/pullbacks-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/base-change-dependent-reflexive-graphs.lagda.md @@ -1,7 +1,7 @@ -# Pullbacks of dependent reflexive graphs +# Base change of dependent reflexive graphs ```agda -module graph-theory.pullbacks-dependent-reflexive-graphs where +module graph-theory.base-change-dependent-reflexive-graphs where ```
Imports @@ -12,10 +12,10 @@ open import foundation.identity-types open import foundation.transport-along-identifications open import foundation.universe-levels +open import graph-theory.base-change-dependent-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.dependent-reflexive-graphs open import graph-theory.morphisms-reflexive-graphs -open import graph-theory.pullbacks-dependent-directed-graphs open import graph-theory.reflexive-graphs ``` @@ -27,9 +27,10 @@ Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `B` over a [reflexive graph](graph-theory.reflexive-graphs.md) `A`, and consider a [graph homomorphism](graph-theory.morphisms-reflexive-graphs.md) `f : C → A`. -The {{#concept "pullback" Disambiguation="dependent reflexive graphs"}} `f*B` of -`B` along `f` is defined by substituting the values of `f` into `B`. More -precisely, `f*B` is defined by +The +{{#concept "base change" Disambiguation="dependent reflexive graphs" Agda=base-change-Dependent-Reflexive-Graph}} +`f*B` of `B` along `f` is defined by substituting the values of `f` into `B`. +More precisely, `f*B` is defined by ```text (f*B)₀ c := B₀ (f₀ c) @@ -38,7 +39,7 @@ precisely, `f*B` is defined by ## Definitions -### The pullback of dependent reflexive graphs +### Base change of dependent reflexive graphs ```agda module _ @@ -48,42 +49,42 @@ module _ (B : Dependent-Reflexive-Graph l5 l6 A) where - dependent-directed-graph-pullback-Dependent-Reflexive-Graph : + dependent-directed-graph-base-change-Dependent-Reflexive-Graph : Dependent-Directed-Graph l5 l6 (directed-graph-Reflexive-Graph C) - dependent-directed-graph-pullback-Dependent-Reflexive-Graph = - pullback-Dependent-Directed-Graph + dependent-directed-graph-base-change-Dependent-Reflexive-Graph = + base-change-Dependent-Directed-Graph ( directed-graph-Reflexive-Graph C) ( hom-directed-graph-hom-Reflexive-Graph C A f) ( dependent-directed-graph-Dependent-Reflexive-Graph B) - vertex-pullback-Dependent-Reflexive-Graph : + vertex-base-change-Dependent-Reflexive-Graph : (x : vertex-Reflexive-Graph C) → UU l5 - vertex-pullback-Dependent-Reflexive-Graph = + vertex-base-change-Dependent-Reflexive-Graph = vertex-Dependent-Directed-Graph - dependent-directed-graph-pullback-Dependent-Reflexive-Graph + dependent-directed-graph-base-change-Dependent-Reflexive-Graph - edge-pullback-Dependent-Reflexive-Graph : + edge-base-change-Dependent-Reflexive-Graph : {x y : vertex-Reflexive-Graph C} (e : edge-Reflexive-Graph C x y) → - vertex-pullback-Dependent-Reflexive-Graph x → - vertex-pullback-Dependent-Reflexive-Graph y → UU l6 - edge-pullback-Dependent-Reflexive-Graph = + vertex-base-change-Dependent-Reflexive-Graph x → + vertex-base-change-Dependent-Reflexive-Graph y → UU l6 + edge-base-change-Dependent-Reflexive-Graph = edge-Dependent-Directed-Graph - dependent-directed-graph-pullback-Dependent-Reflexive-Graph + dependent-directed-graph-base-change-Dependent-Reflexive-Graph - refl-pullback-Dependent-Reflexive-Graph : + refl-base-change-Dependent-Reflexive-Graph : {x : vertex-Reflexive-Graph C} - (y : vertex-pullback-Dependent-Reflexive-Graph x) → - edge-pullback-Dependent-Reflexive-Graph (refl-Reflexive-Graph C x) y y - refl-pullback-Dependent-Reflexive-Graph {x} y = + (y : vertex-base-change-Dependent-Reflexive-Graph x) → + edge-base-change-Dependent-Reflexive-Graph (refl-Reflexive-Graph C x) y y + refl-base-change-Dependent-Reflexive-Graph {x} y = tr ( λ u → edge-Dependent-Reflexive-Graph B u y y) ( inv (refl-hom-Reflexive-Graph C A f x)) ( refl-Dependent-Reflexive-Graph B y) - pullback-Dependent-Reflexive-Graph : + base-change-Dependent-Reflexive-Graph : Dependent-Reflexive-Graph l5 l6 C - pr1 pullback-Dependent-Reflexive-Graph = - dependent-directed-graph-pullback-Dependent-Reflexive-Graph - pr2 pullback-Dependent-Reflexive-Graph _ = - refl-pullback-Dependent-Reflexive-Graph + pr1 base-change-Dependent-Reflexive-Graph = + dependent-directed-graph-base-change-Dependent-Reflexive-Graph + pr2 base-change-Dependent-Reflexive-Graph _ = + refl-base-change-Dependent-Reflexive-Graph ``` diff --git a/src/graph-theory/cartesian-products-directed-graphs.lagda.md b/src/graph-theory/cartesian-products-directed-graphs.lagda.md index 8437b9a777..50840f8b15 100644 --- a/src/graph-theory/cartesian-products-directed-graphs.lagda.md +++ b/src/graph-theory/cartesian-products-directed-graphs.lagda.md @@ -20,8 +20,9 @@ open import graph-theory.morphisms-directed-graphs ## Idea Consider two [directed graphs](graph-theory.directed-graphs.md) `A := (A₀ , A₁)` -and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is the directed graph -`A × B` given by +and `B := (B₀ , B₁)`. The +{{#concept "cartesian product" Disambiguation="directed graphs" Agda=product-Directed-Graph}} +of `A` and `B` is the directed graph `A × B` given by ```text (A × B)₀ := A₀ × B₀ diff --git a/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md index 31f2d0db0f..07a2b06807 100644 --- a/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md +++ b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md @@ -24,8 +24,9 @@ open import graph-theory.reflexive-graphs ## Idea Consider two [reflexive graphs](graph-theory.reflexive-graphs.md) -`A := (A₀ , A₁)` and `B := (B₀ , B₁)`. The cartesian product of `A` and `B` is -the reflexive graph `A × B` given by +`A := (A₀ , A₁)` and `B := (B₀ , B₁)`. The +{{#concept "cartesian product" Disambiguation="reflexive graphs" Agda=product-Reflexive-Graph}} +of `A` and `B` is the reflexive graph `A × B` given by ```text (A × B)₀ := A₀ × B₀ diff --git a/src/graph-theory/dependent-directed-graphs.lagda.md b/src/graph-theory/dependent-directed-graphs.lagda.md index 532ab9b0f8..bd7a43b39d 100644 --- a/src/graph-theory/dependent-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-directed-graphs.lagda.md @@ -26,9 +26,10 @@ Consider a [directed graph](graph-theory.directed-graphs.md) `A`. A [binary relations](foundation.binary-relations.md) between the types of vertices `B₀`, indexed by the type of edges `A₁` in `A`. -This definition may appear overly general. However, one can observe that the -type of directed graphs itself is [equivalent](foundation-core.equivalences.md) -to the type of dependent directed graphs over the +To see that this is a sensible definition of dependent directed graphs, observe +that the type of directed graphs itself is +[equivalent](foundation-core.equivalences.md) to the type of dependent directed +graphs over the [terminal directed graph](graph-theory.terminal-directed-graphs.md). Furthermore, [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) into the [universal directed graph](graph-theory.universal-directed-graph.md) @@ -93,4 +94,4 @@ module _ ## See also - The [universal directed graph](graph-theory.universal-directed-graph.md) -- [Pullbacks of dependent directed graphs](graph-theory.pullbacks-dependent-directed-graphs.md) +- [base change of dependent directed graphs](graph-theory.base-change-dependent-directed-graphs.md) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index 38106f6f31..afd4884827 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -14,11 +14,11 @@ open import foundation.retractions open import foundation.sections open import foundation.universe-levels +open import graph-theory.base-change-dependent-directed-graphs open import graph-theory.cartesian-products-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs -open import graph-theory.pullbacks-dependent-directed-graphs open import graph-theory.sections-dependent-directed-graphs ``` @@ -116,7 +116,7 @@ module _ ev-section-Π-Directed-Graph : section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -133,7 +133,7 @@ module _ (C : Directed-Graph l5 l6) (f : section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B))) @@ -143,7 +143,7 @@ module _ vertex-Directed-Graph C → vertex-Π-Directed-Graph A B vertex-uncurry-section-product-Directed-Graph c a = vertex-section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -158,7 +158,7 @@ module _ ( vertex-uncurry-section-product-Directed-Graph y) edge-uncurry-section-product-Directed-Graph c c' d a a' e = edge-section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -185,12 +185,12 @@ module _ htpy-is-section-uncurry-section-product-Directed-Graph : ( f : section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B))) → htpy-section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -199,7 +199,7 @@ module _ ( f) htpy-is-section-uncurry-section-product-Directed-Graph f = refl-htpy-section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -211,7 +211,7 @@ module _ ( uncurry-section-product-Directed-Graph A B C) is-section-uncurry-section-product-Directed-Graph f = eq-htpy-section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -255,7 +255,7 @@ module _ ev-equiv-hom-Π-Directed-Graph : hom-Directed-Graph C (Π-Directed-Graph A B) ≃ section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( product-Directed-Graph C A) ( pr2-product-Directed-Graph C A) ( B)) @@ -267,4 +267,4 @@ module _ ## See also -- [Dependent coproduct directed graphs](graph-theory.dependent-coproducts-directed-graphs.md) +- [dependent sums of directed graphs](graph-theory.dependent-sums-directed-graphs.md) diff --git a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md index f2baa02635..d757358eb9 100644 --- a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md @@ -31,13 +31,13 @@ open import foundation.torsorial-type-families open import foundation.transport-along-identifications open import foundation.universe-levels +open import graph-theory.base-change-dependent-reflexive-graphs open import graph-theory.cartesian-products-reflexive-graphs open import graph-theory.dependent-products-directed-graphs open import graph-theory.dependent-reflexive-graphs open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs -open import graph-theory.pullbacks-dependent-reflexive-graphs open import graph-theory.reflexive-graphs open import graph-theory.sections-dependent-reflexive-graphs ``` @@ -161,7 +161,7 @@ module _ section-dependent-directed-graph-ev-section-Π-Reflexive-Graph : section-dependent-directed-graph-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -172,7 +172,7 @@ module _ ev-section-Π-Reflexive-Graph : section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -191,7 +191,7 @@ module _ (C : Reflexive-Graph l5 l6) (f : section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B))) @@ -205,7 +205,7 @@ module _ (y : vertex-Reflexive-Graph A) → vertex-Dependent-Reflexive-Graph B y vertex-vertex-uncurry-section-product-Reflexive-Graph y = vertex-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -219,7 +219,7 @@ module _ ( vertex-vertex-uncurry-section-product-Reflexive-Graph y') edge-vertex-uncurry-section-product-Reflexive-Graph e = edge-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -234,7 +234,7 @@ module _ ( vertex-vertex-uncurry-section-product-Reflexive-Graph y) refl-vertex-uncurry-section-product-Reflexive-Graph y = refl-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -265,7 +265,7 @@ module _ ( vertex-uncurry-section-product-Reflexive-Graph x') edge-uncurry-section-product-Reflexive-Graph d y y' e = edge-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -309,12 +309,12 @@ module _ htpy-is-section-uncurry-section-product-Reflexive-Graph : ( f : section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B))) → htpy-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -334,7 +334,7 @@ module _ ( uncurry-section-product-Reflexive-Graph A B C) is-section-uncurry-section-product-Reflexive-Graph f = eq-htpy-section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -590,7 +590,7 @@ module _ ev-equiv-hom-Π-Reflexive-Graph : hom-Reflexive-Graph C (Π-Reflexive-Graph A B) ≃ section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( product-Reflexive-Graph C A) ( pr2-product-Reflexive-Graph C A) ( B)) @@ -602,4 +602,4 @@ module _ ## See also -- [Dependent coproduct reflexive graphs](graph-theory.dependent-coproducts-reflexive-graphs.md) +- [dependent sums of reflexive graphs](graph-theory.dependent-sums-reflexive-graphs.md) diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 124bfbf508..ec9f4a08d3 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -30,9 +30,10 @@ Consider a [reflexive graph](graph-theory.reflexive-graphs.md) `A`. A - A family of elements `Bᵣ : (x : A₀) (y : B₀ x) → B₁ (Aᵣ x) y y` witnessing the reflexivity of `B₁` over the reflexivity `Aᵣ` of `A₁`. -This definition may appear overly general. However, one can observe that the -type of reflexive graphs itself is [equivalent](foundation-core.equivalences.md) -to the type of dependent reflexive graphs over the +To see that this is a sensible definition of dependent reflexive graphs, observe +that the type of reflexive graphs itself is +[equivalent](foundation-core.equivalences.md) to the type of dependent reflexive +graphs over the [terminal reflexive graph](graph-theory.terminal-reflexive-graphs.md). Furthermore, [graph homomorphisms](graph-theory.morphisms-reflexive-graphs.md) into the [universal reflexive graph](graph-theory.universal-reflexive-graph.md) @@ -43,7 +44,11 @@ Alternatively, a dependent reflexive graph `B` over `A` can be defined by - A family `B₀ : A₀ → Reflexive-Graph` of reflexive graphs as the type family of vertices - A family `B₁ : {x y : A₀} → A₁ x y → (B₀ x)₀ → (B₀ y)₀ → 𝒰`. -- A family `Bᵣ : (x : A₀) → B₁ (Aᵣ x) = (B₀ x)₁ +- A [family of equivalences](foundation.families-of-equivalences.md) `Bᵣ : (x : + A₀) (y y' : B₀ x) → B₁ (Aᵣ x) y y' ≃ (B₀ x)₁ y y'. + +This definition is more closely related to the concept of morphism into the +universal reflexive graph. ## Definitions @@ -150,4 +155,4 @@ module _ ## See also - The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) -- [Pullbacks of dependent reflexive graphs](graph-theory.pullbacks-dependent-reflexive-graphs.md) +- [base change of dependent reflexive graphs](graph-theory.base-change-dependent-reflexive-graphs.md) diff --git a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md b/src/graph-theory/dependent-sums-directed-graphs.lagda.md similarity index 86% rename from src/graph-theory/dependent-coproducts-directed-graphs.lagda.md rename to src/graph-theory/dependent-sums-directed-graphs.lagda.md index 988734b5c4..3c0ab314b5 100644 --- a/src/graph-theory/dependent-coproducts-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-sums-directed-graphs.lagda.md @@ -1,7 +1,7 @@ -# Dependent coproducts directed graphs +# Dependent sums directed graphs ```agda -module graph-theory.dependent-coproducts-directed-graphs where +module graph-theory.dependent-sums-directed-graphs where ```
Imports @@ -10,10 +10,10 @@ module graph-theory.dependent-coproducts-directed-graphs where open import foundation.dependent-pair-types open import foundation.universe-levels +open import graph-theory.base-change-dependent-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs -open import graph-theory.pullbacks-dependent-directed-graphs open import graph-theory.sections-dependent-directed-graphs ``` @@ -23,7 +23,7 @@ open import graph-theory.sections-dependent-directed-graphs Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `H` over a [directed graph](graph-theory.directed-graphs.md) `G`. The -{{#concept "dependent coproduct" Disambiguation="directed graphs" Agda=Σ-Directed-Graph}} +{{#concept "dependent sum" Disambiguation="directed graphs" Agda=Σ-Directed-Graph}} `Σ G H` is the directed graph given by ```text @@ -33,7 +33,7 @@ Consider a [dependent directed graph](graph-theory.dependent-directed-graphs.md) ## Definitions -### The dependent coproduct of directed graphs +### The dependent sum of directed graphs ```agda module _ @@ -56,7 +56,7 @@ module _ pr2 Σ-Directed-Graph = edge-Σ-Directed-Graph ``` -### The first projection of the dependent coproduct directed graph +### The first projection of the dependent sums of directed graph ```agda module _ @@ -82,7 +82,7 @@ module _ pr2 pr1-Σ-Directed-Graph _ _ = edge-pr1-Σ-Directed-Graph ``` -### The second projection of the dependent coproduct directed graph +### The second projection of the dependent sums of directed graph ```agda module _ @@ -106,7 +106,7 @@ module _ pr2-Σ-Directed-Graph : section-Dependent-Directed-Graph - ( pullback-Dependent-Directed-Graph + ( base-change-Dependent-Directed-Graph ( Σ-Directed-Graph H) ( pr1-Σ-Directed-Graph H) ( H)) diff --git a/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md similarity index 88% rename from src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md rename to src/graph-theory/dependent-sums-reflexive-graphs.lagda.md index afbca74b3d..f4a1131f78 100644 --- a/src/graph-theory/dependent-coproducts-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md @@ -1,7 +1,7 @@ -# Dependent coproducts reflexive graphs +# Dependent sums reflexive graphs ```agda -module graph-theory.dependent-coproducts-reflexive-graphs where +module graph-theory.dependent-sums-reflexive-graphs where ```
Imports @@ -11,12 +11,12 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels -open import graph-theory.dependent-coproducts-directed-graphs +open import graph-theory.base-change-dependent-reflexive-graphs open import graph-theory.dependent-reflexive-graphs +open import graph-theory.dependent-sums-directed-graphs open import graph-theory.directed-graphs open import graph-theory.morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs -open import graph-theory.pullbacks-dependent-reflexive-graphs open import graph-theory.reflexive-graphs open import graph-theory.sections-dependent-directed-graphs open import graph-theory.sections-dependent-reflexive-graphs @@ -29,7 +29,7 @@ open import graph-theory.sections-dependent-reflexive-graphs Consider a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `H` over a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The -{{#concept "dependent coproduct" Disambiguation="reflexive graphs" Agda=Σ-Reflexive-Graph}} +{{#concept "dependent sum" Disambiguation="reflexive graphs" Agda=Σ-Reflexive-Graph}} `Σ G H` is the reflexive graph given by ```text @@ -40,7 +40,7 @@ a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The ## Definitions -### The dependent coproduct of reflexive graphs +### The dependent sum of reflexive graphs ```agda module _ @@ -72,7 +72,7 @@ module _ pr2 Σ-Reflexive-Graph = refl-Σ-Reflexive-Graph ``` -### The first projection of the dependent coproduct reflexive graph +### The first projection of the dependent sums of reflexive graph ```agda module _ @@ -118,7 +118,7 @@ module _ pr2 pr1-Σ-Reflexive-Graph = refl-pr1-Σ-Reflexive-Graph ``` -### The second projection of the dependent coproduct reflexive graph +### The second projection of the dependent sums of reflexive graph ```agda module _ @@ -128,7 +128,7 @@ module _ section-dependent-directed-graph-pr2-Σ-Reflexive-Graph : section-dependent-directed-graph-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H)) @@ -137,14 +137,14 @@ module _ vertex-pr2-Σ-Reflexive-Graph : (x : vertex-Σ-Reflexive-Graph H) → - vertex-pullback-Dependent-Reflexive-Graph + vertex-base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H) ( x) vertex-pr2-Σ-Reflexive-Graph = vertex-section-dependent-directed-graph-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H)) @@ -153,7 +153,7 @@ module _ edge-pr2-Σ-Reflexive-Graph : {x y : vertex-Σ-Reflexive-Graph H} (e : edge-Σ-Reflexive-Graph H x y) → - edge-pullback-Dependent-Reflexive-Graph + edge-base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H) @@ -162,7 +162,7 @@ module _ ( vertex-pr2-Σ-Reflexive-Graph y) edge-pr2-Σ-Reflexive-Graph = edge-section-dependent-directed-graph-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H)) @@ -176,7 +176,7 @@ module _ pr2-Σ-Reflexive-Graph : section-Dependent-Reflexive-Graph - ( pullback-Dependent-Reflexive-Graph + ( base-change-Dependent-Reflexive-Graph ( Σ-Reflexive-Graph H) ( pr1-Σ-Reflexive-Graph H) ( H)) diff --git a/src/graph-theory/directed-graph-duality.lagda.md b/src/graph-theory/directed-graph-duality.lagda.md index eb550aa74e..26a89c50fc 100644 --- a/src/graph-theory/directed-graph-duality.lagda.md +++ b/src/graph-theory/directed-graph-duality.lagda.md @@ -17,8 +17,8 @@ open import foundation.structure-identity-principle open import foundation.torsorial-type-families open import foundation.universe-levels -open import graph-theory.dependent-coproducts-directed-graphs open import graph-theory.dependent-directed-graphs +open import graph-theory.dependent-sums-directed-graphs open import graph-theory.directed-graphs open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-directed-graphs diff --git a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md index 2cbd096355..2876ea23fa 100644 --- a/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-directed-graphs.lagda.md @@ -29,7 +29,7 @@ open import graph-theory.directed-graphs Consider two [dependent directed graphs](graph-theory.dependent-directed-graphs.md) `H` and -`K` over a [directed graph](graph-theory.directed-graphs.md) `G`. A +`K` over a [directed graph](graph-theory.directed-graphs.md) `G`. An {{#concept "equivalence of dependent directed graphs" Agda=equiv-Dependent-Directed-Graph}} from `H` to `K` consists of a [family of equivalences](foundation.families-of-equivalences.md) diff --git a/src/graph-theory/fibers-directed-graphs.lagda.md b/src/graph-theory/fibers-directed-graphs.lagda.md index 26fbc4c637..690c5ab2eb 100644 --- a/src/graph-theory/fibers-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-directed-graphs.lagda.md @@ -39,7 +39,7 @@ nodes consists of vertices `y` equipped with a of edges from `(y , w)` to `(z , v)` consist of an edge `e : y → z` such that `w = cons e v`. -_Note:_ The fiber of a directed graphs should not be confused with the +**Note:** The fiber of a directed graphs should not be confused with the [fiber of a morphism of directed graphs](graph-theory.fibers-morphisms-directed-graphs.md), which is the [dependent directed graph](graph-theory.dependent-directed-graphs.md) consisting diff --git a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md index 114820bbb5..c6e11c4da1 100644 --- a/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-directed-graphs.lagda.md @@ -14,8 +14,8 @@ open import foundation.fibers-of-maps open import foundation.identity-types open import foundation.universe-levels -open import graph-theory.dependent-coproducts-directed-graphs open import graph-theory.dependent-directed-graphs +open import graph-theory.dependent-sums-directed-graphs open import graph-theory.directed-graphs open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-directed-graphs @@ -37,7 +37,7 @@ over `G` given by (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e. ``` -_Note:_ The fiber of a morphism of directed graphs should not be confused with +**Note:** The fiber of a morphism of directed graphs should not be confused with the [fiber of a directed graph at a vertex](graph-theory.fibers-directed-graphs.md), which are the [directed trees](trees.directed-trees.md) of which the type of @@ -139,7 +139,7 @@ module _ refl-htpy-hom-Directed-Graph H G f ``` -### The fibers of the first projection of a dependent coproduct directed graph +### The fibers of the first projection of a dependent sums of directed graph ```agda module _ diff --git a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md index 70ea536c38..7b69172b9b 100644 --- a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md @@ -19,9 +19,9 @@ open import foundation.fibers-of-maps open import foundation.identity-types open import foundation.universe-levels -open import graph-theory.dependent-coproducts-reflexive-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.dependent-reflexive-graphs +open import graph-theory.dependent-sums-reflexive-graphs open import graph-theory.equivalences-dependent-directed-graphs open import graph-theory.equivalences-dependent-reflexive-graphs open import graph-theory.equivalences-reflexive-graphs @@ -202,7 +202,7 @@ module _ ( inv (ap-id (refl-hom-Reflexive-Graph H G f x)))) ``` -### The fibers of the first projection of a dependent coproduct reflexive graph +### The fibers of the first projection of a dependent sums of reflexive graph ```agda module _ diff --git a/src/graph-theory/exponents-directed-graphs.lagda.md b/src/graph-theory/internal-hom-directed-graphs.lagda.md similarity index 63% rename from src/graph-theory/exponents-directed-graphs.lagda.md rename to src/graph-theory/internal-hom-directed-graphs.lagda.md index 2d968a410b..c4625f214c 100644 --- a/src/graph-theory/exponents-directed-graphs.lagda.md +++ b/src/graph-theory/internal-hom-directed-graphs.lagda.md @@ -1,7 +1,7 @@ -# Exponents of directed graphs +# Internal homs of directed graphs ```agda -module graph-theory.exponents-directed-graphs where +module graph-theory.internal-hom-directed-graphs where ```
Imports @@ -24,7 +24,7 @@ open import graph-theory.morphisms-directed-graphs ## Idea Given two [directed graphs](graph-theory.directed-graphs.md) `A` and `B`, the -{{#concept "exponent" Disambiguation="directed graph" agda=exponent-Directed-Graph}} +{{#concept "internal hom" Disambiguation="directed graph" agda=internal-hom-Directed-Graph}} `B^A` is the directed graph that satisfies the universal property ```text @@ -41,12 +41,12 @@ Concretely, the directed graph `B^A` has (x y : A₀) → A₁ x y → B₁ (f₀ x) (g₀ y). ``` -The universal property of the exponent gives that the type of +The universal property of the internal hom gives that the type of [graph homomorphisms](graph-theory.morphisms-directed-graphs.md) `hom A B` is [equivalent](foundation-core.equivalences.md) to the type of morphisms from the [terminal directed graph](graph-theory.terminal-directed-graphs.md) into `B^A`, -which is in turn equivalent to the type of vertices `f₀` of the exponent `B^A` -equipped with a loop `(B^A)₁ f f`. Indeed, this data consists of: +which is in turn equivalent to the type of vertices `f₀` of the internal hom +`B^A` equipped with a loop `(B^A)₁ f f`. Indeed, this data consists of: - A map `f₀ : A₀ → B₀` - A family of maps `f₁ : (x y : A₀) → A₁ x y → B₁ (f₀ x) (f₀ y)`, @@ -55,60 +55,62 @@ as expected for the type of morphisms of directed graphs. ## Definitions -### The exponent of directed graphs +### The internal hom of directed graphs ```agda module _ {l1 l2 l3 l4 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) where - vertex-exponent-Directed-Graph : UU (l1 ⊔ l3) - vertex-exponent-Directed-Graph = + vertex-internal-hom-Directed-Graph : UU (l1 ⊔ l3) + vertex-internal-hom-Directed-Graph = vertex-Directed-Graph A → vertex-Directed-Graph B - edge-exponent-Directed-Graph : - (f g : vertex-exponent-Directed-Graph) → UU (l1 ⊔ l2 ⊔ l4) - edge-exponent-Directed-Graph f g = + edge-internal-hom-Directed-Graph : + (f g : vertex-internal-hom-Directed-Graph) → UU (l1 ⊔ l2 ⊔ l4) + edge-internal-hom-Directed-Graph f g = (x y : vertex-Directed-Graph A) → edge-Directed-Graph A x y → edge-Directed-Graph B (f x) (g y) - exponent-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l1 ⊔ l2 ⊔ l4) - pr1 exponent-Directed-Graph = vertex-exponent-Directed-Graph - pr2 exponent-Directed-Graph = edge-exponent-Directed-Graph + internal-hom-Directed-Graph : Directed-Graph (l1 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + pr1 internal-hom-Directed-Graph = vertex-internal-hom-Directed-Graph + pr2 internal-hom-Directed-Graph = edge-internal-hom-Directed-Graph ``` ## Properties -### The exponent directed graph satisfies the universal property of the exponent +### The internal hom directed graph satisfies the universal property of the internal hom -#### The evaluation of a morphism into an exponent of directed graphs +#### The evaluation of a morphism into an internal hom of directed graphs ```agda module _ {l1 l2 l3 l4 l5 l6 : Level} (A : Directed-Graph l1 l2) (B : Directed-Graph l3 l4) (C : Directed-Graph l5 l6) - (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) + (f : hom-Directed-Graph C (internal-hom-Directed-Graph A B)) where - vertex-ev-hom-exponent-Directed-Graph : + vertex-ev-hom-internal-hom-Directed-Graph : vertex-product-Directed-Graph C A → vertex-Directed-Graph B - vertex-ev-hom-exponent-Directed-Graph (c , a) = - vertex-hom-Directed-Graph C (exponent-Directed-Graph A B) f c a + vertex-ev-hom-internal-hom-Directed-Graph (c , a) = + vertex-hom-Directed-Graph C (internal-hom-Directed-Graph A B) f c a - edge-ev-hom-exponent-Directed-Graph : + edge-ev-hom-internal-hom-Directed-Graph : (x y : vertex-product-Directed-Graph C A) → edge-product-Directed-Graph C A x y → edge-Directed-Graph B - ( vertex-ev-hom-exponent-Directed-Graph x) - ( vertex-ev-hom-exponent-Directed-Graph y) - edge-ev-hom-exponent-Directed-Graph _ _ (d , e) = - edge-hom-Directed-Graph C (exponent-Directed-Graph A B) f d _ _ e + ( vertex-ev-hom-internal-hom-Directed-Graph x) + ( vertex-ev-hom-internal-hom-Directed-Graph y) + edge-ev-hom-internal-hom-Directed-Graph _ _ (d , e) = + edge-hom-Directed-Graph C (internal-hom-Directed-Graph A B) f d _ _ e - ev-hom-exponent-Directed-Graph : + ev-hom-internal-hom-Directed-Graph : hom-Directed-Graph (product-Directed-Graph C A) B - pr1 ev-hom-exponent-Directed-Graph = vertex-ev-hom-exponent-Directed-Graph - pr2 ev-hom-exponent-Directed-Graph = edge-ev-hom-exponent-Directed-Graph + pr1 ev-hom-internal-hom-Directed-Graph = + vertex-ev-hom-internal-hom-Directed-Graph + pr2 ev-hom-internal-hom-Directed-Graph = + edge-ev-hom-internal-hom-Directed-Graph ``` #### Uncurrying a morphism from a cartesian product into a directed graph @@ -122,28 +124,28 @@ module _ where vertex-uncurry-hom-product-Directed-Graph : - vertex-Directed-Graph C → vertex-exponent-Directed-Graph A B + vertex-Directed-Graph C → vertex-internal-hom-Directed-Graph A B vertex-uncurry-hom-product-Directed-Graph c a = vertex-hom-Directed-Graph (product-Directed-Graph C A) B f (c , a) edge-uncurry-hom-product-Directed-Graph : (x y : vertex-Directed-Graph C) → edge-Directed-Graph C x y → - edge-exponent-Directed-Graph A B + edge-internal-hom-Directed-Graph A B ( vertex-uncurry-hom-product-Directed-Graph x) ( vertex-uncurry-hom-product-Directed-Graph y) edge-uncurry-hom-product-Directed-Graph c c' d a a' e = edge-hom-Directed-Graph (product-Directed-Graph C A) B f (d , e) uncurry-hom-product-Directed-Graph : - hom-Directed-Graph C (exponent-Directed-Graph A B) + hom-Directed-Graph C (internal-hom-Directed-Graph A B) pr1 uncurry-hom-product-Directed-Graph = vertex-uncurry-hom-product-Directed-Graph pr2 uncurry-hom-product-Directed-Graph = edge-uncurry-hom-product-Directed-Graph ``` -#### The equivalence of the adjunction between products and exponents of directed graphs +#### The equivalence of the adjunction between products and internal homs of directed graphs ```agda module _ @@ -157,7 +159,7 @@ module _ htpy-hom-Directed-Graph ( product-Directed-Graph C A) ( B) - ( ev-hom-exponent-Directed-Graph A B C + ( ev-hom-internal-hom-Directed-Graph A B C ( uncurry-hom-product-Directed-Graph A B C f)) ( f) pr1 (htpy-is-section-uncurry-hom-product-Directed-Graph f) = refl-htpy @@ -165,54 +167,54 @@ module _ is-section-uncurry-hom-product-Directed-Graph : is-section - ( ev-hom-exponent-Directed-Graph A B C) + ( ev-hom-internal-hom-Directed-Graph A B C) ( uncurry-hom-product-Directed-Graph A B C) is-section-uncurry-hom-product-Directed-Graph f = eq-htpy-hom-Directed-Graph ( product-Directed-Graph C A) ( B) - ( ev-hom-exponent-Directed-Graph A B C + ( ev-hom-internal-hom-Directed-Graph A B C ( uncurry-hom-product-Directed-Graph A B C f)) ( f) ( htpy-is-section-uncurry-hom-product-Directed-Graph f) htpy-is-retraction-uncurry-hom-product-Directed-Graph : - (f : hom-Directed-Graph C (exponent-Directed-Graph A B)) → + (f : hom-Directed-Graph C (internal-hom-Directed-Graph A B)) → htpy-hom-Directed-Graph ( C) - ( exponent-Directed-Graph A B) + ( internal-hom-Directed-Graph A B) ( uncurry-hom-product-Directed-Graph A B C - ( ev-hom-exponent-Directed-Graph A B C f)) + ( ev-hom-internal-hom-Directed-Graph A B C f)) ( f) pr1 (htpy-is-retraction-uncurry-hom-product-Directed-Graph f) = refl-htpy pr2 (htpy-is-retraction-uncurry-hom-product-Directed-Graph f) x y = refl-htpy is-retraction-uncurry-hom-product-Directed-Graph : is-retraction - ( ev-hom-exponent-Directed-Graph A B C) + ( ev-hom-internal-hom-Directed-Graph A B C) ( uncurry-hom-product-Directed-Graph A B C) is-retraction-uncurry-hom-product-Directed-Graph f = eq-htpy-hom-Directed-Graph ( C) - ( exponent-Directed-Graph A B) + ( internal-hom-Directed-Graph A B) ( uncurry-hom-product-Directed-Graph A B C - ( ev-hom-exponent-Directed-Graph A B C f)) + ( ev-hom-internal-hom-Directed-Graph A B C f)) ( f) ( htpy-is-retraction-uncurry-hom-product-Directed-Graph f) - is-equiv-ev-hom-exponent-Directed-Graph : - is-equiv (ev-hom-exponent-Directed-Graph A B C) - is-equiv-ev-hom-exponent-Directed-Graph = + is-equiv-ev-hom-internal-hom-Directed-Graph : + is-equiv (ev-hom-internal-hom-Directed-Graph A B C) + is-equiv-ev-hom-internal-hom-Directed-Graph = is-equiv-is-invertible ( uncurry-hom-product-Directed-Graph A B C) ( is-section-uncurry-hom-product-Directed-Graph) ( is-retraction-uncurry-hom-product-Directed-Graph) - ev-equiv-hom-exponent-Directed-Graph : - hom-Directed-Graph C (exponent-Directed-Graph A B) ≃ + ev-equiv-hom-internal-hom-Directed-Graph : + hom-Directed-Graph C (internal-hom-Directed-Graph A B) ≃ hom-Directed-Graph (product-Directed-Graph C A) B - pr1 ev-equiv-hom-exponent-Directed-Graph = - ev-hom-exponent-Directed-Graph A B C - pr2 ev-equiv-hom-exponent-Directed-Graph = - is-equiv-ev-hom-exponent-Directed-Graph + pr1 ev-equiv-hom-internal-hom-Directed-Graph = + ev-hom-internal-hom-Directed-Graph A B C + pr2 ev-equiv-hom-internal-hom-Directed-Graph = + is-equiv-ev-hom-internal-hom-Directed-Graph ``` diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index 680f01993e..07de90f362 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -18,12 +18,13 @@ open import graph-theory.directed-graphs ## Idea -The {{#concpept "universal directed graph"}} `𝒢 l` at -[universe level](foundation.universe-levels.md) `l` has the universe `UU l` as -its type of vertices, and spans between types as its edges. +The {{#concpept "universal directed graph" Agda=universal-Directed-Graph}} `𝒢 l` +at [universe level](foundation.universe-levels.md) `l` is the +[directed graph](graph-theory.directed-graphs.md) that has the universe `UU l` +as its type of vertices, and spans between types as its edges. Specifically, the universal directed graph is a translation from category theory -into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +into type theory of the Hofmann–Streicher universe {{#cite Awodey22}} of presheaves on the representing pair of arrows ```text @@ -33,7 +34,7 @@ presheaves on the representing pair of arrows t ``` -The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf +The Hofmann–Streicher universe of presheaves on a category `𝒞` is the presheaf ```text 𝒰_𝒞 I := Presheaf 𝒞/I @@ -61,6 +62,14 @@ This means that: - The type of edges from `X` to `Y` of the universal directed graph is the type of spans from `X` to `Y`. +There is a +[directed graph duality theorem](graph-theory.directed-graph-duality.md), which +asserts that for any directed graph `G`, the type of +[morphisms](graph-theory.morphisms-directed-graphs.md) `hom G 𝒰` from `G` into +the universal directed graph is [equivalent](foundation-core.equivalences.md) to +the type of pairs `(H , f)` consisting of a directed graph `H` and a morphism +`f : hom H G` from `H` into `G`. + ## Definitions ### The universal directed graph @@ -108,14 +117,7 @@ module _ edge-universal-Dependent-Directed-Graph ``` -## Formalization target - -There is a _directed graph duality theorem_, which asserts that for any directed -graph `G`, the type of morphisms `hom G 𝒰` from `G` into the universal directed -graph is equivalent to the type of pairs `(H , f)` consisting of a directed -graph `H` and a morphism `f : hom H G` from `H` into `G`. Such a result should -be formalized in a new file called `directed-graph-duality`. - ## See also - [The universal reflexive graph](graph-theory.universal-reflexive-graph.md) +- [Directed graph duality](graph-theory.directed-graph-duality.md) diff --git a/src/graph-theory/universal-reflexive-graph.lagda.md b/src/graph-theory/universal-reflexive-graph.lagda.md index 003616fe65..d39ac3c930 100644 --- a/src/graph-theory/universal-reflexive-graph.lagda.md +++ b/src/graph-theory/universal-reflexive-graph.lagda.md @@ -7,8 +7,12 @@ module graph-theory.universal-reflexive-graph where
Imports ```agda +open import foundation.dependent-pair-types open import foundation.universe-levels +open import graph-theory.dependent-directed-graphs +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.directed-graphs open import graph-theory.reflexive-graphs ``` @@ -16,10 +20,10 @@ open import graph-theory.reflexive-graphs ## Idea -The {{#concpept "universal reflexive graph"}} `𝒢 l` at -[universe level](foundation.universe-levels.md) is a translation from category -theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of -presheaves on the reflexive graph category `Γʳ` +The {{#concpept "universal reflexive graph" Agda=universal-Reflexive-Graph}} +`𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from +category theory into type theory of the Hofmann–Streicher universe +{{#cite Awodey22}} of presheaves on the reflexive graph category `Γʳ` ```text s @@ -29,15 +33,15 @@ presheaves on the reflexive graph category `Γʳ` t ``` -in which we have `rs = id` and `rt = id`. The Hofmann-Streicher universe of +in which we have `rs = id` and `rt = id`. The Hofmann–Streicher universe of presheaves on a category `𝒞` is the presheaf ```text 𝒰_𝒞 I := Presheaf 𝒞/I - El_𝒞 I A := A *, + El_𝒞 I A := A 0, ``` -where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. +where `0` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. We compute a few instances of the slice category `Γʳ/I`: @@ -66,9 +70,11 @@ We compute a few instances of the slice category `Γʳ/I`: in which we have `rs = id` and `rt = id`. -This means that the universal reflexive graph `𝒰` can be defined as follows: +This means that the universal reflexive graph `𝒰` can be defined type +theoretically as follows: -- The type of vertices of `𝒰` is the type of reflexive graphs. +- The type of vertices of `𝒰` is the type of + [reflexive graphs](graph-theory.reflexive-graphs.md). - The type of edges from `G` to `H` is the type ```text @@ -108,6 +114,60 @@ module _ edge-universal-Reflexvie-Graph G G refl-universal-Reflexive-Graph G = edge-Reflexive-Graph G + + directed-graph-universal-Reflexive-Graph : + Directed-Graph (lsuc l1 ⊔ lsuc l2) (l1 ⊔ lsuc l2) + pr1 directed-graph-universal-Reflexive-Graph = + vertex-universal-Reflexive-Graph + pr2 directed-graph-universal-Reflexive-Graph = + edge-universal-Reflexvie-Graph + + universal-Reflexive-Graph : + Reflexive-Graph (lsuc l1 ⊔ lsuc l2) (l1 ⊔ lsuc l2) + pr1 universal-Reflexive-Graph = directed-graph-universal-Reflexive-Graph + pr2 universal-Reflexive-Graph = refl-universal-Reflexive-Graph +``` + +### The universal dependent directed graph + +```agda +module _ + {l1 l2 : Level} + where + + vertex-universal-Dependent-Reflexive-Graph : + (G : vertex-universal-Reflexive-Graph l1 l2) → UU l1 + vertex-universal-Dependent-Reflexive-Graph G = + vertex-Reflexive-Graph G + + edge-universal-Dependent-Reflexive-Graph : + (G H : vertex-universal-Reflexive-Graph l1 l2) + (R : edge-universal-Reflexvie-Graph l1 l2 G H) → + vertex-universal-Dependent-Reflexive-Graph G → + vertex-universal-Dependent-Reflexive-Graph H → UU l2 + edge-universal-Dependent-Reflexive-Graph G H R x y = R x y + + refl-universal-Dependent-Reflexive-Graph : + (G : vertex-universal-Reflexive-Graph l1 l2) + (x : vertex-universal-Dependent-Reflexive-Graph G) → + edge-universal-Dependent-Reflexive-Graph G G + ( refl-universal-Reflexive-Graph l1 l2 G) x x + refl-universal-Dependent-Reflexive-Graph G x = refl-Reflexive-Graph G x + + dependent-directed-graph-universal-Dependent-Reflexive-Graph : + Dependent-Directed-Graph l1 l2 + ( directed-graph-universal-Reflexive-Graph l1 l2) + pr1 dependent-directed-graph-universal-Dependent-Reflexive-Graph = + vertex-universal-Dependent-Reflexive-Graph + pr2 dependent-directed-graph-universal-Dependent-Reflexive-Graph = + edge-universal-Dependent-Reflexive-Graph + + universal-Dependent-Reflexive-Graph : + Dependent-Reflexive-Graph l1 l2 (universal-Reflexive-Graph l1 l2) + pr1 universal-Dependent-Reflexive-Graph = + dependent-directed-graph-universal-Dependent-Reflexive-Graph + pr2 universal-Dependent-Reflexive-Graph = + refl-universal-Dependent-Reflexive-Graph ``` ## Formalization target diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index bca7ac548f..8dc8c7313e 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -9,6 +9,7 @@ ```agda module structured-types where +open import structured-types.base-change-dependent-globular-types public open import structured-types.binary-globular-maps public open import structured-types.cartesian-products-types-equipped-with-endomorphisms public open import structured-types.central-h-spaces public @@ -22,19 +23,19 @@ open import structured-types.conjugation-pointed-types public open import structured-types.constant-pointed-maps public open import structured-types.contractible-pointed-types public open import structured-types.cyclic-types public -open import structured-types.dependent-coproducts-globular-types public open import structured-types.dependent-globular-types public open import structured-types.dependent-products-h-spaces public open import structured-types.dependent-products-pointed-types public open import structured-types.dependent-products-wild-monoids public open import structured-types.dependent-reflexive-globular-types public +open import structured-types.dependent-sums-globular-types public open import structured-types.dependent-types-equipped-with-automorphisms public open import structured-types.equality-globular-types public open import structured-types.equivalences-h-spaces public open import structured-types.equivalences-pointed-arrows public open import structured-types.equivalences-types-equipped-with-automorphisms public open import structured-types.equivalences-types-equipped-with-endomorphisms public -open import structured-types.exponents-globular-types public +open import structured-types.exponentials-globular-types public open import structured-types.faithful-pointed-maps public open import structured-types.fibers-globular-maps public open import structured-types.fibers-of-pointed-maps public @@ -96,7 +97,6 @@ open import structured-types.pointed-universal-property-contractible-types publi open import structured-types.postcomposition-pointed-maps public open import structured-types.precomposition-pointed-maps public open import structured-types.products-families-of-globular-types public -open import structured-types.pullbacks-dependent-globular-types public open import structured-types.reflexive-globular-maps public open import structured-types.reflexive-globular-types public open import structured-types.sections-dependent-globular-types public diff --git a/src/structured-types/pullbacks-dependent-globular-types.lagda.md b/src/structured-types/base-change-dependent-globular-types.lagda.md similarity index 57% rename from src/structured-types/pullbacks-dependent-globular-types.lagda.md rename to src/structured-types/base-change-dependent-globular-types.lagda.md index f84d981f62..ac2e191b61 100644 --- a/src/structured-types/pullbacks-dependent-globular-types.lagda.md +++ b/src/structured-types/base-change-dependent-globular-types.lagda.md @@ -1,9 +1,9 @@ -# Pullbacks of dependent globular types +# Base change of dependent globular types ```agda {-# OPTIONS --guardedness #-} -module structured-types.pullbacks-dependent-globular-types where +module structured-types.base-change-dependent-globular-types where ```
Imports @@ -24,7 +24,7 @@ Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over `G`, and consider a [globular map](structured-types.globular-maps.md) `f : K → G`. The -{{#concept "pullback" Disambiguation="dependent globular types" agda=pullback-Dependent-Globular-Type}} +{{#concept "base change" Disambiguation="dependent globular types" agda=base-change-Dependent-Globular-Type}} of `H` along `f` is the dependent globular type `f*H` given by ```text @@ -35,18 +35,18 @@ of `H` along `f` is the dependent globular type `f*H` given by ## Definitions ```agda -pullback-Dependent-Globular-Type : +base-change-Dependent-Globular-Type : {l1 l2 l3 l4 l5 l6 : Level} {G : Globular-Type l1 l2} {K : Globular-Type l3 l4} (f : globular-map K G) → Dependent-Globular-Type l5 l6 G → Dependent-Globular-Type l5 l6 K 0-cell-Dependent-Globular-Type - ( pullback-Dependent-Globular-Type f H) + ( base-change-Dependent-Globular-Type f H) ( x) = 0-cell-Dependent-Globular-Type H (0-cell-globular-map f x) 1-cell-dependent-globular-type-Dependent-Globular-Type - ( pullback-Dependent-Globular-Type f H) y y' = - pullback-Dependent-Globular-Type + ( base-change-Dependent-Globular-Type f H) y y' = + base-change-Dependent-Globular-Type ( 1-cell-globular-map-globular-map f) ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') @@ -56,26 +56,26 @@ module _ (f : globular-map K G) (H : Dependent-Globular-Type l5 l6 G) where - 0-cell-pullback-Dependent-Globular-Type : + 0-cell-base-change-Dependent-Globular-Type : 0-cell-Globular-Type K → UU l5 - 0-cell-pullback-Dependent-Globular-Type = - 0-cell-Dependent-Globular-Type (pullback-Dependent-Globular-Type f H) + 0-cell-base-change-Dependent-Globular-Type = + 0-cell-Dependent-Globular-Type (base-change-Dependent-Globular-Type f H) - 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type : + 1-cell-dependent-globular-type-base-change-Dependent-Globular-Type : {x x' : 0-cell-Globular-Type K} - (y : 0-cell-pullback-Dependent-Globular-Type x) - (y' : 0-cell-pullback-Dependent-Globular-Type x') → + (y : 0-cell-base-change-Dependent-Globular-Type x) + (y' : 0-cell-base-change-Dependent-Globular-Type x') → Dependent-Globular-Type l6 l6 ( 1-cell-globular-type-Globular-Type K x x') - 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type = + 1-cell-dependent-globular-type-base-change-Dependent-Globular-Type = 1-cell-dependent-globular-type-Dependent-Globular-Type - ( pullback-Dependent-Globular-Type f H) + ( base-change-Dependent-Globular-Type f H) - 1-cell-pullback-Dependent-Globular-Type : + 1-cell-base-change-Dependent-Globular-Type : {x x' : 0-cell-Globular-Type K} - (y : 0-cell-pullback-Dependent-Globular-Type x) - (y' : 0-cell-pullback-Dependent-Globular-Type x') → + (y : 0-cell-base-change-Dependent-Globular-Type x) + (y' : 0-cell-base-change-Dependent-Globular-Type x') → 1-cell-Globular-Type K x x' → UU l6 - 1-cell-pullback-Dependent-Globular-Type = - 1-cell-Dependent-Globular-Type (pullback-Dependent-Globular-Type f H) + 1-cell-base-change-Dependent-Globular-Type = + 1-cell-Dependent-Globular-Type (base-change-Dependent-Globular-Type f H) ``` diff --git a/src/structured-types/dependent-coproducts-globular-types.lagda.md b/src/structured-types/dependent-sums-globular-types.lagda.md similarity index 86% rename from src/structured-types/dependent-coproducts-globular-types.lagda.md rename to src/structured-types/dependent-sums-globular-types.lagda.md index 9478783b07..48e6e98aca 100644 --- a/src/structured-types/dependent-coproducts-globular-types.lagda.md +++ b/src/structured-types/dependent-sums-globular-types.lagda.md @@ -1,9 +1,9 @@ -# Dependent coproducts of globular types +# Dependent sums of globular types ```agda {-# OPTIONS --guardedness #-} -module structured-types.dependent-coproducts-globular-types where +module structured-types.dependent-sums-globular-types where ```
Imports @@ -12,10 +12,10 @@ module structured-types.dependent-coproducts-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels +open import structured-types.base-change-dependent-globular-types open import structured-types.dependent-globular-types open import structured-types.globular-maps open import structured-types.globular-types -open import structured-types.pullbacks-dependent-globular-types open import structured-types.sections-dependent-globular-types ``` @@ -26,7 +26,7 @@ open import structured-types.sections-dependent-globular-types Consider a [dependent globular type](structured-types.dependent-globular-types.md) `H` over a [globular type](structured-types.globular-types.md) `G`. The -{{#concept "dependent coproduct" Disambiguation="globular types" Agda=Σ-Globular-Type}} +{{#concept "dependent sum" Disambiguation="globular types" Agda=Σ-Globular-Type}} `Σ G H` of `H` is the globular type given by ```text @@ -36,7 +36,7 @@ a [globular type](structured-types.globular-types.md) `G`. The ## Definitions -### Dependent coproducts of dependent globular types +### Dependent sums of dependent globular types ```agda Σ-Globular-Type : @@ -80,7 +80,7 @@ module _ 2-cell-Globular-Type (Σ-Globular-Type H) ``` -### The first projection out of the dependent coproduct of a dependent globular type +### The first projection out of the dependent sum of a dependent globular type ```agda pr1-Σ-Globular-Type : @@ -122,14 +122,14 @@ module _ 1-cell-globular-map (pr1-Σ-Globular-Type H) ``` -### The second projection of a dependent coproduct of globular types +### The second projection of a dependent sum of globular types ```agda pr2-Σ-Globular-Type : {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} (H : Dependent-Globular-Type l3 l4 G) → section-Dependent-Globular-Type - ( pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) + ( base-change-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) 0-cell-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) = pr2 1-cell-section-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) = pr2-Σ-Globular-Type @@ -142,14 +142,14 @@ module _ 0-cell-pr2-Σ-Globular-Type : (x : 0-cell-Σ-Globular-Type H) → - 0-cell-pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H x + 0-cell-base-change-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H x 0-cell-pr2-Σ-Globular-Type = 0-cell-section-Dependent-Globular-Type (pr2-Σ-Globular-Type H) 1-cell-section-pr2-Σ-Globular-Type : {x x' : 0-cell-Σ-Globular-Type H} → section-Dependent-Globular-Type - ( 1-cell-dependent-globular-type-pullback-Dependent-Globular-Type + ( 1-cell-dependent-globular-type-base-change-Dependent-Globular-Type ( pr1-Σ-Globular-Type H) ( H) ( 0-cell-pr2-Σ-Globular-Type x) @@ -160,7 +160,7 @@ module _ 1-cell-pr2-Σ-Globular-Type : {x x' : 0-cell-Σ-Globular-Type H} (f : 1-cell-Σ-Globular-Type H x x') → - 1-cell-pullback-Dependent-Globular-Type + 1-cell-base-change-Dependent-Globular-Type ( pr1-Σ-Globular-Type H) ( H) ( 0-cell-pr2-Σ-Globular-Type x) @@ -168,6 +168,6 @@ module _ ( f) 1-cell-pr2-Σ-Globular-Type = 1-cell-section-Dependent-Globular-Type - ( pullback-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) + ( base-change-Dependent-Globular-Type (pr1-Σ-Globular-Type H) H) ( pr2-Σ-Globular-Type H) ``` diff --git a/src/structured-types/exponents-globular-types.lagda.md b/src/structured-types/exponentials-globular-types.lagda.md similarity index 54% rename from src/structured-types/exponents-globular-types.lagda.md rename to src/structured-types/exponentials-globular-types.lagda.md index 8ded8db702..6d98c40a99 100644 --- a/src/structured-types/exponents-globular-types.lagda.md +++ b/src/structured-types/exponentials-globular-types.lagda.md @@ -1,9 +1,9 @@ -# Exponents of globular types +# Exponentials of globular types ```agda {-# OPTIONS --guardedness #-} -module structured-types.exponents-globular-types where +module structured-types.exponentials-globular-types where ```
Imports @@ -27,24 +27,24 @@ construct a globular type `Π_I G`. ## Definitions -### Exponents of globular types +### Exponentials of globular types ```agda module _ {l1 l2 l3 : Level} (A : UU l1) (G : Globular-Type l2 l3) where - 0-cell-exponent-Globular-Type : UU (l1 ⊔ l2) - 0-cell-exponent-Globular-Type = + 0-cell-exponential-Globular-Type : UU (l1 ⊔ l2) + 0-cell-exponential-Globular-Type = 0-cell-indexed-product-Globular-Type (λ (x : A) → G) - 1-cell-exponent-Globular-Type : - (x y : 0-cell-exponent-Globular-Type) → UU (l1 ⊔ l3) - 1-cell-exponent-Globular-Type = + 1-cell-exponential-Globular-Type : + (x y : 0-cell-exponential-Globular-Type) → UU (l1 ⊔ l3) + 1-cell-exponential-Globular-Type = 1-cell-indexed-product-Globular-Type (λ (x : A) → G) - exponent-Globular-Type : Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) - exponent-Globular-Type = indexed-product-Globular-Type (λ (x : A) → G) + exponential-Globular-Type : Globular-Type (l1 ⊔ l2) (l1 ⊔ l3) + exponential-Globular-Type = indexed-product-Globular-Type (λ (x : A) → G) ``` ### Double exponentials of globular types @@ -54,29 +54,29 @@ module _ {l1 l2 l3 l4 : Level} (A : UU l1) (B : UU l2) (G : Globular-Type l3 l4) where - 0-cell-double-exponent-Globular-Type : UU (l1 ⊔ l2 ⊔ l3) - 0-cell-double-exponent-Globular-Type = + 0-cell-double-exponential-Globular-Type : UU (l1 ⊔ l2 ⊔ l3) + 0-cell-double-exponential-Globular-Type = 0-cell-double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) - 1-cell-double-exponent-Globular-Type : - (x y : 0-cell-double-exponent-Globular-Type) → UU (l1 ⊔ l2 ⊔ l4) - 1-cell-double-exponent-Globular-Type = + 1-cell-double-exponential-Globular-Type : + (x y : 0-cell-double-exponential-Globular-Type) → UU (l1 ⊔ l2 ⊔ l4) + 1-cell-double-exponential-Globular-Type = 1-cell-double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) - double-exponent-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) - double-exponent-Globular-Type = + double-exponential-Globular-Type : Globular-Type (l1 ⊔ l2 ⊔ l3) (l1 ⊔ l2 ⊔ l4) + double-exponential-Globular-Type = double-indexed-product-Globular-Type (λ (x : A) (y : B) → G) ``` -### Evaluating globular maps into exponents of globular types +### Evaluating globular maps into exponentials of globular types ```agda -ev-hom-exponent-Globular-Type : +ev-hom-exponential-Globular-Type : {l1 l2 l3 l4 l5 : Level} {I : UU l1} {G : Globular-Type l2 l3} {H : Globular-Type l4 l5} - (f : globular-map G (exponent-Globular-Type I H)) → + (f : globular-map G (exponential-Globular-Type I H)) → I → globular-map G H -ev-hom-exponent-Globular-Type = ev-hom-indexed-product-Globular-Type +ev-hom-exponential-Globular-Type = ev-hom-indexed-product-Globular-Type ``` ### Binding families of globular maps @@ -85,6 +85,6 @@ ev-hom-exponent-Globular-Type = ev-hom-indexed-product-Globular-Type bind-family-globular-maps : {l1 l2 l3 l4 l5 : Level} {I : UU l1} {G : Globular-Type l2 l3} {H : Globular-Type l4 l5} - (f : I → globular-map G H) → globular-map G (exponent-Globular-Type I H) + (f : I → globular-map G H) → globular-map G (exponential-Globular-Type I H) bind-family-globular-maps = bind-indexed-family-globular-maps ``` diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md index 2c0e14eb4e..63807b30e1 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/structured-types/universal-globular-type.lagda.md @@ -14,7 +14,7 @@ open import foundation.spans open import foundation.universe-levels open import structured-types.dependent-globular-types -open import structured-types.exponents-globular-types +open import structured-types.exponentials-globular-types open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -29,7 +29,7 @@ its type of `0`-cells, and uses iterated binary relations for its globular structure. Specifically, the universal globular type is a translation from category theory -into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +into type theory of the Hofmann–Streicher universe {{#cite Awodey22}} of presheaves on the globular category `Γ` ```text @@ -39,7 +39,7 @@ presheaves on the globular category `Γ` t₀ t₁ t₂ ``` -The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf +The Hofmann–Streicher universe of presheaves on a category `𝒞` is the presheaf ```text 𝒰_𝒞 I := Presheaf 𝒞/I @@ -100,8 +100,9 @@ This means that: In other words, the universal globular type `𝒰` has the universe of types as its type of `0`-cells, and for any two types `X` and `Y`, the globular type of -`1`-cells is the double [exponent](structured-types.exponents-globular-types.md) -`(𝒰^Y)^X` of globular types. +`1`-cells is the double +[exponent](structured-types.exponentials-globular-types.md) `(𝒰^Y)^X` of +globular types. Unfortunately, the termination checking algorithm isn't able to establish that this definition is terminating. Nevertheless, when termination checking is @@ -123,8 +124,8 @@ universal-Globular-Type : 0-cell-Globular-Type (universal-Globular-Type l1 l2) = 0-cell-universal-Globular-Type l1 l2 1-cell-globular-type-Globular-Type (universal-Globular-Type l1 l2) X Y = - exponent-Globular-Type X - ( exponent-Globular-Type Y (universal-Globular-Type l2 l2)) + exponential-Globular-Type X + ( exponential-Globular-Type Y (universal-Globular-Type l2 l2)) 1-cell-universal-Globular-Type : {l1 l2 : Level} (X Y : UU l1) → UU (l1 ⊔ lsuc l2) @@ -167,8 +168,8 @@ dependent-globular-type-hom-universal-Globular-Type : {x} {x'} y y' = dependent-globular-type-hom-universal-Globular-Type ( 1-cell-globular-type-Globular-Type G x x') - ( ev-hom-exponent-Globular-Type - ( ev-hom-exponent-Globular-Type + ( ev-hom-exponential-Globular-Type + ( ev-hom-exponential-Globular-Type ( 1-cell-globular-map-globular-map h {x} {x'}) ( y)) ( y')) diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md index bad1d1328d..054e1b0b86 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -21,7 +21,7 @@ open import structured-types.reflexive-globular-types The {{#concpept "universal reflexive globular type"}} `𝒢 l` at [universe level](foundation.universe-levels.md) is a translation from category -theory into type theory of the Hofmann-Streicher universe {{#cite Awodey22}} of +theory into type theory of the Hofmann–Streicher universe {{#cite Awodey22}} of presheaves on the reflexive globular category `Γʳ` ```text @@ -43,10 +43,10 @@ in which the _reflexive globular identities_ hold. -The Hofmann-Streicher universe of presheaves on a category `𝒞` is the presheaf +The Hofmann–Streicher universe of presheaves on a category `𝒞` is the presheaf obtained by applying the functoriality of the right adjoint `ν : Cat → Psh 𝒞` of the _category of elements functor_ `∫_𝒞 : Psh 𝒞 → Cat` to the universal discrete -fibration `π : Pointed-Type → Type`. More specifically, the Hofmann-Streicher +fibration `π : Pointed-Type → Type`. More specifically, the Hofmann–Streicher universe `(𝒰_𝒞 , El_𝒞)` is given by ```text From 7d1a041a71f5e48d04796197daf654055d6406ff Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 25 Oct 2024 15:14:18 -0400 Subject: [PATCH 42/42] base change of universal dependent directed graph --- .../universal-directed-graph.lagda.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index 07de90f362..6b09622b11 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -10,8 +10,11 @@ module graph-theory.universal-directed-graph where open import foundation.dependent-pair-types open import foundation.universe-levels +open import graph-theory.base-change-dependent-directed-graphs open import graph-theory.dependent-directed-graphs open import graph-theory.directed-graphs +open import graph-theory.equivalences-dependent-directed-graphs +open import graph-theory.morphisms-directed-graphs ```
@@ -117,6 +120,61 @@ module _ edge-universal-Dependent-Directed-Graph ``` +## Properties + +### Every dependent directed graph is a base change of the universal dependent directed graph + +#### The characteristic morphism of a dependent directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} + {G : Directed-Graph l1 l2} (H : Dependent-Directed-Graph l3 l4 G) + where + + vertex-characteristic-hom-Dependent-Directed-Graph : + vertex-Directed-Graph G → UU l3 + vertex-characteristic-hom-Dependent-Directed-Graph = + vertex-Dependent-Directed-Graph H + + edge-characteristic-hom-Dependent-Directed-Graph : + {x y : vertex-Directed-Graph G} (e : edge-Directed-Graph G x y) → + vertex-characteristic-hom-Dependent-Directed-Graph x → + vertex-characteristic-hom-Dependent-Directed-Graph y → + UU l4 + edge-characteristic-hom-Dependent-Directed-Graph = + edge-Dependent-Directed-Graph H + + characteristic-hom-Dependent-Directed-Graph : + hom-Directed-Graph G (universal-Directed-Graph l3 l4) + pr1 characteristic-hom-Dependent-Directed-Graph = + vertex-characteristic-hom-Dependent-Directed-Graph + pr2 characteristic-hom-Dependent-Directed-Graph _ _ = + edge-characteristic-hom-Dependent-Directed-Graph +``` + +#### Base change of the universal dependent directed graph along the characteristic morphism of a dependent directed graph + +```agda +module _ + {l1 l2 l3 l4 : Level} + {G : Directed-Graph l1 l2} (H : Dependent-Directed-Graph l3 l4 G) + where + + base-change-universal-graph-characteristic-hom-Dependent-Directed-Graph : + Dependent-Directed-Graph l3 l4 G + base-change-universal-graph-characteristic-hom-Dependent-Directed-Graph = + base-change-Dependent-Directed-Graph G + ( characteristic-hom-Dependent-Directed-Graph H) + ( universal-Dependent-Directed-Graph l3 l4) + + compute-base-change-universal-graph-characteristic-hom-Dependent-Directed-Graph : + equiv-Dependent-Directed-Graph H + base-change-universal-graph-characteristic-hom-Dependent-Directed-Graph + compute-base-change-universal-graph-characteristic-hom-Dependent-Directed-Graph = + id-equiv-Dependent-Directed-Graph H +``` + ## See also - [The universal reflexive graph](graph-theory.universal-reflexive-graph.md)