From 645fdb907f02516c6a1fcb02a5a5020118b6d449 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 24 Sep 2024 09:47:45 -0400 Subject: [PATCH 01/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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/87] 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) From ec6eec821d66721c656da6f4b0510442f47b7fee Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 14:28:37 -0500 Subject: [PATCH 43/87] some review comments --- .../fibers-directed-graphs.lagda.md | 2 +- .../universal-directed-graph.lagda.md | 2 +- .../binary-globular-maps.lagda.md | 25 +------------------ src/structured-types/globular-maps.lagda.md | 14 ++++++----- ...large-lax-reflexive-globular-maps.lagda.md | 2 +- ...arge-lax-transitive-globular-maps.lagda.md | 2 +- .../lax-transitive-globular-maps.lagda.md | 2 +- 7 files changed, 14 insertions(+), 35 deletions(-) diff --git a/src/graph-theory/fibers-directed-graphs.lagda.md b/src/graph-theory/fibers-directed-graphs.lagda.md index 690c5ab2eb..ed82be7273 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 graph 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/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index 6b09622b11..e212b2a121 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -46,7 +46,7 @@ The Hofmann–Streicher universe of presheaves on a category `𝒞` is the presh where `*` is the terminal object of `𝒞/I`, i.e., the identity morphism on `I`. -We compute a the instances of the slice category `⇉/I`: +We compute the instances of the slice category `⇉/I`: - The slice category `⇉/0` is the terminal category. - The slice category `⇉/1` is the representing cospan diff --git a/src/structured-types/binary-globular-maps.lagda.md b/src/structured-types/binary-globular-maps.lagda.md index fb6e8702ea..6c7e436885 100644 --- a/src/structured-types/binary-globular-maps.lagda.md +++ b/src/structured-types/binary-globular-maps.lagda.md @@ -11,6 +11,7 @@ module structured-types.binary-globular-maps where ```agda open import foundation.universe-levels +open import structured-types.globular-maps open import structured-types.globular-types ``` @@ -60,27 +61,3 @@ 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/globular-maps.lagda.md b/src/structured-types/globular-maps.lagda.md index f77bf9d42a..d1141ce730 100644 --- a/src/structured-types/globular-maps.lagda.md +++ b/src/structured-types/globular-maps.lagda.md @@ -104,7 +104,6 @@ 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} @@ -114,11 +113,10 @@ module _ ( 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 = + 3-cell-globular-map-globular-map = 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} → @@ -136,11 +134,15 @@ module _ ```agda id-globular-map : {l1 l2 : Level} (A : Globular-Type l1 l2) → globular-map A A -id-globular-map A = +0-cell-globular-map (id-globular-map A) = id +1-cell-globular-map-globular-map (id-globular-map A) = + id-globular-map (1-cell-globular-type-Globular-Type A _ _) + +{- λ where .0-cell-globular-map → id .1-cell-globular-map-globular-map {x} {y} → - id-globular-map (1-cell-globular-type-Globular-Type A x y) + id-globular-map (1-cell-globular-type-Globular-Type A x y) -} ``` ### Composition of maps of globular types 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 7ab4b658b9..0ad31e0840 100644 --- a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md @@ -30,7 +30,7 @@ between two `f : G → H` equipped with a family of 2-cells ```text - (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) + (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 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 103002d0d7..bdbbc7308c 100644 --- a/src/structured-types/large-lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-transitive-globular-maps.lagda.md @@ -30,7 +30,7 @@ between two `f : G → H` equipped with a family of 2-cells ```text - H₂ (f₁ (q ∘G p)) (f₁ q ∘H f₁ p) + H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G p)) ``` from the image of the composite of two 1-cells `q` and `p` in `G` to the diff --git a/src/structured-types/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md index 6a4341e5d1..7ef7aea679 100644 --- a/src/structured-types/lax-transitive-globular-maps.lagda.md +++ b/src/structured-types/lax-transitive-globular-maps.lagda.md @@ -26,7 +26,7 @@ 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) + H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G p)) ``` from the image of the composite of two 1-cells `q` and `p` in `G` to the From 9b9511e253d50ba4528aad313827e7fa512e2e37 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 15:03:45 -0500 Subject: [PATCH 44/87] -> laxly --- src/foundation/reflexive-relations.lagda.md | 2 +- ...tructures-on-standard-finite-sets.lagda.md | 2 +- src/structured-types.lagda.md | 16 +- .../colax-reflexive-globular-maps.lagda.md | 212 -------------- .../colax-transitive-globular-maps.lagda.md | 232 --------------- .../colaxly-reflexive-globular-maps.lagda.md | 214 ++++++++++++++ .../colaxly-transitive-globular-maps.lagda.md | 233 +++++++++++++++ src/structured-types/globular-maps.lagda.md | 8 +- ...-colaxly-reflexive-globular-maps.lagda.md} | 164 +++++------ ...-colaxly-transitive-globular-maps.lagda.md | 267 ++++++++++++++++++ ...arge-lax-transitive-globular-maps.lagda.md | 263 ----------------- ...ge-laxly-reflexive-globular-maps.lagda.md} | 164 +++++------ ...e-laxly-transitive-globular-maps.lagda.md} | 192 ++++++------- .../large-reflexive-globular-maps.lagda.md | 4 +- .../lax-reflexive-globular-maps.lagda.md | 212 -------------- .../lax-transitive-globular-maps.lagda.md | 231 --------------- .../laxly-reflexive-globular-maps.lagda.md | 212 ++++++++++++++ .../laxly-transitive-globular-maps.lagda.md | 232 +++++++++++++++ .../reflexive-globular-maps.lagda.md | 4 +- .../reflexive-globular-types.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 56 ++-- ...oherent-wild-higher-precategories.lagda.md | 65 ++--- 22 files changed, 1496 insertions(+), 1493 deletions(-) delete mode 100644 src/structured-types/colax-reflexive-globular-maps.lagda.md delete mode 100644 src/structured-types/colax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/colaxly-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/colaxly-transitive-globular-maps.lagda.md rename src/structured-types/{large-lax-reflexive-globular-maps.lagda.md => large-colaxly-reflexive-globular-maps.lagda.md} (51%) create mode 100644 src/structured-types/large-colaxly-transitive-globular-maps.lagda.md delete mode 100644 src/structured-types/large-lax-transitive-globular-maps.lagda.md rename src/structured-types/{large-colax-reflexive-globular-maps.lagda.md => large-laxly-reflexive-globular-maps.lagda.md} (54%) rename src/structured-types/{large-colax-transitive-globular-maps.lagda.md => large-laxly-transitive-globular-maps.lagda.md} (55%) delete mode 100644 src/structured-types/lax-reflexive-globular-maps.lagda.md delete mode 100644 src/structured-types/lax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/laxly-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/laxly-transitive-globular-maps.lagda.md diff --git a/src/foundation/reflexive-relations.lagda.md b/src/foundation/reflexive-relations.lagda.md index 1491483087..0953b7c3f4 100644 --- a/src/foundation/reflexive-relations.lagda.md +++ b/src/foundation/reflexive-relations.lagda.md @@ -20,7 +20,7 @@ open import foundation-core.identity-types ## Idea A {{#concept "reflexive relation" Agda=Reflexive-Relation}} on a type `A` is a -type-valued [binary relation](foundation.binary-relations.md) `R : A → A → 𝒰` +type valued [binary relation](foundation.binary-relations.md) `R : A → A → 𝒰` [equipped](foundation.structure.md) with a proof `r : (x : A) → R x x`. ## Definitions diff --git a/src/graph-theory/directed-graph-structures-on-standard-finite-sets.lagda.md b/src/graph-theory/directed-graph-structures-on-standard-finite-sets.lagda.md index 7bfd1a8c28..79f8ee66f1 100644 --- a/src/graph-theory/directed-graph-structures-on-standard-finite-sets.lagda.md +++ b/src/graph-theory/directed-graph-structures-on-standard-finite-sets.lagda.md @@ -22,7 +22,7 @@ open import univalent-combinatorics.standard-finite-types A {{#concept "directed graph structure" WD="directed graph" WDID=Q1137726 Agda=structure-directed-graph-Fin}} on a [standard finite set](univalent-combinatorics.standard-finite-types.md) -`Fin n` is a [binary type-valued relation](foundation.binary-relations.md) +`Fin n` is a [binary type valued relation](foundation.binary-relations.md) ```text Fin n → Fin n → 𝒰. diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 8dc8c7313e..7deab615f3 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -13,8 +13,8 @@ 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 -open import structured-types.colax-reflexive-globular-maps public -open import structured-types.colax-transitive-globular-maps public +open import structured-types.colaxly-reflexive-globular-maps public +open import structured-types.colaxly-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 @@ -53,19 +53,19 @@ 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-colaxly-reflexive-globular-maps public +open import structured-types.large-colaxly-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-laxly-reflexive-globular-maps public +open import structured-types.large-laxly-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.laxly-reflexive-globular-maps public +open import structured-types.laxly-transitive-globular-maps public open import structured-types.magmas 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/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md deleted file mode 100644 index ae9d8334fa..0000000000 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ /dev/null @@ -1,212 +0,0 @@ -# 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=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 -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. - -### 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 - -```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 - -open colax-reflexive-globular-map public -``` - -### 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 -globular-map-colax-reflexive-globular-map - ( id-colax-reflexive-globular-map G) = - map-id-colax-reflexive-globular-map G -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 deleted file mode 100644 index b48bc0daa2..0000000000 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,232 +0,0 @@ -# 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=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` -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 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 - -```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 - - 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 - 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 - -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/colaxly-reflexive-globular-maps.lagda.md b/src/structured-types/colaxly-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..ce8b5c5425 --- /dev/null +++ b/src/structured-types/colaxly-reflexive-globular-maps.lagda.md @@ -0,0 +1,214 @@ +# Colaxly reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.colaxly-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 "colaxly reflexive globular map" Agda=colaxly-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 +colaxly reflexive. + +### Lack of composition for colaxly reflexive globular maps + +Note that the colaxly 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. + +### Colaxly 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 colaxly reflexive globular maps. + +### Lax versus colax + +The notion of +[laxly reflexive globular map](structured-types.laxly-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 colaxly preserving reflexivity + +```agda +record + is-colaxly-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-colaxly-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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-colaxly-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-colaxly-reflexive-globular-map public +``` + +### Colaxly reflexive globular maps + +```agda +record + colaxly-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-colaxly-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-colaxly-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-colaxly-reflexive-globular-map = + 0-cell-globular-map globular-map-colaxly-reflexive-globular-map + + 1-cell-colaxly-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-colaxly-reflexive-globular-map x) + ( 0-cell-colaxly-reflexive-globular-map y) + 1-cell-colaxly-reflexive-globular-map = + 1-cell-globular-map globular-map-colaxly-reflexive-globular-map + + 1-cell-globular-map-colaxly-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-colaxly-reflexive-globular-map x) + ( 0-cell-colaxly-reflexive-globular-map y)) + 1-cell-globular-map-colaxly-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-colaxly-reflexive-globular-map + + field + is-colaxly-reflexive-colaxly-reflexive-globular-map : + is-colaxly-reflexive-globular-map G H + globular-map-colaxly-reflexive-globular-map + + preserves-refl-1-cell-colaxly-reflexive-globular-map : + ( x : 0-cell-Reflexive-Globular-Type G) → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-colaxly-reflexive-globular-map + ( refl-1-cell-Reflexive-Globular-Type G {x})) + ( refl-1-cell-Reflexive-Globular-Type H) + preserves-refl-1-cell-colaxly-reflexive-globular-map = + preserves-refl-1-cell-is-colaxly-reflexive-globular-map + is-colaxly-reflexive-colaxly-reflexive-globular-map + + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map : + { x y : 0-cell-Reflexive-Globular-Type G} → + is-colaxly-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-colaxly-reflexive-globular-map x) + ( 0-cell-colaxly-reflexive-globular-map y)) + ( 1-cell-globular-map-colaxly-reflexive-globular-map) + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map = + is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map + is-colaxly-reflexive-colaxly-reflexive-globular-map + + 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + colaxly-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-colaxly-reflexive-globular-map x) + ( 0-cell-colaxly-reflexive-globular-map y)) + globular-map-colaxly-reflexive-globular-map + 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map = + 1-cell-globular-map-colaxly-reflexive-globular-map + is-colaxly-reflexive-colaxly-reflexive-globular-map + 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map = + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map + +open colaxly-reflexive-globular-map public +``` + +### The identity colaxly reflexive globular map + +```agda +map-id-colaxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + globular-map-Reflexive-Globular-Type G G +map-id-colaxly-reflexive-globular-map G = id-globular-map _ + +is-colaxly-reflexive-id-colaxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + is-colaxly-reflexive-globular-map G G + ( map-id-colaxly-reflexive-globular-map G) +preserves-refl-1-cell-is-colaxly-reflexive-globular-map + ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) + x = + refl-2-cell-Reflexive-Globular-Type G +is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map + ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) = + is-colaxly-reflexive-id-colaxly-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + +id-colaxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + colaxly-reflexive-globular-map G G +globular-map-colaxly-reflexive-globular-map + ( id-colaxly-reflexive-globular-map G) = + map-id-colaxly-reflexive-globular-map G +is-colaxly-reflexive-colaxly-reflexive-globular-map + ( id-colaxly-reflexive-globular-map G) = + ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) +``` + +## See also + +- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/colaxly-transitive-globular-maps.lagda.md b/src/structured-types/colaxly-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..ff9e8339b8 --- /dev/null +++ b/src/structured-types/colaxly-transitive-globular-maps.lagda.md @@ -0,0 +1,233 @@ +# Colaxly transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.colaxly-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 "colaxly transitive globular map" Agda=colaxly-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 colaxly transitive. + +### Lack of identity colaxly transitive globular maps + +Note that the colaxly 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 colaxly preserving transitivity + +```agda +record + is-colaxly-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-colaxly-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-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + is-colaxly-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-colaxly-transitive-globular-map public +``` + +### Colaxly transitive globular maps + +```agda +record + colaxly-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-colaxly-transitive-globular-map : + globular-map-Transitive-Globular-Type G H + + 0-cell-colaxly-transitive-globular-map : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-colaxly-transitive-globular-map = + 0-cell-globular-map globular-map-colaxly-transitive-globular-map + + 1-cell-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-colaxly-transitive-globular-map y) + 1-cell-colaxly-transitive-globular-map = + 1-cell-globular-map globular-map-colaxly-transitive-globular-map + + 1-cell-globular-map-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-colaxly-transitive-globular-map y)) + 1-cell-globular-map-colaxly-transitive-globular-map = + 1-cell-globular-map-globular-map + globular-map-colaxly-transitive-globular-map + + 2-cell-colaxly-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-colaxly-transitive-globular-map f) + ( 1-cell-colaxly-transitive-globular-map g) + 2-cell-colaxly-transitive-globular-map = + 2-cell-globular-map globular-map-colaxly-transitive-globular-map + + 2-cell-globular-map-colaxly-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-colaxly-transitive-globular-map f) + ( 1-cell-colaxly-transitive-globular-map g)) + 2-cell-globular-map-colaxly-transitive-globular-map = + 2-cell-globular-map-globular-map + ( globular-map-colaxly-transitive-globular-map) + ( _) + ( _) + + field + is-colaxly-transitive-colaxly-transitive-globular-map : + is-colaxly-transitive-globular-map G H + globular-map-colaxly-transitive-globular-map + + preserves-comp-1-cell-colaxly-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-colaxly-transitive-globular-map + ( comp-1-cell-Transitive-Globular-Type G q p)) + ( comp-1-cell-Transitive-Globular-Type H + ( 1-cell-colaxly-transitive-globular-map q) + ( 1-cell-colaxly-transitive-globular-map p)) + preserves-comp-1-cell-colaxly-transitive-globular-map = + preserves-comp-1-cell-is-colaxly-transitive-globular-map + is-colaxly-transitive-colaxly-transitive-globular-map + + is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map : + { x y : 0-cell-Transitive-Globular-Type G} → + is-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-colaxly-transitive-globular-map y)) + ( 1-cell-globular-map-colaxly-transitive-globular-map) + is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map = + is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map + is-colaxly-transitive-colaxly-transitive-globular-map + + 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-colaxly-transitive-globular-map y)) + globular-map-colaxly-transitive-globular-map + 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map = + 1-cell-globular-map-colaxly-transitive-globular-map + is-colaxly-transitive-colaxly-transitive-globular-map + 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map = + is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map + +open colaxly-transitive-globular-map public +``` + +### Composition of colaxly transitive maps + +```agda +map-comp-colaxly-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) → + colaxly-transitive-globular-map H K → colaxly-transitive-globular-map G H → + globular-map-Transitive-Globular-Type G K +map-comp-colaxly-transitive-globular-map G H K g f = + comp-globular-map + ( globular-map-colaxly-transitive-globular-map g) + ( globular-map-colaxly-transitive-globular-map f) + +is-colaxly-transitive-comp-colaxly-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 : colaxly-transitive-globular-map H K) + (f : colaxly-transitive-globular-map G H) → + is-colaxly-transitive-globular-map G K + ( map-comp-colaxly-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-colaxly-transitive-globular-map + ( is-colaxly-transitive-comp-colaxly-transitive-globular-map G H K g f) q p = + comp-2-cell-Transitive-Globular-Type K + ( preserves-comp-1-cell-colaxly-transitive-globular-map g _ _) + ( 2-cell-colaxly-transitive-globular-map g + ( preserves-comp-1-cell-colaxly-transitive-globular-map f q p)) +is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map + ( is-colaxly-transitive-comp-colaxly-transitive-globular-map G H K g f) = + is-colaxly-transitive-comp-colaxly-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-colaxly-transitive-globular-map-colaxly-transitive-globular-map g) + ( 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map f) +``` diff --git a/src/structured-types/globular-maps.lagda.md b/src/structured-types/globular-maps.lagda.md index d1141ce730..b65166089e 100644 --- a/src/structured-types/globular-maps.lagda.md +++ b/src/structured-types/globular-maps.lagda.md @@ -116,7 +116,7 @@ module _ 3-cell-globular-map-globular-map = 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} → @@ -137,12 +137,6 @@ id-globular-map : 0-cell-globular-map (id-globular-map A) = id 1-cell-globular-map-globular-map (id-globular-map A) = id-globular-map (1-cell-globular-type-Globular-Type A _ _) - -{- - λ where - .0-cell-globular-map → id - .1-cell-globular-map-globular-map {x} {y} → - id-globular-map (1-cell-globular-type-Globular-Type A x y) -} ``` ### Composition of maps of globular types diff --git a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md b/src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md similarity index 51% rename from src/structured-types/large-lax-reflexive-globular-maps.lagda.md rename to src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md index 0ad31e0840..97e8b1ef7e 100644 --- a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large lax reflexive globular maps +# Large colaxly reflexive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-lax-reflexive-globular-maps where +module structured-types.large-colaxly-reflexive-globular-maps where ```
Imports @@ -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.colaxly-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 ``` @@ -23,24 +23,24 @@ open import structured-types.reflexive-globular-types ## Idea A -{{#concept "large lax reflexive globular map" Agda=large-lax-reflexive-globular-map}} +{{#concept "large colaxly reflexive globular map" Agda=large-colaxly-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₂ (Hᵣ (f₀ x)) (f₁ (Gᵣ x)) + (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). +[colaxly reflexive](structured-types.colaxly-reflexive-globular-maps.md). -### Lack of composition for lax reflexive globular maps +### Lack of composition for colaxly reflexive globular maps -Note that the large lax reflexive globular maps lack composition. For the +Note that the large colaxly 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 @@ -51,7 +51,7 @@ instances of the compositions. ### Lax versus colax The notion of -[large colax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) +[large laxly reflexive globular map](structured-types.large-laxly-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 @@ -60,11 +60,11 @@ the morphism. ## Definitions -### The predicate of lax preserving reflexivity +### The predicate of colaxly preserving reflexivity ```agda record - is-lax-reflexive-large-globular-map + is-colaxly-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) @@ -73,159 +73,159 @@ record coinductive field - preserves-refl-1-cell-is-lax-reflexive-large-globular-map : + preserves-refl-1-cell-is-colaxly-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})) + ( refl-1-cell-Large-Reflexive-Globular-Type H) field - is-lax-reflexive-1-cell-globular-map-is-lax-reflexive-large-globular-map : + is-colaxly-reflexive-1-cell-globular-map-is-colaxly-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 + is-colaxly-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 +open is-colaxly-reflexive-large-globular-map public ``` -### Lax reflexive globular maps +### Colaxly reflexive globular maps ```agda record - large-lax-reflexive-globular-map + large-colaxly-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-colaxly-reflexive-globular-map : large-globular-map-Large-Reflexive-Globular-Type γ G H - 0-cell-large-lax-reflexive-globular-map : + 0-cell-large-colaxly-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-colaxly-reflexive-globular-map = 0-cell-large-globular-map - large-globular-map-large-lax-reflexive-globular-map + large-globular-map-large-colaxly-reflexive-globular-map - 1-cell-large-lax-reflexive-globular-map : + 1-cell-large-colaxly-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 = + ( 0-cell-large-colaxly-reflexive-globular-map x) + ( 0-cell-large-colaxly-reflexive-globular-map y) + 1-cell-large-colaxly-reflexive-globular-map = 1-cell-large-globular-map - large-globular-map-large-lax-reflexive-globular-map + large-globular-map-large-colaxly-reflexive-globular-map - 1-cell-globular-map-large-lax-reflexive-globular-map : + 1-cell-globular-map-large-colaxly-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 = + ( 0-cell-large-colaxly-reflexive-globular-map x) + ( 0-cell-large-colaxly-reflexive-globular-map y)) + 1-cell-globular-map-large-colaxly-reflexive-globular-map = 1-cell-globular-map-large-globular-map - large-globular-map-large-lax-reflexive-globular-map + large-globular-map-large-colaxly-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 + is-colaxly-reflexive-large-colaxly-reflexive-globular-map : + is-colaxly-reflexive-large-globular-map G H + large-globular-map-large-colaxly-reflexive-globular-map - preserves-refl-1-cell-large-lax-reflexive-globular-map : + preserves-refl-1-cell-large-colaxly-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 + ( 1-cell-large-colaxly-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 + ( refl-1-cell-Large-Reflexive-Globular-Type H) + preserves-refl-1-cell-large-colaxly-reflexive-globular-map = + preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map + is-colaxly-reflexive-large-colaxly-reflexive-globular-map - is-lax-reflexive-2-cell-globular-map-is-lax-reflexive-large-globular-map : + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-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 + is-colaxly-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 : + ( 0-cell-large-colaxly-reflexive-globular-map x) + ( 0-cell-large-colaxly-reflexive-globular-map y)) + ( 1-cell-globular-map-large-colaxly-reflexive-globular-map) + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-large-globular-map = + is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map + is-colaxly-reflexive-large-colaxly-reflexive-globular-map + + 1-cell-colaxly-reflexive-globular-map-large-colaxly-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 + colaxly-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 + ( 0-cell-large-colaxly-reflexive-globular-map x) + ( 0-cell-large-colaxly-reflexive-globular-map y)) + globular-map-colaxly-reflexive-globular-map + 1-cell-colaxly-reflexive-globular-map-large-colaxly-reflexive-globular-map = + 1-cell-globular-map-large-colaxly-reflexive-globular-map + is-colaxly-reflexive-colaxly-reflexive-globular-map + 1-cell-colaxly-reflexive-globular-map-large-colaxly-reflexive-globular-map = + is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-large-globular-map + +open large-colaxly-reflexive-globular-map public ``` -### The identity large lax reflexive globular map +### The identity large colaxly reflexive globular map ```agda -map-id-large-lax-reflexive-globular-map : +map-id-large-colaxly-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 _ +map-id-large-colaxly-reflexive-globular-map G = id-large-globular-map _ -is-lax-reflexive-id-large-lax-reflexive-globular-map : +is-colaxly-reflexive-id-large-colaxly-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) + is-colaxly-reflexive-large-globular-map G G + ( map-id-large-colaxly-reflexive-globular-map G) +preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map + ( is-colaxly-reflexive-id-large-colaxly-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 +is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map + ( is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map G) = + is-colaxly-reflexive-id-colaxly-reflexive-globular-map ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G _ _) -id-large-lax-reflexive-globular-map : +id-large-colaxly-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) + large-colaxly-reflexive-globular-map id G G +large-globular-map-large-colaxly-reflexive-globular-map + ( id-large-colaxly-reflexive-globular-map G) = + map-id-large-colaxly-reflexive-globular-map G +is-colaxly-reflexive-large-colaxly-reflexive-globular-map + ( id-large-colaxly-reflexive-globular-map G) = + ( is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map G) ``` ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) - [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md b/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..80511ec652 --- /dev/null +++ b/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md @@ -0,0 +1,267 @@ +# Large colaxly transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.large-colaxly-transitive-globular-maps where +``` + +
Imports + +```agda +open import foundation.function-types +open import foundation.universe-levels + +open import structured-types.colaxly-transitive-globular-maps +open import structured-types.large-globular-maps +open import structured-types.large-transitive-globular-types +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +A +{{#concept "large colaxly transitive globular map" Agda=large-colaxly-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 colaxly transitive. + +### Lack of identity large colaxly transitive globular maps + +Note that the large colaxly 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 colaxly preserving transitivity + +```agda +record + is-colaxly-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-colaxly-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-colaxly-transitive-1-cell-globular-map-is-colaxly-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-colaxly-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-colaxly-transitive-large-globular-map public +``` + +### Colaxly transitive globular maps + +```agda +record + large-colaxly-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-colaxly-transitive-globular-map : + large-globular-map-Large-Transitive-Globular-Type γ G H + + 0-cell-large-colaxly-transitive-globular-map : + {l1 : Level} → + 0-cell-Large-Transitive-Globular-Type G l1 → + 0-cell-Large-Transitive-Globular-Type H (γ l1) + 0-cell-large-colaxly-transitive-globular-map = + 0-cell-large-globular-map + large-globular-map-large-colaxly-transitive-globular-map + + 1-cell-large-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-large-colaxly-transitive-globular-map y) + 1-cell-large-colaxly-transitive-globular-map = + 1-cell-large-globular-map + large-globular-map-large-colaxly-transitive-globular-map + + 1-cell-globular-map-large-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-large-colaxly-transitive-globular-map y)) + 1-cell-globular-map-large-colaxly-transitive-globular-map = + 1-cell-globular-map-large-globular-map + large-globular-map-large-colaxly-transitive-globular-map + + 2-cell-large-colaxly-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-colaxly-transitive-globular-map f) + ( 1-cell-large-colaxly-transitive-globular-map g) + 2-cell-large-colaxly-transitive-globular-map = + 2-cell-large-globular-map + large-globular-map-large-colaxly-transitive-globular-map + + 2-cell-globular-map-large-colaxly-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-colaxly-transitive-globular-map f) + ( 1-cell-large-colaxly-transitive-globular-map g)) + 2-cell-globular-map-large-colaxly-transitive-globular-map = + 2-cell-globular-map-large-globular-map + ( large-globular-map-large-colaxly-transitive-globular-map) + ( _) + ( _) + + field + is-colaxly-transitive-large-colaxly-transitive-globular-map : + is-colaxly-transitive-large-globular-map G H + large-globular-map-large-colaxly-transitive-globular-map + + preserves-comp-1-cell-large-colaxly-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-colaxly-transitive-globular-map + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + ( comp-1-cell-Large-Transitive-Globular-Type H + ( 1-cell-large-colaxly-transitive-globular-map q) + ( 1-cell-large-colaxly-transitive-globular-map p)) + preserves-comp-1-cell-large-colaxly-transitive-globular-map = + preserves-comp-1-cell-is-colaxly-transitive-large-globular-map + is-colaxly-transitive-large-colaxly-transitive-globular-map + + is-colaxly-transitive-1-cell-globular-map-large-colaxly-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-colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-large-colaxly-transitive-globular-map y)) + ( 1-cell-globular-map-large-colaxly-transitive-globular-map) + is-colaxly-transitive-1-cell-globular-map-large-colaxly-transitive-globular-map = + is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map + is-colaxly-transitive-large-colaxly-transitive-globular-map + + 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map : + {l1 l2 : Level} + {x : 0-cell-Large-Transitive-Globular-Type G l1} + {y : 0-cell-Large-Transitive-Globular-Type G l2} → + colaxly-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-colaxly-transitive-globular-map x) + ( 0-cell-large-colaxly-transitive-globular-map y)) + globular-map-colaxly-transitive-globular-map + 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map = + 1-cell-globular-map-large-colaxly-transitive-globular-map + is-colaxly-transitive-colaxly-transitive-globular-map + 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map = + is-colaxly-transitive-1-cell-globular-map-large-colaxly-transitive-globular-map + +open large-colaxly-transitive-globular-map public +``` + +### Composition of colaxly transitive maps + +```agda +map-comp-large-colaxly-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-colaxly-transitive-globular-map γ2 H K) + (f : large-colaxly-transitive-globular-map γ1 G H) → + large-globular-map-Large-Transitive-Globular-Type (γ2 ∘ γ1) G K +map-comp-large-colaxly-transitive-globular-map G H K g f = + comp-large-globular-map + ( large-globular-map-large-colaxly-transitive-globular-map g) + ( large-globular-map-large-colaxly-transitive-globular-map f) + +is-colaxly-transitive-comp-large-colaxly-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-colaxly-transitive-globular-map γ2 H K) + (f : large-colaxly-transitive-globular-map γ1 G H) → + is-colaxly-transitive-large-globular-map G K + ( map-comp-large-colaxly-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-colaxly-transitive-large-globular-map + ( is-colaxly-transitive-comp-large-colaxly-transitive-globular-map G H K g f) + ( q) + ( p) = + comp-2-cell-Large-Transitive-Globular-Type K + ( preserves-comp-1-cell-large-colaxly-transitive-globular-map g _ _) + ( 2-cell-large-colaxly-transitive-globular-map g + ( preserves-comp-1-cell-large-colaxly-transitive-globular-map f q p)) +is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map + ( is-colaxly-transitive-comp-large-colaxly-transitive-globular-map + G H K g f) = + is-colaxly-transitive-comp-colaxly-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-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map + g) + ( 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-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 deleted file mode 100644 index bdbbc7308c..0000000000 --- a/src/structured-types/large-lax-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,263 +0,0 @@ -# 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-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) -`f : G → H` equipped with a family of 2-cells - -```text - H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G 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-colax-reflexive-globular-maps.lagda.md b/src/structured-types/large-laxly-reflexive-globular-maps.lagda.md similarity index 54% rename from src/structured-types/large-colax-reflexive-globular-maps.lagda.md rename to src/structured-types/large-laxly-reflexive-globular-maps.lagda.md index 69c95dbdeb..6dbca75808 100644 --- a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-laxly-reflexive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large colax reflexive globular maps +# Large laxly reflexive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-colax-reflexive-globular-maps where +module structured-types.large-laxly-reflexive-globular-maps where ```
Imports @@ -12,9 +12,9 @@ module structured-types.large-colax-reflexive-globular-maps where 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.laxly-reflexive-globular-maps open import structured-types.reflexive-globular-types ``` @@ -23,24 +23,24 @@ open import structured-types.reflexive-globular-types ## Idea A -{{#concept "large colax reflexive globular map" Agda=large-colax-reflexive-globular-map}} +{{#concept "large laxly reflexive globular map" Agda=large-laxly-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)) + (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](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is -[colax reflexive](structured-types.colax-reflexive-globular-maps.md). +[laxly reflexive](structured-types.laxly-reflexive-globular-maps.md). -### Lack of composition for colax reflexive globular maps +### Lack of composition for laxly reflexive globular maps -Note that the large colax reflexive globular maps lack composition. For the +Note that the large laxly 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 @@ -51,7 +51,7 @@ instances of the compositions. ### Lax versus colax The notion of -[large lax reflexive globular map](structured-types.large-lax-reflexive-globular-maps.md) +[large colaxly reflexive globular map](structured-types.large-laxly-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 @@ -60,11 +60,11 @@ the morphism. ## Definitions -### The predicate of colax preserving reflexivity +### The predicate of laxly preserving reflexivity ```agda record - is-colax-reflexive-large-globular-map + is-laxly-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) @@ -73,159 +73,159 @@ record coinductive field - preserves-refl-1-cell-is-colax-reflexive-large-globular-map : + preserves-refl-1-cell-is-laxly-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})) - ( refl-1-cell-Large-Reflexive-Globular-Type H) field - is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-large-globular-map : + is-laxly-reflexive-1-cell-globular-map-is-laxly-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 + is-laxly-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 +open is-laxly-reflexive-large-globular-map public ``` -### Colax reflexive globular maps +### laxly reflexive globular maps ```agda record - large-colax-reflexive-globular-map + large-laxly-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-laxly-reflexive-globular-map : large-globular-map-Large-Reflexive-Globular-Type γ G H - 0-cell-large-colax-reflexive-globular-map : + 0-cell-large-laxly-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-laxly-reflexive-globular-map = 0-cell-large-globular-map - large-globular-map-large-colax-reflexive-globular-map + large-globular-map-large-laxly-reflexive-globular-map - 1-cell-large-colax-reflexive-globular-map : + 1-cell-large-laxly-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 = + ( 0-cell-large-laxly-reflexive-globular-map x) + ( 0-cell-large-laxly-reflexive-globular-map y) + 1-cell-large-laxly-reflexive-globular-map = 1-cell-large-globular-map - large-globular-map-large-colax-reflexive-globular-map + large-globular-map-large-laxly-reflexive-globular-map - 1-cell-globular-map-large-colax-reflexive-globular-map : + 1-cell-globular-map-large-laxly-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 = + ( 0-cell-large-laxly-reflexive-globular-map x) + ( 0-cell-large-laxly-reflexive-globular-map y)) + 1-cell-globular-map-large-laxly-reflexive-globular-map = 1-cell-globular-map-large-globular-map - large-globular-map-large-colax-reflexive-globular-map + large-globular-map-large-laxly-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 + is-laxly-reflexive-large-laxly-reflexive-globular-map : + is-laxly-reflexive-large-globular-map G H + large-globular-map-large-laxly-reflexive-globular-map - preserves-refl-1-cell-large-colax-reflexive-globular-map : + preserves-refl-1-cell-large-laxly-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 + ( 1-cell-large-laxly-reflexive-globular-map + ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) + preserves-refl-1-cell-large-laxly-reflexive-globular-map = + preserves-refl-1-cell-is-laxly-reflexive-large-globular-map + is-laxly-reflexive-large-laxly-reflexive-globular-map - is-colax-reflexive-2-cell-globular-map-is-colax-reflexive-large-globular-map : + is-laxly-reflexive-2-cell-globular-map-is-laxly-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 + is-laxly-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 : + ( 0-cell-large-laxly-reflexive-globular-map x) + ( 0-cell-large-laxly-reflexive-globular-map y)) + ( 1-cell-globular-map-large-laxly-reflexive-globular-map) + is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-large-globular-map = + is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-large-globular-map + is-laxly-reflexive-large-laxly-reflexive-globular-map + + 1-cell-laxly-reflexive-globular-map-large-laxly-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 + laxly-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 + ( 0-cell-large-laxly-reflexive-globular-map x) + ( 0-cell-large-laxly-reflexive-globular-map y)) + globular-map-laxly-reflexive-globular-map + 1-cell-laxly-reflexive-globular-map-large-laxly-reflexive-globular-map = + 1-cell-globular-map-large-laxly-reflexive-globular-map + is-laxly-reflexive-laxly-reflexive-globular-map + 1-cell-laxly-reflexive-globular-map-large-laxly-reflexive-globular-map = + is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-large-globular-map + +open large-laxly-reflexive-globular-map public ``` -### The identity large colax reflexive globular map +### The identity large laxly reflexive globular map ```agda -map-id-large-colax-reflexive-globular-map : +map-id-large-laxly-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 _ +map-id-large-laxly-reflexive-globular-map G = id-large-globular-map _ -is-colax-reflexive-id-large-colax-reflexive-globular-map : +is-laxly-reflexive-id-large-laxly-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) + is-laxly-reflexive-large-globular-map G G + ( map-id-large-laxly-reflexive-globular-map G) +preserves-refl-1-cell-is-laxly-reflexive-large-globular-map + ( is-laxly-reflexive-id-large-laxly-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 +is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-large-globular-map + ( is-laxly-reflexive-id-large-laxly-reflexive-globular-map G) = + is-laxly-reflexive-id-laxly-reflexive-globular-map ( 1-cell-reflexive-globular-type-Large-Reflexive-Globular-Type G _ _) -id-large-colax-reflexive-globular-map : +id-large-laxly-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) + large-laxly-reflexive-globular-map id G G +large-globular-map-large-laxly-reflexive-globular-map + ( id-large-laxly-reflexive-globular-map G) = + map-id-large-laxly-reflexive-globular-map G +is-laxly-reflexive-large-laxly-reflexive-globular-map + ( id-large-laxly-reflexive-globular-map G) = + ( is-laxly-reflexive-id-large-laxly-reflexive-globular-map G) ``` ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) - [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-colax-transitive-globular-maps.lagda.md b/src/structured-types/large-laxly-transitive-globular-maps.lagda.md similarity index 55% rename from src/structured-types/large-colax-transitive-globular-maps.lagda.md rename to src/structured-types/large-laxly-transitive-globular-maps.lagda.md index 5f9b666ed1..8d3e21d565 100644 --- a/src/structured-types/large-colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-laxly-transitive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large colax transitive globular maps +# Large laxly transitive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-colax-transitive-globular-maps where +module structured-types.large-laxly-transitive-globular-maps where ```
Imports @@ -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.laxly-transitive-globular-maps open import structured-types.transitive-globular-types ``` @@ -23,23 +23,23 @@ open import structured-types.transitive-globular-types ## Idea A -{{#concept "large colax transitive globular map" Agda=large-colax-transitive-globular-map}} +{{#concept "large laxly transitive globular map" Agda=large-laxly-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) + H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G 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. +`f' : G' x y → H' (f₀ x) (f₀ y)` is again laxly transitive. -### Lack of identity large colax transitive globular maps +### Lack of identity large laxly transitive globular maps -Note that the large colax transitive globular maps lack an identity morphism. +Note that the large laxly 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 @@ -49,11 +49,11 @@ such instances of the reflexivity cells. ## Definitions -### The predicate of colax preserving transitivity +### The predicate of laxly preserving transitivity ```agda record - is-colax-transitive-large-globular-map + is-laxly-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) @@ -62,7 +62,7 @@ record coinductive field - preserves-comp-1-cell-is-colax-transitive-large-globular-map : + preserves-comp-1-cell-is-laxly-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} @@ -70,86 +70,86 @@ record (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)) + ( 1-cell-large-globular-map f + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) field - is-colax-transitive-1-cell-globular-map-is-colax-transitive-large-globular-map : + is-laxly-transitive-1-cell-globular-map-is-laxly-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 + is-laxly-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 +open is-laxly-transitive-large-globular-map public ``` -### Colax transitive globular maps +### laxly transitive globular maps ```agda record - large-colax-transitive-globular-map + large-laxly-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-laxly-transitive-globular-map : large-globular-map-Large-Transitive-Globular-Type γ G H - 0-cell-large-colax-transitive-globular-map : + 0-cell-large-laxly-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-laxly-transitive-globular-map = 0-cell-large-globular-map - large-globular-map-large-colax-transitive-globular-map + large-globular-map-large-laxly-transitive-globular-map - 1-cell-large-colax-transitive-globular-map : + 1-cell-large-laxly-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 = + ( 0-cell-large-laxly-transitive-globular-map x) + ( 0-cell-large-laxly-transitive-globular-map y) + 1-cell-large-laxly-transitive-globular-map = 1-cell-large-globular-map - large-globular-map-large-colax-transitive-globular-map + large-globular-map-large-laxly-transitive-globular-map - 1-cell-globular-map-large-colax-transitive-globular-map : + 1-cell-globular-map-large-laxly-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 = + ( 0-cell-large-laxly-transitive-globular-map x) + ( 0-cell-large-laxly-transitive-globular-map y)) + 1-cell-globular-map-large-laxly-transitive-globular-map = 1-cell-globular-map-large-globular-map - large-globular-map-large-colax-transitive-globular-map + large-globular-map-large-laxly-transitive-globular-map - 2-cell-large-colax-transitive-globular-map : + 2-cell-large-laxly-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 = + ( 1-cell-large-laxly-transitive-globular-map f) + ( 1-cell-large-laxly-transitive-globular-map g) + 2-cell-large-laxly-transitive-globular-map = 2-cell-large-globular-map - large-globular-map-large-colax-transitive-globular-map + large-globular-map-large-laxly-transitive-globular-map - 2-cell-globular-map-large-colax-transitive-globular-map : + 2-cell-globular-map-large-laxly-transitive-globular-map : {l1 l2 : Level} {x : 0-cell-Large-Transitive-Globular-Type G l1} {y : 0-cell-Large-Transitive-Globular-Type G l2} → @@ -157,20 +157,20 @@ record 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 = + ( 1-cell-large-laxly-transitive-globular-map f) + ( 1-cell-large-laxly-transitive-globular-map g)) + 2-cell-globular-map-large-laxly-transitive-globular-map = 2-cell-globular-map-large-globular-map - ( large-globular-map-large-colax-transitive-globular-map) + ( large-globular-map-large-laxly-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 + is-laxly-transitive-large-laxly-transitive-globular-map : + is-laxly-transitive-large-globular-map G H + large-globular-map-large-laxly-transitive-globular-map - preserves-comp-1-cell-large-colax-transitive-globular-map : + preserves-comp-1-cell-large-laxly-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} @@ -178,89 +178,89 @@ record (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 + ( 1-cell-large-laxly-transitive-globular-map q) + ( 1-cell-large-laxly-transitive-globular-map p)) + ( 1-cell-large-laxly-transitive-globular-map + ( comp-1-cell-Large-Transitive-Globular-Type G q p)) + preserves-comp-1-cell-large-laxly-transitive-globular-map = + preserves-comp-1-cell-is-laxly-transitive-large-globular-map + is-laxly-transitive-large-laxly-transitive-globular-map - is-colax-transitive-1-cell-globular-map-large-colax-transitive-globular-map : + is-laxly-transitive-1-cell-globular-map-large-laxly-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 + is-laxly-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 : + ( 0-cell-large-laxly-transitive-globular-map x) + ( 0-cell-large-laxly-transitive-globular-map y)) + ( 1-cell-globular-map-large-laxly-transitive-globular-map) + is-laxly-transitive-1-cell-globular-map-large-laxly-transitive-globular-map = + is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-large-globular-map + is-laxly-transitive-large-laxly-transitive-globular-map + + 1-cell-large-laxly-transitive-large-globular-map-large-laxly-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 + laxly-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 + ( 0-cell-large-laxly-transitive-globular-map x) + ( 0-cell-large-laxly-transitive-globular-map y)) + globular-map-laxly-transitive-globular-map + 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map = + 1-cell-globular-map-large-laxly-transitive-globular-map + is-laxly-transitive-laxly-transitive-globular-map + 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map = + is-laxly-transitive-1-cell-globular-map-large-laxly-transitive-globular-map + +open large-laxly-transitive-globular-map public ``` -### Composition of colax transitive maps +### Composition of laxly transitive maps ```agda -map-comp-large-colax-transitive-globular-map : +map-comp-large-laxly-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) → + (g : large-laxly-transitive-globular-map γ2 H K) + (f : large-laxly-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 = +map-comp-large-laxly-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) + ( large-globular-map-large-laxly-transitive-globular-map g) + ( large-globular-map-large-laxly-transitive-globular-map f) -is-colax-transitive-comp-large-colax-transitive-globular-map : +is-laxly-transitive-comp-large-laxly-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) + (g : large-laxly-transitive-globular-map γ2 H K) + (f : large-laxly-transitive-globular-map γ1 G H) → + is-laxly-transitive-large-globular-map G K + ( map-comp-large-laxly-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-laxly-transitive-large-globular-map + ( is-laxly-transitive-comp-large-laxly-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 + ( 2-cell-large-laxly-transitive-globular-map g + ( preserves-comp-1-cell-large-laxly-transitive-globular-map f q p)) + ( preserves-comp-1-cell-large-laxly-transitive-globular-map g _ _) +is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-large-globular-map + ( is-laxly-transitive-comp-large-laxly-transitive-globular-map G H K g f) = + is-laxly-transitive-comp-laxly-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 + ( 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map g) - ( 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map + ( 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map f) ``` diff --git a/src/structured-types/large-reflexive-globular-maps.lagda.md b/src/structured-types/large-reflexive-globular-maps.lagda.md index 8df176bdc4..12861de2e1 100644 --- a/src/structured-types/large-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-reflexive-globular-maps.lagda.md @@ -43,9 +43,9 @@ 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) +[large colaxly reflexive globular maps](structured-types.large-colaxly-reflexive-globular-maps.md) and -[large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). +[large laxly reflexive globular maps](structured-types.large-laxly-reflexive-globular-maps.md). ## Definitions 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 837d6376b7..0000000000 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ /dev/null @@ -1,212 +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=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 -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 - -open lax-reflexive-globular-map public -``` - -### 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 -globular-map-lax-reflexive-globular-map - ( id-lax-reflexive-globular-map G) = - map-id-lax-reflexive-globular-map G -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/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md deleted file mode 100644 index 7ef7aea679..0000000000 --- a/src/structured-types/lax-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,231 +0,0 @@ -# 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=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` -equipped with a family of 2-cells - -```text - H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G 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/laxly-reflexive-globular-maps.lagda.md b/src/structured-types/laxly-reflexive-globular-maps.lagda.md new file mode 100644 index 0000000000..012f175498 --- /dev/null +++ b/src/structured-types/laxly-reflexive-globular-maps.lagda.md @@ -0,0 +1,212 @@ +# laxly reflexive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.laxly-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 "laxly reflexive globular map" Agda=laxly-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 laxly reflexive globular maps + +Note that the laxly 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. + +### laxly 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 laxly reflexive globular maps. + +### Lax versus colax + +The notion of +[colaxly reflexive globular map](structured-types.colaxly-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 laxly preserving reflexivity + +```agda +record + is-laxly-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-laxly-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-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-laxly-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-laxly-reflexive-globular-map public +``` + +### laxly reflexive globular maps + +```agda +record + laxly-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-laxly-reflexive-globular-map : + globular-map-Reflexive-Globular-Type G H + + 0-cell-laxly-reflexive-globular-map : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-laxly-reflexive-globular-map = + 0-cell-globular-map globular-map-laxly-reflexive-globular-map + + 1-cell-laxly-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-laxly-reflexive-globular-map x) + ( 0-cell-laxly-reflexive-globular-map y) + 1-cell-laxly-reflexive-globular-map = + 1-cell-globular-map globular-map-laxly-reflexive-globular-map + + 1-cell-globular-map-laxly-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-laxly-reflexive-globular-map x) + ( 0-cell-laxly-reflexive-globular-map y)) + 1-cell-globular-map-laxly-reflexive-globular-map = + 1-cell-globular-map-globular-map globular-map-laxly-reflexive-globular-map + + field + is-laxly-reflexive-laxly-reflexive-globular-map : + is-laxly-reflexive-globular-map G H + globular-map-laxly-reflexive-globular-map + + preserves-refl-1-cell-laxly-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-laxly-reflexive-globular-map + ( refl-1-cell-Reflexive-Globular-Type G {x})) + preserves-refl-1-cell-laxly-reflexive-globular-map = + preserves-refl-1-cell-is-laxly-reflexive-globular-map + is-laxly-reflexive-laxly-reflexive-globular-map + + is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + is-laxly-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-laxly-reflexive-globular-map x) + ( 0-cell-laxly-reflexive-globular-map y)) + ( 1-cell-globular-map-laxly-reflexive-globular-map) + is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map = + is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map + is-laxly-reflexive-laxly-reflexive-globular-map + + 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map : + {x y : 0-cell-Reflexive-Globular-Type G} → + laxly-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-laxly-reflexive-globular-map x) + ( 0-cell-laxly-reflexive-globular-map y)) + globular-map-laxly-reflexive-globular-map + 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map = + 1-cell-globular-map-laxly-reflexive-globular-map + is-laxly-reflexive-laxly-reflexive-globular-map + 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map = + is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map + +open laxly-reflexive-globular-map public +``` + +### The identity laxly reflexive globular map + +```agda +map-id-laxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + globular-map-Reflexive-Globular-Type G G +map-id-laxly-reflexive-globular-map G = id-globular-map _ + +is-laxly-reflexive-id-laxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + is-laxly-reflexive-globular-map G G (map-id-laxly-reflexive-globular-map G) +preserves-refl-1-cell-is-laxly-reflexive-globular-map + ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) + x = + refl-2-cell-Reflexive-Globular-Type G +is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map + ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) = + is-laxly-reflexive-id-laxly-reflexive-globular-map + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + +id-laxly-reflexive-globular-map : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + laxly-reflexive-globular-map G G +globular-map-laxly-reflexive-globular-map + ( id-laxly-reflexive-globular-map G) = + map-id-laxly-reflexive-globular-map G +is-laxly-reflexive-laxly-reflexive-globular-map + ( id-laxly-reflexive-globular-map G) = + ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) +``` + +## See also + +- [Colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) +- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/laxly-transitive-globular-maps.lagda.md b/src/structured-types/laxly-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..a6014c426e --- /dev/null +++ b/src/structured-types/laxly-transitive-globular-maps.lagda.md @@ -0,0 +1,232 @@ +# laxly transitive globular maps + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.laxly-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 "laxly transitive globular map" Agda=laxly-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 ∘H f₁ p) (f₁ (q ∘G 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 laxly transitive. + +### Lack of identity laxly transitive globular maps + +Note that the laxly 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 laxly preserving transitivity + +```agda +record + is-laxly-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-laxly-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-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + is-laxly-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-laxly-transitive-globular-map public +``` + +### laxly transitive globular maps + +```agda +record + laxly-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-laxly-transitive-globular-map : + globular-map-Transitive-Globular-Type G H + + 0-cell-laxly-transitive-globular-map : + 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H + 0-cell-laxly-transitive-globular-map = + 0-cell-globular-map globular-map-laxly-transitive-globular-map + + 1-cell-laxly-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-laxly-transitive-globular-map x) + ( 0-cell-laxly-transitive-globular-map y) + 1-cell-laxly-transitive-globular-map = + 1-cell-globular-map globular-map-laxly-transitive-globular-map + + 1-cell-globular-map-laxly-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-laxly-transitive-globular-map x) + ( 0-cell-laxly-transitive-globular-map y)) + 1-cell-globular-map-laxly-transitive-globular-map = + 1-cell-globular-map-globular-map globular-map-laxly-transitive-globular-map + + 2-cell-laxly-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-laxly-transitive-globular-map f) + ( 1-cell-laxly-transitive-globular-map g) + 2-cell-laxly-transitive-globular-map = + 2-cell-globular-map globular-map-laxly-transitive-globular-map + + 2-cell-globular-map-laxly-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-laxly-transitive-globular-map f) + ( 1-cell-laxly-transitive-globular-map g)) + 2-cell-globular-map-laxly-transitive-globular-map = + 2-cell-globular-map-globular-map + ( globular-map-laxly-transitive-globular-map) + ( _) + ( _) + + field + is-laxly-transitive-laxly-transitive-globular-map : + is-laxly-transitive-globular-map G H + globular-map-laxly-transitive-globular-map + + preserves-comp-1-cell-laxly-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-laxly-transitive-globular-map q) + ( 1-cell-laxly-transitive-globular-map p)) + ( 1-cell-laxly-transitive-globular-map + ( comp-1-cell-Transitive-Globular-Type G q p)) + preserves-comp-1-cell-laxly-transitive-globular-map = + preserves-comp-1-cell-is-laxly-transitive-globular-map + is-laxly-transitive-laxly-transitive-globular-map + + is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map : + { x y : 0-cell-Transitive-Globular-Type G} → + is-laxly-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-laxly-transitive-globular-map x) + ( 0-cell-laxly-transitive-globular-map y)) + ( 1-cell-globular-map-laxly-transitive-globular-map) + is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map = + is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map + is-laxly-transitive-laxly-transitive-globular-map + + 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map : + {x y : 0-cell-Transitive-Globular-Type G} → + laxly-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-laxly-transitive-globular-map x) + ( 0-cell-laxly-transitive-globular-map y)) + globular-map-laxly-transitive-globular-map + 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map = + 1-cell-globular-map-laxly-transitive-globular-map + is-laxly-transitive-laxly-transitive-globular-map + 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map = + is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map + +open laxly-transitive-globular-map public +``` + +### Composition of laxly transitive maps + +```agda +map-comp-laxly-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) → + laxly-transitive-globular-map H K → laxly-transitive-globular-map G H → + globular-map-Transitive-Globular-Type G K +map-comp-laxly-transitive-globular-map G H K g f = + comp-globular-map + ( globular-map-laxly-transitive-globular-map g) + ( globular-map-laxly-transitive-globular-map f) + +is-laxly-transitive-comp-laxly-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 : laxly-transitive-globular-map H K) + (f : laxly-transitive-globular-map G H) → + is-laxly-transitive-globular-map G K + ( map-comp-laxly-transitive-globular-map G H K g f) +preserves-comp-1-cell-is-laxly-transitive-globular-map + ( is-laxly-transitive-comp-laxly-transitive-globular-map G H K g f) q p = + comp-2-cell-Transitive-Globular-Type K + ( 2-cell-laxly-transitive-globular-map g + ( preserves-comp-1-cell-laxly-transitive-globular-map f q p)) + ( preserves-comp-1-cell-laxly-transitive-globular-map g _ _) +is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map + ( is-laxly-transitive-comp-laxly-transitive-globular-map G H K g f) = + is-laxly-transitive-comp-laxly-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-laxly-transitive-globular-map-laxly-transitive-globular-map g) + ( 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map f) +``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index d18bbd900a..687c37cd95 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -37,9 +37,9 @@ 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) +[colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) and -[lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). +[laxly reflexive globular maps](structured-types.laxly-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 f1055e1c13..e6ec534ba2 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -342,8 +342,8 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ## See also -- [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) +- [Colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) +- [Laxly reflexive globular maps](structured-types.laxly-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 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 e55282da42..7eb7714e2a 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 @@ -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-colax-reflexive-globular-maps -open import structured-types.large-colax-transitive-globular-maps +open import structured-types.large-colaxly-reflexive-globular-maps +open import structured-types.large-colaxly-transitive-globular-maps open import structured-types.large-globular-maps open import wild-category-theory.colax-functors-noncoherent-wild-higher-precategories @@ -66,7 +66,7 @@ preserves-id-structure-map-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-large-globular-map + is-colaxly-reflexive-large-globular-map ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜) ( large-reflexive-globular-type-Noncoherent-Large-Wild-Higher-Precategory @@ -84,7 +84,7 @@ preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory : (ℬ : 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 + is-colaxly-transitive-large-globular-map ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜) ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory @@ -128,7 +128,7 @@ record ( 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-refl-1-cell-is-colaxly-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 : @@ -142,7 +142,7 @@ record ℬ _ _) ( 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 + is-colaxly-reflexive-1-cell-globular-map-is-colaxly-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 : @@ -159,7 +159,7 @@ record ( 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-1-cell-is-colaxly-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 : @@ -173,7 +173,7 @@ record ℬ _ _) ( 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 + is-colaxly-transitive-1-cell-globular-map-is-colaxly-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 : @@ -278,17 +278,17 @@ record 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 δ + colaxly-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + large-colaxly-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 = + large-globular-map-large-colaxly-reflexive-globular-map + colaxly-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 = + is-colaxly-reflexive-large-colaxly-reflexive-globular-map + colaxly-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 : @@ -329,17 +329,17 @@ record 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 δ + colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : + large-colaxly-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 = + large-globular-map-large-colaxly-transitive-globular-map + colaxly-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 = + is-colaxly-transitive-large-colaxly-transitive-globular-map + colaxly-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 : @@ -436,18 +436,18 @@ module _ 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 + is-colaxly-reflexive-id-large-colaxly-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-1-cell-is-colaxly-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 + is-colaxly-transitive-1-cell-globular-map-is-colaxly-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 @@ -497,7 +497,7 @@ 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 - preserves-refl-1-cell-is-colax-reflexive-large-globular-map + preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory x = comp-2-hom-Noncoherent-Large-Wild-Higher-Precategory 𝒞 @@ -508,7 +508,7 @@ 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 + is-colaxly-reflexive-1-cell-globular-map-is-colaxly-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 @@ -526,16 +526,16 @@ module _ 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 + is-colaxly-transitive-comp-large-colaxly-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 + ( colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) - ( colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) is-colax-functor-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 4a76d12e3e..ac4664a0aa 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.colax-reflexive-globular-maps -open import structured-types.colax-transitive-globular-maps +open import structured-types.colaxly-reflexive-globular-maps +open import structured-types.colaxly-transitive-globular-maps open import structured-types.globular-maps open import structured-types.globular-types open import structured-types.reflexive-globular-types @@ -34,8 +34,9 @@ A [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 +which is +[colaxly reflexive](structured-types.colaxly-reflexive-globular-maps.md) and +[colaxly transitive](structured-types.colaxly-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 @@ -67,7 +68,7 @@ module _ 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 + is-colaxly-reflexive-globular-map ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) ( F) @@ -86,7 +87,7 @@ module _ 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 + is-colaxly-transitive-globular-map ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) ( F) @@ -114,19 +115,19 @@ record ( 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 + preserves-refl-1-cell-is-colaxly-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 + is-colaxly-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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory field @@ -144,19 +145,19 @@ record ( 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 + preserves-comp-1-cell-is-colaxly-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 + is-colaxly-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-colaxly-transitive-1-cell-globular-map-is-colaxly-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 : @@ -262,15 +263,15 @@ module _ 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 + colaxly-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : + colaxly-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 = + colaxly-reflexive-globular-map.globular-map-colaxly-reflexive-globular-map + colaxly-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 = + colaxly-reflexive-globular-map.is-colaxly-reflexive-colaxly-reflexive-globular-map + colaxly-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 ``` @@ -292,15 +293,15 @@ module _ 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 + colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : + colaxly-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 = + globular-map-colaxly-transitive-globular-map + colaxly-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-colaxly-transitive-colaxly-transitive-globular-map + colaxly-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 ``` @@ -340,19 +341,19 @@ preserves-id-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory : 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 + is-colaxly-reflexive-id-colaxly-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-1-cell-is-colaxly-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 +is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map ( preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜) = preserves-comp-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory @@ -409,7 +410,7 @@ preserves-id-structure-comp-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-refl-1-cell-is-colaxly-reflexive-globular-map ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) x = @@ -417,7 +418,7 @@ preserves-refl-1-cell-is-colax-reflexive-globular-map ( 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 +is-colaxly-reflexive-1-cell-globular-map-is-colaxly-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 @@ -445,13 +446,13 @@ module _ 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 + is-colaxly-transitive-comp-colaxly-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 + ( colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory G) - ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory + ( colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory F) is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : From a0bda74b71783bb9bdf2acd5fb81d887159301e5 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 15:06:19 -0500 Subject: [PATCH 45/87] review comment --- src/graph-theory/dependent-products-directed-graphs.lagda.md | 2 +- src/graph-theory/dependent-products-reflexive-graphs.lagda.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index afd4884827..f7a87074e5 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -32,7 +32,7 @@ Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `Π A B` is the directed graph that satisfies the universal property ```text - hom X (Π A B) ≃ hom (X × A) B. + hom X (Π A B) ≃ section (X × A) B. ``` Concretely, the directed graph `Π A B` has diff --git a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md index d757358eb9..3c8b9e8bc3 100644 --- a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md @@ -52,7 +52,7 @@ Given a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `Π A B` is the reflexive graph that satisfies the universal property ```text - hom X (Π A B) ≃ hom (X × A) B. + hom X (Π A B) ≃ section (X × A) B. ``` Concretely, the reflexive graph `Π A B` has From 3f48134f92138fed66e1231fddd2a4286089c3b2 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 15:07:12 -0500 Subject: [PATCH 46/87] typo --- src/graph-theory/dependent-products-directed-graphs.lagda.md | 2 +- src/graph-theory/dependent-products-reflexive-graphs.lagda.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graph-theory/dependent-products-directed-graphs.lagda.md b/src/graph-theory/dependent-products-directed-graphs.lagda.md index f7a87074e5..5e0174ead8 100644 --- a/src/graph-theory/dependent-products-directed-graphs.lagda.md +++ b/src/graph-theory/dependent-products-directed-graphs.lagda.md @@ -32,7 +32,7 @@ Given a [dependent directed graph](graph-theory.dependent-directed-graphs.md) `Π A B` is the directed graph that satisfies the universal property ```text - hom X (Π A B) ≃ section (X × A) B. + hom X (Π A B) ≃ section (X × A) (pr2* B). ``` Concretely, the directed graph `Π A B` has diff --git a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md index 3c8b9e8bc3..8ff497e2b5 100644 --- a/src/graph-theory/dependent-products-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-products-reflexive-graphs.lagda.md @@ -52,7 +52,7 @@ Given a [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `Π A B` is the reflexive graph that satisfies the universal property ```text - hom X (Π A B) ≃ section (X × A) B. + hom X (Π A B) ≃ section (X × A) (pr2* B). ``` Concretely, the reflexive graph `Π A B` has From f070148becd8ceef07afc596a4b0158547cce43e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 15:42:27 -0500 Subject: [PATCH 47/87] -> lax --- src/structured-types.lagda.md | 16 +- .../colax-reflexive-globular-maps.lagda.md | 213 ++++++++++++++ .../colax-transitive-globular-maps.lagda.md | 233 +++++++++++++++ .../colaxly-reflexive-globular-maps.lagda.md | 214 -------------- .../colaxly-transitive-globular-maps.lagda.md | 233 --------------- ...ge-colax-reflexive-globular-maps.lagda.md} | 164 +++++------ ...e-colax-transitive-globular-maps.lagda.md} | 193 ++++++------- ...-colaxly-transitive-globular-maps.lagda.md | 267 ------------------ ...arge-lax-reflexive-globular-maps.lagda.md} | 164 +++++------ ...arge-lax-transitive-globular-maps.lagda.md | 265 +++++++++++++++++ .../large-reflexive-globular-maps.lagda.md | 4 +- .../lax-reflexive-globular-maps.lagda.md | 212 ++++++++++++++ .../lax-transitive-globular-maps.lagda.md | 231 +++++++++++++++ .../laxly-reflexive-globular-maps.lagda.md | 212 -------------- .../laxly-transitive-globular-maps.lagda.md | 232 --------------- .../reflexive-globular-maps.lagda.md | 4 +- .../reflexive-globular-types.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 56 ++-- ...oherent-wild-higher-precategories.lagda.md | 65 +++-- 19 files changed, 1489 insertions(+), 1493 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/colaxly-reflexive-globular-maps.lagda.md delete mode 100644 src/structured-types/colaxly-transitive-globular-maps.lagda.md rename src/structured-types/{large-laxly-reflexive-globular-maps.lagda.md => large-colax-reflexive-globular-maps.lagda.md} (54%) rename src/structured-types/{large-laxly-transitive-globular-maps.lagda.md => large-colax-transitive-globular-maps.lagda.md} (55%) delete mode 100644 src/structured-types/large-colaxly-transitive-globular-maps.lagda.md rename src/structured-types/{large-colaxly-reflexive-globular-maps.lagda.md => large-lax-reflexive-globular-maps.lagda.md} (51%) create mode 100644 src/structured-types/large-lax-transitive-globular-maps.lagda.md create mode 100644 src/structured-types/lax-reflexive-globular-maps.lagda.md create mode 100644 src/structured-types/lax-transitive-globular-maps.lagda.md delete mode 100644 src/structured-types/laxly-reflexive-globular-maps.lagda.md delete mode 100644 src/structured-types/laxly-transitive-globular-maps.lagda.md diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 7deab615f3..8dc8c7313e 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -13,8 +13,8 @@ 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 -open import structured-types.colaxly-reflexive-globular-maps public -open import structured-types.colaxly-transitive-globular-maps 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 @@ -53,19 +53,19 @@ 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-colaxly-reflexive-globular-maps public -open import structured-types.large-colaxly-transitive-globular-maps 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-laxly-reflexive-globular-maps public -open import structured-types.large-laxly-transitive-globular-maps 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.laxly-reflexive-globular-maps public -open import structured-types.laxly-transitive-globular-maps 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.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public 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..d0f64e0987 --- /dev/null +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -0,0 +1,213 @@ +# 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=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 +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. + +### 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 colaxly 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 + +open colax-reflexive-globular-map public +``` + +### 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 +globular-map-colax-reflexive-globular-map + ( id-colax-reflexive-globular-map G) = + map-id-colax-reflexive-globular-map G +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 new file mode 100644 index 0000000000..c80246b7c0 --- /dev/null +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -0,0 +1,233 @@ +# 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=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` +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 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 colaxly 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 + + 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 + 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 + +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/colaxly-reflexive-globular-maps.lagda.md b/src/structured-types/colaxly-reflexive-globular-maps.lagda.md deleted file mode 100644 index ce8b5c5425..0000000000 --- a/src/structured-types/colaxly-reflexive-globular-maps.lagda.md +++ /dev/null @@ -1,214 +0,0 @@ -# Colaxly reflexive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.colaxly-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 "colaxly reflexive globular map" Agda=colaxly-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 -colaxly reflexive. - -### Lack of composition for colaxly reflexive globular maps - -Note that the colaxly 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. - -### Colaxly 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 colaxly reflexive globular maps. - -### Lax versus colax - -The notion of -[laxly reflexive globular map](structured-types.laxly-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 colaxly preserving reflexivity - -```agda -record - is-colaxly-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-colaxly-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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - is-colaxly-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-colaxly-reflexive-globular-map public -``` - -### Colaxly reflexive globular maps - -```agda -record - colaxly-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-colaxly-reflexive-globular-map : - globular-map-Reflexive-Globular-Type G H - - 0-cell-colaxly-reflexive-globular-map : - 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H - 0-cell-colaxly-reflexive-globular-map = - 0-cell-globular-map globular-map-colaxly-reflexive-globular-map - - 1-cell-colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-colaxly-reflexive-globular-map y) - 1-cell-colaxly-reflexive-globular-map = - 1-cell-globular-map globular-map-colaxly-reflexive-globular-map - - 1-cell-globular-map-colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-colaxly-reflexive-globular-map y)) - 1-cell-globular-map-colaxly-reflexive-globular-map = - 1-cell-globular-map-globular-map globular-map-colaxly-reflexive-globular-map - - field - is-colaxly-reflexive-colaxly-reflexive-globular-map : - is-colaxly-reflexive-globular-map G H - globular-map-colaxly-reflexive-globular-map - - preserves-refl-1-cell-colaxly-reflexive-globular-map : - ( x : 0-cell-Reflexive-Globular-Type G) → - 2-cell-Reflexive-Globular-Type H - ( 1-cell-colaxly-reflexive-globular-map - ( refl-1-cell-Reflexive-Globular-Type G {x})) - ( refl-1-cell-Reflexive-Globular-Type H) - preserves-refl-1-cell-colaxly-reflexive-globular-map = - preserves-refl-1-cell-is-colaxly-reflexive-globular-map - is-colaxly-reflexive-colaxly-reflexive-globular-map - - is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map : - { x y : 0-cell-Reflexive-Globular-Type G} → - is-colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-colaxly-reflexive-globular-map y)) - ( 1-cell-globular-map-colaxly-reflexive-globular-map) - is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map = - is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map - is-colaxly-reflexive-colaxly-reflexive-globular-map - - 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-colaxly-reflexive-globular-map y)) - globular-map-colaxly-reflexive-globular-map - 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map = - 1-cell-globular-map-colaxly-reflexive-globular-map - is-colaxly-reflexive-colaxly-reflexive-globular-map - 1-cell-colaxly-reflexive-globular-map-colaxly-reflexive-globular-map = - is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-globular-map - -open colaxly-reflexive-globular-map public -``` - -### The identity colaxly reflexive globular map - -```agda -map-id-colaxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - globular-map-Reflexive-Globular-Type G G -map-id-colaxly-reflexive-globular-map G = id-globular-map _ - -is-colaxly-reflexive-id-colaxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - is-colaxly-reflexive-globular-map G G - ( map-id-colaxly-reflexive-globular-map G) -preserves-refl-1-cell-is-colaxly-reflexive-globular-map - ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) - x = - refl-2-cell-Reflexive-Globular-Type G -is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map - ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) = - is-colaxly-reflexive-id-colaxly-reflexive-globular-map - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) - -id-colaxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - colaxly-reflexive-globular-map G G -globular-map-colaxly-reflexive-globular-map - ( id-colaxly-reflexive-globular-map G) = - map-id-colaxly-reflexive-globular-map G -is-colaxly-reflexive-colaxly-reflexive-globular-map - ( id-colaxly-reflexive-globular-map G) = - ( is-colaxly-reflexive-id-colaxly-reflexive-globular-map G) -``` - -## See also - -- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/colaxly-transitive-globular-maps.lagda.md b/src/structured-types/colaxly-transitive-globular-maps.lagda.md deleted file mode 100644 index ff9e8339b8..0000000000 --- a/src/structured-types/colaxly-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,233 +0,0 @@ -# Colaxly transitive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.colaxly-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 "colaxly transitive globular map" Agda=colaxly-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 colaxly transitive. - -### Lack of identity colaxly transitive globular maps - -Note that the colaxly 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 colaxly preserving transitivity - -```agda -record - is-colaxly-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-colaxly-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-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map : - {x y : 0-cell-Transitive-Globular-Type G} → - is-colaxly-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-colaxly-transitive-globular-map public -``` - -### Colaxly transitive globular maps - -```agda -record - colaxly-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-colaxly-transitive-globular-map : - globular-map-Transitive-Globular-Type G H - - 0-cell-colaxly-transitive-globular-map : - 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H - 0-cell-colaxly-transitive-globular-map = - 0-cell-globular-map globular-map-colaxly-transitive-globular-map - - 1-cell-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-colaxly-transitive-globular-map y) - 1-cell-colaxly-transitive-globular-map = - 1-cell-globular-map globular-map-colaxly-transitive-globular-map - - 1-cell-globular-map-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-colaxly-transitive-globular-map y)) - 1-cell-globular-map-colaxly-transitive-globular-map = - 1-cell-globular-map-globular-map - globular-map-colaxly-transitive-globular-map - - 2-cell-colaxly-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-colaxly-transitive-globular-map f) - ( 1-cell-colaxly-transitive-globular-map g) - 2-cell-colaxly-transitive-globular-map = - 2-cell-globular-map globular-map-colaxly-transitive-globular-map - - 2-cell-globular-map-colaxly-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-colaxly-transitive-globular-map f) - ( 1-cell-colaxly-transitive-globular-map g)) - 2-cell-globular-map-colaxly-transitive-globular-map = - 2-cell-globular-map-globular-map - ( globular-map-colaxly-transitive-globular-map) - ( _) - ( _) - - field - is-colaxly-transitive-colaxly-transitive-globular-map : - is-colaxly-transitive-globular-map G H - globular-map-colaxly-transitive-globular-map - - preserves-comp-1-cell-colaxly-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-colaxly-transitive-globular-map - ( comp-1-cell-Transitive-Globular-Type G q p)) - ( comp-1-cell-Transitive-Globular-Type H - ( 1-cell-colaxly-transitive-globular-map q) - ( 1-cell-colaxly-transitive-globular-map p)) - preserves-comp-1-cell-colaxly-transitive-globular-map = - preserves-comp-1-cell-is-colaxly-transitive-globular-map - is-colaxly-transitive-colaxly-transitive-globular-map - - is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map : - { x y : 0-cell-Transitive-Globular-Type G} → - is-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-colaxly-transitive-globular-map y)) - ( 1-cell-globular-map-colaxly-transitive-globular-map) - is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map = - is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map - is-colaxly-transitive-colaxly-transitive-globular-map - - 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map : - {x y : 0-cell-Transitive-Globular-Type G} → - colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-colaxly-transitive-globular-map y)) - globular-map-colaxly-transitive-globular-map - 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map = - 1-cell-globular-map-colaxly-transitive-globular-map - is-colaxly-transitive-colaxly-transitive-globular-map - 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map = - is-colaxly-transitive-1-cell-globular-map-colaxly-transitive-globular-map - -open colaxly-transitive-globular-map public -``` - -### Composition of colaxly transitive maps - -```agda -map-comp-colaxly-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) → - colaxly-transitive-globular-map H K → colaxly-transitive-globular-map G H → - globular-map-Transitive-Globular-Type G K -map-comp-colaxly-transitive-globular-map G H K g f = - comp-globular-map - ( globular-map-colaxly-transitive-globular-map g) - ( globular-map-colaxly-transitive-globular-map f) - -is-colaxly-transitive-comp-colaxly-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 : colaxly-transitive-globular-map H K) - (f : colaxly-transitive-globular-map G H) → - is-colaxly-transitive-globular-map G K - ( map-comp-colaxly-transitive-globular-map G H K g f) -preserves-comp-1-cell-is-colaxly-transitive-globular-map - ( is-colaxly-transitive-comp-colaxly-transitive-globular-map G H K g f) q p = - comp-2-cell-Transitive-Globular-Type K - ( preserves-comp-1-cell-colaxly-transitive-globular-map g _ _) - ( 2-cell-colaxly-transitive-globular-map g - ( preserves-comp-1-cell-colaxly-transitive-globular-map f q p)) -is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map - ( is-colaxly-transitive-comp-colaxly-transitive-globular-map G H K g f) = - is-colaxly-transitive-comp-colaxly-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-colaxly-transitive-globular-map-colaxly-transitive-globular-map g) - ( 1-cell-colaxly-transitive-globular-map-colaxly-transitive-globular-map f) -``` diff --git a/src/structured-types/large-laxly-reflexive-globular-maps.lagda.md b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md similarity index 54% rename from src/structured-types/large-laxly-reflexive-globular-maps.lagda.md rename to src/structured-types/large-colax-reflexive-globular-maps.lagda.md index 6dbca75808..e039e8446f 100644 --- a/src/structured-types/large-laxly-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large laxly reflexive globular maps +# Large colax reflexive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-laxly-reflexive-globular-maps where +module structured-types.large-colax-reflexive-globular-maps where ```
Imports @@ -12,9 +12,9 @@ module structured-types.large-laxly-reflexive-globular-maps where 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.laxly-reflexive-globular-maps open import structured-types.reflexive-globular-types ``` @@ -23,24 +23,24 @@ open import structured-types.reflexive-globular-types ## Idea A -{{#concept "large laxly reflexive globular map" Agda=large-laxly-reflexive-globular-map}} +{{#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₂ (Hᵣ (f₀ x)) (f₁ (Gᵣ x)) + (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 -[laxly reflexive](structured-types.laxly-reflexive-globular-maps.md). +[colax reflexive](structured-types.colax-reflexive-globular-maps.md). -### Lack of composition for laxly reflexive globular maps +### Lack of composition for colax reflexive globular maps -Note that the large laxly reflexive globular maps lack composition. For the +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 @@ -51,7 +51,7 @@ instances of the compositions. ### Lax versus colax The notion of -[large colaxly reflexive globular map](structured-types.large-laxly-reflexive-globular-maps.md) +[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 @@ -60,11 +60,11 @@ the morphism. ## Definitions -### The predicate of laxly preserving reflexivity +### The predicate of colaxly preserving reflexivity ```agda record - is-laxly-reflexive-large-globular-map + 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) @@ -73,159 +73,159 @@ record coinductive field - preserves-refl-1-cell-is-laxly-reflexive-large-globular-map : + 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 - ( refl-1-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-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-large-globular-map : + 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-laxly-reflexive-globular-map + 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-laxly-reflexive-large-globular-map public +open is-colax-reflexive-large-globular-map public ``` -### laxly reflexive globular maps +### Colax reflexive globular maps ```agda record - large-laxly-reflexive-globular-map + 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-laxly-reflexive-globular-map : + large-globular-map-large-colax-reflexive-globular-map : large-globular-map-Large-Reflexive-Globular-Type γ G H - 0-cell-large-laxly-reflexive-globular-map : + 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-laxly-reflexive-globular-map = + 0-cell-large-colax-reflexive-globular-map = 0-cell-large-globular-map - large-globular-map-large-laxly-reflexive-globular-map + large-globular-map-large-colax-reflexive-globular-map - 1-cell-large-laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-large-laxly-reflexive-globular-map y) - 1-cell-large-laxly-reflexive-globular-map = + ( 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-laxly-reflexive-globular-map + large-globular-map-large-colax-reflexive-globular-map - 1-cell-globular-map-large-laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-large-laxly-reflexive-globular-map y)) - 1-cell-globular-map-large-laxly-reflexive-globular-map = + ( 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-laxly-reflexive-globular-map + large-globular-map-large-colax-reflexive-globular-map field - is-laxly-reflexive-large-laxly-reflexive-globular-map : - is-laxly-reflexive-large-globular-map G H - large-globular-map-large-laxly-reflexive-globular-map + 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-laxly-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 - ( refl-1-cell-Large-Reflexive-Globular-Type H) - ( 1-cell-large-laxly-reflexive-globular-map + ( 1-cell-large-colax-reflexive-globular-map ( refl-1-cell-Large-Reflexive-Globular-Type G {x = x})) - preserves-refl-1-cell-large-laxly-reflexive-globular-map = - preserves-refl-1-cell-is-laxly-reflexive-large-globular-map - is-laxly-reflexive-large-laxly-reflexive-globular-map + ( 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-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-large-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-laxly-reflexive-globular-map + 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-laxly-reflexive-globular-map x) - ( 0-cell-large-laxly-reflexive-globular-map y)) - ( 1-cell-globular-map-large-laxly-reflexive-globular-map) - is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-large-globular-map = - is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-large-globular-map - is-laxly-reflexive-large-laxly-reflexive-globular-map - - 1-cell-laxly-reflexive-globular-map-large-laxly-reflexive-globular-map : + ( 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} → - laxly-reflexive-globular-map + 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-laxly-reflexive-globular-map x) - ( 0-cell-large-laxly-reflexive-globular-map y)) - globular-map-laxly-reflexive-globular-map - 1-cell-laxly-reflexive-globular-map-large-laxly-reflexive-globular-map = - 1-cell-globular-map-large-laxly-reflexive-globular-map - is-laxly-reflexive-laxly-reflexive-globular-map - 1-cell-laxly-reflexive-globular-map-large-laxly-reflexive-globular-map = - is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-large-globular-map - -open large-laxly-reflexive-globular-map public + ( 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 laxly reflexive globular map +### The identity large colax reflexive globular map ```agda -map-id-large-laxly-reflexive-globular-map : +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-laxly-reflexive-globular-map G = id-large-globular-map _ +map-id-large-colax-reflexive-globular-map G = id-large-globular-map _ -is-laxly-reflexive-id-large-laxly-reflexive-globular-map : +is-colax-reflexive-id-large-colax-reflexive-globular-map : {α : Level → Level} {β : Level → Level → Level} (G : Large-Reflexive-Globular-Type α β) → - is-laxly-reflexive-large-globular-map G G - ( map-id-large-laxly-reflexive-globular-map G) -preserves-refl-1-cell-is-laxly-reflexive-large-globular-map - ( is-laxly-reflexive-id-large-laxly-reflexive-globular-map G) + 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-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-large-globular-map - ( is-laxly-reflexive-id-large-laxly-reflexive-globular-map G) = - is-laxly-reflexive-id-laxly-reflexive-globular-map +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-laxly-reflexive-globular-map : +id-large-colax-reflexive-globular-map : {α : Level → Level} {β : Level → Level → Level} (G : Large-Reflexive-Globular-Type α β) → - large-laxly-reflexive-globular-map id G G -large-globular-map-large-laxly-reflexive-globular-map - ( id-large-laxly-reflexive-globular-map G) = - map-id-large-laxly-reflexive-globular-map G -is-laxly-reflexive-large-laxly-reflexive-globular-map - ( id-large-laxly-reflexive-globular-map G) = - ( is-laxly-reflexive-id-large-laxly-reflexive-globular-map G) + 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 -- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) +- [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-laxly-transitive-globular-maps.lagda.md b/src/structured-types/large-colax-transitive-globular-maps.lagda.md similarity index 55% rename from src/structured-types/large-laxly-transitive-globular-maps.lagda.md rename to src/structured-types/large-colax-transitive-globular-maps.lagda.md index 8d3e21d565..0032b5fecb 100644 --- a/src/structured-types/large-laxly-transitive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-transitive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large laxly transitive globular maps +# Large colax transitive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-laxly-transitive-globular-maps where +module structured-types.large-colax-transitive-globular-maps where ```
Imports @@ -12,9 +12,9 @@ module structured-types.large-laxly-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.laxly-transitive-globular-maps open import structured-types.transitive-globular-types ``` @@ -23,23 +23,23 @@ open import structured-types.transitive-globular-types ## Idea A -{{#concept "large laxly transitive globular map" Agda=large-laxly-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) `f : G → H` equipped with a family of 2-cells ```text - H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G p)) + 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 laxly transitive. +`f' : G' x y → H' (f₀ x) (f₀ y)` is again colax transitive. -### Lack of identity large laxly transitive globular maps +### Lack of identity large colax transitive globular maps -Note that the large laxly transitive globular maps lack an identity morphism. +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 @@ -49,11 +49,11 @@ such instances of the reflexivity cells. ## Definitions -### The predicate of laxly preserving transitivity +### The predicate of colaxly preserving transitivity ```agda record - is-laxly-transitive-large-globular-map + 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) @@ -62,7 +62,7 @@ record coinductive field - preserves-comp-1-cell-is-laxly-transitive-large-globular-map : + 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} @@ -70,86 +70,86 @@ record (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)) - ( 1-cell-large-globular-map f - ( comp-1-cell-Large-Transitive-Globular-Type G q p)) field - is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-large-globular-map : + 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-laxly-transitive-globular-map + 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-laxly-transitive-large-globular-map public +open is-colax-transitive-large-globular-map public ``` -### laxly transitive globular maps +### Colax transitive globular maps ```agda record - large-laxly-transitive-globular-map + 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-laxly-transitive-globular-map : + large-globular-map-large-colax-transitive-globular-map : large-globular-map-Large-Transitive-Globular-Type γ G H - 0-cell-large-laxly-transitive-globular-map : + 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-laxly-transitive-globular-map = + 0-cell-large-colax-transitive-globular-map = 0-cell-large-globular-map - large-globular-map-large-laxly-transitive-globular-map + large-globular-map-large-colax-transitive-globular-map - 1-cell-large-laxly-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-laxly-transitive-globular-map x) - ( 0-cell-large-laxly-transitive-globular-map y) - 1-cell-large-laxly-transitive-globular-map = + ( 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-laxly-transitive-globular-map + large-globular-map-large-colax-transitive-globular-map - 1-cell-globular-map-large-laxly-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-laxly-transitive-globular-map x) - ( 0-cell-large-laxly-transitive-globular-map y)) - 1-cell-globular-map-large-laxly-transitive-globular-map = + ( 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-laxly-transitive-globular-map + large-globular-map-large-colax-transitive-globular-map - 2-cell-large-laxly-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-laxly-transitive-globular-map f) - ( 1-cell-large-laxly-transitive-globular-map g) - 2-cell-large-laxly-transitive-globular-map = + ( 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-laxly-transitive-globular-map + large-globular-map-large-colax-transitive-globular-map - 2-cell-globular-map-large-laxly-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} → @@ -157,20 +157,20 @@ record 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-laxly-transitive-globular-map f) - ( 1-cell-large-laxly-transitive-globular-map g)) - 2-cell-globular-map-large-laxly-transitive-globular-map = + ( 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-laxly-transitive-globular-map) + ( large-globular-map-large-colax-transitive-globular-map) ( _) ( _) field - is-laxly-transitive-large-laxly-transitive-globular-map : - is-laxly-transitive-large-globular-map G H - large-globular-map-large-laxly-transitive-globular-map + 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-laxly-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} @@ -178,89 +178,90 @@ record (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-laxly-transitive-globular-map q) - ( 1-cell-large-laxly-transitive-globular-map p)) - ( 1-cell-large-laxly-transitive-globular-map + ( 1-cell-large-colax-transitive-globular-map ( comp-1-cell-Large-Transitive-Globular-Type G q p)) - preserves-comp-1-cell-large-laxly-transitive-globular-map = - preserves-comp-1-cell-is-laxly-transitive-large-globular-map - is-laxly-transitive-large-laxly-transitive-globular-map + ( 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-laxly-transitive-1-cell-globular-map-large-laxly-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-laxly-transitive-globular-map + 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-laxly-transitive-globular-map x) - ( 0-cell-large-laxly-transitive-globular-map y)) - ( 1-cell-globular-map-large-laxly-transitive-globular-map) - is-laxly-transitive-1-cell-globular-map-large-laxly-transitive-globular-map = - is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-large-globular-map - is-laxly-transitive-large-laxly-transitive-globular-map - - 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map : + ( 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} → - laxly-transitive-globular-map + 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-laxly-transitive-globular-map x) - ( 0-cell-large-laxly-transitive-globular-map y)) - globular-map-laxly-transitive-globular-map - 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map = - 1-cell-globular-map-large-laxly-transitive-globular-map - is-laxly-transitive-laxly-transitive-globular-map - 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map = - is-laxly-transitive-1-cell-globular-map-large-laxly-transitive-globular-map - -open large-laxly-transitive-globular-map public + ( 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 laxly transitive maps +### Composition of colax transitive maps ```agda -map-comp-large-laxly-transitive-globular-map : +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-laxly-transitive-globular-map γ2 H K) - (f : large-laxly-transitive-globular-map γ1 G H) → + (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-laxly-transitive-globular-map G H K g f = +map-comp-large-colax-transitive-globular-map G H K g f = comp-large-globular-map - ( large-globular-map-large-laxly-transitive-globular-map g) - ( large-globular-map-large-laxly-transitive-globular-map f) + ( large-globular-map-large-colax-transitive-globular-map g) + ( large-globular-map-large-colax-transitive-globular-map f) -is-laxly-transitive-comp-large-laxly-transitive-globular-map : +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-laxly-transitive-globular-map γ2 H K) - (f : large-laxly-transitive-globular-map γ1 G H) → - is-laxly-transitive-large-globular-map G K - ( map-comp-large-laxly-transitive-globular-map G H K g f) -preserves-comp-1-cell-is-laxly-transitive-large-globular-map - ( is-laxly-transitive-comp-large-laxly-transitive-globular-map G H K g f) + (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 - ( 2-cell-large-laxly-transitive-globular-map g - ( preserves-comp-1-cell-large-laxly-transitive-globular-map f q p)) - ( preserves-comp-1-cell-large-laxly-transitive-globular-map g _ _) -is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-large-globular-map - ( is-laxly-transitive-comp-large-laxly-transitive-globular-map G H K g f) = - is-laxly-transitive-comp-laxly-transitive-globular-map + ( 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-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map + ( 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map g) - ( 1-cell-large-laxly-transitive-large-globular-map-large-laxly-transitive-globular-map + ( 1-cell-large-colax-transitive-large-globular-map-large-colax-transitive-globular-map f) ``` diff --git a/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md b/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md deleted file mode 100644 index 80511ec652..0000000000 --- a/src/structured-types/large-colaxly-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,267 +0,0 @@ -# Large colaxly transitive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.large-colaxly-transitive-globular-maps where -``` - -
Imports - -```agda -open import foundation.function-types -open import foundation.universe-levels - -open import structured-types.colaxly-transitive-globular-maps -open import structured-types.large-globular-maps -open import structured-types.large-transitive-globular-types -open import structured-types.transitive-globular-types -``` - -
- -## Idea - -A -{{#concept "large colaxly transitive globular map" Agda=large-colaxly-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 colaxly transitive. - -### Lack of identity large colaxly transitive globular maps - -Note that the large colaxly 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 colaxly preserving transitivity - -```agda -record - is-colaxly-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-colaxly-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-colaxly-transitive-1-cell-globular-map-is-colaxly-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-colaxly-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-colaxly-transitive-large-globular-map public -``` - -### Colaxly transitive globular maps - -```agda -record - large-colaxly-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-colaxly-transitive-globular-map : - large-globular-map-Large-Transitive-Globular-Type γ G H - - 0-cell-large-colaxly-transitive-globular-map : - {l1 : Level} → - 0-cell-Large-Transitive-Globular-Type G l1 → - 0-cell-Large-Transitive-Globular-Type H (γ l1) - 0-cell-large-colaxly-transitive-globular-map = - 0-cell-large-globular-map - large-globular-map-large-colaxly-transitive-globular-map - - 1-cell-large-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-large-colaxly-transitive-globular-map y) - 1-cell-large-colaxly-transitive-globular-map = - 1-cell-large-globular-map - large-globular-map-large-colaxly-transitive-globular-map - - 1-cell-globular-map-large-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-large-colaxly-transitive-globular-map y)) - 1-cell-globular-map-large-colaxly-transitive-globular-map = - 1-cell-globular-map-large-globular-map - large-globular-map-large-colaxly-transitive-globular-map - - 2-cell-large-colaxly-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-colaxly-transitive-globular-map f) - ( 1-cell-large-colaxly-transitive-globular-map g) - 2-cell-large-colaxly-transitive-globular-map = - 2-cell-large-globular-map - large-globular-map-large-colaxly-transitive-globular-map - - 2-cell-globular-map-large-colaxly-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-colaxly-transitive-globular-map f) - ( 1-cell-large-colaxly-transitive-globular-map g)) - 2-cell-globular-map-large-colaxly-transitive-globular-map = - 2-cell-globular-map-large-globular-map - ( large-globular-map-large-colaxly-transitive-globular-map) - ( _) - ( _) - - field - is-colaxly-transitive-large-colaxly-transitive-globular-map : - is-colaxly-transitive-large-globular-map G H - large-globular-map-large-colaxly-transitive-globular-map - - preserves-comp-1-cell-large-colaxly-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-colaxly-transitive-globular-map - ( comp-1-cell-Large-Transitive-Globular-Type G q p)) - ( comp-1-cell-Large-Transitive-Globular-Type H - ( 1-cell-large-colaxly-transitive-globular-map q) - ( 1-cell-large-colaxly-transitive-globular-map p)) - preserves-comp-1-cell-large-colaxly-transitive-globular-map = - preserves-comp-1-cell-is-colaxly-transitive-large-globular-map - is-colaxly-transitive-large-colaxly-transitive-globular-map - - is-colaxly-transitive-1-cell-globular-map-large-colaxly-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-colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-large-colaxly-transitive-globular-map y)) - ( 1-cell-globular-map-large-colaxly-transitive-globular-map) - is-colaxly-transitive-1-cell-globular-map-large-colaxly-transitive-globular-map = - is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map - is-colaxly-transitive-large-colaxly-transitive-globular-map - - 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map : - {l1 l2 : Level} - {x : 0-cell-Large-Transitive-Globular-Type G l1} - {y : 0-cell-Large-Transitive-Globular-Type G l2} → - colaxly-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-colaxly-transitive-globular-map x) - ( 0-cell-large-colaxly-transitive-globular-map y)) - globular-map-colaxly-transitive-globular-map - 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map = - 1-cell-globular-map-large-colaxly-transitive-globular-map - is-colaxly-transitive-colaxly-transitive-globular-map - 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map = - is-colaxly-transitive-1-cell-globular-map-large-colaxly-transitive-globular-map - -open large-colaxly-transitive-globular-map public -``` - -### Composition of colaxly transitive maps - -```agda -map-comp-large-colaxly-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-colaxly-transitive-globular-map γ2 H K) - (f : large-colaxly-transitive-globular-map γ1 G H) → - large-globular-map-Large-Transitive-Globular-Type (γ2 ∘ γ1) G K -map-comp-large-colaxly-transitive-globular-map G H K g f = - comp-large-globular-map - ( large-globular-map-large-colaxly-transitive-globular-map g) - ( large-globular-map-large-colaxly-transitive-globular-map f) - -is-colaxly-transitive-comp-large-colaxly-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-colaxly-transitive-globular-map γ2 H K) - (f : large-colaxly-transitive-globular-map γ1 G H) → - is-colaxly-transitive-large-globular-map G K - ( map-comp-large-colaxly-transitive-globular-map G H K g f) -preserves-comp-1-cell-is-colaxly-transitive-large-globular-map - ( is-colaxly-transitive-comp-large-colaxly-transitive-globular-map G H K g f) - ( q) - ( p) = - comp-2-cell-Large-Transitive-Globular-Type K - ( preserves-comp-1-cell-large-colaxly-transitive-globular-map g _ _) - ( 2-cell-large-colaxly-transitive-globular-map g - ( preserves-comp-1-cell-large-colaxly-transitive-globular-map f q p)) -is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map - ( is-colaxly-transitive-comp-large-colaxly-transitive-globular-map - G H K g f) = - is-colaxly-transitive-comp-colaxly-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-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map - g) - ( 1-cell-large-colaxly-transitive-large-globular-map-large-colaxly-transitive-globular-map - f) -``` diff --git a/src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md similarity index 51% rename from src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md rename to src/structured-types/large-lax-reflexive-globular-maps.lagda.md index 97e8b1ef7e..af99b5ad5e 100644 --- a/src/structured-types/large-colaxly-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md @@ -1,9 +1,9 @@ -# Large colaxly reflexive globular maps +# Large lax reflexive globular maps ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-colaxly-reflexive-globular-maps where +module structured-types.large-lax-reflexive-globular-maps where ```
Imports @@ -12,9 +12,9 @@ module structured-types.large-colaxly-reflexive-globular-maps where open import foundation.function-types open import foundation.universe-levels -open import structured-types.colaxly-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 ``` @@ -23,24 +23,24 @@ open import structured-types.reflexive-globular-types ## Idea A -{{#concept "large colaxly reflexive globular map" Agda=large-colaxly-reflexive-globular-map}} +{{#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)) + (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](structured-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is -[colaxly reflexive](structured-types.colaxly-reflexive-globular-maps.md). +[lax reflexive](structured-types.lax-reflexive-globular-maps.md). -### Lack of composition for colaxly reflexive globular maps +### Lack of composition for lax reflexive globular maps -Note that the large colaxly reflexive globular maps lack composition. For the +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 @@ -51,7 +51,7 @@ instances of the compositions. ### Lax versus colax The notion of -[large laxly reflexive globular map](structured-types.large-laxly-reflexive-globular-maps.md) +[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 @@ -60,11 +60,11 @@ the morphism. ## Definitions -### The predicate of colaxly preserving reflexivity +### The predicate of laxly preserving reflexivity ```agda record - is-colaxly-reflexive-large-globular-map + 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) @@ -73,159 +73,159 @@ record coinductive field - preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map : + 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})) - ( refl-1-cell-Large-Reflexive-Globular-Type H) field - is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map : + 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-colaxly-reflexive-globular-map + 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-colaxly-reflexive-large-globular-map public +open is-lax-reflexive-large-globular-map public ``` -### Colaxly reflexive globular maps +### Lax reflexive globular maps ```agda record - large-colaxly-reflexive-globular-map + 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-colaxly-reflexive-globular-map : + large-globular-map-large-lax-reflexive-globular-map : large-globular-map-Large-Reflexive-Globular-Type γ G H - 0-cell-large-colaxly-reflexive-globular-map : + 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-colaxly-reflexive-globular-map = + 0-cell-large-lax-reflexive-globular-map = 0-cell-large-globular-map - large-globular-map-large-colaxly-reflexive-globular-map + large-globular-map-large-lax-reflexive-globular-map - 1-cell-large-colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-large-colaxly-reflexive-globular-map y) - 1-cell-large-colaxly-reflexive-globular-map = + ( 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-colaxly-reflexive-globular-map + large-globular-map-large-lax-reflexive-globular-map - 1-cell-globular-map-large-colaxly-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-colaxly-reflexive-globular-map x) - ( 0-cell-large-colaxly-reflexive-globular-map y)) - 1-cell-globular-map-large-colaxly-reflexive-globular-map = + ( 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-colaxly-reflexive-globular-map + large-globular-map-large-lax-reflexive-globular-map field - is-colaxly-reflexive-large-colaxly-reflexive-globular-map : - is-colaxly-reflexive-large-globular-map G H - large-globular-map-large-colaxly-reflexive-globular-map + 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-colaxly-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 - ( 1-cell-large-colaxly-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-colaxly-reflexive-globular-map = - preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map - is-colaxly-reflexive-large-colaxly-reflexive-globular-map + ( 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-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-large-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-colaxly-reflexive-globular-map + 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-colaxly-reflexive-globular-map x) - ( 0-cell-large-colaxly-reflexive-globular-map y)) - ( 1-cell-globular-map-large-colaxly-reflexive-globular-map) - is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-large-globular-map = - is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map - is-colaxly-reflexive-large-colaxly-reflexive-globular-map - - 1-cell-colaxly-reflexive-globular-map-large-colaxly-reflexive-globular-map : + ( 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} → - colaxly-reflexive-globular-map + 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-colaxly-reflexive-globular-map x) - ( 0-cell-large-colaxly-reflexive-globular-map y)) - globular-map-colaxly-reflexive-globular-map - 1-cell-colaxly-reflexive-globular-map-large-colaxly-reflexive-globular-map = - 1-cell-globular-map-large-colaxly-reflexive-globular-map - is-colaxly-reflexive-colaxly-reflexive-globular-map - 1-cell-colaxly-reflexive-globular-map-large-colaxly-reflexive-globular-map = - is-colaxly-reflexive-2-cell-globular-map-is-colaxly-reflexive-large-globular-map - -open large-colaxly-reflexive-globular-map public + ( 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 colaxly reflexive globular map +### The identity large lax reflexive globular map ```agda -map-id-large-colaxly-reflexive-globular-map : +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-colaxly-reflexive-globular-map G = id-large-globular-map _ +map-id-large-lax-reflexive-globular-map G = id-large-globular-map _ -is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map : +is-lax-reflexive-id-large-lax-reflexive-globular-map : {α : Level → Level} {β : Level → Level → Level} (G : Large-Reflexive-Globular-Type α β) → - is-colaxly-reflexive-large-globular-map G G - ( map-id-large-colaxly-reflexive-globular-map G) -preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map - ( is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map G) + 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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map - ( is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map G) = - is-colaxly-reflexive-id-colaxly-reflexive-globular-map +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-colaxly-reflexive-globular-map : +id-large-lax-reflexive-globular-map : {α : Level → Level} {β : Level → Level → Level} (G : Large-Reflexive-Globular-Type α β) → - large-colaxly-reflexive-globular-map id G G -large-globular-map-large-colaxly-reflexive-globular-map - ( id-large-colaxly-reflexive-globular-map G) = - map-id-large-colaxly-reflexive-globular-map G -is-colaxly-reflexive-large-colaxly-reflexive-globular-map - ( id-large-colaxly-reflexive-globular-map G) = - ( is-colaxly-reflexive-id-large-colaxly-reflexive-globular-map G) + 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 -- [Laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md) +- [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-transitive-globular-maps.lagda.md b/src/structured-types/large-lax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..1e9d827f13 --- /dev/null +++ b/src/structured-types/large-lax-transitive-globular-maps.lagda.md @@ -0,0 +1,265 @@ +# 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-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) +`f : G → H` equipped with a family of 2-cells + +```text + H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G 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 laxly 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-reflexive-globular-maps.lagda.md b/src/structured-types/large-reflexive-globular-maps.lagda.md index 12861de2e1..8df176bdc4 100644 --- a/src/structured-types/large-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-reflexive-globular-maps.lagda.md @@ -43,9 +43,9 @@ 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 colaxly reflexive globular maps](structured-types.large-colaxly-reflexive-globular-maps.md) +[large colax reflexive globular maps](structured-types.large-colax-reflexive-globular-maps.md) and -[large laxly reflexive globular maps](structured-types.large-laxly-reflexive-globular-maps.md). +[large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). ## Definitions 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..1e9f4aa2da --- /dev/null +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -0,0 +1,212 @@ +# 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=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 +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 laxly 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 + +open lax-reflexive-globular-map public +``` + +### 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 +globular-map-lax-reflexive-globular-map + ( id-lax-reflexive-globular-map G) = + map-id-lax-reflexive-globular-map G +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/lax-transitive-globular-maps.lagda.md b/src/structured-types/lax-transitive-globular-maps.lagda.md new file mode 100644 index 0000000000..483a8fbb9a --- /dev/null +++ b/src/structured-types/lax-transitive-globular-maps.lagda.md @@ -0,0 +1,231 @@ +# 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=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` +equipped with a family of 2-cells + +```text + H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G 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 laxly 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/laxly-reflexive-globular-maps.lagda.md b/src/structured-types/laxly-reflexive-globular-maps.lagda.md deleted file mode 100644 index 012f175498..0000000000 --- a/src/structured-types/laxly-reflexive-globular-maps.lagda.md +++ /dev/null @@ -1,212 +0,0 @@ -# laxly reflexive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.laxly-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 "laxly reflexive globular map" Agda=laxly-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 laxly reflexive globular maps - -Note that the laxly 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. - -### laxly 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 laxly reflexive globular maps. - -### Lax versus colax - -The notion of -[colaxly reflexive globular map](structured-types.colaxly-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 laxly preserving reflexivity - -```agda -record - is-laxly-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-laxly-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-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - is-laxly-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-laxly-reflexive-globular-map public -``` - -### laxly reflexive globular maps - -```agda -record - laxly-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-laxly-reflexive-globular-map : - globular-map-Reflexive-Globular-Type G H - - 0-cell-laxly-reflexive-globular-map : - 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H - 0-cell-laxly-reflexive-globular-map = - 0-cell-globular-map globular-map-laxly-reflexive-globular-map - - 1-cell-laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-laxly-reflexive-globular-map y) - 1-cell-laxly-reflexive-globular-map = - 1-cell-globular-map globular-map-laxly-reflexive-globular-map - - 1-cell-globular-map-laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-laxly-reflexive-globular-map y)) - 1-cell-globular-map-laxly-reflexive-globular-map = - 1-cell-globular-map-globular-map globular-map-laxly-reflexive-globular-map - - field - is-laxly-reflexive-laxly-reflexive-globular-map : - is-laxly-reflexive-globular-map G H - globular-map-laxly-reflexive-globular-map - - preserves-refl-1-cell-laxly-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-laxly-reflexive-globular-map - ( refl-1-cell-Reflexive-Globular-Type G {x})) - preserves-refl-1-cell-laxly-reflexive-globular-map = - preserves-refl-1-cell-is-laxly-reflexive-globular-map - is-laxly-reflexive-laxly-reflexive-globular-map - - is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - is-laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-laxly-reflexive-globular-map y)) - ( 1-cell-globular-map-laxly-reflexive-globular-map) - is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map = - is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map - is-laxly-reflexive-laxly-reflexive-globular-map - - 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map : - {x y : 0-cell-Reflexive-Globular-Type G} → - laxly-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-laxly-reflexive-globular-map x) - ( 0-cell-laxly-reflexive-globular-map y)) - globular-map-laxly-reflexive-globular-map - 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map = - 1-cell-globular-map-laxly-reflexive-globular-map - is-laxly-reflexive-laxly-reflexive-globular-map - 1-cell-laxly-reflexive-globular-map-laxly-reflexive-globular-map = - is-laxly-reflexive-2-cell-globular-map-is-laxly-reflexive-globular-map - -open laxly-reflexive-globular-map public -``` - -### The identity laxly reflexive globular map - -```agda -map-id-laxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - globular-map-Reflexive-Globular-Type G G -map-id-laxly-reflexive-globular-map G = id-globular-map _ - -is-laxly-reflexive-id-laxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - is-laxly-reflexive-globular-map G G (map-id-laxly-reflexive-globular-map G) -preserves-refl-1-cell-is-laxly-reflexive-globular-map - ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) - x = - refl-2-cell-Reflexive-Globular-Type G -is-laxly-reflexive-1-cell-globular-map-is-laxly-reflexive-globular-map - ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) = - is-laxly-reflexive-id-laxly-reflexive-globular-map - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) - -id-laxly-reflexive-globular-map : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → - laxly-reflexive-globular-map G G -globular-map-laxly-reflexive-globular-map - ( id-laxly-reflexive-globular-map G) = - map-id-laxly-reflexive-globular-map G -is-laxly-reflexive-laxly-reflexive-globular-map - ( id-laxly-reflexive-globular-map G) = - ( is-laxly-reflexive-id-laxly-reflexive-globular-map G) -``` - -## See also - -- [Colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) diff --git a/src/structured-types/laxly-transitive-globular-maps.lagda.md b/src/structured-types/laxly-transitive-globular-maps.lagda.md deleted file mode 100644 index a6014c426e..0000000000 --- a/src/structured-types/laxly-transitive-globular-maps.lagda.md +++ /dev/null @@ -1,232 +0,0 @@ -# laxly transitive globular maps - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.laxly-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 "laxly transitive globular map" Agda=laxly-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 ∘H f₁ p) (f₁ (q ∘G 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 laxly transitive. - -### Lack of identity laxly transitive globular maps - -Note that the laxly 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 laxly preserving transitivity - -```agda -record - is-laxly-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-laxly-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-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map : - {x y : 0-cell-Transitive-Globular-Type G} → - is-laxly-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-laxly-transitive-globular-map public -``` - -### laxly transitive globular maps - -```agda -record - laxly-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-laxly-transitive-globular-map : - globular-map-Transitive-Globular-Type G H - - 0-cell-laxly-transitive-globular-map : - 0-cell-Transitive-Globular-Type G → 0-cell-Transitive-Globular-Type H - 0-cell-laxly-transitive-globular-map = - 0-cell-globular-map globular-map-laxly-transitive-globular-map - - 1-cell-laxly-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-laxly-transitive-globular-map x) - ( 0-cell-laxly-transitive-globular-map y) - 1-cell-laxly-transitive-globular-map = - 1-cell-globular-map globular-map-laxly-transitive-globular-map - - 1-cell-globular-map-laxly-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-laxly-transitive-globular-map x) - ( 0-cell-laxly-transitive-globular-map y)) - 1-cell-globular-map-laxly-transitive-globular-map = - 1-cell-globular-map-globular-map globular-map-laxly-transitive-globular-map - - 2-cell-laxly-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-laxly-transitive-globular-map f) - ( 1-cell-laxly-transitive-globular-map g) - 2-cell-laxly-transitive-globular-map = - 2-cell-globular-map globular-map-laxly-transitive-globular-map - - 2-cell-globular-map-laxly-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-laxly-transitive-globular-map f) - ( 1-cell-laxly-transitive-globular-map g)) - 2-cell-globular-map-laxly-transitive-globular-map = - 2-cell-globular-map-globular-map - ( globular-map-laxly-transitive-globular-map) - ( _) - ( _) - - field - is-laxly-transitive-laxly-transitive-globular-map : - is-laxly-transitive-globular-map G H - globular-map-laxly-transitive-globular-map - - preserves-comp-1-cell-laxly-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-laxly-transitive-globular-map q) - ( 1-cell-laxly-transitive-globular-map p)) - ( 1-cell-laxly-transitive-globular-map - ( comp-1-cell-Transitive-Globular-Type G q p)) - preserves-comp-1-cell-laxly-transitive-globular-map = - preserves-comp-1-cell-is-laxly-transitive-globular-map - is-laxly-transitive-laxly-transitive-globular-map - - is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map : - { x y : 0-cell-Transitive-Globular-Type G} → - is-laxly-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-laxly-transitive-globular-map x) - ( 0-cell-laxly-transitive-globular-map y)) - ( 1-cell-globular-map-laxly-transitive-globular-map) - is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map = - is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map - is-laxly-transitive-laxly-transitive-globular-map - - 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map : - {x y : 0-cell-Transitive-Globular-Type G} → - laxly-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-laxly-transitive-globular-map x) - ( 0-cell-laxly-transitive-globular-map y)) - globular-map-laxly-transitive-globular-map - 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map = - 1-cell-globular-map-laxly-transitive-globular-map - is-laxly-transitive-laxly-transitive-globular-map - 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map = - is-laxly-transitive-1-cell-globular-map-laxly-transitive-globular-map - -open laxly-transitive-globular-map public -``` - -### Composition of laxly transitive maps - -```agda -map-comp-laxly-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) → - laxly-transitive-globular-map H K → laxly-transitive-globular-map G H → - globular-map-Transitive-Globular-Type G K -map-comp-laxly-transitive-globular-map G H K g f = - comp-globular-map - ( globular-map-laxly-transitive-globular-map g) - ( globular-map-laxly-transitive-globular-map f) - -is-laxly-transitive-comp-laxly-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 : laxly-transitive-globular-map H K) - (f : laxly-transitive-globular-map G H) → - is-laxly-transitive-globular-map G K - ( map-comp-laxly-transitive-globular-map G H K g f) -preserves-comp-1-cell-is-laxly-transitive-globular-map - ( is-laxly-transitive-comp-laxly-transitive-globular-map G H K g f) q p = - comp-2-cell-Transitive-Globular-Type K - ( 2-cell-laxly-transitive-globular-map g - ( preserves-comp-1-cell-laxly-transitive-globular-map f q p)) - ( preserves-comp-1-cell-laxly-transitive-globular-map g _ _) -is-laxly-transitive-1-cell-globular-map-is-laxly-transitive-globular-map - ( is-laxly-transitive-comp-laxly-transitive-globular-map G H K g f) = - is-laxly-transitive-comp-laxly-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-laxly-transitive-globular-map-laxly-transitive-globular-map g) - ( 1-cell-laxly-transitive-globular-map-laxly-transitive-globular-map f) -``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index 687c37cd95..d18bbd900a 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -37,9 +37,9 @@ 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 -[colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) +[colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) and -[laxly reflexive globular maps](structured-types.laxly-reflexive-globular-maps.md). +[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 e6ec534ba2..f1055e1c13 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -342,8 +342,8 @@ is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type ## See also -- [Colaxly reflexive globular maps](structured-types.colaxly-reflexive-globular-maps.md) -- [Laxly reflexive globular maps](structured-types.laxly-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-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 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 7eb7714e2a..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 @@ -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-colaxly-reflexive-globular-maps -open import structured-types.large-colaxly-transitive-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 wild-category-theory.colax-functors-noncoherent-wild-higher-precategories @@ -66,7 +66,7 @@ preserves-id-structure-map-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-colaxly-reflexive-large-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 @@ -84,7 +84,7 @@ preserves-comp-structure-map-Noncoherent-Large-Wild-Higher-Precategory : (ℬ : 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-colaxly-transitive-large-globular-map + is-colax-transitive-large-globular-map ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory 𝒜) ( large-transitive-globular-type-Noncoherent-Large-Wild-Higher-Precategory @@ -128,7 +128,7 @@ record ( 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-colaxly-reflexive-large-globular-map + 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 : @@ -142,7 +142,7 @@ record ℬ _ _) ( 1-cell-globular-map-large-globular-map F) preserves-id-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map + 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 : @@ -159,7 +159,7 @@ record ( 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-colaxly-transitive-large-globular-map + 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 : @@ -173,7 +173,7 @@ record ℬ _ _) ( 1-cell-globular-map-large-globular-map F) preserves-comp-structure-hom-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = - is-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map + 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 : @@ -278,17 +278,17 @@ record preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - colaxly-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - large-colaxly-reflexive-globular-map δ + 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-colaxly-reflexive-globular-map - colaxly-reflexive-map-colax-functor-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-colaxly-reflexive-large-colaxly-reflexive-globular-map - colaxly-reflexive-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 : @@ -329,17 +329,17 @@ record preserves-comp-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory - colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - large-colaxly-transitive-globular-map δ + 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-colaxly-transitive-globular-map - colaxly-transitive-map-colax-functor-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-colaxly-transitive-large-colaxly-transitive-globular-map - colaxly-transitive-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 : @@ -436,18 +436,18 @@ module _ 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-colaxly-reflexive-id-large-colaxly-reflexive-globular-map + 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-colaxly-transitive-large-globular-map + 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-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-large-globular-map + 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 @@ -497,7 +497,7 @@ 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 - preserves-refl-1-cell-is-colaxly-reflexive-large-globular-map + 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 𝒞 @@ -508,7 +508,7 @@ module _ ( preserves-id-hom-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ( F) ( _))) - is-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-large-globular-map + 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 @@ -526,16 +526,16 @@ module _ 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-colaxly-transitive-comp-large-colaxly-transitive-globular-map + 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 𝒞) - ( colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory G) - ( colaxly-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( colax-transitive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory F) is-colax-functor-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 ac4664a0aa..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 @@ -14,8 +14,8 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.colaxly-reflexive-globular-maps -open import structured-types.colaxly-transitive-globular-maps +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 @@ -34,9 +34,8 @@ A [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 -[colaxly reflexive](structured-types.colaxly-reflexive-globular-maps.md) and -[colaxly transitive](structured-types.colaxly-transitive-globular-maps.md). This +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 @@ -68,7 +67,7 @@ module _ preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory : UU (l1 ⊔ l2 ⊔ l4) preserves-id-structure-map-Noncoherent-Wild-Higher-Precategory = - is-colaxly-reflexive-globular-map + is-colax-reflexive-globular-map ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) ( reflexive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) ( F) @@ -87,7 +86,7 @@ module _ preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory : UU (l1 ⊔ l2 ⊔ l4) preserves-comp-structure-map-Noncoherent-Wild-Higher-Precategory = - is-colaxly-transitive-globular-map + is-colax-transitive-globular-map ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory 𝒜) ( transitive-globular-type-Noncoherent-Wild-Higher-Precategory ℬ) ( F) @@ -115,19 +114,19 @@ record ( 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-colaxly-reflexive-globular-map + 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-colaxly-reflexive-globular-map + 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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map + is-colax-reflexive-1-cell-globular-map-is-colax-reflexive-globular-map is-reflexive-is-colax-functor-Noncoherent-Wild-Higher-Precategory field @@ -145,19 +144,19 @@ record ( 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-colaxly-transitive-globular-map + 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-colaxly-transitive-globular-map + 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-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map + 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 : @@ -263,15 +262,15 @@ module _ preserves-id-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - colaxly-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : - colaxly-reflexive-globular-map + 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 ℬ) - colaxly-reflexive-globular-map.globular-map-colaxly-reflexive-globular-map - colaxly-reflexive-globular-map-colax-functor-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 - colaxly-reflexive-globular-map.is-colaxly-reflexive-colaxly-reflexive-globular-map - colaxly-reflexive-globular-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 ``` @@ -293,15 +292,15 @@ module _ preserves-comp-hom-is-colax-functor-Noncoherent-Wild-Higher-Precategory ( is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory) - colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory : - colaxly-transitive-globular-map + 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-colaxly-transitive-globular-map - colaxly-transitive-globular-map-colax-functor-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-colaxly-transitive-colaxly-transitive-globular-map - colaxly-transitive-globular-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 ``` @@ -341,19 +340,19 @@ preserves-id-structure-id-colax-functor-Noncoherent-Wild-Higher-Precategory : 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-colaxly-reflexive-id-colaxly-reflexive-globular-map + 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-colaxly-transitive-globular-map +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-colaxly-transitive-1-cell-globular-map-is-colaxly-transitive-globular-map +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 @@ -410,7 +409,7 @@ preserves-id-structure-comp-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-colaxly-reflexive-globular-map +preserves-refl-1-cell-is-colax-reflexive-globular-map ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ 𝒞 G F) x = @@ -418,7 +417,7 @@ preserves-refl-1-cell-is-colaxly-reflexive-globular-map ( 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-colaxly-reflexive-1-cell-globular-map-is-colaxly-reflexive-globular-map +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 @@ -446,13 +445,13 @@ module _ 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-colaxly-transitive-comp-colaxly-transitive-globular-map + 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 𝒞) - ( colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory + ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory G) - ( colaxly-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory + ( colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory F) is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory : From d72ea0bbd6692157b1343294c40b22f5f556c22c Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 5 Nov 2024 17:00:09 -0500 Subject: [PATCH 48/87] concept --- src/graph-theory/universal-directed-graph.lagda.md | 2 +- src/graph-theory/universal-reflexive-graph.lagda.md | 2 +- src/structured-types/universal-globular-type.lagda.md | 2 +- src/structured-types/universal-reflexive-globular-type.lagda.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/graph-theory/universal-directed-graph.lagda.md b/src/graph-theory/universal-directed-graph.lagda.md index e212b2a121..d7242623d2 100644 --- a/src/graph-theory/universal-directed-graph.lagda.md +++ b/src/graph-theory/universal-directed-graph.lagda.md @@ -21,7 +21,7 @@ open import graph-theory.morphisms-directed-graphs ## Idea -The {{#concpept "universal directed graph" Agda=universal-Directed-Graph}} `𝒢 l` +The {{#concept "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. diff --git a/src/graph-theory/universal-reflexive-graph.lagda.md b/src/graph-theory/universal-reflexive-graph.lagda.md index d39ac3c930..3b3fd8042f 100644 --- a/src/graph-theory/universal-reflexive-graph.lagda.md +++ b/src/graph-theory/universal-reflexive-graph.lagda.md @@ -20,7 +20,7 @@ open import graph-theory.reflexive-graphs ## Idea -The {{#concpept "universal reflexive graph" Agda=universal-Reflexive-Graph}} +The {{#concept "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 `Γʳ` diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md index 63807b30e1..c5629b6330 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/structured-types/universal-globular-type.lagda.md @@ -23,7 +23,7 @@ open import structured-types.globular-types ## Idea -The {{#concpept "universal globular type"}} `𝒢 l` at +The {{#concept "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. diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/structured-types/universal-reflexive-globular-type.lagda.md index 054e1b0b86..6bb22b4d99 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/structured-types/universal-reflexive-globular-type.lagda.md @@ -19,7 +19,7 @@ open import structured-types.reflexive-globular-types ## Idea -The {{#concpept "universal reflexive globular type"}} `𝒢 l` at +The {{#concept "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 `Γʳ` From a3a945c20f9416a6fca0c61b173e6b8f5605b295 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 12 Nov 2024 17:29:17 -0500 Subject: [PATCH 49/87] pointwise extensions of families of globular types --- ...e-change-dependent-globular-types.lagda.md | 2 +- ...ependent-reflexive-globular-types.lagda.md | 112 ++++++++++++++++++ .../binary-dependent-globular-types.lagda.md | 96 +++++++++++++++ .../dependent-globular-types.lagda.md | 16 +++ .../points-globular-types.lagda.md | 87 ++++++++++++++ ...ns-binary-families-globular-types.lagda.md | 72 +++++++++++ ...xtensions-families-globular-types.lagda.md | 67 +++++++++++ .../terminal-globular-types.lagda.md | 36 ++++++ .../unit-globular-type.lagda.md | 37 ++++++ .../universal-globular-type.lagda.md | 8 +- 10 files changed, 528 insertions(+), 5 deletions(-) create mode 100644 src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md create mode 100644 src/structured-types/binary-dependent-globular-types.lagda.md create mode 100644 src/structured-types/points-globular-types.lagda.md create mode 100644 src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md create mode 100644 src/structured-types/pointwise-extensions-families-globular-types.lagda.md create mode 100644 src/structured-types/terminal-globular-types.lagda.md create mode 100644 src/structured-types/unit-globular-type.lagda.md diff --git a/src/structured-types/base-change-dependent-globular-types.lagda.md b/src/structured-types/base-change-dependent-globular-types.lagda.md index ac2e191b61..98fa652c0b 100644 --- a/src/structured-types/base-change-dependent-globular-types.lagda.md +++ b/src/structured-types/base-change-dependent-globular-types.lagda.md @@ -29,7 +29,7 @@ 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₁ + (f*H)₁ y y' := H₁. ``` ## Definitions diff --git a/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md b/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..0d8cfad403 --- /dev/null +++ b/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md @@ -0,0 +1,112 @@ +# Base change of dependent reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.base-change-dependent-reflexive-globular-types where +``` + +
Imports + +```agda +open import foundation.identity-types +open import foundation.transport-along-identifications +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.dependent-reflexive-globular-types +open import structured-types.globular-types +open import structured-types.reflexive-globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +Consider a [reflexive globular map](structured-types.reflexive-globular-maps.md) `f : G → H` between [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`, and consider a [dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) `K` over `H`. The {{#concept "base change" Disambiguation="dependent reflexive globular types" Agda=base-change-Dependent-Reflexive-Globular-Type}} `f*K` is the dependent reflexive globular type over `G` given by + +```text + (f*K)₀ x := K₀ (f₀ x) + (f*K)' e := K' (f₁ e) +``` + +where the reflexivity structure of `f*K` is defined separately. + +## Definitions + +### Base change of dependent reflexive globular types + +```agda +dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (f : reflexive-globular-map G H) → + Dependent-Reflexive-Globular-Type l5 l6 H → + Dependent-Globular-Type l5 l6 (globular-type-Reflexive-Globular-Type G) +dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type f K = + base-change-Dependent-Globular-Type + ( globular-map-reflexive-globular-map f) + ( dependent-globular-type-Dependent-Reflexive-Globular-Type K) + +0-cell-base-change-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (f : reflexive-globular-map G H) → + Dependent-Reflexive-Globular-Type l5 l6 H → + 0-cell-Reflexive-Globular-Type G → UU l5 +0-cell-base-change-Dependent-Reflexive-Globular-Type f K = + 0-cell-Dependent-Globular-Type + ( dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type f K) + +1-cell-dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (f : reflexive-globular-map G H) → + (K : Dependent-Reflexive-Globular-Type l5 l6 H) → + {x y : 0-cell-Reflexive-Globular-Type G} → + 0-cell-base-change-Dependent-Reflexive-Globular-Type f K x → + 0-cell-base-change-Dependent-Reflexive-Globular-Type f K y → + Dependent-Globular-Type l6 l6 + ( 1-cell-globular-type-Reflexive-Globular-Type G x y) +1-cell-dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type + f K = + 1-cell-dependent-globular-type-Dependent-Globular-Type + ( dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type f K) + +is-reflexive-base-change-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (f : reflexive-globular-map G H) → + (K : Dependent-Reflexive-Globular-Type l5 l6 H) → + is-reflexive-Dependent-Globular-Type G + ( dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type f K) +refl-1-cell-is-reflexive-Dependent-Globular-Type + ( is-reflexive-base-change-Dependent-Reflexive-Globular-Type f K) y = + tr + ( 1-cell-Dependent-Reflexive-Globular-Type K y y) + ( inv ( preserves-refl-1-cell-reflexive-globular-map f _)) + ( refl-1-cell-Dependent-Reflexive-Globular-Type K y) +is-reflexive-1-cell-dependent-globular-type-Dependent-Globular-Type + ( is-reflexive-base-change-Dependent-Reflexive-Globular-Type f K) + ( y) + ( y') = + is-reflexive-base-change-Dependent-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-map-reflexive-globular-map f) + ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type + K y y') + +base-change-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (f : reflexive-globular-map G H) → + Dependent-Reflexive-Globular-Type l5 l6 H → + Dependent-Reflexive-Globular-Type l5 l6 G +dependent-globular-type-Dependent-Reflexive-Globular-Type + ( base-change-Dependent-Reflexive-Globular-Type f K) = + dependent-globular-type-base-change-Dependent-Reflexive-Globular-Type f K +refl-Dependent-Reflexive-Globular-Type + ( base-change-Dependent-Reflexive-Globular-Type f K) = + is-reflexive-base-change-Dependent-Reflexive-Globular-Type f K +``` diff --git a/src/structured-types/binary-dependent-globular-types.lagda.md b/src/structured-types/binary-dependent-globular-types.lagda.md new file mode 100644 index 0000000000..f989f2f466 --- /dev/null +++ b/src/structured-types/binary-dependent-globular-types.lagda.md @@ -0,0 +1,96 @@ +# Binary dependent globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.binary-dependent-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.globular-types +open import structured-types.points-globular-types +``` + +
+ +## Idea + +Consider two [globular types](structured-types.globular-types.md) `G` and `H`. A {{#concept "binary dependent globular type" Agda=Binary-Dependent-Globular-Type}} `K` over `G` and `H` consists of + +```text + K₀ : G₀ → H₀ → Type + K' : (x x' : G₀) (y y' : H₀) → + K₀ x y → K₀ y y' → Binary-Dependent-Globular-Type (G' x x') (H' y y'). +``` + +## Definitions + +### Binary dependent globular types + +```agda +record + Binary-Dependent-Globular-Type + {l1 l2 l3 l4 : Level} (l5 l6 : Level) + (G : Globular-Type l1 l2) (H : Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ lsuc l5 ⊔ lsuc l6) + where + coinductive + + field + 0-cell-Binary-Dependent-Globular-Type : + 0-cell-Globular-Type G → 0-cell-Globular-Type H → UU l5 + + field + 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type : + (x x' : 0-cell-Globular-Type G) (y y' : 0-cell-Globular-Type H) → + 0-cell-Binary-Dependent-Globular-Type x y → + 0-cell-Binary-Dependent-Globular-Type x' y' → + Binary-Dependent-Globular-Type l6 l6 + ( 1-cell-globular-type-Globular-Type G x x') + ( 1-cell-globular-type-Globular-Type H y y') + +open Binary-Dependent-Globular-Type public + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (K : Binary-Dependent-Globular-Type l5 l6 G H) + where + + 1-cell-Binary-Dependent-Globular-Type : + {x x' : 0-cell-Globular-Type G} {y y' : 0-cell-Globular-Type H} → + 0-cell-Binary-Dependent-Globular-Type K x y → + 0-cell-Binary-Dependent-Globular-Type K x' y' → + 1-cell-Globular-Type G x x' → + 1-cell-Globular-Type H y y' → UU l6 + 1-cell-Binary-Dependent-Globular-Type u v = + 0-cell-Binary-Dependent-Globular-Type + ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type K + _ _ _ _ u v) +``` + +### Evaluating binary dependent globular types at a pair of points + +```agda +ev-point-Binary-Dependent-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (K : Binary-Dependent-Globular-Type l5 l6 G H) + (x : point-Globular-Type G) (y : point-Globular-Type H) → + Globular-Type l5 l6 +0-cell-Globular-Type (ev-point-Binary-Dependent-Globular-Type K x y) = + 0-cell-Binary-Dependent-Globular-Type K + ( 0-cell-point-Globular-Type x) + ( 0-cell-point-Globular-Type y) +1-cell-globular-type-Globular-Type + ( ev-point-Binary-Dependent-Globular-Type K x y) u v = + ev-point-Binary-Dependent-Globular-Type + ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type + K _ _ _ _ u v) + ( 1-cell-point-point-Globular-Type x) + ( 1-cell-point-point-Globular-Type y) +``` diff --git a/src/structured-types/dependent-globular-types.lagda.md b/src/structured-types/dependent-globular-types.lagda.md index ca590cd22c..2f0e09f1af 100644 --- a/src/structured-types/dependent-globular-types.lagda.md +++ b/src/structured-types/dependent-globular-types.lagda.md @@ -13,6 +13,7 @@ open import foundation.dependent-pair-types open import foundation.universe-levels open import structured-types.globular-types +open import structured-types.points-globular-types ```
@@ -65,6 +66,21 @@ module _ ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') ``` +### Evaluating dependent globular types at points + +```agda +ev-point-Dependent-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} + (H : Dependent-Globular-Type l3 l4 G) (x : point-Globular-Type G) → + Globular-Type l3 l4 +0-cell-Globular-Type (ev-point-Dependent-Globular-Type H x) = + 0-cell-Dependent-Globular-Type H (0-cell-point-Globular-Type x) +1-cell-globular-type-Globular-Type (ev-point-Dependent-Globular-Type H x) y y' = + ev-point-Dependent-Globular-Type + ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y') + ( 1-cell-point-point-Globular-Type x) +``` + ## See also - [Dependent reflexive globular types](structured-types.dependent-reflexive-globular-types.md) diff --git a/src/structured-types/points-globular-types.lagda.md b/src/structured-types/points-globular-types.lagda.md new file mode 100644 index 0000000000..e9e17b5d29 --- /dev/null +++ b/src/structured-types/points-globular-types.lagda.md @@ -0,0 +1,87 @@ +# Points of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.points-globular-types where +``` + +
Imports + +```agda +open import foundation.unit-type +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.globular-types +open import structured-types.unit-globular-type +``` + +
+ +## Idea + +A {{#concept "point" Disambiguation="globular type" Agda=point-Globular-Type}} of a [globular type](structured-types.globular-types.md) `G` consists of a 0-cell `x₀ : G₀` and a point in the globular type `G' x₀ x₀` of 1-cells from `x₀` to itself. Equivalently, a point is a [globular map](structured-types.globular-maps.md) from the [unit globular type](structured-types.unit-globular-types.md) `𝟏` to `G`. + +## Definitions + +### Points of globular types + +```agda +record point-Globular-Type + {l1 l2 : Level} (G : Globular-Type l1 l2) : UU (l1 ⊔ l2) + where + coinductive + + field + 0-cell-point-Globular-Type : 0-cell-Globular-Type G + + field + 1-cell-point-point-Globular-Type : + point-Globular-Type + ( 1-cell-globular-type-Globular-Type G + ( 0-cell-point-Globular-Type) + ( 0-cell-point-Globular-Type)) + +open point-Globular-Type public + +1-cell-point-Globular-Type : + {l1 l2 : Level} (G : Globular-Type l1 l2) (x : point-Globular-Type G) → + 1-cell-Globular-Type G + (0-cell-point-Globular-Type x) + ( 0-cell-point-Globular-Type x) +1-cell-point-Globular-Type G x = + 0-cell-point-Globular-Type (1-cell-point-point-Globular-Type x) +``` + +## Properties + +### Evaluating globular maps at points + +```agda +ev-point-globular-map : + {l1 l2 l3 l4 : Level} {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (f : globular-map G H) → point-Globular-Type G → point-Globular-Type H +0-cell-point-Globular-Type (ev-point-globular-map f x) = + 0-cell-globular-map f (0-cell-point-Globular-Type x) +1-cell-point-point-Globular-Type (ev-point-globular-map f x) = + ev-point-globular-map + ( 1-cell-globular-map-globular-map f) + ( 1-cell-point-point-Globular-Type x) +``` + +### Points are globular maps from the terminal globular type + +#### The globular map associated to a point of a globular type + +```agda +globular-map-point-Globular-Type : + {l1 l2 : Level} (G : Globular-Type l1 l2) → + point-Globular-Type G → globular-map unit-Globular-Type G +0-cell-globular-map (globular-map-point-Globular-Type G x) star = + 0-cell-point-Globular-Type x +1-cell-globular-map-globular-map (globular-map-point-Globular-Type G x) = + globular-map-point-Globular-Type + ( 1-cell-globular-type-Globular-Type G _ _) + ( 1-cell-point-point-Globular-Type x) +``` diff --git a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md new file mode 100644 index 0000000000..dcb3e357c6 --- /dev/null +++ b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md @@ -0,0 +1,72 @@ +# Pointwise extensions of binary families of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module + structured-types.pointwise-extensions-binary-families-globular-types + where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.binary-dependent-globular-types +open import structured-types.globular-equivalences +open import structured-types.globular-types +open import structured-types.points-globular-types +``` + +## Idea + +Consider two [globular types](structured-types.globular-types.md) `G` and `H`, and a binary family + +```text + K : G₀ → H₀ → Globular-Type +``` + +of globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a [binary dependent globular type](structured-types.binary-dependent-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of globular types" Agda=is-pointwise-extension-Binary-Dependent-Globular-Type}} of `K` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) + +```text + (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. +``` + +## Definitions + +### The predicate of being a pointwise extension of a binary family of globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (K : 0-cell-Globular-Type G → 0-cell-Globular-Type H → Globular-Type l5 l6) + (L : Binary-Dependent-Globular-Type l7 l8 G H) + where + + is-extension-binary-family-globular-types : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6 ⊔ l7 ⊔ l8) + is-extension-binary-family-globular-types = + (x : point-Globular-Type G) (y : point-Globular-Type H) → + globular-equiv + ( ev-point-Binary-Dependent-Globular-Type L x y) + ( K (0-cell-point-Globular-Type x) (0-cell-point-Globular-Type y)) +``` + +### The type of pointwise extensions of a binary family of globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} (l7 l8 : Level) + {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} + (K : 0-cell-Globular-Type G → 0-cell-Globular-Type H → Globular-Type l5 l6) + where + + extension-binary-family-globular-types : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6 ⊔ lsuc l7 ⊔ lsuc l8) + extension-binary-family-globular-types = + Σ ( Binary-Dependent-Globular-Type l7 l8 G H) + ( is-extension-binary-family-globular-types K) +``` diff --git a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md new file mode 100644 index 0000000000..f7c770b668 --- /dev/null +++ b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md @@ -0,0 +1,67 @@ +# Pointwise extensions of families of globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.pointwise-extensions-families-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-equivalences +open import structured-types.globular-types +open import structured-types.points-globular-types +``` + +
+ +## Idea + +Consider a family of [globular types](structured-types.globular-types.md) `H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and consider a [dependent globular type](structured-types.dependent-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of globular types"}} of `H` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) + +```text + ev-point K x ≃ H x₀ +``` + +indexed by the [points](structured-types.points-globular-types.md) of `G`. + +## Definitions + +### The predicate of being a pointwise extension of a family of globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Globular-Type l1 l2} + (H : 0-cell-Globular-Type G → Globular-Type l3 l4) + (K : Dependent-Globular-Type l5 l6 G) + where + + is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type = + (x : point-Globular-Type G) → + globular-equiv + ( ev-point-Dependent-Globular-Type K x) + ( H (0-cell-point-Globular-Type x)) +``` + +### The type of pointwise extensions of a family of globular types + +```agda +module _ + {l1 l2 l3 l4 : Level} (l5 l6 : Level) (G : Globular-Type l1 l2) + (H : 0-cell-Globular-Type G → Globular-Type l3 l4) + where + + pointwise-extension-family-of-globular-types : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ lsuc l5 ⊔ lsuc l6) + pointwise-extension-family-of-globular-types = + Σ ( Dependent-Globular-Type l5 l6 G) + ( is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type + H) +``` diff --git a/src/structured-types/terminal-globular-types.lagda.md b/src/structured-types/terminal-globular-types.lagda.md new file mode 100644 index 0000000000..b91241d41d --- /dev/null +++ b/src/structured-types/terminal-globular-types.lagda.md @@ -0,0 +1,36 @@ +# Terminal globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.terminal-globular-types where +``` + +
Imports + +```agda +open import foundation.contractible-types +open import foundation.universe-levels + +open import structured-types.globular-maps +open import structured-types.globular-types +``` + +
+ +## Idea + +A [globular type](structured-types.globular-types.md) `G` is said to be {{#concept "terminal" Disambiguation="globular type" Agda=is-terminal-Globular-Type}} if for any globular type `H` the type of [globular maps](structured-types.globular-maps.md) `H → G` is [contractible](foundation-core.contractible-types.md). + +The standard {{#concept "terminal globular type" Agda=terminal-Globular-Type}} is the [unit globular type](structured-types.unit-globular-type.md). + +## Definitions + +### The predicate of being a terminal globular type + +```agda +is-terminal-Globular-Type : + {l1 l2 : Level} → Globular-Type l1 l2 → UUω +is-terminal-Globular-Type G = + {l3 l4 : Level} (H : Globular-Type l3 l4) → is-contr (globular-map H G) +``` diff --git a/src/structured-types/unit-globular-type.lagda.md b/src/structured-types/unit-globular-type.lagda.md new file mode 100644 index 0000000000..cff5770a5b --- /dev/null +++ b/src/structured-types/unit-globular-type.lagda.md @@ -0,0 +1,37 @@ +# The unit globular type + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.unit-globular-type where +``` + +
Imports + +```agda +open import foundation.unit-type +open import foundation.universe-levels + +open import structured-types.globular-types +``` + +
+ +## Idea + +The {{#concept "unit globular type" Agda=unit-Globular-Type}} is the [globular type](structured-types.globular-types.md) `𝟏` given by + +```text + 𝟏₀ := unit + 𝟏' x y := 𝟏. +``` + +## Definitions + +### The unit globular type + +```agda +unit-Globular-Type : Globular-Type lzero lzero +0-cell-Globular-Type unit-Globular-Type = unit +1-cell-globular-type-Globular-Type unit-Globular-Type x y = unit-Globular-Type +``` diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/structured-types/universal-globular-type.lagda.md index c5629b6330..1e8b52694d 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/structured-types/universal-globular-type.lagda.md @@ -180,20 +180,20 @@ dependent-globular-type-hom-universal-Globular-Type : ```agda {-# TERMINATING #-} -hom-universal-globular-type-Dependent-Globular-Type : +characteristic-globular-map-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) = + ( characteristic-globular-map-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'} = + ( characteristic-globular-map-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 + characteristic-globular-map-Dependent-Globular-Type ( 1-cell-dependent-globular-type-Dependent-Globular-Type H y y'))) ``` From 221e5d8bceeece0c28169eb8e51049fd2ede750f Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Tue, 12 Nov 2024 18:21:42 -0500 Subject: [PATCH 50/87] file for extensive globular types --- .../extensive-globular-types.lagda.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/structured-types/extensive-globular-types.lagda.md diff --git a/src/structured-types/extensive-globular-types.lagda.md b/src/structured-types/extensive-globular-types.lagda.md new file mode 100644 index 0000000000..53ba735480 --- /dev/null +++ b/src/structured-types/extensive-globular-types.lagda.md @@ -0,0 +1,70 @@ +# Extensive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.extensive-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.reflexive-globular-types +``` + +**Disclaimer.** The contents of this file are experimental, and likely to be changed or reconsidered. + +## Idea + +An {{#concept "extensive globular type" Agda=Extensive-Globular-Type}} is a [reflexive globular type](structured-types.reflexive-globular-types.md) `G` such that the binary family of globular types + +```text + G' : G₀ → G₀ → Globular-Type +``` + +of 1-cells and higher cells [extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) to a [binary dependent globular type](structured-types.binary-dependent-globular-types.md). More specifically, an extensive globular type consists of a reflexive globular type `G` equipped with a binary dependent globular type + +```text + H : Binary-Dependent-Globular-Type l2 l2 G G +``` + +and a family of [globular equivalences](structured-types.globular-equivalences.md) + +```text + (x y : G₀) → ev-point H x y ≃ G' x y. +``` + +The low-dimensional data of an extensive globular type is therefore as follows: + +```text + G₀ : Type + + G₁ : (x y : G₀) → Type + H₀ : (x y : G₀) → Type + e₀ : {x y : G₀} → H₀ x y ≃ G₀ x y + + G₂ : {x y : G₀} (s t : G₁ x y) → Type + H₁ : {x x' y y' : G₀} → G₁ x x' → G₁ y y' → H₀ x y → H₀ x' y' → Type + e₁ : {x y : G₀} {s t : H₀ x y} → H₁ (Gᵣ x) (Gᵣ y) s t ≃ G₂ (e₀ s) (e₀ t) + + G₃ : {x y : G₀} {s t : G₁ x y} (u v : G₂ s t) → Type + H₂ : {x x' y y' : G₀} {s s' : G₁ x x'} {t t' : G₁ y y'} + (p : G₂ s s') (q : G₂ t t') → H₁ s t → H₁ s' t' → Type + e₂ : {x y : G₀} {s t : G₁ x y} {u v : H₁ s t} → + H₂ (Gᵣ s) (Gᵣ t) u v ≃ G₃ (e₁ +``` + +## Definitions + +### The predicate of being an extensive globular type + +```agda +is-extensive-Globular-Type : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → UU {!!} +is-extensive-Globular-Type = + {!pointwise-!} +``` + +### Extensive globular types From 392b591ba140c0d977680eb67a9fafb158a2bffb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 10:32:35 -0500 Subject: [PATCH 51/87] superglobular types --- .../binary-dependent-globular-types.lagda.md | 6 +- ...ependent-reflexive-globular-types.lagda.md | 236 ++++++++++++++++ ...ependent-reflexive-globular-types.lagda.md | 47 ++++ .../extensive-globular-types.lagda.md | 70 ----- .../globular-equivalences.lagda.md | 12 +- .../points-reflexive-globular-types.lagda.md | 54 ++++ ...ns-binary-families-globular-types.lagda.md | 10 +- ...families-reflexive-globular-types.lagda.md | 80 ++++++ ...xtensions-families-globular-types.lagda.md | 2 +- ...families-reflexive-globular-types.lagda.md | 72 +++++ .../reflexive-globular-equivalences.lagda.md | 266 ++++++++++++++++++ .../reflexive-globular-maps.lagda.md | 6 +- .../reflexive-globular-types.lagda.md | 9 +- .../superglobular-types.lagda.md | 176 ++++++++++++ 14 files changed, 962 insertions(+), 84 deletions(-) create mode 100644 src/structured-types/binary-dependent-reflexive-globular-types.lagda.md delete mode 100644 src/structured-types/extensive-globular-types.lagda.md create mode 100644 src/structured-types/points-reflexive-globular-types.lagda.md create mode 100644 src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md create mode 100644 src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md create mode 100644 src/structured-types/reflexive-globular-equivalences.lagda.md create mode 100644 src/structured-types/superglobular-types.lagda.md diff --git a/src/structured-types/binary-dependent-globular-types.lagda.md b/src/structured-types/binary-dependent-globular-types.lagda.md index f989f2f466..56a7c6fc89 100644 --- a/src/structured-types/binary-dependent-globular-types.lagda.md +++ b/src/structured-types/binary-dependent-globular-types.lagda.md @@ -46,7 +46,7 @@ record field 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type : - (x x' : 0-cell-Globular-Type G) (y y' : 0-cell-Globular-Type H) → + {x x' : 0-cell-Globular-Type G} {y y' : 0-cell-Globular-Type H} → 0-cell-Binary-Dependent-Globular-Type x y → 0-cell-Binary-Dependent-Globular-Type x' y' → Binary-Dependent-Globular-Type l6 l6 @@ -70,7 +70,7 @@ module _ 1-cell-Binary-Dependent-Globular-Type u v = 0-cell-Binary-Dependent-Globular-Type ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type K - _ _ _ _ u v) + u v) ``` ### Evaluating binary dependent globular types at a pair of points @@ -90,7 +90,7 @@ ev-point-Binary-Dependent-Globular-Type : ( ev-point-Binary-Dependent-Globular-Type K x y) u v = ev-point-Binary-Dependent-Globular-Type ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type - K _ _ _ _ u v) + K u v) ( 1-cell-point-point-Globular-Type x) ( 1-cell-point-point-Globular-Type y) ``` diff --git a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..33a15421bf --- /dev/null +++ b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md @@ -0,0 +1,236 @@ +# Binary dependent reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.binary-dependent-reflexive-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.binary-dependent-globular-types +open import structured-types.globular-types +open import structured-types.points-reflexive-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +Consider two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`. A {{#concept "binary dependent reflexive globular type" Agda=Binary-Dependent-Reflexive-Globular-Type}} `K` over `G` and `H` consists of a [binary dependent globular type](structured-types.binary-dependent-globular-types.md) `K` over `G` and `H` equipped with reflexivity structure `Kᵣ`. + +A binary dependent globular type `K` over reflexive globular types `G` and `H` is said to be {{#concept "reflexive" Disambiguation="binary dependent globular type"}} if it comes equipped with + +```text + Kᵣ : {x : G₀} {y : H₀} (u : K₀ x y) → K₁ (Gᵣ x) (Gᵣ y) u u, +``` + +such that the binary dependent globular type `K' s t u v` over `G' x x'` and `H' y y'` comes equipped with reflexivity structure for every `s : G₁ x x'` and `t : H₁ y y'`. + +## Definitions + +### The predicate of being a reflexive binary dependent globular type + +```agda +record + is-reflexive-Binary-Dependent-Globular-Type + {l1 l2 l3 l4 l5 l6 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) + (K : + Binary-Dependent-Globular-Type l5 l6 + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H)) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + where + coinductive + + field + refl-1-cell-is-reflexive-Binary-Dependent-Globular-Type : + {x : 0-cell-Reflexive-Globular-Type G} + {y : 0-cell-Reflexive-Globular-Type H} → + (u : 0-cell-Binary-Dependent-Globular-Type K x y) → + 1-cell-Binary-Dependent-Globular-Type K u u + ( refl-1-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type H) + + field + refl-1-cell-binary-dependent-reflexive-globular-type-is-reflexive-Binary-Dependent-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type G} + {y y' : 0-cell-Reflexive-Globular-Type H} + (u : 0-cell-Binary-Dependent-Globular-Type K x y) + (u' : 0-cell-Binary-Dependent-Globular-Type K x' y') → + is-reflexive-Binary-Dependent-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x x') + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H y y') + ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type + K u u') + +open is-reflexive-Binary-Dependent-Globular-Type public +``` + +### Binary dependent reflexive globular types + +```agda +record + Binary-Dependent-Reflexive-Globular-Type + {l1 l2 l3 l4 : Level} (l5 l6 : Level) + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ lsuc l5 ⊔ lsuc l6) + where + + field + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type : + Binary-Dependent-Globular-Type l5 l6 + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) + + 0-cell-Binary-Dependent-Reflexive-Globular-Type : + (x : 0-cell-Reflexive-Globular-Type G) + (y : 0-cell-Reflexive-Globular-Type H) → + UU l5 + 0-cell-Binary-Dependent-Reflexive-Globular-Type = + 0-cell-Binary-Dependent-Globular-Type + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + + 1-cell-Binary-Dependent-Reflexive-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type G} + {y y' : 0-cell-Reflexive-Globular-Type H} → + 0-cell-Binary-Dependent-Reflexive-Globular-Type x y → + 0-cell-Binary-Dependent-Reflexive-Globular-Type x' y' → + 1-cell-Reflexive-Globular-Type G x x' → + 1-cell-Reflexive-Globular-Type H y y' → UU l6 + 1-cell-Binary-Dependent-Reflexive-Globular-Type = + 1-cell-Binary-Dependent-Globular-Type + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + + 1-cell-binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type G} + {y y' : 0-cell-Reflexive-Globular-Type H} → + 0-cell-Binary-Dependent-Reflexive-Globular-Type x y → + 0-cell-Binary-Dependent-Reflexive-Globular-Type x' y' → + Binary-Dependent-Globular-Type l6 l6 + ( 1-cell-globular-type-Reflexive-Globular-Type G x x') + ( 1-cell-globular-type-Reflexive-Globular-Type H y y') + 1-cell-binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type = + 1-cell-binary-dependent-globular-type-Binary-Dependent-Globular-Type + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + + field + refl-Binary-Dependent-Reflexive-Globular-Type : + is-reflexive-Binary-Dependent-Globular-Type G H + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + + refl-1-cell-Binary-Dependent-Reflexive-Globular-Type : + {x : 0-cell-Reflexive-Globular-Type G} + {y : 0-cell-Reflexive-Globular-Type H} + (s : 0-cell-Binary-Dependent-Reflexive-Globular-Type x y) → + 1-cell-Binary-Dependent-Reflexive-Globular-Type s s + ( refl-1-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type H) + refl-1-cell-Binary-Dependent-Reflexive-Globular-Type = + refl-1-cell-is-reflexive-Binary-Dependent-Globular-Type + refl-Binary-Dependent-Reflexive-Globular-Type + + refl-1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type G} + {y y' : 0-cell-Reflexive-Globular-Type H} → + (s : 0-cell-Binary-Dependent-Reflexive-Globular-Type x y) → + (t : 0-cell-Binary-Dependent-Reflexive-Globular-Type x' y') → + is-reflexive-Binary-Dependent-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x x') + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H y y') + ( 1-cell-binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( s) + ( t)) + refl-1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type = + refl-1-cell-binary-dependent-reflexive-globular-type-is-reflexive-Binary-Dependent-Globular-Type + refl-Binary-Dependent-Reflexive-Globular-Type + + 1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type G} + {y y' : 0-cell-Reflexive-Globular-Type H} → + (s : 0-cell-Binary-Dependent-Reflexive-Globular-Type x y) → + (t : 0-cell-Binary-Dependent-Reflexive-Globular-Type x' y') → + Binary-Dependent-Reflexive-Globular-Type l6 l6 + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x x') + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H y y') + binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( 1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( s) + ( t)) = + 1-cell-binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( s) + ( t) + refl-Binary-Dependent-Reflexive-Globular-Type + ( 1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( s) + ( t)) = + refl-1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( s) + ( t) + +open Binary-Dependent-Reflexive-Globular-Type public +``` + +### Evaluating binary dependent reflexive globular types at points + +```agda +globular-type-ev-point-Binary-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) + (K : Binary-Dependent-Reflexive-Globular-Type l5 l6 G H) + (x : point-Reflexive-Globular-Type G) + (y : point-Reflexive-Globular-Type H) → + Globular-Type l5 l6 +globular-type-ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y = + ev-point-Binary-Dependent-Globular-Type + ( binary-dependent-globular-type-Binary-Dependent-Reflexive-Globular-Type K) + ( point-globular-type-point-Reflexive-Globular-Type G x) + ( point-globular-type-point-Reflexive-Globular-Type H y) + +refl-ev-point-Binary-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) + (K : Binary-Dependent-Reflexive-Globular-Type l5 l6 G H) + (x : point-Reflexive-Globular-Type G) + (y : point-Reflexive-Globular-Type H) → + is-reflexive-Globular-Type + ( globular-type-ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y) +is-reflexive-1-cell-is-reflexive-Globular-Type + ( refl-ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y) = + refl-1-cell-Binary-Dependent-Reflexive-Globular-Type K +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( refl-ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y) = + refl-ev-point-Binary-Dependent-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type + ( K) + ( _) + ( _)) + ( refl-1-cell-Reflexive-Globular-Type G) + ( refl-1-cell-Reflexive-Globular-Type H) + +ev-point-Binary-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 l5 l6 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) + (K : Binary-Dependent-Reflexive-Globular-Type l5 l6 G H) + (x : point-Reflexive-Globular-Type G) + (y : point-Reflexive-Globular-Type H) → + Reflexive-Globular-Type l5 l6 +globular-type-Reflexive-Globular-Type + ( ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y) = + globular-type-ev-point-Binary-Dependent-Reflexive-Globular-Type _ _ K x y +refl-Reflexive-Globular-Type + ( ev-point-Binary-Dependent-Reflexive-Globular-Type G H K x y) = + refl-ev-point-Binary-Dependent-Reflexive-Globular-Type _ _ K x y +``` diff --git a/src/structured-types/dependent-reflexive-globular-types.lagda.md b/src/structured-types/dependent-reflexive-globular-types.lagda.md index 48e0c5e3db..e94b48b18b 100644 --- a/src/structured-types/dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/dependent-reflexive-globular-types.lagda.md @@ -14,6 +14,7 @@ open import foundation.universe-levels open import structured-types.dependent-globular-types open import structured-types.globular-types +open import structured-types.points-reflexive-globular-types open import structured-types.reflexive-globular-types ``` @@ -201,3 +202,49 @@ module _ ( family-reflexive-globular-types-Dependent-Reflexive-Globular-Type x) = is-reflexive-family-globular-types-Dependent-Reflexive-Globular-Type H x ``` + +### Evaluating dependent reflexive globular types at points + +```agda +globular-type-ev-point-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : Dependent-Reflexive-Globular-Type l3 l4 G) + (x : point-Reflexive-Globular-Type G) → + Globular-Type l3 l4 +0-cell-Globular-Type + ( globular-type-ev-point-Dependent-Reflexive-Globular-Type H x) = + 0-cell-Dependent-Reflexive-Globular-Type H x +1-cell-globular-type-Globular-Type + ( globular-type-ev-point-Dependent-Reflexive-Globular-Type {G = G} H x) y y' = + globular-type-ev-point-Dependent-Reflexive-Globular-Type + ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type + H y y') + ( refl-1-cell-Reflexive-Globular-Type G) + +refl-ev-point-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : Dependent-Reflexive-Globular-Type l3 l4 G) + (x : point-Reflexive-Globular-Type G) → + is-reflexive-Globular-Type + ( globular-type-ev-point-Dependent-Reflexive-Globular-Type H x) +is-reflexive-1-cell-is-reflexive-Globular-Type + ( refl-ev-point-Dependent-Reflexive-Globular-Type H x) = + refl-1-cell-Dependent-Reflexive-Globular-Type H +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + ( refl-ev-point-Dependent-Reflexive-Globular-Type {G = G} H x) = + refl-ev-point-Dependent-Reflexive-Globular-Type + ( 1-cell-dependent-reflexive-globular-type-Dependent-Reflexive-Globular-Type + H _ _) + ( refl-1-cell-Reflexive-Globular-Type G) + +ev-point-Dependent-Reflexive-Globular-Type : + {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : Dependent-Reflexive-Globular-Type l3 l4 G) + (x : point-Reflexive-Globular-Type G) → + Reflexive-Globular-Type l3 l4 +globular-type-Reflexive-Globular-Type + ( ev-point-Dependent-Reflexive-Globular-Type H x) = + globular-type-ev-point-Dependent-Reflexive-Globular-Type H x +refl-Reflexive-Globular-Type (ev-point-Dependent-Reflexive-Globular-Type H x) = + refl-ev-point-Dependent-Reflexive-Globular-Type H x +``` diff --git a/src/structured-types/extensive-globular-types.lagda.md b/src/structured-types/extensive-globular-types.lagda.md deleted file mode 100644 index 53ba735480..0000000000 --- a/src/structured-types/extensive-globular-types.lagda.md +++ /dev/null @@ -1,70 +0,0 @@ -# Extensive globular types - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.extensive-globular-types where -``` - -
Imports - -```agda -open import foundation.universe-levels - -open import structured-types.reflexive-globular-types -``` - -**Disclaimer.** The contents of this file are experimental, and likely to be changed or reconsidered. - -## Idea - -An {{#concept "extensive globular type" Agda=Extensive-Globular-Type}} is a [reflexive globular type](structured-types.reflexive-globular-types.md) `G` such that the binary family of globular types - -```text - G' : G₀ → G₀ → Globular-Type -``` - -of 1-cells and higher cells [extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) to a [binary dependent globular type](structured-types.binary-dependent-globular-types.md). More specifically, an extensive globular type consists of a reflexive globular type `G` equipped with a binary dependent globular type - -```text - H : Binary-Dependent-Globular-Type l2 l2 G G -``` - -and a family of [globular equivalences](structured-types.globular-equivalences.md) - -```text - (x y : G₀) → ev-point H x y ≃ G' x y. -``` - -The low-dimensional data of an extensive globular type is therefore as follows: - -```text - G₀ : Type - - G₁ : (x y : G₀) → Type - H₀ : (x y : G₀) → Type - e₀ : {x y : G₀} → H₀ x y ≃ G₀ x y - - G₂ : {x y : G₀} (s t : G₁ x y) → Type - H₁ : {x x' y y' : G₀} → G₁ x x' → G₁ y y' → H₀ x y → H₀ x' y' → Type - e₁ : {x y : G₀} {s t : H₀ x y} → H₁ (Gᵣ x) (Gᵣ y) s t ≃ G₂ (e₀ s) (e₀ t) - - G₃ : {x y : G₀} {s t : G₁ x y} (u v : G₂ s t) → Type - H₂ : {x x' y y' : G₀} {s s' : G₁ x x'} {t t' : G₁ y y'} - (p : G₂ s s') (q : G₂ t t') → H₁ s t → H₁ s' t' → Type - e₂ : {x y : G₀} {s t : G₁ x y} {u v : H₁ s t} → - H₂ (Gᵣ s) (Gᵣ t) u v ≃ G₃ (e₁ -``` - -## Definitions - -### The predicate of being an extensive globular type - -```agda -is-extensive-Globular-Type : - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → UU {!!} -is-extensive-Globular-Type = - {!pointwise-!} -``` - -### Extensive globular types diff --git a/src/structured-types/globular-equivalences.lagda.md b/src/structured-types/globular-equivalences.lagda.md index 384b40b03e..aa3cef214f 100644 --- a/src/structured-types/globular-equivalences.lagda.md +++ b/src/structured-types/globular-equivalences.lagda.md @@ -15,6 +15,7 @@ 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 ``` @@ -61,6 +62,15 @@ record open globular-equiv public +globular-map-globular-equiv : + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} → + globular-equiv A B → globular-map A B +0-cell-globular-map (globular-map-globular-equiv e) = + map-equiv (0-cell-equiv-globular-equiv e) +1-cell-globular-map-globular-map (globular-map-globular-equiv e) = + globular-map-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} @@ -132,7 +142,7 @@ module _ ( 1-cell-globular-equiv-globular-equiv e) ``` -### The identity equiv on a globular type +### The identity equivalence on a globular type ```agda id-globular-equiv : diff --git a/src/structured-types/points-reflexive-globular-types.lagda.md b/src/structured-types/points-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..a4bf1c9d2e --- /dev/null +++ b/src/structured-types/points-reflexive-globular-types.lagda.md @@ -0,0 +1,54 @@ +# Points of reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.points-reflexive-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.points-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +Consider a [reflexive globular type](structured-types.reflexive-globular-types.md) `G`. A {{#concept "point" Disambiguation="reflexive globular type" Agda=point-Reflexive-Globular-Type}} of `G` is a 0-cell of `G`. Equivalently, a point of `G` is a [reflexive globular map](structured-types.reflexive-globular-maps.md) from the [unit reflexive globular type](structured-types.unit-reflexive-globular-type.md) into `G`. + +The definition of points of reflexive globular types is much simpler than the definition of [points](structured-types.points-globular-types.md) of ordinary [globular types](structured-types.globular-types.md). This is due to the condition that reflexive globular maps preserve reflexivity, and therefore the type of higher cells relating the underlying 0-cell to itself is [contractible](foundation-core.contractible-types.md). + +## Definitions + +### Points of reflexive globular types + +```agda +module _ + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) + where + + point-Reflexive-Globular-Type : UU l1 + point-Reflexive-Globular-Type = 0-cell-Reflexive-Globular-Type G +``` + +### The underlying points of the underlying globular type of a reflexive globular type + +```agda +point-globular-type-point-Reflexive-Globular-Type : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + point-Reflexive-Globular-Type G → + point-Globular-Type (globular-type-Reflexive-Globular-Type G) +0-cell-point-Globular-Type + ( point-globular-type-point-Reflexive-Globular-Type G x) = + x +1-cell-point-point-Globular-Type + ( point-globular-type-point-Reflexive-Globular-Type G x) = + point-globular-type-point-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x x) + ( refl-1-cell-Reflexive-Globular-Type G) +``` diff --git a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md index dcb3e357c6..92ae7de3d8 100644 --- a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md @@ -46,9 +46,9 @@ module _ (L : Binary-Dependent-Globular-Type l7 l8 G H) where - is-extension-binary-family-globular-types : + is-pointwise-extension-binary-family-globular-types : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6 ⊔ l7 ⊔ l8) - is-extension-binary-family-globular-types = + is-pointwise-extension-binary-family-globular-types = (x : point-Globular-Type G) (y : point-Globular-Type H) → globular-equiv ( ev-point-Binary-Dependent-Globular-Type L x y) @@ -64,9 +64,9 @@ module _ (K : 0-cell-Globular-Type G → 0-cell-Globular-Type H → Globular-Type l5 l6) where - extension-binary-family-globular-types : + pointwise-extension-binary-family-globular-types : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6 ⊔ lsuc l7 ⊔ lsuc l8) - extension-binary-family-globular-types = + pointwise-extension-binary-family-globular-types = Σ ( Binary-Dependent-Globular-Type l7 l8 G H) - ( is-extension-binary-family-globular-types K) + ( is-pointwise-extension-binary-family-globular-types K) ``` diff --git a/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md b/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..cc5cc8e6d3 --- /dev/null +++ b/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md @@ -0,0 +1,80 @@ +# Pointwise extensions of binary families of reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module + structured-types.pointwise-extensions-binary-families-reflexive-globular-types + where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.binary-dependent-reflexive-globular-types +open import structured-types.points-reflexive-globular-types +open import structured-types.reflexive-globular-equivalences +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +Consider two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`, and a binary family + +```text + K : G₀ → H₀ → Reflexive-Globular-Type +``` + +of reflexive globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a [binary dependent reflexive globular type](structured-types.binary-dependent-reflexive-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of reflexive globular types" Agda=is-pointwise-extension-Binary-Dependent-Reflexive-Globular-Type}} of `K` if it comes equipped with a family of [reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) + +```text + (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. +``` + +## Definitions + +### The predicate of being a pointwise extension of a binary family of reflexive globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {G : Reflexive-Globular-Type l1 l2} {H : Reflexive-Globular-Type l3 l4} + (K : + 0-cell-Reflexive-Globular-Type G → + 0-cell-Reflexive-Globular-Type H → Reflexive-Globular-Type l5 l6) + (L : Binary-Dependent-Reflexive-Globular-Type l7 l8 G H) + where + + is-pointwise-extension-binary-family-reflexive-globular-types : + UU (l1 ⊔ l3 ⊔ l5 ⊔ l6 ⊔ l7 ⊔ l8) + is-pointwise-extension-binary-family-reflexive-globular-types = + (x : point-Reflexive-Globular-Type G) + (y : point-Reflexive-Globular-Type H) → + reflexive-globular-equiv + ( ev-point-Binary-Dependent-Reflexive-Globular-Type G H L x y) + ( K x y) +``` + +### The type of pointwise extensions of a binary family of reflexive globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} (l7 l8 : Level) + (G : Reflexive-Globular-Type l1 l2) (H : Reflexive-Globular-Type l3 l4) + (K : + 0-cell-Reflexive-Globular-Type G → + 0-cell-Reflexive-Globular-Type H → Reflexive-Globular-Type l5 l6) + where + + pointwise-extension-binary-family-reflexive-globular-types : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6 ⊔ lsuc l7 ⊔ lsuc l8) + pointwise-extension-binary-family-reflexive-globular-types = + Σ ( Binary-Dependent-Reflexive-Globular-Type l7 l8 G H) + ( is-pointwise-extension-binary-family-reflexive-globular-types K) +``` + diff --git a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md index f7c770b668..f72f507998 100644 --- a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md @@ -22,7 +22,7 @@ open import structured-types.points-globular-types ## Idea -Consider a family of [globular types](structured-types.globular-types.md) `H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and consider a [dependent globular type](structured-types.dependent-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of globular types"}} of `H` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) +Consider a family of [globular types](structured-types.globular-types.md) `H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and consider a [dependent globular type](structured-types.dependent-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of globular types" Agda=is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type}} of `H` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) ```text ev-point K x ≃ H x₀ diff --git a/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md b/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..44b70383bc --- /dev/null +++ b/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md @@ -0,0 +1,72 @@ +# Pointwise extensions of families of reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module + structured-types.pointwise-extensions-families-reflexive-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.dependent-reflexive-globular-types +open import structured-types.reflexive-globular-equivalences +open import structured-types.globular-types +open import structured-types.points-globular-types +open import structured-types.points-reflexive-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +Consider a family of [reflexive globular types](structured-types.reflexive-globular-types.md) `H : G₀ → Reflexive-Globular-Type` indexed by the 0-cells of a reflexive globular type `G` and consider a [dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of reflexive globular types"}} of `H` if it comes equipped with a family of [reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) + +```text + ev-point K x ≃ H x₀ +``` + +indexed by the [points](structured-types.points-reflexive-globular-types.md) of `G`. + +## Definitions + +### The predicate of being a pointwise extension of a family of reflexive globular types + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : 0-cell-Reflexive-Globular-Type G → Reflexive-Globular-Type l3 l4) + (K : Dependent-Reflexive-Globular-Type l5 l6 G) + where + + is-pointwise-extension-family-of-reflexive-globular-types-Dependent-Reflexive-Globular-Type : + UU (l1 ⊔ l3 ⊔ l4 ⊔ l5 ⊔ l6) + is-pointwise-extension-family-of-reflexive-globular-types-Dependent-Reflexive-Globular-Type = + (x : point-Reflexive-Globular-Type G) → + reflexive-globular-equiv + ( ev-point-Dependent-Reflexive-Globular-Type K x) + ( H x) +``` + +### The type of pointwise extensions of a family of reflexive globular types + +```agda +module _ + {l1 l2 l3 l4 : Level} (l5 l6 : Level) (G : Reflexive-Globular-Type l1 l2) + (H : 0-cell-Reflexive-Globular-Type G → Reflexive-Globular-Type l3 l4) + where + + pointwise-extension-family-of-reflexive-globular-types : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ lsuc l5 ⊔ lsuc l6) + pointwise-extension-family-of-reflexive-globular-types = + Σ ( Dependent-Reflexive-Globular-Type l5 l6 G) + ( is-pointwise-extension-family-of-reflexive-globular-types-Dependent-Reflexive-Globular-Type + H) +``` diff --git a/src/structured-types/reflexive-globular-equivalences.lagda.md b/src/structured-types/reflexive-globular-equivalences.lagda.md new file mode 100644 index 0000000000..5931233158 --- /dev/null +++ b/src/structured-types/reflexive-globular-equivalences.lagda.md @@ -0,0 +1,266 @@ +# Equivalences between reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.reflexive-globular-equivalences where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +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-equivalences +open import structured-types.globular-maps +open import structured-types.reflexive-globular-maps +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A {{#concept "reflexive globular equivalence" Agda=reflexive-globular-equiv}} +`e` between +[reflexive-globular types](structured-types.reflexive-globular-types.md) `A` and +`B` is a [globular equivalence](structured-types.globular-equivalences.md) that +preserves reflexivity. + +## Definitions + +### The predicate on globular equivalences of preserving reflexivity + +```agda +module _ + {l1 l2 l3 l4 : Level} + (G : Reflexive-Globular-Type l1 l2) + (H : Reflexive-Globular-Type l3 l4) + where + + preserves-refl-globular-equiv : + globular-equiv + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) → + UU (l1 ⊔ l2 ⊔ l4) + preserves-refl-globular-equiv e = + preserves-refl-globular-map G H (globular-map-globular-equiv e) +``` + +### Equivalences between globular types + +```agda +record + reflexive-globular-equiv + {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-equiv-reflexive-globular-equiv : + globular-equiv + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) + + 0-cell-equiv-reflexive-globular-equiv : + 0-cell-Reflexive-Globular-Type G ≃ 0-cell-Reflexive-Globular-Type H + 0-cell-equiv-reflexive-globular-equiv = + 0-cell-equiv-globular-equiv globular-equiv-reflexive-globular-equiv + + 0-cell-reflexive-globular-equiv : + 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H + 0-cell-reflexive-globular-equiv = + 0-cell-globular-equiv globular-equiv-reflexive-globular-equiv + + 1-cell-equiv-reflexive-globular-equiv : + {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-equiv x) + ( 0-cell-reflexive-globular-equiv y) + 1-cell-equiv-reflexive-globular-equiv = + 1-cell-equiv-globular-equiv globular-equiv-reflexive-globular-equiv + + 1-cell-reflexive-globular-equiv : + {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-equiv x) + ( 0-cell-reflexive-globular-equiv y) + 1-cell-reflexive-globular-equiv = + 1-cell-globular-equiv globular-equiv-reflexive-globular-equiv + + 1-cell-globular-equiv-reflexive-globular-equiv : + {x y : 0-cell-Reflexive-Globular-Type G} → + globular-equiv + ( 1-cell-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-globular-type-Reflexive-Globular-Type H + ( 0-cell-reflexive-globular-equiv x) + ( 0-cell-reflexive-globular-equiv y)) + 1-cell-globular-equiv-reflexive-globular-equiv = + 1-cell-globular-equiv-globular-equiv + globular-equiv-reflexive-globular-equiv + + 2-cell-equiv-reflexive-globular-equiv : + {x y : 0-cell-Reflexive-Globular-Type G} + {f g : 1-cell-Reflexive-Globular-Type G x y} → + 2-cell-Reflexive-Globular-Type G f g ≃ + 2-cell-Reflexive-Globular-Type H + ( 1-cell-reflexive-globular-equiv f) + ( 1-cell-reflexive-globular-equiv g) + 2-cell-equiv-reflexive-globular-equiv = + 2-cell-equiv-globular-equiv globular-equiv-reflexive-globular-equiv + + 2-cell-reflexive-globular-equiv : + {x y : 0-cell-Reflexive-Globular-Type G} + {f g : 1-cell-Reflexive-Globular-Type G x y} → + 2-cell-Reflexive-Globular-Type G f g → + 2-cell-Reflexive-Globular-Type H + ( 1-cell-reflexive-globular-equiv f) + ( 1-cell-reflexive-globular-equiv g) + 2-cell-reflexive-globular-equiv = + 2-cell-globular-equiv globular-equiv-reflexive-globular-equiv + + 3-cell-equiv-reflexive-globular-equiv : + {x y : 0-cell-Reflexive-Globular-Type G} + {f g : 1-cell-Reflexive-Globular-Type G x y} → + {s t : 2-cell-Reflexive-Globular-Type G f g} → + 3-cell-Reflexive-Globular-Type G s t ≃ + 3-cell-Reflexive-Globular-Type H + ( 2-cell-reflexive-globular-equiv s) + ( 2-cell-reflexive-globular-equiv t) + 3-cell-equiv-reflexive-globular-equiv = + 3-cell-equiv-globular-equiv globular-equiv-reflexive-globular-equiv + + globular-map-reflexive-globular-equiv : + globular-map + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type H) + globular-map-reflexive-globular-equiv = + globular-map-globular-equiv globular-equiv-reflexive-globular-equiv + + field + preserves-refl-reflexive-globular-equiv : + preserves-refl-globular-equiv G H globular-equiv-reflexive-globular-equiv + + preserves-refl-1-cell-reflexive-globular-equiv : + (x : 0-cell-Reflexive-Globular-Type G) → + 1-cell-reflexive-globular-equiv + ( refl-1-cell-Reflexive-Globular-Type G {x}) = + refl-1-cell-Reflexive-Globular-Type H + preserves-refl-1-cell-reflexive-globular-equiv = + preserves-refl-1-cell-preserves-refl-globular-map + preserves-refl-reflexive-globular-equiv + + preserves-refl-1-cell-globular-equiv-reflexive-globular-equiv : + {x y : 0-cell-Reflexive-Globular-Type G} → + preserves-refl-globular-equiv + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + ( 1-cell-globular-equiv-reflexive-globular-equiv) + preserves-refl-1-cell-globular-equiv-reflexive-globular-equiv = + preserves-refl-1-cell-globular-map-preserves-refl-globular-map + preserves-refl-reflexive-globular-equiv + + 1-cell-reflexive-globular-equiv-reflexive-globular-equiv : + (x y : 0-cell-Reflexive-Globular-Type G) → + reflexive-globular-equiv + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type H _ _) + globular-equiv-reflexive-globular-equiv + ( 1-cell-reflexive-globular-equiv-reflexive-globular-equiv x y) = + 1-cell-globular-equiv-reflexive-globular-equiv + preserves-refl-reflexive-globular-equiv + ( 1-cell-reflexive-globular-equiv-reflexive-globular-equiv x y) = + preserves-refl-1-cell-globular-equiv-reflexive-globular-equiv + +open reflexive-globular-equiv public +``` + +### The identity equivalence on a reflexive globular type + +```agda +preserves-refl-id-globular-equiv : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + preserves-refl-globular-equiv + ( G) + ( G) + ( id-globular-equiv (globular-type-Reflexive-Globular-Type G)) +preserves-refl-1-cell-preserves-refl-globular-map + ( preserves-refl-id-globular-equiv G) + ( x) = + refl +preserves-refl-1-cell-globular-map-preserves-refl-globular-map + ( preserves-refl-id-globular-equiv G) = + preserves-refl-id-globular-equiv + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G _ _) + +id-reflexive-globular-equiv : + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) → + reflexive-globular-equiv G G +globular-equiv-reflexive-globular-equiv (id-reflexive-globular-equiv G) = + id-globular-equiv (globular-type-Reflexive-Globular-Type G) +preserves-refl-reflexive-globular-equiv (id-reflexive-globular-equiv G) = + preserves-refl-id-globular-equiv G +``` + +### Composition of equivalences of reflexive globular types + +```agda +globular-equiv-comp-reflexive-globular-equiv : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} + {H : Reflexive-Globular-Type l3 l4} + {K : Reflexive-Globular-Type l5 l6} → + (f : reflexive-globular-equiv H K) + (e : reflexive-globular-equiv G H) → + globular-equiv + ( globular-type-Reflexive-Globular-Type G) + ( globular-type-Reflexive-Globular-Type K) +globular-equiv-comp-reflexive-globular-equiv f e = + comp-globular-equiv + ( globular-equiv-reflexive-globular-equiv f) + ( globular-equiv-reflexive-globular-equiv e) + +preserves-refl-comp-reflexive-globular-equiv : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} + {H : Reflexive-Globular-Type l3 l4} + {K : Reflexive-Globular-Type l5 l6} → + (g : reflexive-globular-equiv H K) + (f : reflexive-globular-equiv G H) → + preserves-refl-globular-equiv G K + ( globular-equiv-comp-reflexive-globular-equiv g f) +preserves-refl-1-cell-preserves-refl-globular-map + ( preserves-refl-comp-reflexive-globular-equiv g f) x = + ( ap + ( 1-cell-reflexive-globular-equiv g) + ( preserves-refl-1-cell-reflexive-globular-equiv f _)) ∙ + ( preserves-refl-1-cell-reflexive-globular-equiv g _) +preserves-refl-1-cell-globular-map-preserves-refl-globular-map + ( preserves-refl-comp-reflexive-globular-equiv g f) = + preserves-refl-comp-reflexive-globular-equiv + ( 1-cell-reflexive-globular-equiv-reflexive-globular-equiv g _ _) + ( 1-cell-reflexive-globular-equiv-reflexive-globular-equiv f _ _) + +comp-reflexive-globular-equiv : + {l1 l2 l3 l4 l5 l6 : Level} + {G : Reflexive-Globular-Type l1 l2} + {H : Reflexive-Globular-Type l3 l4} + {K : Reflexive-Globular-Type l5 l6} → + reflexive-globular-equiv H K → + reflexive-globular-equiv G H → + reflexive-globular-equiv G K +globular-equiv-reflexive-globular-equiv + ( comp-reflexive-globular-equiv g f) = + globular-equiv-comp-reflexive-globular-equiv g f +preserves-refl-reflexive-globular-equiv (comp-reflexive-globular-equiv g f) = + preserves-refl-comp-reflexive-globular-equiv g f +``` diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index d18bbd900a..2153894569 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -62,14 +62,14 @@ record refl-1-cell-Reflexive-Globular-Type H field - preserves-refl-2-cell-globular-map-preserves-refl-globular-map : + preserves-refl-1-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) ( 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 +open preserves-refl-globular-map public ``` ### Reflexive globular maps @@ -133,7 +133,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-preserves-refl-globular-map + preserves-refl-1-cell-globular-map-preserves-refl-globular-map preserves-refl-reflexive-globular-map 1-cell-reflexive-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 f1055e1c13..cdcde783fc 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -26,7 +26,7 @@ A [globular type](structured-types.globular-types.md) is {{#concept "reflexive" Disambiguation="globular type" Agda=is-reflexive-globular-structure}} if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. -## Definition +## Definitions ### The predicate of being a reflexive globular type @@ -144,6 +144,13 @@ record 2-cell-Reflexive-Globular-Type = 2-cell-Globular-Type globular-type-Reflexive-Globular-Type + 3-cell-Reflexive-Globular-Type : + {x x' : 0-cell-Reflexive-Globular-Type} + {y y' : 1-cell-Reflexive-Globular-Type x x'} → + (z z' : 2-cell-Reflexive-Globular-Type y y') → UU l2 + 3-cell-Reflexive-Globular-Type = + 3-cell-Globular-Type globular-type-Reflexive-Globular-Type + globular-structure-Reflexive-Globular-Type : globular-structure l2 0-cell-Reflexive-Globular-Type globular-structure-Reflexive-Globular-Type = diff --git a/src/structured-types/superglobular-types.lagda.md b/src/structured-types/superglobular-types.lagda.md new file mode 100644 index 0000000000..a1c17a0601 --- /dev/null +++ b/src/structured-types/superglobular-types.lagda.md @@ -0,0 +1,176 @@ +# Superglobular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.superglobular-types where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import structured-types.binary-dependent-reflexive-globular-types +open import structured-types.globular-types +open import structured-types.points-reflexive-globular-types +open import structured-types.pointwise-extensions-binary-families-reflexive-globular-types +open import structured-types.reflexive-globular-equivalences +open import structured-types.reflexive-globular-types +``` + +**Disclaimer.** The contents of this file are experimental, and likely to be changed or reconsidered. + +## Idea + +An {{#concept "superglobular type" Agda=Extensive-Globular-Type}} is a [reflexive globular type](structured-types.reflexive-globular-types.md) `G` such that the binary family of globular types + +```text + G' : G₀ → G₀ → Globular-Type +``` + +of 1-cells and higher cells [extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) to a [binary dependent globular type](structured-types.binary-dependent-globular-types.md). More specifically, a superglobular type consists of a reflexive globular type `G` equipped with a binary dependent globular type + +```text + H : Binary-Dependent-Globular-Type l2 l2 G G +``` + +and a family of [globular equivalences](structured-types.globular-equivalences.md) + +```text + (x y : G₀) → ev-point H x y ≃ G' x y. +``` + +The low-dimensional data of a superglobular type is therefore as follows: + +```text + G₀ : Type + + G₁ : (x y : G₀) → Type + H₀ : (x y : G₀) → Type + e₀ : {x y : G₀} → H₀ x y ≃ G₀ x y + Gᵣ : (x : G₀) → G₁ x x + + G₂ : {x y : G₀} (s t : G₁ x y) → Type + H₁ : {x x' y y' : G₀} → G₁ x x' → G₁ y y' → H₀ x y → H₀ x' y' → Type + e₁ : {x y : G₀} {s t : H₀ x y} → H₁ (Gᵣ x) (Gᵣ y) s t ≃ G₂ (e₀ s) (e₀ t) + Gᵣ : {x y : G₀} (s : G₁ x y) → G₂ s s + + G₃ : {x y : G₀} {s t : G₁ x y} (u v : G₂ s t) → Type + H₂ : {x x' y y' : G₀} {s s' : G₁ x x'} {t t' : G₁ y y'} + (p : G₂ s s') (q : G₂ t t') → H₁ s t → H₁ s' t' → Type + e₂ : {x y : G₀} {s t : H₀ x y} {u v : H₁ + H₂ (Gᵣ x) (Gᵣ y) u v ≃ G₃ (e₁ u) (e₁ v) +``` + +Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is [contractible](foundation-core.contractible-types.md). An equivalent way of presenting the low-dimensional data of a superglobular type is therefore: + +```text + G₀ : Type + + H₀ : (x y : G₀) → Type + Gᵣ : (x : G₀) → H₀ x x + + H₁ : {x x' y y' : G₀} → H₁ x x' → H₁ y y' → H₀ x y → H₀ x' y' → Type + Gᵣ : {x y : G₀} (s : H₀ x y) → H₁ (Gᵣ x) (Gᵣ y) s s + + H₂ : {x x' y y' : G₀} {s s' : H₁ x x'} {t t' : H₁ y y'} + (p : H₂ s s') (q : H₂ t t') → H₁ s t → H₁ s' t' → Type +``` + + +## Definitions + +### The predicate of being a superglobular type + +```agda +module _ + {l1 l2 : Level} (l3 l4 : Level) (G : Reflexive-Globular-Type l1 l2) + where + + is-superglobular-Reflexive-Globular-Type : UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) + is-superglobular-Reflexive-Globular-Type = + pointwise-extension-binary-family-reflexive-globular-types l3 l4 G G + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G) + +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : is-superglobular-Reflexive-Globular-Type l3 l4 G) + where + + 1-cell-binary-dependent-reflexive-globular-type-is-superglobular-Reflexive-Globular-Type : + Binary-Dependent-Reflexive-Globular-Type l3 l4 G G + 1-cell-binary-dependent-reflexive-globular-type-is-superglobular-Reflexive-Globular-Type = + pr1 H + + reflexive-globular-equiv-is-superglobular-Reflexive-Globular-Type : + (x y : point-Reflexive-Globular-Type G) → + reflexive-globular-equiv + ( ev-point-Binary-Dependent-Reflexive-Globular-Type G G + ( 1-cell-binary-dependent-reflexive-globular-type-is-superglobular-Reflexive-Globular-Type) + ( x) + ( y)) + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + reflexive-globular-equiv-is-superglobular-Reflexive-Globular-Type = + pr2 H +``` + +### Superglobular types + +```agda +record + Superglobular-Type + (l1 l2 l3 l4 : Level) : UU (lsuc l1 ⊔ lsuc l2 ⊔ lsuc l3 ⊔ lsuc l4) + where + + field + reflexive-globular-type-Superglobular-Type : Reflexive-Globular-Type l1 l2 + + globular-type-Superglobular-Type : Globular-Type l1 l2 + globular-type-Superglobular-Type = + globular-type-Reflexive-Globular-Type + reflexive-globular-type-Superglobular-Type + + 0-cell-Superglobular-Type : UU l1 + 0-cell-Superglobular-Type = + 0-cell-Reflexive-Globular-Type reflexive-globular-type-Superglobular-Type + + point-Superglobular-Type : UU l1 + point-Superglobular-Type = + point-Reflexive-Globular-Type reflexive-globular-type-Superglobular-Type + + 1-cell-reflexive-globular-type-Superglobular-Type : + (x y : 0-cell-Superglobular-Type) → + Reflexive-Globular-Type l2 l2 + 1-cell-reflexive-globular-type-Superglobular-Type = + 1-cell-reflexive-globular-type-Reflexive-Globular-Type + reflexive-globular-type-Superglobular-Type + + field + is-superglobular-Superglobular-Type : + is-superglobular-Reflexive-Globular-Type l3 l4 + reflexive-globular-type-Superglobular-Type + + 1-cell-binary-dependent-reflexive-globular-type-Superglobular-Type : + Binary-Dependent-Reflexive-Globular-Type l3 l4 + reflexive-globular-type-Superglobular-Type + reflexive-globular-type-Superglobular-Type + 1-cell-binary-dependent-reflexive-globular-type-Superglobular-Type = + 1-cell-binary-dependent-reflexive-globular-type-is-superglobular-Reflexive-Globular-Type + is-superglobular-Superglobular-Type + + reflexive-globular-equiv-Superglobular-Type : + (x y : point-Superglobular-Type) → + reflexive-globular-equiv + ( ev-point-Binary-Dependent-Reflexive-Globular-Type + ( reflexive-globular-type-Superglobular-Type) + ( reflexive-globular-type-Superglobular-Type) + ( 1-cell-binary-dependent-reflexive-globular-type-Superglobular-Type) + ( x) + ( y)) + ( 1-cell-reflexive-globular-type-Superglobular-Type x y) + reflexive-globular-equiv-Superglobular-Type = + reflexive-globular-equiv-is-superglobular-Reflexive-Globular-Type + is-superglobular-Superglobular-Type +``` From d3789b6ce497f1f61fc76c55c916e8fe9ca339f3 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 11:08:38 -0500 Subject: [PATCH 52/87] superglobular types --- src/structured-types.lagda.md | 14 +++++ ...ependent-reflexive-globular-types.lagda.md | 9 +++- .../binary-dependent-globular-types.lagda.md | 4 +- ...ependent-reflexive-globular-types.lagda.md | 21 ++++++-- .../points-globular-types.lagda.md | 7 ++- .../points-reflexive-globular-types.lagda.md | 15 +++++- ...ns-binary-families-globular-types.lagda.md | 13 ++++- ...families-reflexive-globular-types.lagda.md | 13 +++-- ...xtensions-families-globular-types.lagda.md | 9 +++- ...families-reflexive-globular-types.lagda.md | 15 ++++-- .../superglobular-types.lagda.md | 26 ++++++--- .../terminal-globular-types.lagda.md | 8 +-- .../unit-globular-type.lagda.md | 3 +- .../unit-reflexive-globular-type.lagda.md | 53 +++++++++++++++++++ 14 files changed, 180 insertions(+), 30 deletions(-) create mode 100644 src/structured-types/unit-reflexive-globular-type.lagda.md diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 8dc8c7313e..e6077dea99 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -10,6 +10,9 @@ module structured-types where open import structured-types.base-change-dependent-globular-types public +open import structured-types.base-change-dependent-reflexive-globular-types public +open import structured-types.binary-dependent-globular-types public +open import structured-types.binary-dependent-reflexive-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 @@ -94,23 +97,34 @@ open import structured-types.pointed-types public open import structured-types.pointed-types-equipped-with-automorphisms public open import structured-types.pointed-unit-type public open import structured-types.pointed-universal-property-contractible-types public +open import structured-types.points-globular-types public +open import structured-types.points-reflexive-globular-types public +open import structured-types.pointwise-extensions-binary-families-globular-types public +open import structured-types.pointwise-extensions-binary-families-reflexive-globular-types public +open import structured-types.pointwise-extensions-families-globular-types public +open import structured-types.pointwise-extensions-families-reflexive-globular-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-equivalences 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.superglobular-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.terminal-globular-types 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 open import structured-types.types-equipped-with-endomorphisms public open import structured-types.uniform-pointed-homotopies public +open import structured-types.unit-globular-type public +open import structured-types.unit-reflexive-globular-type 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 diff --git a/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md b/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md index 0d8cfad403..b000f5407e 100644 --- a/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md @@ -25,7 +25,14 @@ open import structured-types.reflexive-globular-types ## Idea -Consider a [reflexive globular map](structured-types.reflexive-globular-maps.md) `f : G → H` between [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`, and consider a [dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) `K` over `H`. The {{#concept "base change" Disambiguation="dependent reflexive globular types" Agda=base-change-Dependent-Reflexive-Globular-Type}} `f*K` is the dependent reflexive globular type over `G` given by +Consider a [reflexive globular map](structured-types.reflexive-globular-maps.md) +`f : G → H` between +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H`, and consider a +[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) +`K` over `H`. The +{{#concept "base change" Disambiguation="dependent reflexive globular types" Agda=base-change-Dependent-Reflexive-Globular-Type}} +`f*K` is the dependent reflexive globular type over `G` given by ```text (f*K)₀ x := K₀ (f₀ x) diff --git a/src/structured-types/binary-dependent-globular-types.lagda.md b/src/structured-types/binary-dependent-globular-types.lagda.md index 56a7c6fc89..58e8922cce 100644 --- a/src/structured-types/binary-dependent-globular-types.lagda.md +++ b/src/structured-types/binary-dependent-globular-types.lagda.md @@ -19,7 +19,9 @@ open import structured-types.points-globular-types ## Idea -Consider two [globular types](structured-types.globular-types.md) `G` and `H`. A {{#concept "binary dependent globular type" Agda=Binary-Dependent-Globular-Type}} `K` over `G` and `H` consists of +Consider two [globular types](structured-types.globular-types.md) `G` and `H`. A +{{#concept "binary dependent globular type" Agda=Binary-Dependent-Globular-Type}} +`K` over `G` and `H` consists of ```text K₀ : G₀ → H₀ → Type diff --git a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md index 33a15421bf..6564e2bf12 100644 --- a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md @@ -21,15 +21,26 @@ open import structured-types.reflexive-globular-types ## Idea -Consider two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`. A {{#concept "binary dependent reflexive globular type" Agda=Binary-Dependent-Reflexive-Globular-Type}} `K` over `G` and `H` consists of a [binary dependent globular type](structured-types.binary-dependent-globular-types.md) `K` over `G` and `H` equipped with reflexivity structure `Kᵣ`. - -A binary dependent globular type `K` over reflexive globular types `G` and `H` is said to be {{#concept "reflexive" Disambiguation="binary dependent globular type"}} if it comes equipped with +Consider two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H`. A +{{#concept "binary dependent reflexive globular type" Agda=Binary-Dependent-Reflexive-Globular-Type}} +`K` over `G` and `H` consists of a +[binary dependent globular type](structured-types.binary-dependent-globular-types.md) +`K` over `G` and `H` equipped with reflexivity structure `Kᵣ`. + +A binary dependent globular type `K` over reflexive globular types `G` and `H` +is said to be +{{#concept "reflexive" Disambiguation="binary dependent globular type"}} if it +comes equipped with ```text Kᵣ : {x : G₀} {y : H₀} (u : K₀ x y) → K₁ (Gᵣ x) (Gᵣ y) u u, ``` -such that the binary dependent globular type `K' s t u v` over `G' x x'` and `H' y y'` comes equipped with reflexivity structure for every `s : G₁ x x'` and `t : H₁ y y'`. +such that the binary dependent globular type `K' s t u v` over `G' x x'` and +`H' y y'` comes equipped with reflexivity structure for every `s : G₁ x x'` and +`t : H₁ y y'`. ## Definitions @@ -174,7 +185,7 @@ record refl-1-cell-binary-dependent-reflexive-globular-type-Binary-Dependent-Reflexive-Globular-Type ( s) ( t) - + open Binary-Dependent-Reflexive-Globular-Type public ``` diff --git a/src/structured-types/points-globular-types.lagda.md b/src/structured-types/points-globular-types.lagda.md index e9e17b5d29..2b12869c68 100644 --- a/src/structured-types/points-globular-types.lagda.md +++ b/src/structured-types/points-globular-types.lagda.md @@ -21,7 +21,12 @@ open import structured-types.unit-globular-type ## Idea -A {{#concept "point" Disambiguation="globular type" Agda=point-Globular-Type}} of a [globular type](structured-types.globular-types.md) `G` consists of a 0-cell `x₀ : G₀` and a point in the globular type `G' x₀ x₀` of 1-cells from `x₀` to itself. Equivalently, a point is a [globular map](structured-types.globular-maps.md) from the [unit globular type](structured-types.unit-globular-types.md) `𝟏` to `G`. +A {{#concept "point" Disambiguation="globular type" Agda=point-Globular-Type}} +of a [globular type](structured-types.globular-types.md) `G` consists of a +0-cell `x₀ : G₀` and a point in the globular type `G' x₀ x₀` of 1-cells from +`x₀` to itself. Equivalently, a point is a +[globular map](structured-types.globular-maps.md) from the +[unit globular type](structured-types.unit-globular-type.md) `𝟏` to `G`. ## Definitions diff --git a/src/structured-types/points-reflexive-globular-types.lagda.md b/src/structured-types/points-reflexive-globular-types.lagda.md index a4bf1c9d2e..6fd4796567 100644 --- a/src/structured-types/points-reflexive-globular-types.lagda.md +++ b/src/structured-types/points-reflexive-globular-types.lagda.md @@ -19,9 +19,20 @@ open import structured-types.reflexive-globular-types ## Idea -Consider a [reflexive globular type](structured-types.reflexive-globular-types.md) `G`. A {{#concept "point" Disambiguation="reflexive globular type" Agda=point-Reflexive-Globular-Type}} of `G` is a 0-cell of `G`. Equivalently, a point of `G` is a [reflexive globular map](structured-types.reflexive-globular-maps.md) from the [unit reflexive globular type](structured-types.unit-reflexive-globular-type.md) into `G`. +Consider a +[reflexive globular type](structured-types.reflexive-globular-types.md) `G`. A +{{#concept "point" Disambiguation="reflexive globular type" Agda=point-Reflexive-Globular-Type}} +of `G` is a 0-cell of `G`. Equivalently, a point of `G` is a +[reflexive globular map](structured-types.reflexive-globular-maps.md) from the +[unit reflexive globular type](structured-types.unit-reflexive-globular-type.md) +into `G`. -The definition of points of reflexive globular types is much simpler than the definition of [points](structured-types.points-globular-types.md) of ordinary [globular types](structured-types.globular-types.md). This is due to the condition that reflexive globular maps preserve reflexivity, and therefore the type of higher cells relating the underlying 0-cell to itself is [contractible](foundation-core.contractible-types.md). +The definition of points of reflexive globular types is much simpler than the +definition of [points](structured-types.points-globular-types.md) of ordinary +[globular types](structured-types.globular-types.md). This is due to the +condition that reflexive globular maps preserve reflexivity, and therefore the +type of higher cells relating the underlying 0-cell to itself is +[contractible](foundation-core.contractible-types.md). ## Definitions diff --git a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md index 92ae7de3d8..ce6542132c 100644 --- a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md @@ -20,15 +20,24 @@ open import structured-types.globular-types open import structured-types.points-globular-types ``` +
+ ## Idea -Consider two [globular types](structured-types.globular-types.md) `G` and `H`, and a binary family +Consider two [globular types](structured-types.globular-types.md) `G` and `H`, +and a binary family ```text K : G₀ → H₀ → Globular-Type ``` -of globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a [binary dependent globular type](structured-types.binary-dependent-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of globular types" Agda=is-pointwise-extension-Binary-Dependent-Globular-Type}} of `K` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) +of globular types, indexed over the 0-cells of `G` and `H`. Furthermore, +consider a +[binary dependent globular type](structured-types.binary-dependent-globular-types.md) +`L` over `G` and `H`. We say that `L` is a +{{#concept "pointwise extension" Disambiguation="binary family of globular types" Agda=is-pointwise-extension-binary-family-globular-types}} +of `K` if it comes equipped with a family of +[globular equivalences](structured-types.globular-equivalences.md) ```text (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. diff --git a/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md b/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md index cc5cc8e6d3..0a12b441c1 100644 --- a/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md @@ -24,13 +24,21 @@ open import structured-types.reflexive-globular-types ## Idea -Consider two [reflexive globular types](structured-types.reflexive-globular-types.md) `G` and `H`, and a binary family +Consider two +[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +`H`, and a binary family ```text K : G₀ → H₀ → Reflexive-Globular-Type ``` -of reflexive globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a [binary dependent reflexive globular type](structured-types.binary-dependent-reflexive-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of reflexive globular types" Agda=is-pointwise-extension-Binary-Dependent-Reflexive-Globular-Type}} of `K` if it comes equipped with a family of [reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) +of reflexive globular types, indexed over the 0-cells of `G` and `H`. +Furthermore, consider a +[binary dependent reflexive globular type](structured-types.binary-dependent-reflexive-globular-types.md) +`L` over `G` and `H`. We say that `L` is a +{{#concept "pointwise extension" Disambiguation="binary family of reflexive globular types" Agda=is-pointwise-extension-binary-family-reflexive-globular-types}} +of `K` if it comes equipped with a family of +[reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) ```text (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. @@ -77,4 +85,3 @@ module _ Σ ( Binary-Dependent-Reflexive-Globular-Type l7 l8 G H) ( is-pointwise-extension-binary-family-reflexive-globular-types K) ``` - diff --git a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md index f72f507998..6517b61aaa 100644 --- a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-families-globular-types.lagda.md @@ -22,7 +22,14 @@ open import structured-types.points-globular-types ## Idea -Consider a family of [globular types](structured-types.globular-types.md) `H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and consider a [dependent globular type](structured-types.dependent-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of globular types" Agda=is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type}} of `H` if it comes equipped with a family of [globular equivalences](structured-types.globular-equivalences.md) +Consider a family of [globular types](structured-types.globular-types.md) +`H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and +consider a +[dependent globular type](structured-types.dependent-globular-types.md) `K` over +`G`. We say that `K` is a +{{#concept "pointwise extension" Disambiguation="family of globular types" Agda=is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type}} +of `H` if it comes equipped with a family of +[globular equivalences](structured-types.globular-equivalences.md) ```text ev-point K x ≃ H x₀ diff --git a/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md b/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md index 44b70383bc..88e43b9887 100644 --- a/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md +++ b/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md @@ -16,10 +16,10 @@ open import foundation.universe-levels open import structured-types.dependent-globular-types open import structured-types.dependent-reflexive-globular-types -open import structured-types.reflexive-globular-equivalences open import structured-types.globular-types open import structured-types.points-globular-types open import structured-types.points-reflexive-globular-types +open import structured-types.reflexive-globular-equivalences open import structured-types.reflexive-globular-types ``` @@ -27,13 +27,22 @@ open import structured-types.reflexive-globular-types ## Idea -Consider a family of [reflexive globular types](structured-types.reflexive-globular-types.md) `H : G₀ → Reflexive-Globular-Type` indexed by the 0-cells of a reflexive globular type `G` and consider a [dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of reflexive globular types"}} of `H` if it comes equipped with a family of [reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) +Consider a family of +[reflexive globular types](structured-types.reflexive-globular-types.md) +`H : G₀ → Reflexive-Globular-Type` indexed by the 0-cells of a reflexive +globular type `G` and consider a +[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) +`K` over `G`. We say that `K` is a +{{#concept "pointwise extension" Disambiguation="family of reflexive globular types"}} +of `H` if it comes equipped with a family of +[reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) ```text ev-point K x ≃ H x₀ ``` -indexed by the [points](structured-types.points-reflexive-globular-types.md) of `G`. +indexed by the [points](structured-types.points-reflexive-globular-types.md) of +`G`. ## Definitions diff --git a/src/structured-types/superglobular-types.lagda.md b/src/structured-types/superglobular-types.lagda.md index a1c17a0601..7d41324ff4 100644 --- a/src/structured-types/superglobular-types.lagda.md +++ b/src/structured-types/superglobular-types.lagda.md @@ -20,23 +20,34 @@ open import structured-types.reflexive-globular-equivalences open import structured-types.reflexive-globular-types ``` -**Disclaimer.** The contents of this file are experimental, and likely to be changed or reconsidered. +
+ +**Disclaimer.** The contents of this file are experimental, and likely to be +changed or reconsidered. ## Idea -An {{#concept "superglobular type" Agda=Extensive-Globular-Type}} is a [reflexive globular type](structured-types.reflexive-globular-types.md) `G` such that the binary family of globular types +An {{#concept "superglobular type" Agda=Superglobular-Type}} is a +[reflexive globular type](structured-types.reflexive-globular-types.md) `G` such +that the binary family of globular types ```text G' : G₀ → G₀ → Globular-Type ``` -of 1-cells and higher cells [extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) to a [binary dependent globular type](structured-types.binary-dependent-globular-types.md). More specifically, a superglobular type consists of a reflexive globular type `G` equipped with a binary dependent globular type +of 1-cells and higher cells +[extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) +to a +[binary dependent globular type](structured-types.binary-dependent-globular-types.md). +More specifically, a superglobular type consists of a reflexive globular type +`G` equipped with a binary dependent globular type ```text H : Binary-Dependent-Globular-Type l2 l2 G G ``` -and a family of [globular equivalences](structured-types.globular-equivalences.md) +and a family of +[globular equivalences](structured-types.globular-equivalences.md) ```text (x y : G₀) → ev-point H x y ≃ G' x y. @@ -64,7 +75,9 @@ The low-dimensional data of a superglobular type is therefore as follows: H₂ (Gᵣ x) (Gᵣ y) u v ≃ G₃ (e₁ u) (e₁ v) ``` -Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is [contractible](foundation-core.contractible-types.md). An equivalent way of presenting the low-dimensional data of a superglobular type is therefore: +Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is +[contractible](foundation-core.contractible-types.md). An equivalent way of +presenting the low-dimensional data of a superglobular type is therefore: ```text G₀ : Type @@ -79,7 +92,6 @@ Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is [contract (p : H₂ s s') (q : H₂ t t') → H₁ s t → H₁ s' t' → Type ``` - ## Definitions ### The predicate of being a superglobular type @@ -88,7 +100,7 @@ Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is [contract module _ {l1 l2 : Level} (l3 l4 : Level) (G : Reflexive-Globular-Type l1 l2) where - + is-superglobular-Reflexive-Globular-Type : UU (l1 ⊔ l2 ⊔ lsuc l3 ⊔ lsuc l4) is-superglobular-Reflexive-Globular-Type = pointwise-extension-binary-family-reflexive-globular-types l3 l4 G G diff --git a/src/structured-types/terminal-globular-types.lagda.md b/src/structured-types/terminal-globular-types.lagda.md index b91241d41d..62331d496b 100644 --- a/src/structured-types/terminal-globular-types.lagda.md +++ b/src/structured-types/terminal-globular-types.lagda.md @@ -20,9 +20,11 @@ open import structured-types.globular-types ## Idea -A [globular type](structured-types.globular-types.md) `G` is said to be {{#concept "terminal" Disambiguation="globular type" Agda=is-terminal-Globular-Type}} if for any globular type `H` the type of [globular maps](structured-types.globular-maps.md) `H → G` is [contractible](foundation-core.contractible-types.md). - -The standard {{#concept "terminal globular type" Agda=terminal-Globular-Type}} is the [unit globular type](structured-types.unit-globular-type.md). +A [globular type](structured-types.globular-types.md) `G` is said to be +{{#concept "terminal" Disambiguation="globular type" Agda=is-terminal-Globular-Type}} +if for any globular type `H` the type of +[globular maps](structured-types.globular-maps.md) `H → G` is +[contractible](foundation-core.contractible-types.md). ## Definitions diff --git a/src/structured-types/unit-globular-type.lagda.md b/src/structured-types/unit-globular-type.lagda.md index cff5770a5b..ccc781b43b 100644 --- a/src/structured-types/unit-globular-type.lagda.md +++ b/src/structured-types/unit-globular-type.lagda.md @@ -19,7 +19,8 @@ open import structured-types.globular-types ## Idea -The {{#concept "unit globular type" Agda=unit-Globular-Type}} is the [globular type](structured-types.globular-types.md) `𝟏` given by +The {{#concept "unit globular type" Agda=unit-Globular-Type}} is the +[globular type](structured-types.globular-types.md) `𝟏` given by ```text 𝟏₀ := unit diff --git a/src/structured-types/unit-reflexive-globular-type.lagda.md b/src/structured-types/unit-reflexive-globular-type.lagda.md new file mode 100644 index 0000000000..4e6f4393f2 --- /dev/null +++ b/src/structured-types/unit-reflexive-globular-type.lagda.md @@ -0,0 +1,53 @@ +# The unit reflexive globular type + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.unit-reflexive-globular-type where +``` + +
Imports + +```agda +open import foundation.unit-type +open import foundation.universe-levels + +open import structured-types.reflexive-globular-types +open import structured-types.unit-globular-type +``` + +
+ +## Idea + +The +{{#concept "unit reflexive globular type" Agda=unit-Reflexive-Globular-Type}} is +the [reflexive globular type](structured-types.reflexive-globular-types.md) `𝟏` +given by + +```text + 𝟏₀ := unit + 𝟏' x y := 𝟏 + 𝟏ᵣ x := star. +``` + +## Definitions + +### The unit reflexive globular type + +```agda +is-reflexive-unit-Globular-Type : + is-reflexive-Globular-Type unit-Globular-Type +is-reflexive-1-cell-is-reflexive-Globular-Type + is-reflexive-unit-Globular-Type x = + star +is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + is-reflexive-unit-Globular-Type = + is-reflexive-unit-Globular-Type + +unit-Reflexive-Globular-Type : Reflexive-Globular-Type lzero lzero +globular-type-Reflexive-Globular-Type unit-Reflexive-Globular-Type = + unit-Globular-Type +refl-Reflexive-Globular-Type unit-Reflexive-Globular-Type = + is-reflexive-unit-Globular-Type +``` From 4626f9577406cb7016c72c72a9f8fc0dd1c2e03e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 11:38:14 -0500 Subject: [PATCH 53/87] uniform --- src/structured-types/large-globular-maps.lagda.md | 4 ++-- .../wild-category-of-pointed-types.lagda.md | 8 ++++---- ...-noncoherent-large-wild-higher-precategories.lagda.md | 9 ++++++--- ...-noncoherent-large-wild-higher-precategories.lagda.md | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/structured-types/large-globular-maps.lagda.md b/src/structured-types/large-globular-maps.lagda.md index 7cf5c480c5..607e1e62b8 100644 --- a/src/structured-types/large-globular-maps.lagda.md +++ b/src/structured-types/large-globular-maps.lagda.md @@ -135,7 +135,7 @@ module _ (A : Large-Globular-Type α β) where - id-large-globular-map : large-globular-map id A A + id-large-globular-map : large-globular-map (λ l → l) A A 0-cell-large-globular-map id-large-globular-map = id 1-cell-globular-map-large-globular-map id-large-globular-map = @@ -154,7 +154,7 @@ module _ 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 + large-globular-map (λ l → δ2 (δ1 l)) 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) = 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 e0457a6a59..ad6769e66a 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -84,7 +84,7 @@ 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 pointed types, pointed maps, and uniform pointed homotopies ```agda is-reflexive-uniform-pointed-Π-Globular-Type : @@ -115,7 +115,7 @@ 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 pointed types, pointed maps, and uniform pointed homotopies ```agda is-transitive-uniform-pointed-Π-Globular-Type : @@ -210,7 +210,7 @@ pointed-type-Large-Globular-Type : pointed-map-Globular-Type ``` -#### Identity structure on the large globular type of nonuniform pointed types +#### Identity structure on the large globular type of nonpointed types, pointed maps, and uniform pointed homotopies ```agda is-reflexive-pointed-htpy-Globular-Type : @@ -284,7 +284,7 @@ is-reflexive-Large-Reflexive-Globular-Type is-reflexive-pointed-type-Large-Globular-Type ``` -#### Composition structure on the large globular type of nonuniform pointed types +#### Composition structure on the large globular type of nonpointed types, pointed maps, and uniform pointed homotopies ```agda is-transitive-pointed-htpy-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 e55282da42..ad5764b222 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 @@ -464,7 +464,7 @@ module _ 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 𝒜 𝒜 + colax-functor-Noncoherent-Large-Wild-Higher-Precategory (λ l → l) 𝒜 𝒜 map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = id-map-Noncoherent-Large-Wild-Higher-Precategory 𝒜 @@ -488,7 +488,7 @@ module _ where map-comp-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : - map-Noncoherent-Large-Wild-Higher-Precategory (δ2 ∘ δ1) 𝒜 𝒞 + 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) @@ -549,7 +549,10 @@ module _ 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) 𝒜 𝒞 + colax-functor-Noncoherent-Large-Wild-Higher-Precategory + ( λ l → δ2 (δ1 l)) + ( 𝒜) + ( 𝒞) map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory comp-colax-functor-Noncoherent-Large-Wild-Precategory = map-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 06d482bef1..6b34a71c36 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 @@ -34,7 +34,7 @@ A [noncoherent large wild higher precategories](wild-category-theory.noncoherent-large-wild-higher-precategories.md) `𝒜` 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 +[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 From 668bd2017999821f5fca03133868544398e22ba6 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 11:42:40 -0500 Subject: [PATCH 54/87] structure --- src/structured-types/large-reflexive-globular-types.lagda.md | 2 +- src/structured-types/large-transitive-globular-types.lagda.md | 2 +- src/structured-types/reflexive-globular-types.lagda.md | 2 +- src/structured-types/transitive-globular-types.lagda.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 4f7259013c..c764eda384 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -29,7 +29,7 @@ if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definition -### The predicate of being a reflexive large globular type +### Reflexivity structure on large globular types ```agda record diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/structured-types/large-transitive-globular-types.lagda.md index 1ec9987e3a..d59b94d97d 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/structured-types/large-transitive-globular-types.lagda.md @@ -34,7 +34,7 @@ at every level $n$. ## Definition -### The predicate of being a transitive large globular type +### Transitivity structure on large globular types ```agda record diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index cdcde783fc..7cda5e719d 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -28,7 +28,7 @@ if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. ## Definitions -### The predicate of being a reflexive globular type +### Reflexivity structure on globular types ```agda record diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 1a4df2b3f6..3ba99cebd2 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -36,7 +36,7 @@ at every level $n$. ## Definitions -### The predicate of being a transitive globular type +### Transitivity structure on globular types ```agda record From 45a4ea8961f638f4c1e4474f99e7cc394898afad Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 12:04:22 -0500 Subject: [PATCH 55/87] removing the itemization formatting in record --- .../large-reflexive-globular-types.lagda.md | 4 +- .../reflexive-globular-types.lagda.md | 6 +-- .../transitive-globular-types.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 8 ++-- ...oherent-wild-higher-precategories.lagda.md | 10 ++-- ...t-large-wild-higher-precategories.lagda.md | 46 +++++++++---------- ...oherent-wild-higher-precategories.lagda.md | 14 +++--- 7 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index c764eda384..0834fe3db0 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -107,7 +107,7 @@ record where ``` -- The underlying large globular type of a large reflexive globular type +**The underlying large globular type of a large reflexive globular type** ```agda field @@ -274,7 +274,7 @@ record large-globular-type-Large-Reflexive-Globular-Type ``` -- The reflexivity structure of a large reflexive globular type +**The reflexivity structure of a large reflexive globular type** ```agda field diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 7cda5e719d..1790c3fcf1 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -123,7 +123,7 @@ record where ``` -- The underlying globular type of a reflexive globular type +**The underlying globular type of a reflexive globular type** ```agda field @@ -158,7 +158,7 @@ record ( globular-type-Reflexive-Globular-Type) ``` -- The reflexivity structure of a reflexive globular type +**The reflexivity structure of a reflexive globular type** ```agda field @@ -196,7 +196,7 @@ record refl-Reflexive-Globular-Type ``` -- The reflexive globular type of 1-cells of a reflexive globular type +**The reflexive globular type of 1-cells of a reflexive globular type** ```agda 1-cell-reflexive-globular-type-Reflexive-Globular-Type : diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 3ba99cebd2..5fbcffdb87 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -114,7 +114,7 @@ record make-Transitive-Globular-Type ``` -- The underlying globular type of a transitive globular type +**The underlying globular type of a transitive globular type** ```agda field @@ -167,7 +167,7 @@ record ( globular-type-Transitive-Globular-Type) ``` -- The composition structure of a transitive globular type +**The composition structure of a transitive globular type** ```agda field 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 ad5764b222..1732f4dafd 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 @@ -209,7 +209,7 @@ record where ``` -- The underlying large globular map of a colax functor +**The underlying large globular map of a colax functor** ```agda field @@ -268,7 +268,7 @@ record ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) ``` -- Preservation of the identity structure +**Preservation of the identity structure** ```agda preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : @@ -319,7 +319,7 @@ record is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ``` -- Preservation of the composition structure +**Preservation of the composition structure** ```agda preserves-comp-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : @@ -375,7 +375,7 @@ record is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ``` -- The globular map on hom-types is again a colax functor +**The globular map on hom-types is again a colax functor** ```agda is-colax-functor-hom-colax-functor-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 4a76d12e3e..0f0426c407 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 @@ -192,7 +192,7 @@ colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ = ( is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) ``` -- The action of colax functors on objects, morphisms, and higher morphisms +**The action of colax functors on objects, morphisms, and higher morphisms** ```agda module _ @@ -248,7 +248,7 @@ module _ is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory = pr2 F ``` -- Preservation by colax functors of identity morphisms +**Preservation by colax functors of identity morphisms** ```agda preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : @@ -275,7 +275,7 @@ module _ is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` -- Preservation by colax functors of composition +**Preservation by colax functors of composition** ```agda preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : @@ -305,8 +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 : 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 6fbd453f3a..d93908ba57 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 @@ -79,7 +79,7 @@ record where ``` -- The underlying large globular type of a noncoherent large wild precategory +**The underlying large globular type of a noncoherent large wild precategory** ```agda field @@ -87,7 +87,7 @@ record Large-Globular-Type α β ``` -- The type of objects of a noncoherent large wild higher precategory +**The type of objects of a noncoherent large wild higher precategory** ```agda obj-Noncoherent-Large-Wild-Higher-Precategory : (l : Level) → UU (α l) @@ -96,8 +96,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -119,8 +119,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -130,8 +130,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -154,8 +154,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -170,8 +170,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -198,8 +198,8 @@ record large-globular-type-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 : @@ -215,8 +215,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 @@ -264,7 +264,7 @@ record id-structure-Noncoherent-Large-Wild-Higher-Precategory ``` -- The structure of composition in a noncoherent large wild higher precategory +**The structure of composition in a noncoherent large wild higher precategory** ```agda field @@ -320,8 +320,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-Higher-Precategory : @@ -338,8 +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 : @@ -352,8 +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 : 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 973e2719bf..ec445be1dd 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -92,7 +92,7 @@ module _ 0-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory ``` -- Morphisms in a noncoherent wild higher precategory +**Morphisms in a noncoherent wild higher precategory** ```agda hom-globular-type-Noncoherent-Wild-Higher-Precategory : @@ -110,7 +110,7 @@ module _ 1-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory ``` -- Identity morphisms in a noncoherent wild higher precategory +**Identity morphisms in a noncoherent wild higher precategory** ```agda id-structure-Noncoherent-Wild-Higher-Precategory : @@ -152,7 +152,7 @@ module _ ( y) ``` -- Composition in a noncoherent wild higher precategory +**Composition in a noncoherent wild higher precategory** ```agda comp-structure-Noncoherent-Wild-Higher-Precategory : @@ -197,8 +197,8 @@ module _ ( 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 : @@ -212,7 +212,7 @@ module _ ( comp-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory) ``` -- 2-Morphisms in a noncoherent wild higher precategory +**2-Morphisms in a noncoherent wild higher precategory** ```agda 2-hom-Noncoherent-Wild-Higher-Precategory : @@ -242,7 +242,7 @@ module _ comp-structure-Noncoherent-Wild-Higher-Precategory ``` -- 3-Morphisms in a noncoherent wild higher precategory +**3-Morphisms in a noncoherent wild higher precategory** ```agda 3-hom-Noncoherent-Wild-Higher-Precategory : From d5a255b0977d60b4eebb812308a1409b78205295 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 13:12:13 -0500 Subject: [PATCH 56/87] unbolden text with added colon --- .../large-reflexive-globular-types.lagda.md | 4 +- .../reflexive-globular-types.lagda.md | 6 +-- .../transitive-globular-types.lagda.md | 4 +- ...t-large-wild-higher-precategories.lagda.md | 8 ++-- ...oherent-wild-higher-precategories.lagda.md | 9 ++-- ...t-large-wild-higher-precategories.lagda.md | 44 +++++++++---------- ...oherent-wild-higher-precategories.lagda.md | 14 +++--- 7 files changed, 43 insertions(+), 46 deletions(-) diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/structured-types/large-reflexive-globular-types.lagda.md index 0834fe3db0..8649583c31 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/structured-types/large-reflexive-globular-types.lagda.md @@ -107,7 +107,7 @@ record where ``` -**The underlying large globular type of a large reflexive globular type** +The underlying large globular type of a large reflexive globular type: ```agda field @@ -274,7 +274,7 @@ record large-globular-type-Large-Reflexive-Globular-Type ``` -**The reflexivity structure of a large reflexive globular type** +The reflexivity structure of a large reflexive globular type: ```agda field diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 1790c3fcf1..8dbc0df93b 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -123,7 +123,7 @@ record where ``` -**The underlying globular type of a reflexive globular type** +The underlying globular type of a reflexive globular type: ```agda field @@ -158,7 +158,7 @@ record ( globular-type-Reflexive-Globular-Type) ``` -**The reflexivity structure of a reflexive globular type** +The reflexivity structure of a reflexive globular type: ```agda field @@ -196,7 +196,7 @@ record refl-Reflexive-Globular-Type ``` -**The reflexive globular type of 1-cells of a reflexive globular type** +The reflexive globular type of 1-cells of a reflexive globular type: ```agda 1-cell-reflexive-globular-type-Reflexive-Globular-Type : diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 5fbcffdb87..2aebbc4a2f 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -114,7 +114,7 @@ record make-Transitive-Globular-Type ``` -**The underlying globular type of a transitive globular type** +The underlying globular type of a transitive globular type: ```agda field @@ -167,7 +167,7 @@ record ( globular-type-Transitive-Globular-Type) ``` -**The composition structure of a transitive globular type** +The composition structure of a transitive globular type: ```agda field 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 1732f4dafd..18ef1d7366 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 @@ -209,7 +209,7 @@ record where ``` -**The underlying large globular map of a colax functor** +The underlying large globular map of a colax functor: ```agda field @@ -268,7 +268,7 @@ record ( map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory) ``` -**Preservation of the identity structure** +Preservation of the identity structure: ```agda preserves-id-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : @@ -319,7 +319,7 @@ record is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ``` -**Preservation of the composition structure** +Preservation of the composition structure: ```agda preserves-comp-structure-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : @@ -375,7 +375,7 @@ record is-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ``` -**The globular map on hom-types is again a colax functor** +The globular map on hom-types is again a colax functor: ```agda is-colax-functor-hom-colax-functor-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 0f0426c407..313fd8d16d 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 @@ -192,7 +192,7 @@ colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ = ( is-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) ``` -**The action of colax functors on objects, morphisms, and higher morphisms** +The action of colax functors on objects, morphisms, and higher morphisms: ```agda module _ @@ -248,7 +248,7 @@ module _ is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory = pr2 F ``` -**Preservation by colax functors of identity morphisms** +Preservation by colax functors of identity morphisms: ```agda preserves-id-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : @@ -275,7 +275,7 @@ module _ is-colax-functor-colax-functor-Noncoherent-Wild-Higher-Precategory ``` -**Preservation by colax functors of composition** +Preservation by colax functors of composition: ```agda preserves-comp-hom-colax-functor-Noncoherent-Wild-Higher-Precategory : @@ -305,8 +305,7 @@ 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 : 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 d93908ba57..a448641016 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 @@ -79,7 +79,7 @@ record where ``` -**The underlying large globular type of a noncoherent large wild precategory** +The underlying large globular type of a noncoherent large wild precategory: ```agda field @@ -87,7 +87,7 @@ record Large-Globular-Type α β ``` -**The type of objects of a noncoherent large wild higher precategory** +The type of objects of a noncoherent large wild higher precategory: ```agda obj-Noncoherent-Large-Wild-Higher-Precategory : (l : Level) → UU (α l) @@ -96,8 +96,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -119,8 +119,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -130,8 +130,7 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -154,8 +153,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -170,8 +169,7 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 : @@ -198,8 +196,8 @@ record large-globular-type-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 : @@ -215,8 +213,8 @@ record large-globular-type-Noncoherent-Large-Wild-Higher-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 @@ -264,7 +262,7 @@ record id-structure-Noncoherent-Large-Wild-Higher-Precategory ``` -**The structure of composition in a noncoherent large wild higher precategory** +The structure of composition in a noncoherent large wild higher precategory: ```agda field @@ -320,8 +318,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-Higher-Precategory : @@ -338,8 +336,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 : @@ -352,8 +350,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 : 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 ec445be1dd..743fb94601 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -92,7 +92,7 @@ module _ 0-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory ``` -**Morphisms in a noncoherent wild higher precategory** +Morphisms in a noncoherent wild higher precategory: ```agda hom-globular-type-Noncoherent-Wild-Higher-Precategory : @@ -110,7 +110,7 @@ module _ 1-cell-Globular-Type globular-type-Noncoherent-Wild-Higher-Precategory ``` -**Identity morphisms in a noncoherent wild higher precategory** +Identity morphisms in a noncoherent wild higher precategory: ```agda id-structure-Noncoherent-Wild-Higher-Precategory : @@ -152,7 +152,7 @@ module _ ( y) ``` -**Composition in a noncoherent wild higher precategory** +Composition in a noncoherent wild higher precategory: ```agda comp-structure-Noncoherent-Wild-Higher-Precategory : @@ -197,8 +197,8 @@ module _ ( 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 : @@ -212,7 +212,7 @@ module _ ( comp-structure-hom-globular-type-Noncoherent-Wild-Higher-Precategory) ``` -**2-Morphisms in a noncoherent wild higher precategory** +2-Morphisms in a noncoherent wild higher precategory: ```agda 2-hom-Noncoherent-Wild-Higher-Precategory : @@ -242,7 +242,7 @@ module _ comp-structure-Noncoherent-Wild-Higher-Precategory ``` -**3-Morphisms in a noncoherent wild higher precategory** +3-Morphisms in a noncoherent wild higher precategory: ```agda 3-hom-Noncoherent-Wild-Higher-Precategory : From 774d2aeaae14ddd50e2471f8ad2a03b4c274e218 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 14:30:36 -0500 Subject: [PATCH 57/87] correcting an incorrect definition of discrete relations --- src/foundation/discrete-relations.lagda.md | 57 +++++++++++------- .../functional-correspondences.lagda.md | 16 ++--- src/graph-theory/discrete-graphs.lagda.md | 59 ++++++++++++------- src/graph-theory/reflexive-graphs.lagda.md | 6 ++ 4 files changed, 89 insertions(+), 49 deletions(-) diff --git a/src/foundation/discrete-relations.lagda.md b/src/foundation/discrete-relations.lagda.md index 1a6535940b..3ed3b137a2 100644 --- a/src/foundation/discrete-relations.lagda.md +++ b/src/foundation/discrete-relations.lagda.md @@ -22,12 +22,14 @@ open import foundation-core.propositions ## Idea -A [relation](foundation.binary-relations.md) `R` on `A` is said to be -{{#concept "discrete" Disambiguation="binary relations valued in types" Agda=is-discrete-Relation}} +A [reflexive relation](foundation.binary-relations.md) `R` on `A` is said to be +{{#concept "discrete" Disambiguation="reflexive relations valued in types" Agda=is-discrete-Reflexive-Relation}} if, for every element `x : A`, the type family `R x` is [torsorial](foundation-core.torsorial-type-families.md). In other words, the [dependent sum](foundation.dependent-pair-types.md) `Σ (y : A), (R x y)` is -[contractible](foundation-core.contractible-types.md) for every `x`. The +[contractible](foundation-core.contractible-types.md) for every `x`. + +The {{#concept "standard discrete relation" Disambiguation="binary relations valued in types"}} on a type `X` is the relation defined by [identifications](foundation-core.identity-types.md), @@ -36,26 +38,26 @@ on a type `X` is the relation defined by R x y := (x = y). ``` -## Definitions +More generally, a binary relation `R` on `A` is said to be +{{#concept "discrete" Disambiguation="binary relation" Agda=is-discrete-Relation}} +if it is reflexive and discrete as a reflexive relation. Being discrete for +binary relations is therefore not a property. -### The predicate on relations of being discrete +Note that the directed relation on +[natural numbers](elementary-number-theory.natural-numbers.md) and +`E m n := (m + 1 = n)` as in -```agda -module _ - {l1 l2 : Level} {A : UU l1} (R : Relation l2 A) - where - - is-discrete-prop-Relation : Prop (l1 ⊔ l2) - is-discrete-prop-Relation = Π-Prop A (λ x → is-torsorial-Prop (R x)) +```text + 0 ---> 1 ---> 2 ---> ⋯ +``` - is-discrete-Relation : UU (l1 ⊔ l2) - is-discrete-Relation = - type-Prop is-discrete-prop-Relation +satisfies the condition that the type family `E m` is torsorial for every +`m : ℕ`, simply because the relation `E` is a +[functional correspondence](foundation.functional-correspondences.md). The +condition that a binary relation is torsorial is therefore not sufficient as a +condition of being discrete. - is-prop-is-discrete-Relation : is-prop is-discrete-Relation - is-prop-is-discrete-Relation = - is-prop-type-Prop is-discrete-prop-Relation -``` +## Definitions ### The predicate on reflexive relations of being discrete @@ -66,7 +68,7 @@ module _ is-discrete-prop-Reflexive-Relation : Prop (l1 ⊔ l2) is-discrete-prop-Reflexive-Relation = - is-discrete-prop-Relation (rel-Reflexive-Relation R) + Π-Prop A (λ a → is-torsorial-Prop (rel-Reflexive-Relation R a)) is-discrete-Reflexive-Relation : UU (l1 ⊔ l2) is-discrete-Reflexive-Relation = @@ -78,6 +80,18 @@ module _ is-prop-type-Prop is-discrete-prop-Reflexive-Relation ``` +### The predicate on relations of being discrete + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (R : Relation l2 A) + where + + is-discrete-Relation : UU (l1 ⊔ l2) + is-discrete-Relation = + Σ (is-reflexive R) (λ r → is-discrete-Reflexive-Relation (R , r)) +``` + ### The standard discrete relation on a type ```agda @@ -86,5 +100,6 @@ module _ where is-discrete-Id-Relation : is-discrete-Relation (Id {A = A}) - is-discrete-Id-Relation = is-torsorial-Id + pr1 is-discrete-Id-Relation x = refl + pr2 is-discrete-Id-Relation = is-torsorial-Id ``` diff --git a/src/foundation/functional-correspondences.lagda.md b/src/foundation/functional-correspondences.lagda.md index a615239cd0..7d865389b2 100644 --- a/src/foundation/functional-correspondences.lagda.md +++ b/src/foundation/functional-correspondences.lagda.md @@ -14,6 +14,7 @@ open import foundation.equality-dependent-function-types open import foundation.function-extensionality open import foundation.fundamental-theorem-of-identity-types open import foundation.subtype-identity-principle +open import foundation.torsorial-type-families open import foundation.univalence open import foundation.universe-levels @@ -21,18 +22,19 @@ open import foundation-core.equivalences open import foundation-core.identity-types open import foundation-core.propositions open import foundation-core.subtypes -open import foundation-core.torsorial-type-families ```
## Idea -A functional dependent correspondence is a dependent binary correspondence -`C : Π (a : A) → B a → 𝒰` from a type `A` to a type family `B` over `A` such -that for every `a : A` the type `Σ (b : B a), C a b` is contractible. The type -of dependent functions from `A` to `B` is equivalent to the type of functional -dependent correspondences. +A +{{#concept "functional dependent correspondence" Agda=is-functional-dependent-correspondence}} +is a dependent binary correspondence `C : Π (a : A) → B a → 𝒰` from a type `A` +to a type family `B` over `A` such that for every `a : A` the type family +`C a : B a → Type` is [torsorial](foundation-core.torsorial-type-families.md). +The type of dependent functions from `A` to `B` is equivalent to the type of +functional dependent correspondences. ## Definition @@ -41,7 +43,7 @@ is-functional-correspondence-Prop : {l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} (C : (a : A) → B a → UU l3) → Prop (l1 ⊔ l2 ⊔ l3) is-functional-correspondence-Prop {A = A} {B} C = - Π-Prop A (λ x → is-contr-Prop (Σ (B x) (C x))) + Π-Prop A (λ x → is-torsorial-Prop (C x)) is-functional-correspondence : {l1 l2 l3 : Level} {A : UU l1} {B : A → UU l2} (C : (a : A) → B a → UU l3) → diff --git a/src/graph-theory/discrete-graphs.lagda.md b/src/graph-theory/discrete-graphs.lagda.md index 4e5a0b8a2a..66d5ead85e 100644 --- a/src/graph-theory/discrete-graphs.lagda.md +++ b/src/graph-theory/discrete-graphs.lagda.md @@ -24,38 +24,43 @@ open import graph-theory.reflexive-graphs ## Idea -A [directed graph](graph-theory.directed-graphs.md) `G ≐ (V , E)` is said to be -{{#concept "discrete" Disambiguation="graph" Agda=is-discrete-Graph}} if, for -every vertex `x : V`, the type family of edges with source `x`, `E x`, is -[torsorial](foundation-core.torsorial-type-families.md). In other words, if the -[dependent sum](foundation.dependent-pair-types.md) `Σ (y : V), (E x y)` is +A [reflexive graph](graph-theory.reflexive-graphs.md) `G ≐ (V , E , r)` is said +to be +{{#concept "discrete" Disambiguation="reflexive graph" Agda=is-discrete-Reflexive-Graph}} +if, for every vertex `x : V`, the type family of edges with source `x`, `E x`, +is [torsorial](foundation-core.torsorial-type-families.md). In other words, if +the [dependent sum](foundation.dependent-pair-types.md) `Σ (y : V), (E x y)` is [contractible](foundation-core.contractible-types.md) for every `x`. The -{{#concept "standard discrete graph"}} associated to a type `X` is the graph -whose vertices are elements of `X`, and edges are +{{#concept "standard discrete graph"}} associated to a type `X` is the reflexive +graph whose vertices are elements of `X`, and edges are [identifications](foundation-core.identity-types.md), ```text E x y := (x = y). ``` -## Definitions +More generally, a [directed graph](graph-theory.directed-graphs.md) +`G ≐ (V , E)` is said to be +{{#concept "discrete" Disambiguation="directed graph" Agda=is-discrete-Directed-Graph}} +if it is reflexive and discrete as a reflexive graph. Being discrete for +directed graphs is therefore not a property. -### The predicate on graphs of being discrete +Note that the directed graph with `V := ℕ` the +[natural numbers](elementary-number-theory.natural-numbers.md) and +`E m n := (m + 1 = n)` as in -```agda -module _ - {l1 l2 : Level} (G : Directed-Graph l1 l2) - where +```text + 0 ---> 1 ---> 2 ---> ⋯ +``` - is-discrete-prop-Graph : Prop (l1 ⊔ l2) - is-discrete-prop-Graph = is-discrete-prop-Relation (edge-Directed-Graph G) +satisfies the condition that the type family `E m` is torsorial for every +`m : ℕ`, simply because `E` is a +[functional correspondence](foundation.functional-correspondences.md). - is-discrete-Graph : UU (l1 ⊔ l2) - is-discrete-Graph = type-Prop is-discrete-prop-Graph +The condition that the edge relation on a directed graph is torsorial is +therefore not sufficient as a condition of being discrete. - is-prop-is-discrete-Graph : is-prop is-discrete-Graph - is-prop-is-discrete-Graph = is-prop-type-Prop is-discrete-prop-Graph -``` +## Definitions ### The predicate on reflexive graphs of being discrete @@ -66,7 +71,8 @@ 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-Reflexive-Relation + ( edge-reflexive-relation-Reflexive-Graph G) is-discrete-Reflexive-Graph : UU (l1 ⊔ l2) is-discrete-Reflexive-Graph = @@ -76,3 +82,14 @@ module _ is-prop-is-discrete-Reflexive-Graph = is-prop-type-Prop is-discrete-prop-Reflexive-Graph ``` + +### The predicate on graphs of being discrete + +```agda +module _ + {l1 l2 : Level} (G : Directed-Graph l1 l2) + where + + is-discrete-Directed-Graph : UU (l1 ⊔ l2) + is-discrete-Directed-Graph = is-discrete-Relation (edge-Directed-Graph G) +``` diff --git a/src/graph-theory/reflexive-graphs.lagda.md b/src/graph-theory/reflexive-graphs.lagda.md index 76f15912ae..a64a9e16cf 100644 --- a/src/graph-theory/reflexive-graphs.lagda.md +++ b/src/graph-theory/reflexive-graphs.lagda.md @@ -8,6 +8,7 @@ module graph-theory.reflexive-graphs where ```agda open import foundation.dependent-pair-types +open import foundation.reflexive-relations open import foundation.universe-levels open import graph-theory.directed-graphs @@ -41,6 +42,11 @@ module _ refl-Reflexive-Graph : (x : vertex-Reflexive-Graph) → edge-Reflexive-Graph x x refl-Reflexive-Graph = pr2 (pr2 G) + edge-reflexive-relation-Reflexive-Graph : + Reflexive-Relation l2 vertex-Reflexive-Graph + pr1 edge-reflexive-relation-Reflexive-Graph = edge-Reflexive-Graph + pr2 edge-reflexive-relation-Reflexive-Graph = refl-Reflexive-Graph + graph-Reflexive-Graph : Directed-Graph l1 l2 graph-Reflexive-Graph = vertex-Reflexive-Graph , edge-Reflexive-Graph ``` From bf7aab7c1aa0a1d0c6eeea4615e87ddeb11fd6fe Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 14:41:49 -0500 Subject: [PATCH 58/87] Update src/foundation/discrete-relations.lagda.md Co-authored-by: Fredrik Bakke --- src/foundation/discrete-relations.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/foundation/discrete-relations.lagda.md b/src/foundation/discrete-relations.lagda.md index 3ed3b137a2..ffa8015d23 100644 --- a/src/foundation/discrete-relations.lagda.md +++ b/src/foundation/discrete-relations.lagda.md @@ -30,7 +30,7 @@ if, for every element `x : A`, the type family `R x` is [contractible](foundation-core.contractible-types.md) for every `x`. The -{{#concept "standard discrete relation" Disambiguation="binary relations valued in types"}} +{{#concept "standard discrete relation" Disambiguation="reflexive relations valued in types"}} on a type `X` is the relation defined by [identifications](foundation-core.identity-types.md), From 79b6cf20e6be67b92b1b49cbdde7419c3aa39e65 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 14:54:27 -0500 Subject: [PATCH 59/87] fix broken Agda reference --- src/foundation/functional-correspondences.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/foundation/functional-correspondences.lagda.md b/src/foundation/functional-correspondences.lagda.md index 7d865389b2..ed5998a661 100644 --- a/src/foundation/functional-correspondences.lagda.md +++ b/src/foundation/functional-correspondences.lagda.md @@ -29,7 +29,7 @@ open import foundation-core.subtypes ## Idea A -{{#concept "functional dependent correspondence" Agda=is-functional-dependent-correspondence}} +{{#concept "functional (dependent) correspondence" Agda=is-functional-correspondence}} is a dependent binary correspondence `C : Π (a : A) → B a → 𝒰` from a type `A` to a type family `B` over `A` such that for every `a : A` the type family `C a : B a → Type` is [torsorial](foundation-core.torsorial-type-families.md). From bc2b2be5df83239826bffa237d0d62fed834896e Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Thu, 14 Nov 2024 21:31:31 -0500 Subject: [PATCH 60/87] factor out discrete globular types --- src/structured-types.lagda.md | 2 + .../discrete-globular-types.lagda.md | 75 ++++++++++ src/structured-types/globular-types.lagda.md | 25 ++-- .../large-symmetric-globular-types.lagda.md | 129 ++++++++++++------ .../reflexive-globular-types.lagda.md | 25 ---- .../standard-discrete-globular-types.lagda.md | 119 ++++++++++++++++ .../symmetric-globular-types.lagda.md | 119 +++++++++------- .../transitive-globular-types.lagda.md | 30 ---- .../wild-category-of-pointed-types.lagda.md | 7 +- 9 files changed, 361 insertions(+), 170 deletions(-) create mode 100644 src/structured-types/discrete-globular-types.lagda.md create mode 100644 src/structured-types/standard-discrete-globular-types.lagda.md diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index e6077dea99..8d11317242 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -33,6 +33,7 @@ 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.discrete-globular-types 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 @@ -112,6 +113,7 @@ 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.standard-discrete-globular-types public open import structured-types.superglobular-types public open import structured-types.symmetric-elements-involutive-types public open import structured-types.symmetric-globular-types public diff --git a/src/structured-types/discrete-globular-types.lagda.md b/src/structured-types/discrete-globular-types.lagda.md new file mode 100644 index 0000000000..5cad51b829 --- /dev/null +++ b/src/structured-types/discrete-globular-types.lagda.md @@ -0,0 +1,75 @@ +# Discrete globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.discrete-globular-types where +``` + +
Imports + +```agda +open import foundation.torsorial-type-families +open import foundation.universe-levels + +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A [reflexive globular type](structured-types.reflexive-globular-types.md) is +said to be +{{#concept "discrete" Disambiguation="reflexive globular type" Agda=is-discrete-Reflexive-Globular-Type}} +if: + +- For every 0-cell `x` the type family `G₁ x` of 1-cells out of `x` is + [torsorial](foundation-core.torsorial-type-families.md), and +- For every two 0-cells `x` and `y` the reflexive globular type `G' x y` is + discrete. + +## Definitions + +### The predicate of being a discrete globular type + +```agda +record + is-discrete-Reflexive-Globular-Type + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) : UU (l1 ⊔ l2) + where + coinductive + + field + is-torsorial-1-cell-is-discrete-Reflexive-Globular-Type : + (x : 0-cell-Reflexive-Globular-Type G) → + is-torsorial (1-cell-Reflexive-Globular-Type G x) + + field + is-discrete-1-cell-reflexive-globular-type-is-discrete-Reflexive-Globular-Type : + (x y : 0-cell-Reflexive-Globular-Type G) → + is-discrete-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + +open is-discrete-Reflexive-Globular-Type public +``` + +### Discrete globular types + +```agda +record + Discrete-Globular-Type + (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) + where + + field + reflexive-globular-type-Discrete-Globular-Type : + Reflexive-Globular-Type l1 l2 + + field + is-discrete-Discrete-Globular-Type : + is-discrete-Reflexive-Globular-Type + reflexive-globular-type-Discrete-Globular-Type + +open Discrete-Globular-Type public +``` diff --git a/src/structured-types/globular-types.lagda.md b/src/structured-types/globular-types.lagda.md index cf5be75770..ae9cff7301 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/structured-types/globular-types.lagda.md @@ -51,6 +51,12 @@ equivalently have started by defining globular types, and then define globular structures on a type as binary families of globular types on it, but this is a special property of globular types. +Every type has the structure of a globular type, where the globular structure is +obtained from the [identity type](foundation-core.identity-types.md). The +globular type obtained from a type `A` and its iterated identity types is called +the +[standard discrete globular type](structured-types.standard-discrete-globular-types.md). + ## Definitions ### The structure of a globular type @@ -304,25 +310,10 @@ globular-structure-5-cell-Globular-Type A = ( 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 +- [Discrete globular types](structured-types.discrete-globular-types.md) - [Reflexive globular types](structured-types.reflexive-globular-types.md) +- [Superglobular types](structured-types.superglobular-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-symmetric-globular-types.lagda.md b/src/structured-types/large-symmetric-globular-types.lagda.md index 73b86a8c71..b3344cfe9f 100644 --- a/src/structured-types/large-symmetric-globular-types.lagda.md +++ b/src/structured-types/large-symmetric-globular-types.lagda.md @@ -12,6 +12,7 @@ module structured-types.large-symmetric-globular-types where 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.symmetric-globular-types ``` @@ -20,57 +21,101 @@ open import structured-types.symmetric-globular-types ## Idea -We say a [large globular type](structured-types.large-globular-types.md) is -{{#concept "symmetric" Disambiguation="large globular type" Agda=is-symmetric-large-globular-structure}} +We say that a [large globular type](structured-types.large-globular-types.md) is +{{#concept "symmetric" Disambiguation="large globular type" Agda=is-symmetric-Large-Globular-Type}} if there is a symmetry action on its $n$-cells for positive $n$, mapping $n$-cells from `x` to `y` to $n$-cells from `y` to `x`. -## Definition +## Definitions -### Symmetry structure on a large globular structure +### Symmetry structure on a large globular type ```agda record - is-symmetric-large-globular-structure - {α : Level → Level} {β : Level → Level → Level} - {A : (l : Level) → UU (α l)} - (G : large-globular-structure β A) : UUω + is-symmetric-Large-Globular-Type + {α : Level → Level} {β : Level → Level → Level} + (G : Large-Globular-Type α β) : + UUω where + + field + inv-1-cell-is-symmetric-Large-Globular-Type : + is-symmetric-Large-Relation + ( 0-cell-Large-Globular-Type G) + ( 1-cell-Large-Globular-Type G) + field - is-symmetric-1-cell-is-symmetric-large-globular-structure : - is-symmetric-Large-Relation A (1-cell-large-globular-structure G) - is-symmetric-globular-structure-1-cell-is-symmetric-large-globular-structure : - {l1 l2 : Level} (x : A l1) (y : A l2) → - is-symmetric-globular-structure - ( globular-structure-1-cell-large-globular-structure G x y) - -open is-symmetric-large-globular-structure public - -module _ - {α : Level → Level} {β : Level → Level → Level} - {A : (l : Level) → UU (α l)} - (G : large-globular-structure β A) - (r : is-symmetric-large-globular-structure G) + is-symmetric-1-cell-globular-type-is-symmetric-Large-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Globular-Type G l1) → + (y : 0-cell-Large-Globular-Type G l2) → + is-symmetric-Globular-Type + ( 1-cell-globular-type-Large-Globular-Type G x y) + +open is-symmetric-Large-Globular-Type public +``` + +### Large symmetric globular types + +```agda +record + Large-Symmetric-Globular-Type + (α : Level → Level) (β : Level → Level → Level) : + UUω where - sym-1-cell-is-symmetric-large-globular-structure : - {l1 l2 : Level} {x : A l1} {y : A l2} → - 1-cell-large-globular-structure G x y → - 1-cell-large-globular-structure G y x - sym-1-cell-is-symmetric-large-globular-structure {x = x} {y} = - is-symmetric-1-cell-is-symmetric-large-globular-structure r x y - - sym-2-cell-is-symmetric-large-globular-structure : - {l1 l2 : Level} {x : A l1} {y : A l2} - {f g : 1-cell-large-globular-structure G x y} → - 2-cell-large-globular-structure G f g → - 2-cell-large-globular-structure G g f - sym-2-cell-is-symmetric-large-globular-structure {x = x} {y} {f} {g} = - is-symmetric-1-cell-is-symmetric-globular-structure - ( is-symmetric-globular-structure-1-cell-is-symmetric-large-globular-structure - ( r) - ( x) - ( y)) - ( f) - ( g) + field + large-globular-type-Large-Symmetric-Globular-Type : + Large-Globular-Type α β + + 0-cell-Large-Symmetric-Globular-Type : + (l1 : Level) → UU (α l1) + 0-cell-Large-Symmetric-Globular-Type = + 0-cell-Large-Globular-Type large-globular-type-Large-Symmetric-Globular-Type + + 1-cell-globular-type-Large-Symmetric-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Symmetric-Globular-Type l1) + (y : 0-cell-Large-Symmetric-Globular-Type l2) → + Globular-Type (β l1 l2) (β l1 l2) + 1-cell-globular-type-Large-Symmetric-Globular-Type = + 1-cell-globular-type-Large-Globular-Type + large-globular-type-Large-Symmetric-Globular-Type + + 1-cell-Large-Symmetric-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Symmetric-Globular-Type l1) + (y : 0-cell-Large-Symmetric-Globular-Type l2) → + UU (β l1 l2) + 1-cell-Large-Symmetric-Globular-Type = + 1-cell-Large-Globular-Type large-globular-type-Large-Symmetric-Globular-Type + + field + is-symmetric-Large-Symmetric-Globular-Type : + is-symmetric-Large-Globular-Type + large-globular-type-Large-Symmetric-Globular-Type + + inv-1-cell-Large-Symmetric-Globular-Type : + {l1 l2 : Level} + {x : 0-cell-Large-Symmetric-Globular-Type l1} + {y : 0-cell-Large-Symmetric-Globular-Type l2} → + 1-cell-Large-Symmetric-Globular-Type x y → + 1-cell-Large-Symmetric-Globular-Type y x + inv-1-cell-Large-Symmetric-Globular-Type = + inv-1-cell-is-symmetric-Large-Globular-Type + is-symmetric-Large-Symmetric-Globular-Type + _ + _ + + is-symmetric-1-cell-globular-type-Large-Symmetric-Globular-Type : + {l1 l2 : Level} + (x : 0-cell-Large-Symmetric-Globular-Type l1) + (y : 0-cell-Large-Symmetric-Globular-Type l2) → + is-symmetric-Globular-Type + ( 1-cell-globular-type-Large-Symmetric-Globular-Type x y) + is-symmetric-1-cell-globular-type-Large-Symmetric-Globular-Type = + is-symmetric-1-cell-globular-type-is-symmetric-Large-Globular-Type + is-symmetric-Large-Symmetric-Globular-Type + +open Large-Symmetric-Globular-Type public ``` diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/structured-types/reflexive-globular-types.lagda.md index 8dbc0df93b..148a661bf4 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/structured-types/reflexive-globular-types.lagda.md @@ -322,31 +322,6 @@ module _ 1-cell-globular-map-globular-map f ``` -## Examples - -### 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-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-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 - [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) diff --git a/src/structured-types/standard-discrete-globular-types.lagda.md b/src/structured-types/standard-discrete-globular-types.lagda.md new file mode 100644 index 0000000000..f41e349201 --- /dev/null +++ b/src/structured-types/standard-discrete-globular-types.lagda.md @@ -0,0 +1,119 @@ +# The standard discrete globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.standard-discrete-globular-types where +``` + +
Imports + +```agda +open import foundation.identity-types +open import foundation.torsorial-type-families +open import foundation.universe-levels + +open import structured-types.discrete-globular-types +open import structured-types.globular-types +open import structured-types.reflexive-globular-types +open import structured-types.symmetric-globular-types +open import structured-types.transitive-globular-types +``` + +
+ +## Idea + +The {{#concept "standard discrete globular type"}} at a type `A` is the +[globular type](structured-types.globular-types.md) obtained from the iterated +[identity types](foundation-core.identity-types.md) on `A`. This globular type +is [reflexive](structured-types.reflexive-globular-types.md), +[transitive](structured-types.transitive-globular-types.md), and indeed +[discrete](structured-types.discrete-globular-types.md). + +## Definitions + +### The standard discrete globular types + +```agda +module _ + {l : Level} + where + + discrete-Globular-Type : UU l → Globular-Type l l + 0-cell-Globular-Type (discrete-Globular-Type A) = + A + 1-cell-globular-type-Globular-Type ( discrete-Globular-Type A) x y = + discrete-Globular-Type (x = y) + + refl-discrete-Globular-Type : + {A : UU l} → is-reflexive-Globular-Type (discrete-Globular-Type A) + is-reflexive-1-cell-is-reflexive-Globular-Type refl-discrete-Globular-Type x = + refl + is-reflexive-1-cell-globular-type-is-reflexive-Globular-Type + refl-discrete-Globular-Type = + refl-discrete-Globular-Type + + discrete-Reflexive-Globular-Type : + (A : UU l) → Reflexive-Globular-Type l l + globular-type-Reflexive-Globular-Type (discrete-Reflexive-Globular-Type A) = + discrete-Globular-Type A + refl-Reflexive-Globular-Type (discrete-Reflexive-Globular-Type A) = + refl-discrete-Globular-Type + + is-discrete-standard-Discrete-Globular-Type : + {A : UU l} → + is-discrete-Reflexive-Globular-Type (discrete-Reflexive-Globular-Type A) + is-torsorial-1-cell-is-discrete-Reflexive-Globular-Type + is-discrete-standard-Discrete-Globular-Type x = + is-torsorial-Id x + is-discrete-1-cell-reflexive-globular-type-is-discrete-Reflexive-Globular-Type + is-discrete-standard-Discrete-Globular-Type x y = + is-discrete-standard-Discrete-Globular-Type + + standard-Discrete-Globular-Type : + UU l → Discrete-Globular-Type l l + reflexive-globular-type-Discrete-Globular-Type + ( standard-Discrete-Globular-Type A) = + discrete-Reflexive-Globular-Type A + is-discrete-Discrete-Globular-Type + ( standard-Discrete-Globular-Type A) = + is-discrete-standard-Discrete-Globular-Type +``` + +## Properties + +### The standard discrete globular types are transitive + +```agda +is-transitive-discrete-Globular-Type : + {l : Level} {A : UU l} → + is-transitive-Globular-Type (discrete-Globular-Type A) +comp-1-cell-is-transitive-Globular-Type + is-transitive-discrete-Globular-Type q p = + p ∙ q +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + is-transitive-discrete-Globular-Type = + is-transitive-discrete-Globular-Type + +discrete-Transitive-Globular-Type : + {l : Level} (A : UU l) → Transitive-Globular-Type l l +globular-type-Transitive-Globular-Type (discrete-Transitive-Globular-Type A) = + discrete-Globular-Type A +is-transitive-Transitive-Globular-Type (discrete-Transitive-Globular-Type A) = + is-transitive-discrete-Globular-Type +``` + +### The standard discrete globular types are symmetric + +```agda +is-symmetric-discrete-Globular-Type : + {l : Level} {A : UU l} → + is-symmetric-Globular-Type (discrete-Globular-Type A) +is-symmetric-1-cell-is-symmetric-Globular-Type + is-symmetric-discrete-Globular-Type a b = + inv +is-symmetric-1-cell-globular-type-is-symmetric-Globular-Type + is-symmetric-discrete-Globular-Type x y = + is-symmetric-discrete-Globular-Type +``` diff --git a/src/structured-types/symmetric-globular-types.lagda.md b/src/structured-types/symmetric-globular-types.lagda.md index b84c03ea08..3a05599770 100644 --- a/src/structured-types/symmetric-globular-types.lagda.md +++ b/src/structured-types/symmetric-globular-types.lagda.md @@ -22,76 +22,89 @@ open import structured-types.globular-types ## Idea We say a [globular type](structured-types.globular-types.md) is -{{#concept "symmetric" Disambiguation="globular type" Agda=is-symmetric-globular-structure}} +{{#concept "symmetric" Disambiguation="globular type" Agda=is-symmetric-Globular-Type}} if there is a symmetry action on its $n$-cells for positive $n$, mapping $n$-cells from `x` to `y` to $n$-cells from `y` to `x`. ## Definition -### Symmetry structure on a globular structure +### Symmetry structure on a globular type ```agda record - is-symmetric-globular-structure - {l1 l2 : Level} {A : UU l1} (G : globular-structure l2 A) : UU (l1 ⊔ l2) + is-symmetric-Globular-Type + {l1 l2 : Level} (G : Globular-Type l1 l2) : UU (l1 ⊔ l2) where coinductive + field - is-symmetric-1-cell-is-symmetric-globular-structure : - is-symmetric (1-cell-globular-structure G) - is-symmetric-globular-structure-1-cell-is-symmetric-globular-structure : - (x y : A) → - is-symmetric-globular-structure - ( globular-structure-1-cell-globular-structure G x y) - -open is-symmetric-globular-structure public - -module _ - {l1 l2 : Level} {A : UU l1} {G : globular-structure l2 A} - (r : is-symmetric-globular-structure G) - where + is-symmetric-1-cell-is-symmetric-Globular-Type : + is-symmetric (1-cell-Globular-Type G) + + field + is-symmetric-1-cell-globular-type-is-symmetric-Globular-Type : + (x y : 0-cell-Globular-Type G) → + is-symmetric-Globular-Type (1-cell-globular-type-Globular-Type G x y) - sym-1-cell-is-symmetric-globular-structure : - {x y : A} → - 1-cell-globular-structure G x y → 1-cell-globular-structure G y x - sym-1-cell-is-symmetric-globular-structure {x} {y} = - is-symmetric-1-cell-is-symmetric-globular-structure r x y - - sym-2-cell-is-symmetric-globular-structure : - {x y : A} {f g : 1-cell-globular-structure G x y} → - 2-cell-globular-structure G f g → - 2-cell-globular-structure G g f - sym-2-cell-is-symmetric-globular-structure {x} {y} {f} {g} = - is-symmetric-1-cell-is-symmetric-globular-structure - ( is-symmetric-globular-structure-1-cell-is-symmetric-globular-structure - ( r) - ( x) - ( y)) - ( f) - ( g) +open is-symmetric-Globular-Type public ``` -### The type of symmetric globular structures +### Symmetric globular types ```agda -symmetric-globular-structure : - {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) -symmetric-globular-structure l2 A = - Σ (globular-structure l2 A) (is-symmetric-globular-structure) -``` +record + Symmetric-Globular-Type + (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) + where -## Examples + field + globular-type-Symmetric-Globular-Type : Globular-Type l1 l2 -### The symmetric globular structure on a type given by its identity types + 0-cell-Symmetric-Globular-Type : UU l1 + 0-cell-Symmetric-Globular-Type = + 0-cell-Globular-Type globular-type-Symmetric-Globular-Type -```agda -is-symmetric-globular-structure-Id : - {l : Level} (A : UU l) → - is-symmetric-globular-structure (globular-structure-Id A) -is-symmetric-globular-structure-Id A = - λ where - .is-symmetric-1-cell-is-symmetric-globular-structure x y → - inv - .is-symmetric-globular-structure-1-cell-is-symmetric-globular-structure x y → - is-symmetric-globular-structure-Id (x = y) + 1-cell-globular-type-Symmetric-Globular-Type : + (x y : 0-cell-Symmetric-Globular-Type) → + Globular-Type l2 l2 + 1-cell-globular-type-Symmetric-Globular-Type = + 1-cell-globular-type-Globular-Type globular-type-Symmetric-Globular-Type + + 1-cell-Symmetric-Globular-Type : + (x y : 0-cell-Symmetric-Globular-Type) → UU l2 + 1-cell-Symmetric-Globular-Type = + 1-cell-Globular-Type globular-type-Symmetric-Globular-Type + + field + is-symmetric-Symmetric-Globular-Type : + is-symmetric-Globular-Type globular-type-Symmetric-Globular-Type + + inv-1-cell-Symmetric-Globular-Type : + {x y : 0-cell-Symmetric-Globular-Type} → + 1-cell-Symmetric-Globular-Type x y → 1-cell-Symmetric-Globular-Type y x + inv-1-cell-Symmetric-Globular-Type = + is-symmetric-1-cell-is-symmetric-Globular-Type + is-symmetric-Symmetric-Globular-Type + _ + _ + + is-symmetric-1-cell-globular-type-Symmetric-Globular-Type : + (x y : 0-cell-Symmetric-Globular-Type) → + is-symmetric-Globular-Type + ( 1-cell-globular-type-Symmetric-Globular-Type x y) + is-symmetric-1-cell-globular-type-Symmetric-Globular-Type = + is-symmetric-1-cell-globular-type-is-symmetric-Globular-Type + is-symmetric-Symmetric-Globular-Type + + 1-cell-symmetric-globular-type-Symmetric-Globular-Type : + (x y : 0-cell-Symmetric-Globular-Type) → + Symmetric-Globular-Type l2 l2 + globular-type-Symmetric-Globular-Type + ( 1-cell-symmetric-globular-type-Symmetric-Globular-Type x y) = + 1-cell-globular-type-Symmetric-Globular-Type x y + is-symmetric-Symmetric-Globular-Type + ( 1-cell-symmetric-globular-type-Symmetric-Globular-Type x y) = + is-symmetric-1-cell-globular-type-Symmetric-Globular-Type x y + +open Symmetric-Globular-Type public ``` diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/structured-types/transitive-globular-types.lagda.md index 2aebbc4a2f..39a12d99f8 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/structured-types/transitive-globular-types.lagda.md @@ -321,36 +321,6 @@ module _ 1-cell-globular-map f ``` -## Examples - -### 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-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) -comp-1-cell-is-transitive-Globular-Type - ( is-transitive-globular-structure-Id A) q p = p ∙ q -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 : - {l : Level} (A : UU l) → transitive-globular-structure l A -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/wild-category-of-pointed-types.lagda.md b/src/structured-types/wild-category-of-pointed-types.lagda.md index ad6769e66a..05123ab25c 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -27,6 +27,7 @@ open import structured-types.pointed-homotopies open import structured-types.pointed-maps open import structured-types.pointed-types open import structured-types.reflexive-globular-types +open import structured-types.standard-discrete-globular-types open import structured-types.transitive-globular-types open import structured-types.uniform-pointed-homotopies @@ -184,7 +185,7 @@ pointed-htpy-Globular-Type : (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) + discrete-Globular-Type (pointed-2-htpy H K) pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → @@ -222,7 +223,7 @@ is-reflexive-1-cell-is-reflexive-Globular-Type refl-pointed-2-htpy 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 _ _) + refl-discrete-Globular-Type pointed-htpy-Reflexive-Globular-Type : {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Fam l2 A} @@ -296,7 +297,7 @@ comp-1-cell-is-transitive-Globular-Type concat-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-discrete-Globular-Type is-transitive-pointed-Π-Globular-Type : {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → From 7d0819d76709e798844bb4fe0f53801c4111fd93 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 08:18:41 -0500 Subject: [PATCH 61/87] implementing discreteness via adjointness --- src/foundation.lagda.md | 3 +- .../discrete-binary-relations.lagda.md | 75 +++++++++++++++++ ... => discrete-reflexive-relations.lagda.md} | 55 ++++-------- src/graph-theory.lagda.md | 3 +- .../discrete-directed-graphs.lagda.md | 83 +++++++++++++++++++ ....md => discrete-reflexive-graphs.lagda.md} | 30 +------ 6 files changed, 181 insertions(+), 68 deletions(-) create mode 100644 src/foundation/discrete-binary-relations.lagda.md rename src/foundation/{discrete-relations.lagda.md => discrete-reflexive-relations.lagda.md} (53%) create mode 100644 src/graph-theory/discrete-directed-graphs.lagda.md rename src/graph-theory/{discrete-graphs.lagda.md => discrete-reflexive-graphs.lagda.md} (72%) diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index 17148ba8de..faceb4f886 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -130,7 +130,8 @@ open import foundation.diagonal-maps-of-types public open import foundation.diagonal-span-diagrams public open import foundation.diagonals-of-maps public open import foundation.diagonals-of-morphisms-arrows public -open import foundation.discrete-relations public +open import foundation.discrete-binary-relations public +open import foundation.discrete-reflexive-relations public open import foundation.discrete-relaxed-sigma-decompositions public open import foundation.discrete-sigma-decompositions public open import foundation.discrete-types public diff --git a/src/foundation/discrete-binary-relations.lagda.md b/src/foundation/discrete-binary-relations.lagda.md new file mode 100644 index 0000000000..c35d108444 --- /dev/null +++ b/src/foundation/discrete-binary-relations.lagda.md @@ -0,0 +1,75 @@ +# Discrete binary relations + +```agda +module foundation.discrete-binary-relations where +``` + +
Imports + +```agda +open import foundation.binary-relations +open import foundation.empty-types +open import foundation.propositions +open import foundation.universe-levels +``` + +
+ +## Idea + +A [binary relation](foundation.binary-relations.md) `R` on `A` is said to be +{{#concept "discrete" Disambiguation="binary relation" Agda=is-discrete-Relation}} +if it does not relate any elements, i.e., if the type `R x y` is empty for all +`x y : A`. In other words, a binary relation is discrete if and only if it is +the initial binary relation. This definition ensures that the inclusion of +[discrete directed graphs](graph-theory.discrete-directed-graphs.md) is a left +adjoint to the forgetful functor `(V , E) ↦ (V , ∅)`. + +The condition of discreteness of binary relations compares to the condition of +[discreteness](foundation.discrete-reflexive-relations.md) of +[reflexive relations](foundation.reflexive-relations.md) in the sense that both +conditions imply initiality. Nevertheless, the condition of discreteness on +reflexive relations asserts that the type family `R x` is +[torsorial](foundation-core.torsorial-type-families.md) for every `x : A`, which +looks quite differently. + +The condition of torsoriality is not adequate as a condition for discreteness +for arbitrary binary relations. For example, the binary relation on +[natural numbers](elementary-number-theory.natural-numbers.md) given by +`R m n := (m + 1 = n)`, relating natural numbers as follows + +```text + 0 ---> 1 ---> 2 ---> ⋯, +``` + +satisfies the condition that the type family `R m` is torsorial for every +`m : ℕ`, simply because the relation `R` is a +[functional correspondence](foundation.functional-correspondences.md). Since +this relation relates distinct elements, it is typically not considered to be +discrete. + +## Definitions + +### The predicate on relations of being discrete + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (R : Relation l2 A) + where + + is-discrete-prop-Relation : Prop (l1 ⊔ l2) + is-discrete-prop-Relation = + Π-Prop A (λ x → Π-Prop A (λ y → is-empty-Prop (R x y))) + + is-discrete-Relation : UU (l1 ⊔ l2) + is-discrete-Relation = type-Prop is-discrete-prop-Relation + + is-prop-is-discrete-Relation : is-prop is-discrete-Relation + is-prop-is-discrete-Relation = is-prop-type-Prop is-discrete-prop-Relation +``` + +## See also + +- [Discrete reflexive relations](foundation.discrete-reflexive-relations.md) +- [Discrete directed graphs](graph-theory.discrete-directed-graphs.md) +- [Discrete-reflexive graphs](graph-theory.discrete-reflexive-graphs.md) diff --git a/src/foundation/discrete-relations.lagda.md b/src/foundation/discrete-reflexive-relations.lagda.md similarity index 53% rename from src/foundation/discrete-relations.lagda.md rename to src/foundation/discrete-reflexive-relations.lagda.md index ffa8015d23..236e380874 100644 --- a/src/foundation/discrete-relations.lagda.md +++ b/src/foundation/discrete-reflexive-relations.lagda.md @@ -1,7 +1,7 @@ -# Discrete relations +# Discrete reflexive relations ```agda -module foundation.discrete-relations where +module foundation.discrete-reflexive-relations where ```
Imports @@ -29,34 +29,13 @@ if, for every element `x : A`, the type family `R x` is [dependent sum](foundation.dependent-pair-types.md) `Σ (y : A), (R x y)` is [contractible](foundation-core.contractible-types.md) for every `x`. -The -{{#concept "standard discrete relation" Disambiguation="reflexive relations valued in types"}} -on a type `X` is the relation defined by -[identifications](foundation-core.identity-types.md), +The {{#concept "standard discrete reflexive relation"}} on a type `X` is the +relation defined by [identifications](foundation-core.identity-types.md), ```text R x y := (x = y). ``` -More generally, a binary relation `R` on `A` is said to be -{{#concept "discrete" Disambiguation="binary relation" Agda=is-discrete-Relation}} -if it is reflexive and discrete as a reflexive relation. Being discrete for -binary relations is therefore not a property. - -Note that the directed relation on -[natural numbers](elementary-number-theory.natural-numbers.md) and -`E m n := (m + 1 = n)` as in - -```text - 0 ---> 1 ---> 2 ---> ⋯ -``` - -satisfies the condition that the type family `E m` is torsorial for every -`m : ℕ`, simply because the relation `E` is a -[functional correspondence](foundation.functional-correspondences.md). The -condition that a binary relation is torsorial is therefore not sufficient as a -condition of being discrete. - ## Definitions ### The predicate on reflexive relations of being discrete @@ -80,26 +59,22 @@ module _ is-prop-type-Prop is-discrete-prop-Reflexive-Relation ``` -### The predicate on relations of being discrete - -```agda -module _ - {l1 l2 : Level} {A : UU l1} (R : Relation l2 A) - where +## Properties - is-discrete-Relation : UU (l1 ⊔ l2) - is-discrete-Relation = - Σ (is-reflexive R) (λ r → is-discrete-Reflexive-Relation (R , r)) -``` - -### The standard discrete relation on a type +### The identity relation is discrete ```agda module _ {l : Level} (A : UU l) where - is-discrete-Id-Relation : is-discrete-Relation (Id {A = A}) - pr1 is-discrete-Id-Relation x = refl - pr2 is-discrete-Id-Relation = is-torsorial-Id + is-discrete-Id-Reflexive-Relation : + is-discrete-Reflexive-Relation (Id-Reflexive-Relation A) + is-discrete-Id-Reflexive-Relation = is-torsorial-Id ``` + +## See also + +- [Discrete binary relations](foundation.discrete-binary-relations.md) +- [Discrete directed graphs](graph-theory.discrete-directed-graphs.md) +- [Discrete reflexive graphs](graph-theory.discrete-reflexive-graphs.md) diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index 9ac8fd5589..4355ecf1c8 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -15,7 +15,8 @@ open import graph-theory.connected-undirected-graphs public open import graph-theory.cycles-undirected-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 +open import graph-theory.discrete-directed-graphs public +open import graph-theory.discrete-reflexive-graphs public open import graph-theory.displayed-large-reflexive-graphs public open import graph-theory.edge-coloured-undirected-graphs public open import graph-theory.embeddings-directed-graphs public diff --git a/src/graph-theory/discrete-directed-graphs.lagda.md b/src/graph-theory/discrete-directed-graphs.lagda.md new file mode 100644 index 0000000000..00282e04b3 --- /dev/null +++ b/src/graph-theory/discrete-directed-graphs.lagda.md @@ -0,0 +1,83 @@ +# Discrete directed graphs + +```agda +module graph-theory.discrete-directed-graphs where +``` + +
Imports + +```agda +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.discrete-binary-relations +open import foundation.universe-levels + +open import foundation-core.identity-types +open import foundation-core.propositions +open import foundation-core.torsorial-type-families + +open import graph-theory.directed-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +A [directed graph](graph-theory.directed-graphs.md) `G ≐ (V , E)` is said to be +{{#concept "discrete" Disambiguation="directed graph" Agda=is-discrete-Directed-Graph}} +if it has no edges. In other words, a directed graph is discrete if it is of the +form `Δ A`, where `Δ` is the left adjoint to the forgetful functor `(V , E) ↦ V` +from directed graphs to types. + +Recall that [reflexive graphs](graph-theory.reflexive-graphs.md) are said to be +discrete if the edge relation is +[torsorial](foundation-core.torsorial-type-families.md). The condition that a +directed graph is discrete compares to the condition that a reflexive graph is +discrete in the sense that in both cases discreteness implies initiality of the +edge relation: The empty relation is the initial relation, while the identity +relation is the initial reflexive relation. + +One may wonder if the torsoriality condition of discreteness shouldn't directly +carry over to the discreteness condition on directed graphs. Indeed, an earlier +implementation of discreteness in agda-unimath had this faulty definition. +However, this leads to examples that are not typically considered discrete. +Consider, for example, the directed graph with `V := ℕ` the +[natural numbers](elementary-number-theory.natural-numbers.md) and +`E m n := (m + 1 = n)` as in + +```text + 0 ---> 1 ---> 2 ---> ⋯. +``` + +This directed graph satisfies the condition that the type family `E m` is +torsorial for every `m : ℕ`, simply because `E` is a +[functional correspondence](foundation.functional-correspondences.md). However, +this graph is not considered discrete since it relates distinct vertices. + +## Definitions + +### The predicate on graphs of being discrete + +```agda +module _ + {l1 l2 : Level} (G : Directed-Graph l1 l2) + where + + is-discrete-prop-Directed-Graph : Prop (l1 ⊔ l2) + is-discrete-prop-Directed-Graph = + is-discrete-prop-Relation (edge-Directed-Graph G) + + is-discrete-Directed-Graph : UU (l1 ⊔ l2) + is-discrete-Directed-Graph = + is-discrete-Relation (edge-Directed-Graph G) + + is-prop-is-discrete-Directed-Graph : + is-prop is-discrete-Directed-Graph + is-prop-is-discrete-Directed-Graph = + is-prop-is-discrete-Relation (edge-Directed-Graph G) +``` + +## See also + +- [Discrete reflexive graphs](graph-theory.discrete-reflexive-graphs.md) diff --git a/src/graph-theory/discrete-graphs.lagda.md b/src/graph-theory/discrete-reflexive-graphs.lagda.md similarity index 72% rename from src/graph-theory/discrete-graphs.lagda.md rename to src/graph-theory/discrete-reflexive-graphs.lagda.md index 66d5ead85e..d413c8f30c 100644 --- a/src/graph-theory/discrete-graphs.lagda.md +++ b/src/graph-theory/discrete-reflexive-graphs.lagda.md @@ -1,7 +1,7 @@ -# Discrete graphs +# Discrete reflexive graphs ```agda -module graph-theory.discrete-graphs where +module graph-theory.discrete-reflexive-graphs where ```
Imports @@ -45,21 +45,6 @@ More generally, a [directed graph](graph-theory.directed-graphs.md) if it is reflexive and discrete as a reflexive graph. Being discrete for directed graphs is therefore not a property. -Note that the directed graph with `V := ℕ` the -[natural numbers](elementary-number-theory.natural-numbers.md) and -`E m n := (m + 1 = n)` as in - -```text - 0 ---> 1 ---> 2 ---> ⋯ -``` - -satisfies the condition that the type family `E m` is torsorial for every -`m : ℕ`, simply because `E` is a -[functional correspondence](foundation.functional-correspondences.md). - -The condition that the edge relation on a directed graph is torsorial is -therefore not sufficient as a condition of being discrete. - ## Definitions ### The predicate on reflexive graphs of being discrete @@ -83,13 +68,6 @@ module _ is-prop-type-Prop is-discrete-prop-Reflexive-Graph ``` -### The predicate on graphs of being discrete +## See also -```agda -module _ - {l1 l2 : Level} (G : Directed-Graph l1 l2) - where - - is-discrete-Directed-Graph : UU (l1 ⊔ l2) - is-discrete-Directed-Graph = is-discrete-Relation (edge-Directed-Graph G) -``` +- [Discrete directed graphs](graph-theory.discrete-directed-graphs.md) From fdd6436f7147ee8ff85aef1067683756ff768eb3 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 08:31:02 -0500 Subject: [PATCH 62/87] bugs --- src/graph-theory/discrete-reflexive-graphs.lagda.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/graph-theory/discrete-reflexive-graphs.lagda.md b/src/graph-theory/discrete-reflexive-graphs.lagda.md index d413c8f30c..f6431a63df 100644 --- a/src/graph-theory/discrete-reflexive-graphs.lagda.md +++ b/src/graph-theory/discrete-reflexive-graphs.lagda.md @@ -9,7 +9,7 @@ module graph-theory.discrete-reflexive-graphs where ```agda open import foundation.contractible-types open import foundation.dependent-pair-types -open import foundation.discrete-relations +open import foundation.discrete-reflexive-relations open import foundation.universe-levels open import foundation-core.identity-types @@ -39,12 +39,6 @@ graph whose vertices are elements of `X`, and edges are E x y := (x = y). ``` -More generally, a [directed graph](graph-theory.directed-graphs.md) -`G ≐ (V , E)` is said to be -{{#concept "discrete" Disambiguation="directed graph" Agda=is-discrete-Directed-Graph}} -if it is reflexive and discrete as a reflexive graph. Being discrete for -directed graphs is therefore not a property. - ## Definitions ### The predicate on reflexive graphs of being discrete From cef5ecdb902c1d3a9d02f4efd847e568a78d461d Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 08:44:02 -0500 Subject: [PATCH 63/87] bugs --- src/foundation-core/torsorial-type-families.lagda.md | 4 ++-- src/foundation/torsorial-type-families.lagda.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/foundation-core/torsorial-type-families.lagda.md b/src/foundation-core/torsorial-type-families.lagda.md index 35882429c6..e2dfd083f2 100644 --- a/src/foundation-core/torsorial-type-families.lagda.md +++ b/src/foundation-core/torsorial-type-families.lagda.md @@ -99,5 +99,5 @@ module _ ### See also -- [Discrete relations](foundation.discrete-relations.md) are binary torsorial - type families. +- [Discrete reflexive relations](foundation.discrete-reflexive-relations.md) are + binary torsorial type families. diff --git a/src/foundation/torsorial-type-families.lagda.md b/src/foundation/torsorial-type-families.lagda.md index db72746fb4..0929568e83 100644 --- a/src/foundation/torsorial-type-families.lagda.md +++ b/src/foundation/torsorial-type-families.lagda.md @@ -113,5 +113,5 @@ module _ ### See also -- [Discrete relations](foundation.discrete-relations.md) are binary torsorial - type families. +- [Discrete reflexive relations](foundation.discrete-reflexive-relations.md) are + binary torsorial type families. From 318935270f6dd716af87c44b030e5b07186e7b65 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 10:26:25 -0500 Subject: [PATCH 64/87] adjointness for discrete directed graphs --- .../discrete-directed-graphs.lagda.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/src/graph-theory/discrete-directed-graphs.lagda.md b/src/graph-theory/discrete-directed-graphs.lagda.md index 00282e04b3..c3ff8a436b 100644 --- a/src/graph-theory/discrete-directed-graphs.lagda.md +++ b/src/graph-theory/discrete-directed-graphs.lagda.md @@ -10,6 +10,11 @@ module graph-theory.discrete-directed-graphs where open import foundation.contractible-types open import foundation.dependent-pair-types open import foundation.discrete-binary-relations +open import foundation.empty-types +open import foundation.equivalences +open import foundation.homotopies +open import foundation.retractions +open import foundation.sections open import foundation.universe-levels open import foundation-core.identity-types @@ -17,6 +22,7 @@ open import foundation-core.propositions open import foundation-core.torsorial-type-families open import graph-theory.directed-graphs +open import graph-theory.morphisms-directed-graphs open import graph-theory.reflexive-graphs ``` @@ -78,6 +84,88 @@ module _ is-prop-is-discrete-Relation (edge-Directed-Graph G) ``` +### The standard discrete directed graph + +```agda +module _ + {l : Level} (A : UU l) + where + + discrete-Directed-Graph : Directed-Graph l lzero + pr1 discrete-Directed-Graph = A + pr2 discrete-Directed-Graph x y = empty +``` + +## Properties + +### Morphisms from a standard discrete directed graph are maps into vertices + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} (G : Directed-Graph l1 l2) + where + + ev-hom-discrete-Directed-Graph : + hom-Directed-Graph (discrete-Directed-Graph A) G → + A → vertex-Directed-Graph G + ev-hom-discrete-Directed-Graph = + vertex-hom-Directed-Graph (discrete-Directed-Graph _) G + + map-inv-ev-hom-discrete-Directed-Graph : + (A → vertex-Directed-Graph G) → + hom-Directed-Graph (discrete-Directed-Graph A) G + pr1 (map-inv-ev-hom-discrete-Directed-Graph f) = f + pr2 (map-inv-ev-hom-discrete-Directed-Graph f) x y () + + is-section-map-inv-ev-hom-discrete-Directed-Graph : + is-section + ( ev-hom-discrete-Directed-Graph) + ( map-inv-ev-hom-discrete-Directed-Graph) + is-section-map-inv-ev-hom-discrete-Directed-Graph f = refl + + htpy-is-retraction-map-inv-ev-hom-discrete-Directed-Graph : + (f : hom-Directed-Graph (discrete-Directed-Graph A) G) → + htpy-hom-Directed-Graph + ( discrete-Directed-Graph A) + ( G) + ( map-inv-ev-hom-discrete-Directed-Graph + ( ev-hom-discrete-Directed-Graph f)) + ( f) + pr1 (htpy-is-retraction-map-inv-ev-hom-discrete-Directed-Graph f) = + refl-htpy + pr2 (htpy-is-retraction-map-inv-ev-hom-discrete-Directed-Graph f) x y () + + is-retraction-map-inv-ev-hom-discrete-Directed-Graph : + is-retraction + ( ev-hom-discrete-Directed-Graph) + ( map-inv-ev-hom-discrete-Directed-Graph) + is-retraction-map-inv-ev-hom-discrete-Directed-Graph f = + eq-htpy-hom-Directed-Graph + ( discrete-Directed-Graph A) + ( G) + ( map-inv-ev-hom-discrete-Directed-Graph + ( ev-hom-discrete-Directed-Graph f)) + ( f) + ( htpy-is-retraction-map-inv-ev-hom-discrete-Directed-Graph f) + + abstract + is-equiv-ev-hom-discrete-Directed-Graph : + is-equiv ev-hom-discrete-Directed-Graph + is-equiv-ev-hom-discrete-Directed-Graph = + is-equiv-is-invertible + map-inv-ev-hom-discrete-Directed-Graph + is-section-map-inv-ev-hom-discrete-Directed-Graph + is-retraction-map-inv-ev-hom-discrete-Directed-Graph + + ev-equiv-hom-discrete-Directed-Graph : + hom-Directed-Graph (discrete-Directed-Graph A) G ≃ + (A → vertex-Directed-Graph G) + pr1 ev-equiv-hom-discrete-Directed-Graph = + ev-hom-discrete-Directed-Graph + pr2 ev-equiv-hom-discrete-Directed-Graph = + is-equiv-ev-hom-discrete-Directed-Graph +``` + ## See also - [Discrete reflexive graphs](graph-theory.discrete-reflexive-graphs.md) From 444251ae3b0608fa67283ddc58a57cd090f3bad8 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 11:30:54 -0500 Subject: [PATCH 65/87] edit discrete reflexive globular types --- .../discrete-globular-types.lagda.md | 75 ----------------- ...iscrete-reflexive-globular-types.lagda.md} | 84 +++++++++++++++---- src/structured-types/globular-types.lagda.md | 4 +- .../wild-category-of-pointed-types.lagda.md | 2 +- 4 files changed, 71 insertions(+), 94 deletions(-) delete mode 100644 src/structured-types/discrete-globular-types.lagda.md rename src/structured-types/{standard-discrete-globular-types.lagda.md => discrete-reflexive-globular-types.lagda.md} (57%) diff --git a/src/structured-types/discrete-globular-types.lagda.md b/src/structured-types/discrete-globular-types.lagda.md deleted file mode 100644 index 5cad51b829..0000000000 --- a/src/structured-types/discrete-globular-types.lagda.md +++ /dev/null @@ -1,75 +0,0 @@ -# Discrete globular types - -```agda -{-# OPTIONS --guardedness #-} - -module structured-types.discrete-globular-types where -``` - -
Imports - -```agda -open import foundation.torsorial-type-families -open import foundation.universe-levels - -open import structured-types.reflexive-globular-types -``` - -
- -## Idea - -A [reflexive globular type](structured-types.reflexive-globular-types.md) is -said to be -{{#concept "discrete" Disambiguation="reflexive globular type" Agda=is-discrete-Reflexive-Globular-Type}} -if: - -- For every 0-cell `x` the type family `G₁ x` of 1-cells out of `x` is - [torsorial](foundation-core.torsorial-type-families.md), and -- For every two 0-cells `x` and `y` the reflexive globular type `G' x y` is - discrete. - -## Definitions - -### The predicate of being a discrete globular type - -```agda -record - is-discrete-Reflexive-Globular-Type - {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) : UU (l1 ⊔ l2) - where - coinductive - - field - is-torsorial-1-cell-is-discrete-Reflexive-Globular-Type : - (x : 0-cell-Reflexive-Globular-Type G) → - is-torsorial (1-cell-Reflexive-Globular-Type G x) - - field - is-discrete-1-cell-reflexive-globular-type-is-discrete-Reflexive-Globular-Type : - (x y : 0-cell-Reflexive-Globular-Type G) → - is-discrete-Reflexive-Globular-Type - ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) - -open is-discrete-Reflexive-Globular-Type public -``` - -### Discrete globular types - -```agda -record - Discrete-Globular-Type - (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) - where - - field - reflexive-globular-type-Discrete-Globular-Type : - Reflexive-Globular-Type l1 l2 - - field - is-discrete-Discrete-Globular-Type : - is-discrete-Reflexive-Globular-Type - reflexive-globular-type-Discrete-Globular-Type - -open Discrete-Globular-Type public -``` diff --git a/src/structured-types/standard-discrete-globular-types.lagda.md b/src/structured-types/discrete-reflexive-globular-types.lagda.md similarity index 57% rename from src/structured-types/standard-discrete-globular-types.lagda.md rename to src/structured-types/discrete-reflexive-globular-types.lagda.md index f41e349201..031fc0f183 100644 --- a/src/structured-types/standard-discrete-globular-types.lagda.md +++ b/src/structured-types/discrete-reflexive-globular-types.lagda.md @@ -1,9 +1,9 @@ -# The standard discrete globular types +# Discrete reflexive globular types ```agda {-# OPTIONS --guardedness #-} -module structured-types.standard-discrete-globular-types where +module structured-types.discrete-reflexive-globular-types where ```
Imports @@ -13,7 +13,6 @@ open import foundation.identity-types open import foundation.torsorial-type-families open import foundation.universe-levels -open import structured-types.discrete-globular-types open import structured-types.globular-types open import structured-types.reflexive-globular-types open import structured-types.symmetric-globular-types @@ -24,16 +23,69 @@ open import structured-types.transitive-globular-types ## Idea +A [reflexive globular type](structured-types.reflexive-globular-types.md) is +said to be +{{#concept "discrete" Disambiguation="reflexive globular type" Agda=is-discrete-Reflexive-Globular-Type}} +if: + +- For every 0-cell `x` the type family `G₁ x` of 1-cells out of `x` is + [torsorial](foundation-core.torsorial-type-families.md), and +- For every two 0-cells `x` and `y` the reflexive globular type `G' x y` is + discrete. + The {{#concept "standard discrete globular type"}} at a type `A` is the [globular type](structured-types.globular-types.md) obtained from the iterated [identity types](foundation-core.identity-types.md) on `A`. This globular type is [reflexive](structured-types.reflexive-globular-types.md), [transitive](structured-types.transitive-globular-types.md), and indeed -[discrete](structured-types.discrete-globular-types.md). +[discrete](structured-types.discrete-reflexive-globular-types.md). ## Definitions -### The standard discrete globular types +### The predicate of being a discrete reflexive globular type + +```agda +record + is-discrete-Reflexive-Globular-Type + {l1 l2 : Level} (G : Reflexive-Globular-Type l1 l2) : UU (l1 ⊔ l2) + where + coinductive + + field + is-torsorial-1-cell-is-discrete-Reflexive-Globular-Type : + (x : 0-cell-Reflexive-Globular-Type G) → + is-torsorial (1-cell-Reflexive-Globular-Type G x) + + field + is-discrete-1-cell-reflexive-globular-type-is-discrete-Reflexive-Globular-Type : + (x y : 0-cell-Reflexive-Globular-Type G) → + is-discrete-Reflexive-Globular-Type + ( 1-cell-reflexive-globular-type-Reflexive-Globular-Type G x y) + +open is-discrete-Reflexive-Globular-Type public +``` + +### Discrete reflexive globular types + +```agda +record + Discrete-Reflexive-Globular-Type + (l1 l2 : Level) : UU (lsuc l1 ⊔ lsuc l2) + where + + field + reflexive-globular-type-Discrete-Reflexive-Globular-Type : + Reflexive-Globular-Type l1 l2 + + field + is-discrete-Discrete-Reflexive-Globular-Type : + is-discrete-Reflexive-Globular-Type + reflexive-globular-type-Discrete-Reflexive-Globular-Type + +open Discrete-Reflexive-Globular-Type public +``` + +### The standard discrete reflexive globular types ```agda module _ @@ -61,24 +113,24 @@ module _ refl-Reflexive-Globular-Type (discrete-Reflexive-Globular-Type A) = refl-discrete-Globular-Type - is-discrete-standard-Discrete-Globular-Type : + is-discrete-standard-Discrete-Reflexive-Globular-Type : {A : UU l} → is-discrete-Reflexive-Globular-Type (discrete-Reflexive-Globular-Type A) is-torsorial-1-cell-is-discrete-Reflexive-Globular-Type - is-discrete-standard-Discrete-Globular-Type x = + is-discrete-standard-Discrete-Reflexive-Globular-Type x = is-torsorial-Id x is-discrete-1-cell-reflexive-globular-type-is-discrete-Reflexive-Globular-Type - is-discrete-standard-Discrete-Globular-Type x y = - is-discrete-standard-Discrete-Globular-Type + is-discrete-standard-Discrete-Reflexive-Globular-Type x y = + is-discrete-standard-Discrete-Reflexive-Globular-Type - standard-Discrete-Globular-Type : - UU l → Discrete-Globular-Type l l - reflexive-globular-type-Discrete-Globular-Type - ( standard-Discrete-Globular-Type A) = + standard-Discrete-Reflexive-Globular-Type : + UU l → Discrete-Reflexive-Globular-Type l l + reflexive-globular-type-Discrete-Reflexive-Globular-Type + ( standard-Discrete-Reflexive-Globular-Type A) = discrete-Reflexive-Globular-Type A - is-discrete-Discrete-Globular-Type - ( standard-Discrete-Globular-Type A) = - is-discrete-standard-Discrete-Globular-Type + is-discrete-Discrete-Reflexive-Globular-Type + ( standard-Discrete-Reflexive-Globular-Type A) = + is-discrete-standard-Discrete-Reflexive-Globular-Type ``` ## Properties diff --git a/src/structured-types/globular-types.lagda.md b/src/structured-types/globular-types.lagda.md index ae9cff7301..7c35cab06a 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/structured-types/globular-types.lagda.md @@ -55,7 +55,7 @@ Every type has the structure of a globular type, where the globular structure is obtained from the [identity type](foundation-core.identity-types.md). The globular type obtained from a type `A` and its iterated identity types is called the -[standard discrete globular type](structured-types.standard-discrete-globular-types.md). +[standard discrete reflexive globular type](structured-types.discrete-reflexive-globular-types.md). ## Definitions @@ -312,7 +312,7 @@ globular-structure-5-cell-Globular-Type A = ## See also -- [Discrete globular types](structured-types.discrete-globular-types.md) +- [Discrete reflexive globular types](structured-types.discrete-reflexive-globular-types.md) - [Reflexive globular types](structured-types.reflexive-globular-types.md) - [Superglobular types](structured-types.superglobular-types.md) - [Symmetric globular types](structured-types.symmetric-globular-types.md) 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 05123ab25c..a88c3e76f3 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -27,7 +27,7 @@ open import structured-types.pointed-homotopies open import structured-types.pointed-maps open import structured-types.pointed-types open import structured-types.reflexive-globular-types -open import structured-types.standard-discrete-globular-types +open import structured-types.discrete-reflexive-globular-types open import structured-types.transitive-globular-types open import structured-types.uniform-pointed-homotopies From 84b899d77074adb9cdd5701f990545b5a1dc899a Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 14:23:03 -0500 Subject: [PATCH 66/87] =?UTF-8?q?=E1=B5=A3=20to=20refl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cartesian-products-reflexive-graphs.lagda.md | 2 +- src/graph-theory/dependent-reflexive-graphs.lagda.md | 8 ++++---- .../dependent-sums-reflexive-graphs.lagda.md | 2 +- .../equivalences-dependent-reflexive-graphs.lagda.md | 2 +- .../fibers-morphisms-reflexive-graphs.lagda.md | 2 +- src/graph-theory/morphisms-reflexive-graphs.lagda.md | 6 +++--- ...inary-dependent-reflexive-globular-types.lagda.md | 4 ++-- .../colax-reflexive-globular-maps.lagda.md | 2 +- .../large-colax-reflexive-globular-maps.lagda.md | 2 +- .../large-lax-reflexive-globular-maps.lagda.md | 2 +- .../large-reflexive-globular-maps.lagda.md | 2 +- .../lax-reflexive-globular-maps.lagda.md | 2 +- .../reflexive-globular-maps.lagda.md | 2 +- src/structured-types/superglobular-types.lagda.md | 12 ++++++------ .../unit-reflexive-globular-type.lagda.md | 2 +- 15 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md index 07a2b06807..f68342b1c5 100644 --- a/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md +++ b/src/graph-theory/cartesian-products-reflexive-graphs.lagda.md @@ -31,7 +31,7 @@ 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). + refl (A × B) (x , y) := (refl A x , refl B y). ``` ## Definitions diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index ec9f4a08d3..86bc051bb4 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -27,8 +27,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 `refl B : (x : A₀) (y : B₀ x) → B₁ (refl A x) y y` + witnessing the reflexivity of `B₁` over the reflexivity `refl A` of `A₁`. To see that this is a sensible definition of dependent reflexive graphs, observe that the type of reflexive graphs itself is @@ -44,8 +44,8 @@ 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 of equivalences](foundation.families-of-equivalences.md) `Bᵣ : (x : - A₀) (y y' : B₀ x) → B₁ (Aᵣ x) y y' ≃ (B₀ x)₁ y y'. +- A [family of equivalences](foundation.families-of-equivalences.md) `refl B : + (x : A₀) (y y' : B₀ x) → B₁ (refl A x) y y' ≃ (B₀ x)₁ y y'. This definition is more closely related to the concept of morphism into the universal reflexive graph. diff --git a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md index f4a1131f78..20dfbeec6e 100644 --- a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md @@ -35,7 +35,7 @@ a [reflexive graph](graph-theory.reflexive-graphs.md) `G`. The ```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). + refl (Σ G H) (x , y) := (refl G x , refl H y). ``` ## Definitions diff --git a/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md index 8dfeec904c..4197698468 100644 --- a/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/equivalences-dependent-reflexive-graphs.lagda.md @@ -40,7 +40,7 @@ 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). + refl α : (x : G₀) (y : H₀ x) → α₁ (refl G x) (refl H y) = refl K x (α₀ y). ``` ## Definitions diff --git a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md index 7b69172b9b..8ffde96bc4 100644 --- a/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/fibers-morphisms-reflexive-graphs.lagda.md @@ -43,7 +43,7 @@ the [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) ```text (fib_f)₀ x := fib f₀ (fib_f)₁ e (y , refl) (y' , refl) := fib f₁ e - (fib_f)ᵣ (y , refl) := (Hᵣ x , fᵣ x). + refl (fib_f) (y , refl) := (refl H x , preserves-refl f x). ``` ## Definitions diff --git a/src/graph-theory/morphisms-reflexive-graphs.lagda.md b/src/graph-theory/morphisms-reflexive-graphs.lagda.md index 0108f5c2f4..855700002e 100644 --- a/src/graph-theory/morphisms-reflexive-graphs.lagda.md +++ b/src/graph-theory/morphisms-reflexive-graphs.lagda.md @@ -39,11 +39,11 @@ of `H`, a family of maps `f₁` from the edges `G₁ x y` in `G` to the edges [identification](foundation-core.identity-types.md) ```text - fᵣ : f₁ (Gᵣ x) = Hᵣ (f₀ x) + preserves-refl f : f₁ (refl G x) = refl 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 `refl G x` to the reflexivity edge at +`f₀ x` in `H`. ## Definitions diff --git a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md index 6564e2bf12..22a85d20b1 100644 --- a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md +++ b/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md @@ -27,7 +27,7 @@ Consider two {{#concept "binary dependent reflexive globular type" Agda=Binary-Dependent-Reflexive-Globular-Type}} `K` over `G` and `H` consists of a [binary dependent globular type](structured-types.binary-dependent-globular-types.md) -`K` over `G` and `H` equipped with reflexivity structure `Kᵣ`. +`K` over `G` and `H` equipped with reflexivity structure `refl K`. A binary dependent globular type `K` over reflexive globular types `G` and `H` is said to be @@ -35,7 +35,7 @@ is said to be comes equipped with ```text - Kᵣ : {x : G₀} {y : H₀} (u : K₀ x y) → K₁ (Gᵣ x) (Gᵣ y) u u, + refl K : {x : G₀} {y : H₀} (u : K₀ x y) → K₁ (refl G x) (refl G y) u u, ``` such that the binary dependent globular type `K' s t u v` over `G' x x'` and diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md index d0f64e0987..09a07853cb 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -26,7 +26,7 @@ between two with a family of 2-cells ```text - (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) + (x : G₀) → H₂ (f₁ (refl G x)) (refl H (f₀ x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at 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 e039e8446f..098557a304 100644 --- a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md @@ -30,7 +30,7 @@ between two `f : G → H` equipped with a family of 2-cells ```text - (x : G₀) → H₂ (f₁ (Gᵣ x)) (Hᵣ (f₀ x)) + (x : G₀) → H₂ (f₁ (refl G x)) (refl H (f₀ x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at 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 af99b5ad5e..946afd3f4c 100644 --- a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-lax-reflexive-globular-maps.lagda.md @@ -30,7 +30,7 @@ between two `f : G → H` equipped with a family of 2-cells ```text - (x : G₀) → H₂ (Hᵣ (f₀ x)) (f₁ (Gᵣ x)) + (x : G₀) → H₂ (refl H (f₀ x)) (f₁ (refl G x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at diff --git a/src/structured-types/large-reflexive-globular-maps.lagda.md b/src/structured-types/large-reflexive-globular-maps.lagda.md index 8df176bdc4..8afac702e4 100644 --- a/src/structured-types/large-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-reflexive-globular-maps.lagda.md @@ -30,7 +30,7 @@ between two [identifications](foundation-core.identity-types.md) ```text - (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) + (x : G₀) → f₁ (refl G x) = refl H (f₀ x) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/structured-types/lax-reflexive-globular-maps.lagda.md index 1e9f4aa2da..d75fb64e70 100644 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/lax-reflexive-globular-maps.lagda.md @@ -26,7 +26,7 @@ between two with a family of 2-cells ```text - (x : G₀) → H₂ (Hᵣ (f₀ x)) (f₁ (Gᵣ x)) + (x : G₀) → H₂ (refl H (f₀ x)) (f₁ (refl G x)) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/structured-types/reflexive-globular-maps.lagda.md index 2153894569..e8f95bfcc5 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/structured-types/reflexive-globular-maps.lagda.md @@ -26,7 +26,7 @@ A {{#concept "reflexive globular map" Agda=reflexive-globular-map}} between two with a family of [identifications](foundation-core.identity-types.md) ```text - (x : G₀) → f₁ (Gᵣ x) = Hᵣ (f₀ x) + (x : G₀) → f₁ (refl G x) = refl H (f₀ x) ``` from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at diff --git a/src/structured-types/superglobular-types.lagda.md b/src/structured-types/superglobular-types.lagda.md index 7d41324ff4..d41313fbee 100644 --- a/src/structured-types/superglobular-types.lagda.md +++ b/src/structured-types/superglobular-types.lagda.md @@ -61,18 +61,18 @@ The low-dimensional data of a superglobular type is therefore as follows: G₁ : (x y : G₀) → Type H₀ : (x y : G₀) → Type e₀ : {x y : G₀} → H₀ x y ≃ G₀ x y - Gᵣ : (x : G₀) → G₁ x x + refl G : (x : G₀) → G₁ x x G₂ : {x y : G₀} (s t : G₁ x y) → Type H₁ : {x x' y y' : G₀} → G₁ x x' → G₁ y y' → H₀ x y → H₀ x' y' → Type - e₁ : {x y : G₀} {s t : H₀ x y} → H₁ (Gᵣ x) (Gᵣ y) s t ≃ G₂ (e₀ s) (e₀ t) - Gᵣ : {x y : G₀} (s : G₁ x y) → G₂ s s + e₁ : {x y : G₀} {s t : H₀ x y} → H₁ (refl G x) (refl G y) s t ≃ G₂ (e₀ s) (e₀ t) + refl G : {x y : G₀} (s : G₁ x y) → G₂ s s G₃ : {x y : G₀} {s t : G₁ x y} (u v : G₂ s t) → Type H₂ : {x x' y y' : G₀} {s s' : G₁ x x'} {t t' : G₁ y y'} (p : G₂ s s') (q : G₂ t t') → H₁ s t → H₁ s' t' → Type e₂ : {x y : G₀} {s t : H₀ x y} {u v : H₁ - H₂ (Gᵣ x) (Gᵣ y) u v ≃ G₃ (e₁ u) (e₁ v) + H₂ (refl G x) (refl G y) u v ≃ G₃ (e₁ u) (e₁ v) ``` Note that the type of pairs `(Gₙ₊₁ , eₙ)` in this structure is @@ -83,10 +83,10 @@ presenting the low-dimensional data of a superglobular type is therefore: G₀ : Type H₀ : (x y : G₀) → Type - Gᵣ : (x : G₀) → H₀ x x + refl G : (x : G₀) → H₀ x x H₁ : {x x' y y' : G₀} → H₁ x x' → H₁ y y' → H₀ x y → H₀ x' y' → Type - Gᵣ : {x y : G₀} (s : H₀ x y) → H₁ (Gᵣ x) (Gᵣ y) s s + refl G : {x y : G₀} (s : H₀ x y) → H₁ (refl G x) (refl G y) s s H₂ : {x x' y y' : G₀} {s s' : H₁ x x'} {t t' : H₁ y y'} (p : H₂ s s') (q : H₂ t t') → H₁ s t → H₁ s' t' → Type diff --git a/src/structured-types/unit-reflexive-globular-type.lagda.md b/src/structured-types/unit-reflexive-globular-type.lagda.md index 4e6f4393f2..71dc61e919 100644 --- a/src/structured-types/unit-reflexive-globular-type.lagda.md +++ b/src/structured-types/unit-reflexive-globular-type.lagda.md @@ -28,7 +28,7 @@ given by ```text 𝟏₀ := unit 𝟏' x y := 𝟏 - 𝟏ᵣ x := star. + refl 𝟏 x := star. ``` ## Definitions From 536286962ecb6ee51d79c3ac9662d50604187a9f Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 14:45:38 -0500 Subject: [PATCH 67/87] partially revert long copattern matchings --- .../colax-reflexive-globular-maps.lagda.md | 3 + .../colax-transitive-globular-maps.lagda.md | 4 + ...rge-colax-reflexive-globular-maps.lagda.md | 3 + ...t-large-wild-higher-precategories.lagda.md | 76 ++++++++----------- ...oherent-wild-higher-precategories.lagda.md | 52 ++++++------- 5 files changed, 67 insertions(+), 71 deletions(-) diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/structured-types/colax-reflexive-globular-maps.lagda.md index 09a07853cb..e6089ba913 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/colax-reflexive-globular-maps.lagda.md @@ -103,6 +103,9 @@ record UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) where + constructor + make-colax-reflexive-globular-map + field globular-map-colax-reflexive-globular-map : globular-map-Reflexive-Globular-Type G H diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/structured-types/colax-transitive-globular-maps.lagda.md index c80246b7c0..888dadb666 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/structured-types/colax-transitive-globular-maps.lagda.md @@ -55,6 +55,7 @@ record (f : globular-map-Transitive-Globular-Type G H) : UU (l1 ⊔ l2 ⊔ l4) where + coinductive field @@ -91,6 +92,9 @@ record UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) where + constructor + make-colax-transitive-globular-map + field globular-map-colax-transitive-globular-map : globular-map-Transitive-Globular-Type G H 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 098557a304..1922c3ccb6 100644 --- a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md +++ b/src/structured-types/large-colax-reflexive-globular-maps.lagda.md @@ -104,6 +104,9 @@ record (H : Large-Reflexive-Globular-Type α2 β2) : UUω where + constructor + make-large-colax-reflexive-globular-map + field large-globular-map-large-colax-reflexive-globular-map : large-globular-map-Large-Reflexive-Globular-Type γ G H 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 18ef1d7366..885f278d55 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 @@ -105,6 +105,9 @@ record (F : map-Noncoherent-Large-Wild-Higher-Precategory γ 𝒜 ℬ) : UUω where + constructor + make-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + field preserves-id-structure-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory : preserves-id-structure-map-Noncoherent-Large-Wild-Higher-Precategory @@ -186,12 +189,10 @@ record ( 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 + is-colax-functor-hom-is-colax-functor-map-Noncoherent-Large-Wild-Higher-Precategory = + make-is-colax-functor-Noncoherent-Wild-Higher-Precategory + preserves-id-structure-hom-is-colax-functor-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 ``` @@ -207,6 +208,9 @@ record (𝒜 : Noncoherent-Large-Wild-Higher-Precategory α1 β1) (ℬ : Noncoherent-Large-Wild-Higher-Precategory α2 β2) : UUω where + + constructor + make-colax-functor-Noncoherent-Large-Wild-Higher-Precategory ``` The underlying large globular map of a colax functor: @@ -284,12 +288,10 @@ Preservation of the identity structure: 𝒜) ( 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 + colax-reflexive-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + make-large-colax-reflexive-globular-map + 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} @@ -392,12 +394,10 @@ The globular map on hom-types is again a colax functor: ( 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 + is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + make-is-colax-functor-Noncoherent-Wild-Higher-Precategory + preserves-id-structure-hom-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} @@ -412,13 +412,9 @@ The globular map on hom-types is again a colax functor: ( ℬ) ( 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) = + hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + x y = + hom-globular-map-colax-functor-Noncoherent-Large-Wild-Higher-Precategory , is-colax-functor-hom-colax-functor-colax-functor-Noncoherent-Large-Wild-Higher-Precategory open colax-functor-Noncoherent-Large-Wild-Higher-Precategory public @@ -456,12 +452,10 @@ 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-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 + is-colax-functor-id-colax-functor-Noncoherent-Large-Wild-Higher-Precategory = + make-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-id-structure-id-colax-functor-Noncoherent-Large-Wild-Higher-Precatory + 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 (λ l → l) 𝒜 𝒜 @@ -541,22 +535,18 @@ 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-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 + is-colax-functor-comp-colax-functor-Noncoherent-Large-Wild-Precategory = + make-is-colax-functor-Noncoherent-Large-Wild-Higher-Precategory + preserves-id-structure-comp-colax-functor-Noncoherent-Large-Wild-Higher-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 ( λ l → δ2 (δ1 l)) ( 𝒜) ( 𝒞) - 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 + comp-colax-functor-Noncoherent-Large-Wild-Precategory = + make-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-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 313fd8d16d..6312ebbbd4 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 @@ -102,6 +102,9 @@ record (ℬ : Noncoherent-Wild-Higher-Precategory l3 l4) (F : map-Noncoherent-Wild-Higher-Precategory 𝒜 ℬ) : UU (l1 ⊔ l2 ⊔ l4) where + + constructor make-is-colax-functor-Noncoherent-Wild-Higher-Precategory + coinductive field @@ -266,13 +269,11 @@ Preservation by colax functors of identity morphisms: 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 + colax-reflexive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + make-colax-reflexive-globular-map + ( 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: @@ -296,13 +297,11 @@ Preservation by colax functors of composition: 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 + colax-transitive-globular-map-colax-functor-Noncoherent-Wild-Higher-Precategory = + make-colax-transitive-globular-map + ( 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: @@ -364,13 +363,12 @@ 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 𝒜 𝒜 ( 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 𝒜) = - 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 - 𝒜 +is-colax-functor-id-colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 = + make-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( preserves-id-structure-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) → @@ -456,13 +454,11 @@ module _ 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 + is-colax-functor-comp-colax-functor-Noncoherent-Wild-Higher-Precategory = + make-is-colax-functor-Noncoherent-Wild-Higher-Precategory + ( preserves-id-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory + 𝒜 ℬ 𝒞 G F) + ( preserves-comp-structure-comp-colax-functor-Noncoherent-Wild-Higher-Precategory) comp-colax-functor-Noncoherent-Wild-Higher-Precategory : colax-functor-Noncoherent-Wild-Higher-Precategory 𝒜 𝒞 From 58b750eefe26eb9d4fd9ed5193de04601a92945b Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 14:46:05 -0500 Subject: [PATCH 68/87] make pre-commit --- ...olax-functors-noncoherent-wild-higher-precategories.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6312ebbbd4..179cd1d54a 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 @@ -104,7 +104,7 @@ record where constructor make-is-colax-functor-Noncoherent-Wild-Higher-Precategory - + coinductive field From 4bb915b84758c09c28906e3c3e57939b7dcfb982 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 16:07:54 -0500 Subject: [PATCH 69/87] discrete dependent reflexive graphs --- .../dependent-reflexive-graphs.lagda.md | 16 +++++ .../dependent-sums-reflexive-graphs.lagda.md | 46 +++++++++++++ ...screte-dependent-reflexive-graphs.lagda.md | 68 +++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index 86bc051bb4..d4b821e4f3 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -152,6 +152,22 @@ module _ refl-constant-Dependent-Reflexive-Graph ``` +### Evaluating dependent reflexive graphs at a point + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) (x : vertex-Reflexive-Graph G) + where + + ev-point-Dependent-Reflexive-Graph : Reflexive-Graph l3 l4 + pr1 (pr1 ev-point-Dependent-Reflexive-Graph) = + vertex-Dependent-Reflexive-Graph H x + pr2 (pr1 ev-point-Dependent-Reflexive-Graph) = + edge-Dependent-Reflexive-Graph H (refl-Reflexive-Graph G x) + pr2 ev-point-Dependent-Reflexive-Graph = + refl-Dependent-Reflexive-Graph H +``` ## See also - The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) diff --git a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md index 20dfbeec6e..29797e6485 100644 --- a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md @@ -7,14 +7,20 @@ module graph-theory.dependent-sums-reflexive-graphs where
Imports ```agda +open import foundation.contractible-types open import foundation.dependent-pair-types +open import foundation.equivalences open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels 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.discrete-dependent-reflexive-graphs +open import graph-theory.discrete-reflexive-graphs open import graph-theory.morphisms-directed-graphs open import graph-theory.morphisms-reflexive-graphs open import graph-theory.reflexive-graphs @@ -186,6 +192,46 @@ module _ refl-pr2-Σ-Reflexive-Graph ``` +## Properties + +### Discreteness of dependent sum reflexive graphs + +If `G` is a discrete reflexive graph and `H` is a dependent reflexive graph over `G`, then `H` is discrete if and only if the [dependent sum graph](graph-theory.dependent-sums-reflexive-graphs.md) `Σ G H` is a discrete reflexive graph. + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + abstract + is-discrete-Σ-is-discrete-Dependent-Reflexive-Graph : + is-discrete-Reflexive-Graph G → + is-discrete-Dependent-Reflexive-Graph H → + is-discrete-Reflexive-Graph (Σ-Reflexive-Graph H) + is-discrete-Σ-is-discrete-Dependent-Reflexive-Graph d c (x , y) = + is-torsorial-Eq-structure + ( d x) + ( x , refl-Reflexive-Graph G x) + ( c x y) + + abstract + is-discrete-is-discrete-Σ-Reflexive-Graph : + is-discrete-Reflexive-Graph G → + is-discrete-Reflexive-Graph (Σ-Reflexive-Graph H) → + is-discrete-Dependent-Reflexive-Graph H + is-discrete-is-discrete-Σ-Reflexive-Graph d c x y = + is-contr-equiv' + ( Σ ( Σ ( vertex-Reflexive-Graph G) + ( vertex-Dependent-Reflexive-Graph H)) + ( λ (x' , y') → + Σ ( edge-Reflexive-Graph G x x') + ( λ e → edge-Dependent-Reflexive-Graph H e y y'))) + ( left-unit-law-Σ-is-contr (d x) (x , refl-Reflexive-Graph G x) ∘e + interchange-Σ-Σ (λ x' y' e → edge-Dependent-Reflexive-Graph H e y y')) + ( c (x , y)) +``` + ## See also - [Dependent product reflexive graphs](graph-theory.dependent-products-reflexive-graphs.md) diff --git a/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md b/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md new file mode 100644 index 0000000000..0d8f86612e --- /dev/null +++ b/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md @@ -0,0 +1,68 @@ +# Discrete dependent reflexive graphs + +```agda +module graph-theory.discrete-dependent-reflexive-graphs where +``` + +
Imports + +```agda +open import foundation.propositions +open import foundation.universe-levels + +open import graph-theory.dependent-reflexive-graphs +open import graph-theory.discrete-reflexive-graphs +open import graph-theory.reflexive-graphs +``` + +
+ +## Idea + +A [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `H` over a [reflexive graph](graph-theory.reflexive-graphs.md) is said to be {{#concept "discrete" Disambiguation="dependent reflexive graph" Agda=is-discrete-Dependent-Reflexive-Graph}} if the dependent edge relation + +```text + H₁ (refl G x) y : H₀ x → Type +``` + +is [torsorial](foundation-core.torsorial-type-families.md) for every element `y : H₀ x`. That is, the dependent reflexive graph `H` is discrete precisely when the reflexive graph + +```text + ev-point H x +``` + +is [discrete](graph-theory.discrete-reflexive-graphs.md) for every vertex `x : G₀`. Furthermore, a dependent reflexive graph is discrete precisely when the dependent edge relation + +```text + H₁ e y : H₀ x' → Type +``` + +is torsorial for every edge `e : G₁ x x'` and every element `y : H₀ x`. + +## Definitions + +### The predicate of being a discrete dependent reflexive graph + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} + (H : Dependent-Reflexive-Graph l3 l4 G) + where + + is-discrete-prop-Dependent-Reflexive-Graph : Prop (l1 ⊔ l3 ⊔ l4) + is-discrete-prop-Dependent-Reflexive-Graph = + Π-Prop + ( vertex-Reflexive-Graph G) + ( λ x → + is-discrete-prop-Reflexive-Graph + ( ev-point-Dependent-Reflexive-Graph H x)) + + is-discrete-Dependent-Reflexive-Graph : UU (l1 ⊔ l3 ⊔ l4) + is-discrete-Dependent-Reflexive-Graph = + type-Prop is-discrete-prop-Dependent-Reflexive-Graph + + is-prop-is-discrete-Dependent-Reflexive-Graph : + is-prop is-discrete-Dependent-Reflexive-Graph + is-prop-is-discrete-Dependent-Reflexive-Graph = + is-prop-type-Prop is-discrete-prop-Dependent-Reflexive-Graph +``` From 01fb7d68f977156daed7cc066dbfc1a46e1c6e53 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 16:09:22 -0500 Subject: [PATCH 70/87] make pre-commit --- src/graph-theory.lagda.md | 1 + .../dependent-reflexive-graphs.lagda.md | 1 + .../dependent-sums-reflexive-graphs.lagda.md | 5 ++++- .../discrete-dependent-reflexive-graphs.lagda.md | 15 +++++++++++---- .../discrete-reflexive-graphs.lagda.md | 1 + 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/graph-theory.lagda.md b/src/graph-theory.lagda.md index f582edb082..c873b5ded2 100644 --- a/src/graph-theory.lagda.md +++ b/src/graph-theory.lagda.md @@ -26,6 +26,7 @@ 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 +open import graph-theory.discrete-dependent-reflexive-graphs public open import graph-theory.discrete-directed-graphs public open import graph-theory.discrete-reflexive-graphs public open import graph-theory.displayed-large-reflexive-graphs public diff --git a/src/graph-theory/dependent-reflexive-graphs.lagda.md b/src/graph-theory/dependent-reflexive-graphs.lagda.md index d4b821e4f3..76136f1504 100644 --- a/src/graph-theory/dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-reflexive-graphs.lagda.md @@ -168,6 +168,7 @@ module _ pr2 ev-point-Dependent-Reflexive-Graph = refl-Dependent-Reflexive-Graph H ``` + ## See also - The [universal reflexive graph](graph-theory.universal-reflexive-graph.md) diff --git a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md index 29797e6485..f8b5131441 100644 --- a/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md +++ b/src/graph-theory/dependent-sums-reflexive-graphs.lagda.md @@ -196,7 +196,10 @@ module _ ### Discreteness of dependent sum reflexive graphs -If `G` is a discrete reflexive graph and `H` is a dependent reflexive graph over `G`, then `H` is discrete if and only if the [dependent sum graph](graph-theory.dependent-sums-reflexive-graphs.md) `Σ G H` is a discrete reflexive graph. +If `G` is a discrete reflexive graph and `H` is a dependent reflexive graph over +`G`, then `H` is discrete if and only if the +[dependent sum graph](graph-theory.dependent-sums-reflexive-graphs.md) `Σ G H` +is a discrete reflexive graph. ```agda module _ diff --git a/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md b/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md index 0d8f86612e..9d43af0730 100644 --- a/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md +++ b/src/graph-theory/discrete-dependent-reflexive-graphs.lagda.md @@ -19,19 +19,26 @@ open import graph-theory.reflexive-graphs ## Idea -A [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `H` over a [reflexive graph](graph-theory.reflexive-graphs.md) is said to be {{#concept "discrete" Disambiguation="dependent reflexive graph" Agda=is-discrete-Dependent-Reflexive-Graph}} if the dependent edge relation +A [dependent reflexive graph](graph-theory.dependent-reflexive-graphs.md) `H` +over a [reflexive graph](graph-theory.reflexive-graphs.md) is said to be +{{#concept "discrete" Disambiguation="dependent reflexive graph" Agda=is-discrete-Dependent-Reflexive-Graph}} +if the dependent edge relation ```text H₁ (refl G x) y : H₀ x → Type ``` -is [torsorial](foundation-core.torsorial-type-families.md) for every element `y : H₀ x`. That is, the dependent reflexive graph `H` is discrete precisely when the reflexive graph +is [torsorial](foundation-core.torsorial-type-families.md) for every element +`y : H₀ x`. That is, the dependent reflexive graph `H` is discrete precisely +when the reflexive graph ```text ev-point H x ``` -is [discrete](graph-theory.discrete-reflexive-graphs.md) for every vertex `x : G₀`. Furthermore, a dependent reflexive graph is discrete precisely when the dependent edge relation +is [discrete](graph-theory.discrete-reflexive-graphs.md) for every vertex +`x : G₀`. Furthermore, a dependent reflexive graph is discrete precisely when +the dependent edge relation ```text H₁ e y : H₀ x' → Type @@ -48,7 +55,7 @@ module _ {l1 l2 l3 l4 : Level} {G : Reflexive-Graph l1 l2} (H : Dependent-Reflexive-Graph l3 l4 G) where - + is-discrete-prop-Dependent-Reflexive-Graph : Prop (l1 ⊔ l3 ⊔ l4) is-discrete-prop-Dependent-Reflexive-Graph = Π-Prop diff --git a/src/graph-theory/discrete-reflexive-graphs.lagda.md b/src/graph-theory/discrete-reflexive-graphs.lagda.md index f6431a63df..fc4e4bbffe 100644 --- a/src/graph-theory/discrete-reflexive-graphs.lagda.md +++ b/src/graph-theory/discrete-reflexive-graphs.lagda.md @@ -65,3 +65,4 @@ module _ ## See also - [Discrete directed graphs](graph-theory.discrete-directed-graphs.md) +- [Discrete dependent reflexive graphs](graph-theory.discrete-dependent-reflexive-graphs.md) From 092b19a4218156c209443da3fdfee75ce1e57124 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Fri, 15 Nov 2024 16:22:01 -0500 Subject: [PATCH 71/87] discrete dependent reflexive globular types --- src/structured-types.lagda.md | 1 + ...ependent-reflexive-globular-types.lagda.md | 54 +++++++++++++++++++ ...discrete-reflexive-globular-types.lagda.md | 6 +++ 3 files changed, 61 insertions(+) create mode 100644 src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index f41e9a1f80..504868159c 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -34,6 +34,7 @@ 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.discrete-dependent-reflexive-globular-types public open import structured-types.discrete-globular-types public open import structured-types.discrete-reflexive-globular-types public open import structured-types.empty-globular-types public diff --git a/src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md b/src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md new file mode 100644 index 0000000000..7596c06e64 --- /dev/null +++ b/src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md @@ -0,0 +1,54 @@ +# Discrete dependent reflexive globular types + +```agda +{-# OPTIONS --guardedness #-} + +module structured-types.discrete-dependent-reflexive-globular-types where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import structured-types.dependent-reflexive-globular-types +open import structured-types.discrete-reflexive-globular-types +open import structured-types.points-reflexive-globular-types +open import structured-types.reflexive-globular-types +``` + +
+ +## Idea + +A +[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) +`H` over a +[reflexive globular type](structured-types.reflexive-globular-types.md) `G` is +said to be +{{#concept "discrete" Disambiguation="dependent reflexive globular type" Agda=is-discrete-Dependent-Reflexive-Globular-Type}} +if the reflexive globular type + +```text + ev-point H x +``` + +is [discrete](structured-types.discrete-reflexive-globular-types.md) for every +[point](structured-types.points-reflexive-globular-types.md) of `G`. + +## Definitions + +### The predicate of being a discrete dependent reflexive globular type + +```agda +module _ + {l1 l2 l3 l4 : Level} {G : Reflexive-Globular-Type l1 l2} + (H : Dependent-Reflexive-Globular-Type l3 l4 G) + where + + is-discrete-Dependent-Reflexive-Globular-Type : UU (l1 ⊔ l3 ⊔ l4) + is-discrete-Dependent-Reflexive-Globular-Type = + (x : point-Reflexive-Globular-Type G) → + is-discrete-Reflexive-Globular-Type + ( ev-point-Dependent-Reflexive-Globular-Type H x) +``` diff --git a/src/structured-types/discrete-reflexive-globular-types.lagda.md b/src/structured-types/discrete-reflexive-globular-types.lagda.md index 6670538db0..e6b2034fb5 100644 --- a/src/structured-types/discrete-reflexive-globular-types.lagda.md +++ b/src/structured-types/discrete-reflexive-globular-types.lagda.md @@ -177,3 +177,9 @@ is-symmetric-1-cell-globular-type-is-symmetric-Globular-Type is-symmetric-discrete-Reflexive-Globular-Type x y = is-symmetric-discrete-Reflexive-Globular-Type ``` + +## See also + +- [Discrete dependent reflexive globular types](structured-types.discrete-dependent-reflexive-globular-types.md) +- [Discrete globular types](structured-types.discrete-globular-types.md) +- [Discrete reflexive graphs](graph-theory.discrete-reflexive-graphs.md) From c36005f7fda1c617559df70443fd4628a679c761 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sat, 16 Nov 2024 13:56:29 -0500 Subject: [PATCH 72/87] adjust text for discrete binary relations --- .../discrete-binary-relations.lagda.md | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/foundation/discrete-binary-relations.lagda.md b/src/foundation/discrete-binary-relations.lagda.md index c35d108444..ed34c8ee7e 100644 --- a/src/foundation/discrete-binary-relations.lagda.md +++ b/src/foundation/discrete-binary-relations.lagda.md @@ -28,25 +28,9 @@ adjoint to the forgetful functor `(V , E) ↦ (V , ∅)`. The condition of discreteness of binary relations compares to the condition of [discreteness](foundation.discrete-reflexive-relations.md) of [reflexive relations](foundation.reflexive-relations.md) in the sense that both -conditions imply initiality. Nevertheless, the condition of discreteness on -reflexive relations asserts that the type family `R x` is -[torsorial](foundation-core.torsorial-type-families.md) for every `x : A`, which -looks quite differently. - -The condition of torsoriality is not adequate as a condition for discreteness -for arbitrary binary relations. For example, the binary relation on -[natural numbers](elementary-number-theory.natural-numbers.md) given by -`R m n := (m + 1 = n)`, relating natural numbers as follows - -```text - 0 ---> 1 ---> 2 ---> ⋯, -``` +conditions imply initiality. A discrete binary relation is initial becauase it is empty, while a discrete reflexive relation is initial because it is [torsorial](foundation-core.torsorial-type-families.md) and hence it is an [identity system](foundation.identity-systems.md). -satisfies the condition that the type family `R m` is torsorial for every -`m : ℕ`, simply because the relation `R` is a -[functional correspondence](foundation.functional-correspondences.md). Since -this relation relates distinct elements, it is typically not considered to be -discrete. +**Note:** It is also possible to impose the torsoriality condition on an arbitrary binary relation. However, this leads to the concept of [functional correspondence](foundation.functional-correspondences.md). That is, a binary relation `R` on `A` such that `R x` is torsorial for every `x : A` is the graph of a function. ## Definitions From 9cb7cf06d492f4d7792e4f99d831f5d43d2ff5eb Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sat, 16 Nov 2024 13:58:54 -0500 Subject: [PATCH 73/87] make pre-commit --- src/foundation/discrete-binary-relations.lagda.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/foundation/discrete-binary-relations.lagda.md b/src/foundation/discrete-binary-relations.lagda.md index ed34c8ee7e..9edf7ffd3f 100644 --- a/src/foundation/discrete-binary-relations.lagda.md +++ b/src/foundation/discrete-binary-relations.lagda.md @@ -28,9 +28,16 @@ adjoint to the forgetful functor `(V , E) ↦ (V , ∅)`. The condition of discreteness of binary relations compares to the condition of [discreteness](foundation.discrete-reflexive-relations.md) of [reflexive relations](foundation.reflexive-relations.md) in the sense that both -conditions imply initiality. A discrete binary relation is initial becauase it is empty, while a discrete reflexive relation is initial because it is [torsorial](foundation-core.torsorial-type-families.md) and hence it is an [identity system](foundation.identity-systems.md). - -**Note:** It is also possible to impose the torsoriality condition on an arbitrary binary relation. However, this leads to the concept of [functional correspondence](foundation.functional-correspondences.md). That is, a binary relation `R` on `A` such that `R x` is torsorial for every `x : A` is the graph of a function. +conditions imply initiality. A discrete binary relation is initial becauase it +is empty, while a discrete reflexive relation is initial because it is +[torsorial](foundation-core.torsorial-type-families.md) and hence it is an +[identity system](foundation.identity-systems.md). + +**Note:** It is also possible to impose the torsoriality condition on an +arbitrary binary relation. However, this leads to the concept of +[functional correspondence](foundation.functional-correspondences.md). That is, +a binary relation `R` on `A` such that `R x` is torsorial for every `x : A` is +the graph of a function. ## Definitions From ea117bb9ef78e2b64665674f62c9daf942cf490a Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 17 Nov 2024 11:07:55 -0500 Subject: [PATCH 74/87] moving files to globular types namespace --- DESIGN-PRINCIPLES.md | 2 +- src/globular-types.lagda.md | 68 +++++++++++++++++++ ...e-change-dependent-globular-types.lagda.md | 13 ++-- ...ependent-reflexive-globular-types.lagda.md | 20 +++--- .../binary-dependent-globular-types.lagda.md | 8 +-- ...ependent-reflexive-globular-types.lagda.md | 14 ++-- .../binary-globular-maps.lagda.md | 10 +-- .../colax-reflexive-globular-maps.lagda.md | 20 +++--- .../colax-transitive-globular-maps.lagda.md | 14 ++-- ...position-structure-globular-types.lagda.md | 12 ++-- .../constant-globular-types.lagda.md | 6 +- .../dependent-globular-types.lagda.md | 10 +-- ...ependent-reflexive-globular-types.lagda.md | 17 +++-- .../dependent-sums-globular-types.lagda.md | 17 +++-- ...ependent-reflexive-globular-types.lagda.md | 21 +++--- .../discrete-globular-types.lagda.md | 12 ++-- ...discrete-reflexive-globular-types.lagda.md | 26 +++---- .../empty-globular-types.lagda.md | 14 ++-- .../equality-globular-types.lagda.md | 12 ++-- .../exponentials-globular-types.lagda.md | 10 +-- .../fibers-globular-maps.lagda.md | 14 ++-- .../globular-equivalences.lagda.md | 8 +-- .../globular-homotopies.lagda.md | 14 ++-- .../globular-maps.lagda.md | 8 +-- .../globular-types.lagda.md | 16 ++--- ...rge-colax-reflexive-globular-maps.lagda.md | 26 +++---- ...ge-colax-transitive-globular-maps.lagda.md | 19 +++--- .../large-globular-maps.lagda.md | 10 +-- .../large-globular-types.lagda.md | 6 +- ...large-lax-reflexive-globular-maps.lagda.md | 26 +++---- ...arge-lax-transitive-globular-maps.lagda.md | 18 ++--- .../large-reflexive-globular-maps.lagda.md | 22 +++--- .../large-reflexive-globular-types.lagda.md | 12 ++-- .../large-symmetric-globular-types.lagda.md | 10 +-- .../large-transitive-globular-maps.lagda.md | 14 ++-- .../large-transitive-globular-types.lagda.md | 12 ++-- .../lax-reflexive-globular-maps.lagda.md | 20 +++--- .../lax-transitive-globular-maps.lagda.md | 14 ++-- .../points-globular-types.lagda.md | 18 ++--- .../points-reflexive-globular-types.lagda.md | 22 +++--- ...ns-binary-families-globular-types.lagda.md | 18 ++--- ...families-reflexive-globular-types.lagda.md | 16 ++--- ...xtensions-families-globular-types.lagda.md | 21 +++--- ...families-reflexive-globular-types.lagda.md | 24 +++---- ...oducts-families-of-globular-types.lagda.md | 8 +-- .../reflexive-globular-equivalences.lagda.md | 16 ++--- .../reflexive-globular-maps.lagda.md | 14 ++-- .../reflexive-globular-types.lagda.md | 16 ++--- ...sections-dependent-globular-types.lagda.md | 11 ++- .../superglobular-types.lagda.md | 23 +++---- .../symmetric-globular-types.lagda.md | 6 +- .../terminal-globular-types.lagda.md | 10 +-- .../transitive-globular-maps.lagda.md | 10 +-- .../transitive-globular-types.lagda.md | 12 ++-- .../unit-globular-type.lagda.md | 10 +-- .../unit-reflexive-globular-type.lagda.md | 8 +-- .../universal-globular-type.lagda.md | 14 ++-- ...universal-reflexive-globular-type.lagda.md | 6 +- src/structured-types.lagda.md | 56 --------------- ...t-large-wild-higher-precategories.lagda.md | 2 +- ...oherent-wild-higher-precategories.lagda.md | 2 +- 61 files changed, 471 insertions(+), 467 deletions(-) create mode 100644 src/globular-types.lagda.md rename src/{structured-types => globular-types}/base-change-dependent-globular-types.lagda.md (86%) rename src/{structured-types => globular-types}/base-change-dependent-reflexive-globular-types.lagda.md (86%) rename src/{structured-types => globular-types}/binary-dependent-globular-types.lagda.md (92%) rename src/{structured-types => globular-types}/binary-dependent-reflexive-globular-types.lagda.md (95%) rename src/{structured-types => globular-types}/binary-globular-maps.lagda.md (81%) rename src/{structured-types => globular-types}/colax-reflexive-globular-maps.lagda.md (91%) rename src/{structured-types => globular-types}/colax-transitive-globular-maps.lagda.md (95%) rename src/{structured-types => globular-types}/composition-structure-globular-types.lagda.md (79%) rename src/{structured-types => globular-types}/constant-globular-types.lagda.md (79%) rename src/{structured-types => globular-types}/dependent-globular-types.lagda.md (87%) rename src/{structured-types => globular-types}/dependent-reflexive-globular-types.lagda.md (95%) rename src/{structured-types => globular-types}/dependent-sums-globular-types.lagda.md (91%) rename src/{structured-types => globular-types}/discrete-dependent-reflexive-globular-types.lagda.md (57%) rename src/{structured-types => globular-types}/discrete-globular-types.lagda.md (84%) rename src/{structured-types => globular-types}/discrete-reflexive-globular-types.lagda.md (86%) rename src/{structured-types => globular-types}/empty-globular-types.lagda.md (69%) rename src/{structured-types => globular-types}/equality-globular-types.lagda.md (92%) rename src/{structured-types => globular-types}/exponentials-globular-types.lagda.md (89%) rename src/{structured-types => globular-types}/fibers-globular-maps.lagda.md (71%) rename src/{structured-types => globular-types}/globular-equivalences.lagda.md (95%) rename src/{structured-types => globular-types}/globular-homotopies.lagda.md (54%) rename src/{structured-types => globular-types}/globular-maps.lagda.md (94%) rename src/{structured-types => globular-types}/globular-types.lagda.md (94%) rename src/{structured-types => globular-types}/large-colax-reflexive-globular-maps.lagda.md (90%) rename src/{structured-types => globular-types}/large-colax-transitive-globular-maps.lagda.md (94%) rename src/{structured-types => globular-types}/large-globular-maps.lagda.md (94%) rename src/{structured-types => globular-types}/large-globular-types.lagda.md (98%) rename src/{structured-types => globular-types}/large-lax-reflexive-globular-maps.lagda.md (90%) rename src/{structured-types => globular-types}/large-lax-transitive-globular-maps.lagda.md (94%) rename src/{structured-types => globular-types}/large-reflexive-globular-maps.lagda.md (88%) rename src/{structured-types => globular-types}/large-reflexive-globular-types.lagda.md (97%) rename src/{structured-types => globular-types}/large-symmetric-globular-types.lagda.md (92%) rename src/{structured-types => globular-types}/large-transitive-globular-maps.lagda.md (95%) rename src/{structured-types => globular-types}/large-transitive-globular-types.lagda.md (97%) rename src/{structured-types => globular-types}/lax-reflexive-globular-maps.lagda.md (91%) rename src/{structured-types => globular-types}/lax-transitive-globular-maps.lagda.md (95%) rename src/{structured-types => globular-types}/points-globular-types.lagda.md (80%) rename src/{structured-types => globular-types}/points-reflexive-globular-types.lagda.md (66%) rename src/{structured-types => globular-types}/pointwise-extensions-binary-families-globular-types.lagda.md (79%) rename src/{structured-types => globular-types}/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md (79%) rename src/{structured-types => globular-types}/pointwise-extensions-families-globular-types.lagda.md (73%) rename src/{structured-types => globular-types}/pointwise-extensions-families-reflexive-globular-types.lagda.md (70%) rename src/{structured-types => globular-types}/products-families-of-globular-types.lagda.md (93%) rename src/{structured-types => globular-types}/reflexive-globular-equivalences.lagda.md (95%) rename src/{structured-types => globular-types}/reflexive-globular-maps.lagda.md (91%) rename src/{structured-types => globular-types}/reflexive-globular-types.lagda.md (95%) rename src/{structured-types => globular-types}/sections-dependent-globular-types.lagda.md (84%) rename src/{structured-types => globular-types}/superglobular-types.lagda.md (88%) rename src/{structured-types => globular-types}/symmetric-globular-types.lagda.md (95%) rename src/{structured-types => globular-types}/terminal-globular-types.lagda.md (70%) rename src/{structured-types => globular-types}/transitive-globular-maps.lagda.md (96%) rename src/{structured-types => globular-types}/transitive-globular-types.lagda.md (96%) rename src/{structured-types => globular-types}/unit-globular-type.lagda.md (66%) rename src/{structured-types => globular-types}/unit-reflexive-globular-type.lagda.md (80%) rename src/{structured-types => globular-types}/universal-globular-type.lagda.md (94%) rename src/{structured-types => globular-types}/universal-reflexive-globular-type.lagda.md (93%) diff --git a/DESIGN-PRINCIPLES.md b/DESIGN-PRINCIPLES.md index ada849d7b3..d66229a164 100644 --- a/DESIGN-PRINCIPLES.md +++ b/DESIGN-PRINCIPLES.md @@ -29,7 +29,7 @@ makes use of several postulates. 9. **Pushouts** are postulated in [`synthetic-homotopy-theory.pushouts`](synthetic-homotopy-theory.pushouts.md) 10. **Extensionality of globular types** is postulated in - [`structured-types.equality-globular-types`](structured-types.equality-globular-types.md). + [`globular-types.equality-globular-types`](globular-types.equality-globular-types.md). 11. Various **Agda built-in types** are postulated in [`primitives`](primitives.md) and in [`reflection`](reflection.md). 12. The **flat modality** and accompanying modalities, with propositional diff --git a/src/globular-types.lagda.md b/src/globular-types.lagda.md new file mode 100644 index 0000000000..abec043679 --- /dev/null +++ b/src/globular-types.lagda.md @@ -0,0 +1,68 @@ +# Globular types + +```agda +{-# OPTIONS --guardedness #-} +``` + +## Modules in the globular types namespace + +```agda +module globular-types where + +open import globular-types.base-change-dependent-globular-types public +open import globular-types.base-change-dependent-reflexive-globular-types public +open import globular-types.binary-dependent-globular-types public +open import globular-types.binary-dependent-reflexive-globular-types public +open import globular-types.binary-globular-maps public +open import globular-types.colax-reflexive-globular-maps public +open import globular-types.colax-transitive-globular-maps public +open import globular-types.composition-structure-globular-types public +open import globular-types.constant-globular-types public +open import globular-types.dependent-globular-types public +open import globular-types.dependent-reflexive-globular-types public +open import globular-types.dependent-sums-globular-types public +open import globular-types.discrete-dependent-reflexive-globular-types public +open import globular-types.discrete-globular-types public +open import globular-types.discrete-reflexive-globular-types public +open import globular-types.empty-globular-types public +open import globular-types.equality-globular-types public +open import globular-types.exponentials-globular-types public +open import globular-types.fibers-globular-maps public +open import globular-types.globular-equivalences public +open import globular-types.globular-homotopies public +open import globular-types.globular-maps public +open import globular-types.globular-types public +open import globular-types.large-colax-reflexive-globular-maps public +open import globular-types.large-colax-transitive-globular-maps public +open import globular-types.large-globular-maps public +open import globular-types.large-globular-types public +open import globular-types.large-lax-reflexive-globular-maps public +open import globular-types.large-lax-transitive-globular-maps public +open import globular-types.large-reflexive-globular-maps public +open import globular-types.large-reflexive-globular-types public +open import globular-types.large-symmetric-globular-types public +open import globular-types.large-transitive-globular-maps public +open import globular-types.large-transitive-globular-types public +open import globular-types.lax-reflexive-globular-maps public +open import globular-types.lax-transitive-globular-maps public +open import globular-types.points-globular-types public +open import globular-types.points-reflexive-globular-types public +open import globular-types.pointwise-extensions-binary-families-globular-types public +open import globular-types.pointwise-extensions-binary-families-reflexive-globular-types public +open import globular-types.pointwise-extensions-families-globular-types public +open import globular-types.pointwise-extensions-families-reflexive-globular-types public +open import globular-types.products-families-of-globular-types public +open import globular-types.reflexive-globular-equivalences public +open import globular-types.reflexive-globular-maps public +open import globular-types.reflexive-globular-types public +open import globular-types.sections-dependent-globular-types public +open import globular-types.superglobular-types public +open import globular-types.symmetric-globular-types public +open import globular-types.terminal-globular-types public +open import globular-types.transitive-globular-maps public +open import globular-types.transitive-globular-types public +open import globular-types.unit-globular-type public +open import globular-types.unit-reflexive-globular-type public +open import globular-types.universal-globular-type public +open import globular-types.universal-reflexive-globular-type public +``` diff --git a/src/structured-types/base-change-dependent-globular-types.lagda.md b/src/globular-types/base-change-dependent-globular-types.lagda.md similarity index 86% rename from src/structured-types/base-change-dependent-globular-types.lagda.md rename to src/globular-types/base-change-dependent-globular-types.lagda.md index 98fa652c0b..c0408459c0 100644 --- a/src/structured-types/base-change-dependent-globular-types.lagda.md +++ b/src/globular-types/base-change-dependent-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.base-change-dependent-globular-types where +module globular-types.base-change-dependent-globular-types where ```
Imports @@ -11,18 +11,17 @@ module structured-types.base-change-dependent-globular-types where ```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 +open import globular-types.dependent-globular-types +open import globular-types.globular-maps +open import globular-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) +Consider a [dependent globular type](globular-types.dependent-globular-types.md) +`H` over `G`, and consider a [globular map](globular-types.globular-maps.md) `f : K → G`. The {{#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 diff --git a/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md b/src/globular-types/base-change-dependent-reflexive-globular-types.lagda.md similarity index 86% rename from src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md rename to src/globular-types/base-change-dependent-reflexive-globular-types.lagda.md index b000f5407e..f1507037dd 100644 --- a/src/structured-types/base-change-dependent-reflexive-globular-types.lagda.md +++ b/src/globular-types/base-change-dependent-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.base-change-dependent-reflexive-globular-types where +module globular-types.base-change-dependent-reflexive-globular-types where ```
Imports @@ -13,23 +13,23 @@ open import foundation.identity-types open import foundation.transport-along-identifications 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.dependent-reflexive-globular-types -open import structured-types.globular-types -open import structured-types.reflexive-globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.base-change-dependent-globular-types +open import globular-types.dependent-globular-types +open import globular-types.dependent-reflexive-globular-types +open import globular-types.globular-types +open import globular-types.reflexive-globular-maps +open import globular-types.reflexive-globular-types ```
## Idea -Consider a [reflexive globular map](structured-types.reflexive-globular-maps.md) +Consider a [reflexive globular map](globular-types.reflexive-globular-maps.md) `f : G → H` between -[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and `H`, and consider a -[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) +[dependent reflexive globular type](globular-types.dependent-reflexive-globular-types.md) `K` over `H`. The {{#concept "base change" Disambiguation="dependent reflexive globular types" Agda=base-change-Dependent-Reflexive-Globular-Type}} `f*K` is the dependent reflexive globular type over `G` given by diff --git a/src/structured-types/binary-dependent-globular-types.lagda.md b/src/globular-types/binary-dependent-globular-types.lagda.md similarity index 92% rename from src/structured-types/binary-dependent-globular-types.lagda.md rename to src/globular-types/binary-dependent-globular-types.lagda.md index 58e8922cce..de718af1c3 100644 --- a/src/structured-types/binary-dependent-globular-types.lagda.md +++ b/src/globular-types/binary-dependent-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.binary-dependent-globular-types where +module globular-types.binary-dependent-globular-types where ```
Imports @@ -11,15 +11,15 @@ module structured-types.binary-dependent-globular-types where ```agda open import foundation.universe-levels -open import structured-types.globular-types -open import structured-types.points-globular-types +open import globular-types.globular-types +open import globular-types.points-globular-types ```
## Idea -Consider two [globular types](structured-types.globular-types.md) `G` and `H`. A +Consider two [globular types](globular-types.globular-types.md) `G` and `H`. A {{#concept "binary dependent globular type" Agda=Binary-Dependent-Globular-Type}} `K` over `G` and `H` consists of diff --git a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md b/src/globular-types/binary-dependent-reflexive-globular-types.lagda.md similarity index 95% rename from src/structured-types/binary-dependent-reflexive-globular-types.lagda.md rename to src/globular-types/binary-dependent-reflexive-globular-types.lagda.md index 22a85d20b1..bcc6154b72 100644 --- a/src/structured-types/binary-dependent-reflexive-globular-types.lagda.md +++ b/src/globular-types/binary-dependent-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.binary-dependent-reflexive-globular-types where +module globular-types.binary-dependent-reflexive-globular-types where ```
Imports @@ -11,10 +11,10 @@ module structured-types.binary-dependent-reflexive-globular-types where ```agda open import foundation.universe-levels -open import structured-types.binary-dependent-globular-types -open import structured-types.globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.reflexive-globular-types +open import globular-types.binary-dependent-globular-types +open import globular-types.globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.reflexive-globular-types ```
@@ -22,11 +22,11 @@ open import structured-types.reflexive-globular-types ## Idea Consider two -[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and `H`. A {{#concept "binary dependent reflexive globular type" Agda=Binary-Dependent-Reflexive-Globular-Type}} `K` over `G` and `H` consists of a -[binary dependent globular type](structured-types.binary-dependent-globular-types.md) +[binary dependent globular type](globular-types.binary-dependent-globular-types.md) `K` over `G` and `H` equipped with reflexivity structure `refl K`. A binary dependent globular type `K` over reflexive globular types `G` and `H` diff --git a/src/structured-types/binary-globular-maps.lagda.md b/src/globular-types/binary-globular-maps.lagda.md similarity index 81% rename from src/structured-types/binary-globular-maps.lagda.md rename to src/globular-types/binary-globular-maps.lagda.md index 6c7e436885..aa89346264 100644 --- a/src/structured-types/binary-globular-maps.lagda.md +++ b/src/globular-types/binary-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.binary-globular-maps where +module globular-types.binary-globular-maps where ```
Imports @@ -11,16 +11,16 @@ module structured-types.binary-globular-maps where ```agda open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.globular-types +open import globular-types.globular-maps +open import globular-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}} +Consider three [globular types](globular-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 diff --git a/src/structured-types/colax-reflexive-globular-maps.lagda.md b/src/globular-types/colax-reflexive-globular-maps.lagda.md similarity index 91% rename from src/structured-types/colax-reflexive-globular-maps.lagda.md rename to src/globular-types/colax-reflexive-globular-maps.lagda.md index e6089ba913..1e834a12a5 100644 --- a/src/structured-types/colax-reflexive-globular-maps.lagda.md +++ b/src/globular-types/colax-reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.colax-reflexive-globular-maps where +module globular-types.colax-reflexive-globular-maps where ```
Imports @@ -11,8 +11,8 @@ module structured-types.colax-reflexive-globular-maps where ```agda open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.globular-maps +open import globular-types.reflexive-globular-types ```
@@ -21,8 +21,8 @@ open import structured-types.reflexive-globular-types 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 +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](globular-types.globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -40,20 +40,20 @@ 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 +[transitive](globular-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 +[reflexive globular maps](globular-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 +[lax reflexive globular map](globular-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 @@ -212,5 +212,5 @@ is-colax-reflexive-colax-reflexive-globular-map ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) +- [Lax reflexive globular maps](globular-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](globular-types.reflexive-globular-maps.md) diff --git a/src/structured-types/colax-transitive-globular-maps.lagda.md b/src/globular-types/colax-transitive-globular-maps.lagda.md similarity index 95% rename from src/structured-types/colax-transitive-globular-maps.lagda.md rename to src/globular-types/colax-transitive-globular-maps.lagda.md index 888dadb666..cb012086d5 100644 --- a/src/structured-types/colax-transitive-globular-maps.lagda.md +++ b/src/globular-types/colax-transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.colax-transitive-globular-maps where +module globular-types.colax-transitive-globular-maps where ```
Imports @@ -11,8 +11,8 @@ module structured-types.colax-transitive-globular-maps where ```agda open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.transitive-globular-types +open import globular-types.globular-maps +open import globular-types.transitive-globular-types ```
@@ -22,9 +22,9 @@ open import structured-types.transitive-globular-types 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` -equipped with a family of 2-cells +[transitive globular types](globular-types.transitive-globular-types.md) `G` and +`H` is a [globular map](globular-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) @@ -40,7 +40,7 @@ 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 +[reflexive](globular-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/composition-structure-globular-types.lagda.md b/src/globular-types/composition-structure-globular-types.lagda.md similarity index 79% rename from src/structured-types/composition-structure-globular-types.lagda.md rename to src/globular-types/composition-structure-globular-types.lagda.md index 7029d9376c..5d9fbf094b 100644 --- a/src/structured-types/composition-structure-globular-types.lagda.md +++ b/src/globular-types/composition-structure-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.composition-structure-globular-types where +module globular-types.composition-structure-globular-types where ```
Imports @@ -11,8 +11,8 @@ module structured-types.composition-structure-globular-types where ```agda open import foundation.universe-levels -open import structured-types.binary-globular-maps -open import structured-types.globular-types +open import globular-types.binary-globular-maps +open import globular-types.globular-types ```
@@ -21,8 +21,8 @@ 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](structured-types.binary-globular-maps.md) +on a [globular type](globular-types.globular-types.md) `G` consists of a +[binary globular map](globular-types.binary-globular-maps.md) ```text - ∘ - : G' y z → G' x y → G' x z, @@ -38,7 +38,7 @@ consists of binary operations 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 +[transitivity structure](globular-types.transitive-globular-types.md) on globular types. ## Definitions diff --git a/src/structured-types/constant-globular-types.lagda.md b/src/globular-types/constant-globular-types.lagda.md similarity index 79% rename from src/structured-types/constant-globular-types.lagda.md rename to src/globular-types/constant-globular-types.lagda.md index 3a0623644e..9a449b367a 100644 --- a/src/structured-types/constant-globular-types.lagda.md +++ b/src/globular-types/constant-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.constant-globular-types where +module globular-types.constant-globular-types where ```
Imports @@ -11,7 +11,7 @@ module structured-types.constant-globular-types where ```agda open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types ```
@@ -20,7 +20,7 @@ open import structured-types.globular-types Consider a type `A`. The {{#concept "constant globular type" Agda=constant-Globular-Type}} at `A` is the -[globular type](structured-types.globular-types.md) `𝐀` given by +[globular type](globular-types.globular-types.md) `𝐀` given by ```text 𝐀₀ := A diff --git a/src/structured-types/dependent-globular-types.lagda.md b/src/globular-types/dependent-globular-types.lagda.md similarity index 87% rename from src/structured-types/dependent-globular-types.lagda.md rename to src/globular-types/dependent-globular-types.lagda.md index 2f0e09f1af..41d4806001 100644 --- a/src/structured-types/dependent-globular-types.lagda.md +++ b/src/globular-types/dependent-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.dependent-globular-types where +module globular-types.dependent-globular-types where ```
Imports @@ -12,15 +12,15 @@ module structured-types.dependent-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types -open import structured-types.points-globular-types +open import globular-types.globular-types +open import globular-types.points-globular-types ```
## Idea -Consider a [globular type](structured-types.globular-types.md) `G`. A +Consider a [globular type](globular-types.globular-types.md) `G`. A {{#concept "dependent globular type" Agda=Dependent-Globular-Type}} over `G` consists of a type family `H₀ : G₀ → 𝒰`, and for any two `0`-cells `x y : G₀` in `G` a binary family of dependent globular types @@ -83,4 +83,4 @@ ev-point-Dependent-Globular-Type : ## See also -- [Dependent reflexive globular types](structured-types.dependent-reflexive-globular-types.md) +- [Dependent reflexive globular types](globular-types.dependent-reflexive-globular-types.md) diff --git a/src/structured-types/dependent-reflexive-globular-types.lagda.md b/src/globular-types/dependent-reflexive-globular-types.lagda.md similarity index 95% rename from src/structured-types/dependent-reflexive-globular-types.lagda.md rename to src/globular-types/dependent-reflexive-globular-types.lagda.md index e94b48b18b..b82c493c5e 100644 --- a/src/structured-types/dependent-reflexive-globular-types.lagda.md +++ b/src/globular-types/dependent-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.dependent-reflexive-globular-types where +module globular-types.dependent-reflexive-globular-types where ```
Imports @@ -12,22 +12,21 @@ module structured-types.dependent-reflexive-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.dependent-globular-types -open import structured-types.globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.reflexive-globular-types +open import globular-types.dependent-globular-types +open import globular-types.globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.reflexive-globular-types ```
## Idea -Consider a -[reflexive globular type](structured-types.reflexive-globular-types.md) `G` -equipped with a reflexivity element `ρ`. A +Consider a [reflexive globular type](globular-types.reflexive-globular-types.md) +`G` equipped with a reflexivity element `ρ`. A {{#concept "dependent reflexive globular type" Agda=Dependent-Reflexive-Globular-Type}} over `G` consists of a -[dependent globular type](structured-types.dependent-globular-types.md) `H` over +[dependent globular type](globular-types.dependent-globular-types.md) `H` over `G` equipped with a reflexivity element `ρ'` consisting of ```text diff --git a/src/structured-types/dependent-sums-globular-types.lagda.md b/src/globular-types/dependent-sums-globular-types.lagda.md similarity index 91% rename from src/structured-types/dependent-sums-globular-types.lagda.md rename to src/globular-types/dependent-sums-globular-types.lagda.md index 48e6e98aca..ead7b91cb5 100644 --- a/src/structured-types/dependent-sums-globular-types.lagda.md +++ b/src/globular-types/dependent-sums-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.dependent-sums-globular-types where +module globular-types.dependent-sums-globular-types where ```
Imports @@ -12,20 +12,19 @@ module structured-types.dependent-sums-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.sections-dependent-globular-types +open import globular-types.base-change-dependent-globular-types +open import globular-types.dependent-globular-types +open import globular-types.globular-maps +open import globular-types.globular-types +open import globular-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 +Consider a [dependent globular type](globular-types.dependent-globular-types.md) +`H` over a [globular type](globular-types.globular-types.md) `G`. The {{#concept "dependent sum" Disambiguation="globular types" Agda=Σ-Globular-Type}} `Σ G H` of `H` is the globular type given by diff --git a/src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md b/src/globular-types/discrete-dependent-reflexive-globular-types.lagda.md similarity index 57% rename from src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md rename to src/globular-types/discrete-dependent-reflexive-globular-types.lagda.md index 7596c06e64..782d45590d 100644 --- a/src/structured-types/discrete-dependent-reflexive-globular-types.lagda.md +++ b/src/globular-types/discrete-dependent-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.discrete-dependent-reflexive-globular-types where +module globular-types.discrete-dependent-reflexive-globular-types where ```
Imports @@ -11,10 +11,10 @@ module structured-types.discrete-dependent-reflexive-globular-types where ```agda open import foundation.universe-levels -open import structured-types.dependent-reflexive-globular-types -open import structured-types.discrete-reflexive-globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.reflexive-globular-types +open import globular-types.dependent-reflexive-globular-types +open import globular-types.discrete-reflexive-globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.reflexive-globular-types ```
@@ -22,10 +22,9 @@ open import structured-types.reflexive-globular-types ## Idea A -[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) -`H` over a -[reflexive globular type](structured-types.reflexive-globular-types.md) `G` is -said to be +[dependent reflexive globular type](globular-types.dependent-reflexive-globular-types.md) +`H` over a [reflexive globular type](globular-types.reflexive-globular-types.md) +`G` is said to be {{#concept "discrete" Disambiguation="dependent reflexive globular type" Agda=is-discrete-Dependent-Reflexive-Globular-Type}} if the reflexive globular type @@ -33,8 +32,8 @@ if the reflexive globular type ev-point H x ``` -is [discrete](structured-types.discrete-reflexive-globular-types.md) for every -[point](structured-types.points-reflexive-globular-types.md) of `G`. +is [discrete](globular-types.discrete-reflexive-globular-types.md) for every +[point](globular-types.points-reflexive-globular-types.md) of `G`. ## Definitions diff --git a/src/structured-types/discrete-globular-types.lagda.md b/src/globular-types/discrete-globular-types.lagda.md similarity index 84% rename from src/structured-types/discrete-globular-types.lagda.md rename to src/globular-types/discrete-globular-types.lagda.md index 59d762e232..77b4dd1141 100644 --- a/src/structured-types/discrete-globular-types.lagda.md +++ b/src/globular-types/discrete-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.discrete-globular-types where +module globular-types.discrete-globular-types where ```
Imports @@ -14,15 +14,15 @@ open import foundation.discrete-binary-relations open import foundation.propositions open import foundation.universe-levels -open import structured-types.empty-globular-types -open import structured-types.globular-types +open import globular-types.empty-globular-types +open import globular-types.globular-types ```
## Idea -A [globular type](structured-types.globular-types.md) `G` is said to be +A [globular type](globular-types.globular-types.md) `G` is said to be {{#concept "discrete" Disambiguation="globular type" Agda=is-discrete-Globular-Type}} if it has no 1-cells, i.e., if the type `G₁ x y` of 1-cells from `x` to `y` in `G` is [empty](foundation.empty-types.md) for any two 0-cells `x y : G₀`. In @@ -37,7 +37,7 @@ discrete globular types. Note that the globular type obtained from a type and its iterated [identity types](foundation-core.identity-types.md) is the -[standard discrete reflexive globular type](structured-types.discrete-reflexive-globular-types.md). +[standard discrete reflexive globular type](globular-types.discrete-reflexive-globular-types.md). ## Definitions @@ -82,4 +82,4 @@ discrete-Globular-Type : ## See also - [Discrete directed graphs](graph-theory.discrete-directed-graphs.md) -- [Discrete reflexive globular types](structured-types.discrete-reflexive-globular-types.md) +- [Discrete reflexive globular types](globular-types.discrete-reflexive-globular-types.md) diff --git a/src/structured-types/discrete-reflexive-globular-types.lagda.md b/src/globular-types/discrete-reflexive-globular-types.lagda.md similarity index 86% rename from src/structured-types/discrete-reflexive-globular-types.lagda.md rename to src/globular-types/discrete-reflexive-globular-types.lagda.md index e6b2034fb5..9e45c68d20 100644 --- a/src/structured-types/discrete-reflexive-globular-types.lagda.md +++ b/src/globular-types/discrete-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.discrete-reflexive-globular-types where +module globular-types.discrete-reflexive-globular-types where ```
Imports @@ -13,18 +13,18 @@ open import foundation.identity-types open import foundation.torsorial-type-families open import foundation.universe-levels -open import structured-types.globular-types -open import structured-types.reflexive-globular-types -open import structured-types.symmetric-globular-types -open import structured-types.transitive-globular-types +open import globular-types.globular-types +open import globular-types.reflexive-globular-types +open import globular-types.symmetric-globular-types +open import globular-types.transitive-globular-types ```
## Idea -A [reflexive globular type](structured-types.reflexive-globular-types.md) is -said to be +A [reflexive globular type](globular-types.reflexive-globular-types.md) is said +to be {{#concept "discrete" Disambiguation="reflexive globular type" Agda=is-discrete-Reflexive-Globular-Type}} if: @@ -34,11 +34,11 @@ if: discrete. The {{#concept "standard discrete globular type"}} at a type `A` is the -[globular type](structured-types.globular-types.md) obtained from the iterated +[globular type](globular-types.globular-types.md) obtained from the iterated [identity types](foundation-core.identity-types.md) on `A`. This globular type -is [reflexive](structured-types.reflexive-globular-types.md), -[transitive](structured-types.transitive-globular-types.md), and indeed -[discrete](structured-types.discrete-reflexive-globular-types.md). +is [reflexive](globular-types.reflexive-globular-types.md), +[transitive](globular-types.transitive-globular-types.md), and indeed +[discrete](globular-types.discrete-reflexive-globular-types.md). ## Definitions @@ -180,6 +180,6 @@ is-symmetric-1-cell-globular-type-is-symmetric-Globular-Type ## See also -- [Discrete dependent reflexive globular types](structured-types.discrete-dependent-reflexive-globular-types.md) -- [Discrete globular types](structured-types.discrete-globular-types.md) +- [Discrete dependent reflexive globular types](globular-types.discrete-dependent-reflexive-globular-types.md) +- [Discrete globular types](globular-types.discrete-globular-types.md) - [Discrete reflexive graphs](graph-theory.discrete-reflexive-graphs.md) diff --git a/src/structured-types/empty-globular-types.lagda.md b/src/globular-types/empty-globular-types.lagda.md similarity index 69% rename from src/structured-types/empty-globular-types.lagda.md rename to src/globular-types/empty-globular-types.lagda.md index 425294903f..9e19f67f78 100644 --- a/src/structured-types/empty-globular-types.lagda.md +++ b/src/globular-types/empty-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.empty-globular-types where +module globular-types.empty-globular-types where ```
Imports @@ -12,23 +12,23 @@ module structured-types.empty-globular-types where open import foundation.empty-types open import foundation.universe-levels -open import structured-types.constant-globular-types -open import structured-types.globular-types +open import globular-types.constant-globular-types +open import globular-types.globular-types ```
## Idea -A [globular type](structured-types.globular-types.md) is said to be +A [globular type](globular-types.globular-types.md) is said to be {{#concept "empty" Disambiguation="globular type"}} if its type of 0-cells is [empty](foundation.empty-types.md). The {{#concept "standard empty globular type" Agda=empty-Globular-Type}} is defined to be the -[constant globular type](structured-types.constant-globular-types.md) at the -empty type. That is, the standard empty globular type is the globular type `𝟎` -given by +[constant globular type](globular-types.constant-globular-types.md) at the empty +type. That is, the standard empty globular type is the globular type `𝟎` given +by ```text 𝟎₀ := ∅ diff --git a/src/structured-types/equality-globular-types.lagda.md b/src/globular-types/equality-globular-types.lagda.md similarity index 92% rename from src/structured-types/equality-globular-types.lagda.md rename to src/globular-types/equality-globular-types.lagda.md index cd425b2c56..a93f6bde6f 100644 --- a/src/structured-types/equality-globular-types.lagda.md +++ b/src/globular-types/equality-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.equality-globular-types where +module globular-types.equality-globular-types where ```
Imports @@ -25,7 +25,7 @@ open import foundation-core.equivalences open import foundation-core.retractions open import foundation-core.sections -open import structured-types.globular-types +open import globular-types.globular-types ```
@@ -33,10 +33,10 @@ open import structured-types.globular-types ## Idea We postulate that [equality](foundation-core.identity-types.md) of -[globular types](structured-types.globular-types.md) is characterized by -equality of the 0-cells together with, coinductively, a binary family of -equalities of the globular type of 1-cells over the equality of the 0-cells. -This phrasing is used so that the extensionality principle is independent of +[globular types](globular-types.globular-types.md) is characterized by equality +of the 0-cells together with, coinductively, a binary family of equalities of +the globular type of 1-cells over the equality of the 0-cells. This phrasing is +used so that the extensionality principle is independent of [univalence](foundation.univalence.md). ## Definitions diff --git a/src/structured-types/exponentials-globular-types.lagda.md b/src/globular-types/exponentials-globular-types.lagda.md similarity index 89% rename from src/structured-types/exponentials-globular-types.lagda.md rename to src/globular-types/exponentials-globular-types.lagda.md index 6d98c40a99..85458109da 100644 --- a/src/structured-types/exponentials-globular-types.lagda.md +++ b/src/globular-types/exponentials-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.exponentials-globular-types where +module globular-types.exponentials-globular-types where ```
Imports @@ -12,9 +12,9 @@ module structured-types.exponentials-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 +open import globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.products-families-of-globular-types ```
@@ -22,7 +22,7 @@ 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 +[globular types](globular-types.globular-types.md) indexed by a type `I`. We construct a globular type `Π_I G`. ## Definitions diff --git a/src/structured-types/fibers-globular-maps.lagda.md b/src/globular-types/fibers-globular-maps.lagda.md similarity index 71% rename from src/structured-types/fibers-globular-maps.lagda.md rename to src/globular-types/fibers-globular-maps.lagda.md index 993b1cd72f..62022c561b 100644 --- a/src/structured-types/fibers-globular-maps.lagda.md +++ b/src/globular-types/fibers-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.fibers-globular-maps where +module globular-types.fibers-globular-maps where ```
Imports @@ -14,19 +14,19 @@ 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 +open import globular-types.dependent-globular-types +open import globular-types.globular-maps +open import globular-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 +Consider a [globular map](globular-types.globular-maps.md) `f : H → G` between +two [globular types](globular-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) +`f` is a [dependent globular type](globular-types.dependent-globular-types.md) `fib_f` given by ```text diff --git a/src/structured-types/globular-equivalences.lagda.md b/src/globular-types/globular-equivalences.lagda.md similarity index 95% rename from src/structured-types/globular-equivalences.lagda.md rename to src/globular-types/globular-equivalences.lagda.md index aa3cef214f..5afece9603 100644 --- a/src/structured-types/globular-equivalences.lagda.md +++ b/src/globular-types/globular-equivalences.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.globular-equivalences where +module globular-types.globular-equivalences where ```
Imports @@ -15,8 +15,8 @@ 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 globular-types.globular-maps +open import globular-types.globular-types ```
@@ -24,7 +24,7 @@ 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 +[globular types](globular-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 diff --git a/src/structured-types/globular-homotopies.lagda.md b/src/globular-types/globular-homotopies.lagda.md similarity index 54% rename from src/structured-types/globular-homotopies.lagda.md rename to src/globular-types/globular-homotopies.lagda.md index d0b1d16fcb..cad3709998 100644 --- a/src/structured-types/globular-homotopies.lagda.md +++ b/src/globular-types/globular-homotopies.lagda.md @@ -1,7 +1,7 @@ # Globular homotopies ```agda -module structured-types.globular-homotopies where +module globular-types.globular-homotopies where ```
Imports @@ -14,12 +14,12 @@ 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 +Consider two [globular maps](globular-types.globular-maps.md) `f g : G → H` into +a [transitive globular type](globular-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 +[globular types](globular-types.md) via the [identity type](foundation-core.identity-types.md). ### Standard globular homotopies @@ -32,5 +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 +[globular types](globular-types.globular-types.md) `G' x y` and `H' (f₀ x) (f₀ y)` diff --git a/src/structured-types/globular-maps.lagda.md b/src/globular-types/globular-maps.lagda.md similarity index 94% rename from src/structured-types/globular-maps.lagda.md rename to src/globular-types/globular-maps.lagda.md index b65166089e..4cdc042698 100644 --- a/src/structured-types/globular-maps.lagda.md +++ b/src/globular-types/globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.globular-maps where +module globular-types.globular-maps where ```
Imports @@ -14,7 +14,7 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types ```
@@ -22,8 +22,8 @@ open import structured-types.globular-types ## Idea 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 +between [globular types](globular-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 diff --git a/src/structured-types/globular-types.lagda.md b/src/globular-types/globular-types.lagda.md similarity index 94% rename from src/structured-types/globular-types.lagda.md rename to src/globular-types/globular-types.lagda.md index 7c35cab06a..11ecfe44fa 100644 --- a/src/structured-types/globular-types.lagda.md +++ b/src/globular-types/globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.globular-types where +module globular-types.globular-types where ```
Imports @@ -55,7 +55,7 @@ Every type has the structure of a globular type, where the globular structure is obtained from the [identity type](foundation-core.identity-types.md). The globular type obtained from a type `A` and its iterated identity types is called the -[standard discrete reflexive globular type](structured-types.discrete-reflexive-globular-types.md). +[standard discrete reflexive globular type](globular-types.discrete-reflexive-globular-types.md). ## Definitions @@ -64,7 +64,7 @@ the **Comment.** The choice to add a second universe level in the definition of a globular structure may seem rather arbitrary, but makes the concept applicable in particular extra cases that are of use to us when working with -[large globular structures](structured-types.large-globular-types.md). +[large globular structures](globular-types.large-globular-types.md). ```agda record @@ -312,8 +312,8 @@ globular-structure-5-cell-Globular-Type A = ## See also -- [Discrete reflexive globular types](structured-types.discrete-reflexive-globular-types.md) -- [Reflexive globular types](structured-types.reflexive-globular-types.md) -- [Superglobular types](structured-types.superglobular-types.md) -- [Symmetric globular types](structured-types.symmetric-globular-types.md) -- [Transitive globular types](structured-types.transitive-globular-types.md) +- [Discrete reflexive globular types](globular-types.discrete-reflexive-globular-types.md) +- [Reflexive globular types](globular-types.reflexive-globular-types.md) +- [Superglobular types](globular-types.superglobular-types.md) +- [Symmetric globular types](globular-types.symmetric-globular-types.md) +- [Transitive globular types](globular-types.transitive-globular-types.md) diff --git a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md b/src/globular-types/large-colax-reflexive-globular-maps.lagda.md similarity index 90% rename from src/structured-types/large-colax-reflexive-globular-maps.lagda.md rename to src/globular-types/large-colax-reflexive-globular-maps.lagda.md index 1922c3ccb6..fddc91230d 100644 --- a/src/structured-types/large-colax-reflexive-globular-maps.lagda.md +++ b/src/globular-types/large-colax-reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-colax-reflexive-globular-maps where +module globular-types.large-colax-reflexive-globular-maps where ```
Imports @@ -12,10 +12,10 @@ module structured-types.large-colax-reflexive-globular-maps where 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 +open import globular-types.colax-reflexive-globular-maps +open import globular-types.large-globular-maps +open import globular-types.large-reflexive-globular-types +open import globular-types.reflexive-globular-types ```
@@ -25,8 +25,8 @@ open import structured-types.reflexive-globular-types 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) +[large reflexive globular types](globular-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -34,9 +34,9 @@ between two ``` 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₀ x`, such that the [globular map](globular-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is -[colax reflexive](structured-types.colax-reflexive-globular-maps.md). +[colax reflexive](globular-types.colax-reflexive-globular-maps.md). ### Lack of composition for colax reflexive globular maps @@ -45,13 +45,13 @@ 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 +[transitive](globular-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) +[large lax reflexive globular map](globular-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 @@ -230,5 +230,5 @@ is-colax-reflexive-large-colax-reflexive-globular-map ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) +- [Lax reflexive globular maps](globular-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](globular-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-colax-transitive-globular-maps.lagda.md b/src/globular-types/large-colax-transitive-globular-maps.lagda.md similarity index 94% rename from src/structured-types/large-colax-transitive-globular-maps.lagda.md rename to src/globular-types/large-colax-transitive-globular-maps.lagda.md index 0032b5fecb..1cee3db041 100644 --- a/src/structured-types/large-colax-transitive-globular-maps.lagda.md +++ b/src/globular-types/large-colax-transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-colax-transitive-globular-maps where +module globular-types.large-colax-transitive-globular-maps where ```
Imports @@ -12,10 +12,10 @@ 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.transitive-globular-types +open import globular-types.colax-transitive-globular-maps +open import globular-types.large-globular-maps +open import globular-types.large-transitive-globular-types +open import globular-types.transitive-globular-types ```
@@ -25,8 +25,8 @@ open import structured-types.transitive-globular-types A {{#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) +[large transitive globular types](globular-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -43,9 +43,8 @@ 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. +not assumed to be [reflexive](globular-types.large-reflexive-globular-types.md), +it might lack such instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/large-globular-maps.lagda.md b/src/globular-types/large-globular-maps.lagda.md similarity index 94% rename from src/structured-types/large-globular-maps.lagda.md rename to src/globular-types/large-globular-maps.lagda.md index 607e1e62b8..de2899cac3 100644 --- a/src/structured-types/large-globular-maps.lagda.md +++ b/src/globular-types/large-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-globular-maps where +module globular-types.large-globular-maps where ```
Imports @@ -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 globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.large-globular-types ```
@@ -24,7 +24,7 @@ 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` +[large globular types](globular-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 diff --git a/src/structured-types/large-globular-types.lagda.md b/src/globular-types/large-globular-types.lagda.md similarity index 98% rename from src/structured-types/large-globular-types.lagda.md rename to src/globular-types/large-globular-types.lagda.md index 26aaa51d6c..b1ad3d1912 100644 --- a/src/structured-types/large-globular-types.lagda.md +++ b/src/globular-types/large-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-globular-types where +module globular-types.large-globular-types where ```
Imports @@ -12,7 +12,7 @@ module structured-types.large-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types ```
@@ -22,7 +22,7 @@ open import structured-types.globular-types A {{#concept "large globular type" Agda=Large-Globular-Type}} is a hierarchy of types indexed by universe levels, [equipped](foundation.structure.md) with a [large binary relation](foundation.large-binary-relations.md) valued in -[globular types](structured-types.globular-types.md). +[globular types](globular-types.globular-types.md). Thus, a large globular type consists of a base hierarchy of types indexed by universe levels `A` called the _$0$-cells_, and for every pair of $0$-cells, a diff --git a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md b/src/globular-types/large-lax-reflexive-globular-maps.lagda.md similarity index 90% rename from src/structured-types/large-lax-reflexive-globular-maps.lagda.md rename to src/globular-types/large-lax-reflexive-globular-maps.lagda.md index 946afd3f4c..93e6ddcd82 100644 --- a/src/structured-types/large-lax-reflexive-globular-maps.lagda.md +++ b/src/globular-types/large-lax-reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-lax-reflexive-globular-maps where +module globular-types.large-lax-reflexive-globular-maps where ```
Imports @@ -12,10 +12,10 @@ module structured-types.large-lax-reflexive-globular-maps where open import foundation.function-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.lax-reflexive-globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.large-globular-maps +open import globular-types.large-reflexive-globular-types +open import globular-types.lax-reflexive-globular-maps +open import globular-types.reflexive-globular-types ```
@@ -25,8 +25,8 @@ open import structured-types.reflexive-globular-types 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) +[large reflexive globular types](globular-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -34,9 +34,9 @@ between two ``` 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₀ x`, such that the [globular map](globular-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is -[lax reflexive](structured-types.lax-reflexive-globular-maps.md). +[lax reflexive](globular-types.lax-reflexive-globular-maps.md). ### Lack of composition for lax reflexive globular maps @@ -45,13 +45,13 @@ 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 +[transitive](globular-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) +[large colax reflexive globular map](globular-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 @@ -227,5 +227,5 @@ is-lax-reflexive-large-lax-reflexive-globular-map ## See also -- [Lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) +- [Lax reflexive globular maps](globular-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](globular-types.reflexive-globular-maps.md) diff --git a/src/structured-types/large-lax-transitive-globular-maps.lagda.md b/src/globular-types/large-lax-transitive-globular-maps.lagda.md similarity index 94% rename from src/structured-types/large-lax-transitive-globular-maps.lagda.md rename to src/globular-types/large-lax-transitive-globular-maps.lagda.md index 1e9d827f13..fca789da3d 100644 --- a/src/structured-types/large-lax-transitive-globular-maps.lagda.md +++ b/src/globular-types/large-lax-transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-lax-transitive-globular-maps where +module globular-types.large-lax-transitive-globular-maps where ```
Imports @@ -12,10 +12,10 @@ module structured-types.large-lax-transitive-globular-maps where 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 +open import globular-types.large-globular-maps +open import globular-types.large-transitive-globular-types +open import globular-types.lax-transitive-globular-maps +open import globular-types.transitive-globular-types ```
@@ -25,8 +25,8 @@ open import structured-types.transitive-globular-types A {{#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) +[large transitive globular types](globular-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -43,8 +43,8 @@ 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. +be [reflexive](globular-types.large-reflexive-globular-types.md), it might lack +such instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/large-reflexive-globular-maps.lagda.md b/src/globular-types/large-reflexive-globular-maps.lagda.md similarity index 88% rename from src/structured-types/large-reflexive-globular-maps.lagda.md rename to src/globular-types/large-reflexive-globular-maps.lagda.md index 8afac702e4..176958d3e4 100644 --- a/src/structured-types/large-reflexive-globular-maps.lagda.md +++ b/src/globular-types/large-reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-reflexive-globular-maps where +module globular-types.large-reflexive-globular-maps where ```
Imports @@ -12,10 +12,10 @@ module structured-types.large-reflexive-globular-maps where 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 +open import globular-types.large-globular-maps +open import globular-types.large-reflexive-globular-types +open import globular-types.reflexive-globular-maps +open import globular-types.reflexive-globular-types ```
@@ -24,8 +24,8 @@ open import structured-types.reflexive-globular-types 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) +[large reflexive globular types](globular-types.large-reflexive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of [identifications](foundation-core.identity-types.md) @@ -34,18 +34,18 @@ between two ``` 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₀ x`, such that the [globular map](globular-types.globular-maps.md) `f' : G' x y → H' (f₀ x) (f₀ y)` is -[reflexive](structured-types.reflexive-globular-maps.md). +[reflexive](globular-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) +[large colax reflexive globular maps](globular-types.large-colax-reflexive-globular-maps.md) and -[large lax reflexive globular maps](structured-types.large-lax-reflexive-globular-maps.md). +[large lax reflexive globular maps](globular-types.large-lax-reflexive-globular-maps.md). ## Definitions diff --git a/src/structured-types/large-reflexive-globular-types.lagda.md b/src/globular-types/large-reflexive-globular-types.lagda.md similarity index 97% rename from src/structured-types/large-reflexive-globular-types.lagda.md rename to src/globular-types/large-reflexive-globular-types.lagda.md index 8649583c31..5c87033440 100644 --- a/src/structured-types/large-reflexive-globular-types.lagda.md +++ b/src/globular-types/large-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-reflexive-globular-types where +module globular-types.large-reflexive-globular-types where ```
Imports @@ -13,17 +13,17 @@ 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-maps -open import structured-types.large-globular-types -open import structured-types.reflexive-globular-types +open import globular-types.globular-types +open import globular-types.large-globular-maps +open import globular-types.large-globular-types +open import globular-types.reflexive-globular-types ```
## Idea -A [large globular type](structured-types.large-globular-types.md) is +A [large globular type](globular-types.large-globular-types.md) is {{#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`. diff --git a/src/structured-types/large-symmetric-globular-types.lagda.md b/src/globular-types/large-symmetric-globular-types.lagda.md similarity index 92% rename from src/structured-types/large-symmetric-globular-types.lagda.md rename to src/globular-types/large-symmetric-globular-types.lagda.md index b3344cfe9f..02e84ade5f 100644 --- a/src/structured-types/large-symmetric-globular-types.lagda.md +++ b/src/globular-types/large-symmetric-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-symmetric-globular-types where +module globular-types.large-symmetric-globular-types where ```
Imports @@ -12,16 +12,16 @@ module structured-types.large-symmetric-globular-types where 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.symmetric-globular-types +open import globular-types.globular-types +open import globular-types.large-globular-types +open import globular-types.symmetric-globular-types ```
## Idea -We say that a [large globular type](structured-types.large-globular-types.md) is +We say that a [large globular type](globular-types.large-globular-types.md) is {{#concept "symmetric" Disambiguation="large globular type" Agda=is-symmetric-Large-Globular-Type}} if there is a symmetry action on its $n$-cells for positive $n$, mapping $n$-cells from `x` to `y` to $n$-cells from `y` to `x`. diff --git a/src/structured-types/large-transitive-globular-maps.lagda.md b/src/globular-types/large-transitive-globular-maps.lagda.md similarity index 95% rename from src/structured-types/large-transitive-globular-maps.lagda.md rename to src/globular-types/large-transitive-globular-maps.lagda.md index af909f7b5e..1be89397a9 100644 --- a/src/structured-types/large-transitive-globular-maps.lagda.md +++ b/src/globular-types/large-transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-transitive-globular-maps where +module globular-types.large-transitive-globular-maps where ```
Imports @@ -14,10 +14,10 @@ open import foundation.function-types open import foundation.identity-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 +open import globular-types.large-globular-maps +open import globular-types.large-transitive-globular-types +open import globular-types.transitive-globular-maps +open import globular-types.transitive-globular-types ```
@@ -27,8 +27,8 @@ open import structured-types.transitive-globular-types 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) +[large transitive globular types](globular-types.large-transitive-globular-types.md) +`G` and `H` is a [large globular map](globular-types.large-globular-maps.md) `f : G → H` equipped with a family of [identifications](foundation-core.identity-types.md) diff --git a/src/structured-types/large-transitive-globular-types.lagda.md b/src/globular-types/large-transitive-globular-types.lagda.md similarity index 97% rename from src/structured-types/large-transitive-globular-types.lagda.md rename to src/globular-types/large-transitive-globular-types.lagda.md index d59b94d97d..7981f454ba 100644 --- a/src/structured-types/large-transitive-globular-types.lagda.md +++ b/src/globular-types/large-transitive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.large-transitive-globular-types where +module globular-types.large-transitive-globular-types where ```
Imports @@ -11,10 +11,10 @@ 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 +open import globular-types.globular-types +open import globular-types.large-globular-maps +open import globular-types.large-globular-types +open import globular-types.transitive-globular-types ```
@@ -23,7 +23,7 @@ open import structured-types.transitive-globular-types A {{#concept "large transitive globular type" Agda=Large-Transitive-Globular-Type}} -is a [large globular type](structured-types.large-globular-types.md) `A` +is a [large globular type](globular-types.large-globular-types.md) `A` [equipped](foundation.structure.md) with a binary operator ```text diff --git a/src/structured-types/lax-reflexive-globular-maps.lagda.md b/src/globular-types/lax-reflexive-globular-maps.lagda.md similarity index 91% rename from src/structured-types/lax-reflexive-globular-maps.lagda.md rename to src/globular-types/lax-reflexive-globular-maps.lagda.md index d75fb64e70..910fa5260d 100644 --- a/src/structured-types/lax-reflexive-globular-maps.lagda.md +++ b/src/globular-types/lax-reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.lax-reflexive-globular-maps where +module globular-types.lax-reflexive-globular-maps where ```
Imports @@ -11,8 +11,8 @@ module structured-types.lax-reflexive-globular-maps where ```agda open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.globular-maps +open import globular-types.reflexive-globular-types ```
@@ -21,8 +21,8 @@ open import structured-types.reflexive-globular-types 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 +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](globular-types.globular-maps.md) `f : G → H` equipped with a family of 2-cells ```text @@ -40,20 +40,20 @@ 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 +[transitive](globular-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 +[reflexive globular maps](globular-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) +[colax reflexive globular map](globular-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 @@ -208,5 +208,5 @@ is-lax-reflexive-lax-reflexive-globular-map ## See also -- [Colax reflexive globular maps](structured-types.colax-reflexive-globular-maps.md) -- [Reflexive globular maps](structured-types.reflexive-globular-maps.md) +- [Colax reflexive globular maps](globular-types.colax-reflexive-globular-maps.md) +- [Reflexive globular maps](globular-types.reflexive-globular-maps.md) diff --git a/src/structured-types/lax-transitive-globular-maps.lagda.md b/src/globular-types/lax-transitive-globular-maps.lagda.md similarity index 95% rename from src/structured-types/lax-transitive-globular-maps.lagda.md rename to src/globular-types/lax-transitive-globular-maps.lagda.md index 483a8fbb9a..d06760ce39 100644 --- a/src/structured-types/lax-transitive-globular-maps.lagda.md +++ b/src/globular-types/lax-transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.lax-transitive-globular-maps where +module globular-types.lax-transitive-globular-maps where ```
Imports @@ -11,8 +11,8 @@ module structured-types.lax-transitive-globular-maps where ```agda open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.transitive-globular-types +open import globular-types.globular-maps +open import globular-types.transitive-globular-types ```
@@ -21,9 +21,9 @@ open import structured-types.transitive-globular-types 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` -equipped with a family of 2-cells +[transitive globular types](globular-types.transitive-globular-types.md) `G` and +`H` is a [globular map](globular-types.globular-maps.md) `f : G → H` equipped +with a family of 2-cells ```text H₂ (f₁ q ∘H f₁ p) (f₁ (q ∘G p)) @@ -39,7 +39,7 @@ 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 +[reflexive](globular-types.reflexive-globular-types.md), it might lack such instances of the reflexivity cells. ## Definitions diff --git a/src/structured-types/points-globular-types.lagda.md b/src/globular-types/points-globular-types.lagda.md similarity index 80% rename from src/structured-types/points-globular-types.lagda.md rename to src/globular-types/points-globular-types.lagda.md index 2b12869c68..94e81c6f56 100644 --- a/src/structured-types/points-globular-types.lagda.md +++ b/src/globular-types/points-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.points-globular-types where +module globular-types.points-globular-types where ```
Imports @@ -12,9 +12,9 @@ module structured-types.points-globular-types where open import foundation.unit-type open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.globular-types -open import structured-types.unit-globular-type +open import globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.unit-globular-type ```
@@ -22,11 +22,11 @@ open import structured-types.unit-globular-type ## Idea A {{#concept "point" Disambiguation="globular type" Agda=point-Globular-Type}} -of a [globular type](structured-types.globular-types.md) `G` consists of a -0-cell `x₀ : G₀` and a point in the globular type `G' x₀ x₀` of 1-cells from -`x₀` to itself. Equivalently, a point is a -[globular map](structured-types.globular-maps.md) from the -[unit globular type](structured-types.unit-globular-type.md) `𝟏` to `G`. +of a [globular type](globular-types.globular-types.md) `G` consists of a 0-cell +`x₀ : G₀` and a point in the globular type `G' x₀ x₀` of 1-cells from `x₀` to +itself. Equivalently, a point is a +[globular map](globular-types.globular-maps.md) from the +[unit globular type](globular-types.unit-globular-type.md) `𝟏` to `G`. ## Definitions diff --git a/src/structured-types/points-reflexive-globular-types.lagda.md b/src/globular-types/points-reflexive-globular-types.lagda.md similarity index 66% rename from src/structured-types/points-reflexive-globular-types.lagda.md rename to src/globular-types/points-reflexive-globular-types.lagda.md index 6fd4796567..c18a467757 100644 --- a/src/structured-types/points-reflexive-globular-types.lagda.md +++ b/src/globular-types/points-reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.points-reflexive-globular-types where +module globular-types.points-reflexive-globular-types where ```
Imports @@ -11,27 +11,27 @@ module structured-types.points-reflexive-globular-types where ```agda open import foundation.universe-levels -open import structured-types.points-globular-types -open import structured-types.reflexive-globular-types +open import globular-types.points-globular-types +open import globular-types.reflexive-globular-types ```
## Idea -Consider a -[reflexive globular type](structured-types.reflexive-globular-types.md) `G`. A +Consider a [reflexive globular type](globular-types.reflexive-globular-types.md) +`G`. A {{#concept "point" Disambiguation="reflexive globular type" Agda=point-Reflexive-Globular-Type}} of `G` is a 0-cell of `G`. Equivalently, a point of `G` is a -[reflexive globular map](structured-types.reflexive-globular-maps.md) from the -[unit reflexive globular type](structured-types.unit-reflexive-globular-type.md) +[reflexive globular map](globular-types.reflexive-globular-maps.md) from the +[unit reflexive globular type](globular-types.unit-reflexive-globular-type.md) into `G`. The definition of points of reflexive globular types is much simpler than the -definition of [points](structured-types.points-globular-types.md) of ordinary -[globular types](structured-types.globular-types.md). This is due to the -condition that reflexive globular maps preserve reflexivity, and therefore the -type of higher cells relating the underlying 0-cell to itself is +definition of [points](globular-types.points-globular-types.md) of ordinary +[globular types](globular-types.globular-types.md). This is due to the condition +that reflexive globular maps preserve reflexivity, and therefore the type of +higher cells relating the underlying 0-cell to itself is [contractible](foundation-core.contractible-types.md). ## Definitions diff --git a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md b/src/globular-types/pointwise-extensions-binary-families-globular-types.lagda.md similarity index 79% rename from src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md rename to src/globular-types/pointwise-extensions-binary-families-globular-types.lagda.md index ce6542132c..904d9b312f 100644 --- a/src/structured-types/pointwise-extensions-binary-families-globular-types.lagda.md +++ b/src/globular-types/pointwise-extensions-binary-families-globular-types.lagda.md @@ -4,7 +4,7 @@ {-# OPTIONS --guardedness #-} module - structured-types.pointwise-extensions-binary-families-globular-types + globular-types.pointwise-extensions-binary-families-globular-types where ``` @@ -14,18 +14,18 @@ module open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.binary-dependent-globular-types -open import structured-types.globular-equivalences -open import structured-types.globular-types -open import structured-types.points-globular-types +open import globular-types.binary-dependent-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-types +open import globular-types.points-globular-types ```
## Idea -Consider two [globular types](structured-types.globular-types.md) `G` and `H`, -and a binary family +Consider two [globular types](globular-types.globular-types.md) `G` and `H`, and +a binary family ```text K : G₀ → H₀ → Globular-Type @@ -33,11 +33,11 @@ and a binary family of globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a -[binary dependent globular type](structured-types.binary-dependent-globular-types.md) +[binary dependent globular type](globular-types.binary-dependent-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of globular types" Agda=is-pointwise-extension-binary-family-globular-types}} of `K` if it comes equipped with a family of -[globular equivalences](structured-types.globular-equivalences.md) +[globular equivalences](globular-types.globular-equivalences.md) ```text (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. diff --git a/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md b/src/globular-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md similarity index 79% rename from src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md rename to src/globular-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md index 0a12b441c1..c593d0e0a3 100644 --- a/src/structured-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md +++ b/src/globular-types/pointwise-extensions-binary-families-reflexive-globular-types.lagda.md @@ -4,7 +4,7 @@ {-# OPTIONS --guardedness #-} module - structured-types.pointwise-extensions-binary-families-reflexive-globular-types + globular-types.pointwise-extensions-binary-families-reflexive-globular-types where ``` @@ -14,10 +14,10 @@ module open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.binary-dependent-reflexive-globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.reflexive-globular-equivalences -open import structured-types.reflexive-globular-types +open import globular-types.binary-dependent-reflexive-globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.reflexive-globular-equivalences +open import globular-types.reflexive-globular-types ```
@@ -25,7 +25,7 @@ open import structured-types.reflexive-globular-types ## Idea Consider two -[reflexive globular types](structured-types.reflexive-globular-types.md) `G` and +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and `H`, and a binary family ```text @@ -34,11 +34,11 @@ Consider two of reflexive globular types, indexed over the 0-cells of `G` and `H`. Furthermore, consider a -[binary dependent reflexive globular type](structured-types.binary-dependent-reflexive-globular-types.md) +[binary dependent reflexive globular type](globular-types.binary-dependent-reflexive-globular-types.md) `L` over `G` and `H`. We say that `L` is a {{#concept "pointwise extension" Disambiguation="binary family of reflexive globular types" Agda=is-pointwise-extension-binary-family-reflexive-globular-types}} of `K` if it comes equipped with a family of -[reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) +[reflexive globular equivalences](globular-types.reflexive-globular-equivalences.md) ```text (x : point G) (y : point H) → ev-point L x y ≃ K x₀ y₀. diff --git a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md b/src/globular-types/pointwise-extensions-families-globular-types.lagda.md similarity index 73% rename from src/structured-types/pointwise-extensions-families-globular-types.lagda.md rename to src/globular-types/pointwise-extensions-families-globular-types.lagda.md index 6517b61aaa..05d14be3df 100644 --- a/src/structured-types/pointwise-extensions-families-globular-types.lagda.md +++ b/src/globular-types/pointwise-extensions-families-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.pointwise-extensions-families-globular-types where +module globular-types.pointwise-extensions-families-globular-types where ```
Imports @@ -12,30 +12,29 @@ module structured-types.pointwise-extensions-families-globular-types where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.dependent-globular-types -open import structured-types.globular-equivalences -open import structured-types.globular-types -open import structured-types.points-globular-types +open import globular-types.dependent-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-types +open import globular-types.points-globular-types ```
## Idea -Consider a family of [globular types](structured-types.globular-types.md) +Consider a family of [globular types](globular-types.globular-types.md) `H : G₀ → Globular-Type` indexed by the 0-cells of a globular type `G` and -consider a -[dependent globular type](structured-types.dependent-globular-types.md) `K` over -`G`. We say that `K` is a +consider a [dependent globular type](globular-types.dependent-globular-types.md) +`K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of globular types" Agda=is-pointwise-extension-family-of-globular-types-Dependent-Globular-Type}} of `H` if it comes equipped with a family of -[globular equivalences](structured-types.globular-equivalences.md) +[globular equivalences](globular-types.globular-equivalences.md) ```text ev-point K x ≃ H x₀ ``` -indexed by the [points](structured-types.points-globular-types.md) of `G`. +indexed by the [points](globular-types.points-globular-types.md) of `G`. ## Definitions diff --git a/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md b/src/globular-types/pointwise-extensions-families-reflexive-globular-types.lagda.md similarity index 70% rename from src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md rename to src/globular-types/pointwise-extensions-families-reflexive-globular-types.lagda.md index 88e43b9887..195002b2fe 100644 --- a/src/structured-types/pointwise-extensions-families-reflexive-globular-types.lagda.md +++ b/src/globular-types/pointwise-extensions-families-reflexive-globular-types.lagda.md @@ -4,7 +4,7 @@ {-# OPTIONS --guardedness #-} module - structured-types.pointwise-extensions-families-reflexive-globular-types + globular-types.pointwise-extensions-families-reflexive-globular-types where ``` @@ -14,13 +14,13 @@ module open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.dependent-globular-types -open import structured-types.dependent-reflexive-globular-types -open import structured-types.globular-types -open import structured-types.points-globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.reflexive-globular-equivalences -open import structured-types.reflexive-globular-types +open import globular-types.dependent-globular-types +open import globular-types.dependent-reflexive-globular-types +open import globular-types.globular-types +open import globular-types.points-globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.reflexive-globular-equivalences +open import globular-types.reflexive-globular-types ```
@@ -28,20 +28,20 @@ open import structured-types.reflexive-globular-types ## Idea Consider a family of -[reflexive globular types](structured-types.reflexive-globular-types.md) +[reflexive globular types](globular-types.reflexive-globular-types.md) `H : G₀ → Reflexive-Globular-Type` indexed by the 0-cells of a reflexive globular type `G` and consider a -[dependent reflexive globular type](structured-types.dependent-reflexive-globular-types.md) +[dependent reflexive globular type](globular-types.dependent-reflexive-globular-types.md) `K` over `G`. We say that `K` is a {{#concept "pointwise extension" Disambiguation="family of reflexive globular types"}} of `H` if it comes equipped with a family of -[reflexive globular equivalences](structured-types.reflexive-globular-equivalences.md) +[reflexive globular equivalences](globular-types.reflexive-globular-equivalences.md) ```text ev-point K x ≃ H x₀ ``` -indexed by the [points](structured-types.points-reflexive-globular-types.md) of +indexed by the [points](globular-types.points-reflexive-globular-types.md) of `G`. ## Definitions diff --git a/src/structured-types/products-families-of-globular-types.lagda.md b/src/globular-types/products-families-of-globular-types.lagda.md similarity index 93% rename from src/structured-types/products-families-of-globular-types.lagda.md rename to src/globular-types/products-families-of-globular-types.lagda.md index 844b8e7aaa..a3c5ae1d63 100644 --- a/src/structured-types/products-families-of-globular-types.lagda.md +++ b/src/globular-types/products-families-of-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.products-families-of-globular-types where +module globular-types.products-families-of-globular-types where ```
Imports @@ -12,8 +12,8 @@ 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 +open import globular-types.globular-maps +open import globular-types.globular-types ```
@@ -21,7 +21,7 @@ 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 +[globular types](globular-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 diff --git a/src/structured-types/reflexive-globular-equivalences.lagda.md b/src/globular-types/reflexive-globular-equivalences.lagda.md similarity index 95% rename from src/structured-types/reflexive-globular-equivalences.lagda.md rename to src/globular-types/reflexive-globular-equivalences.lagda.md index 5931233158..8d154f39af 100644 --- a/src/structured-types/reflexive-globular-equivalences.lagda.md +++ b/src/globular-types/reflexive-globular-equivalences.lagda.md @@ -1,9 +1,9 @@ -# Equivalences between reflexive globular types +# Reflexive globular equivalences ```agda {-# OPTIONS --guardedness #-} -module structured-types.reflexive-globular-equivalences where +module globular-types.reflexive-globular-equivalences where ```
Imports @@ -16,10 +16,10 @@ open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-equivalences -open import structured-types.globular-maps -open import structured-types.reflexive-globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-maps +open import globular-types.reflexive-globular-maps +open import globular-types.reflexive-globular-types ```
@@ -28,8 +28,8 @@ open import structured-types.reflexive-globular-types A {{#concept "reflexive globular equivalence" Agda=reflexive-globular-equiv}} `e` between -[reflexive-globular types](structured-types.reflexive-globular-types.md) `A` and -`B` is a [globular equivalence](structured-types.globular-equivalences.md) that +[reflexive-globular types](globular-types.reflexive-globular-types.md) `A` and +`B` is a [globular equivalence](globular-types.globular-equivalences.md) that preserves reflexivity. ## Definitions diff --git a/src/structured-types/reflexive-globular-maps.lagda.md b/src/globular-types/reflexive-globular-maps.lagda.md similarity index 91% rename from src/structured-types/reflexive-globular-maps.lagda.md rename to src/globular-types/reflexive-globular-maps.lagda.md index e8f95bfcc5..92bd88780a 100644 --- a/src/structured-types/reflexive-globular-maps.lagda.md +++ b/src/globular-types/reflexive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.reflexive-globular-maps where +module globular-types.reflexive-globular-maps where ```
Imports @@ -12,8 +12,8 @@ module structured-types.reflexive-globular-maps where open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.reflexive-globular-types +open import globular-types.globular-maps +open import globular-types.reflexive-globular-types ```
@@ -21,8 +21,8 @@ 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 +[reflexive globular types](globular-types.reflexive-globular-types.md) `G` and +`H` is a [globular map](globular-types.globular-maps.md) `f : G → H` equipped with a family of [identifications](foundation-core.identity-types.md) ```text @@ -37,9 +37,9 @@ 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) +[colax reflexive globular maps](globular-types.colax-reflexive-globular-maps.md) and -[lax reflexive globular maps](structured-types.lax-reflexive-globular-maps.md). +[lax reflexive globular maps](globular-types.lax-reflexive-globular-maps.md). ## Definitions diff --git a/src/structured-types/reflexive-globular-types.lagda.md b/src/globular-types/reflexive-globular-types.lagda.md similarity index 95% rename from src/structured-types/reflexive-globular-types.lagda.md rename to src/globular-types/reflexive-globular-types.lagda.md index 148a661bf4..c77e42f90d 100644 --- a/src/structured-types/reflexive-globular-types.lagda.md +++ b/src/globular-types/reflexive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.reflexive-globular-types where +module globular-types.reflexive-globular-types where ```
Imports @@ -14,15 +14,15 @@ 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 globular-types.globular-maps +open import globular-types.globular-types ```
## Idea -A [globular type](structured-types.globular-types.md) is +A [globular type](globular-types.globular-types.md) is {{#concept "reflexive" Disambiguation="globular type" Agda=is-reflexive-globular-structure}} if every $n$-cell `x` comes with a choice of $(n+1)$-cell from `x` to `x`. @@ -324,9 +324,9 @@ module _ ## See also -- [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-types.reflexive-globular-maps.md) +- [Colax reflexive globular maps](globular-types.colax-reflexive-globular-maps.md) +- [Lax reflexive globular maps](globular-types.lax-reflexive-globular-maps.md) +- [Reflexive globular maps](globular-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). + [transitive](globular-types.transitive-globular-types.md). diff --git a/src/structured-types/sections-dependent-globular-types.lagda.md b/src/globular-types/sections-dependent-globular-types.lagda.md similarity index 84% rename from src/structured-types/sections-dependent-globular-types.lagda.md rename to src/globular-types/sections-dependent-globular-types.lagda.md index cc2c6c7594..382d8719a1 100644 --- a/src/structured-types/sections-dependent-globular-types.lagda.md +++ b/src/globular-types/sections-dependent-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.sections-dependent-globular-types where +module globular-types.sections-dependent-globular-types where ```
Imports @@ -11,17 +11,16 @@ module structured-types.sections-dependent-globular-types where ```agda open import foundation.universe-levels -open import structured-types.dependent-globular-types -open import structured-types.globular-types +open import globular-types.dependent-globular-types +open import globular-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 +Consider a [dependent globular type](globular-types.dependent-globular-types.md) +`H` over a [globular type](globular-types.globular-types.md) `G`. A {{#concept "section" Disambiguation="dependent globular type" Agda=section-Dependent-Globular-Type}} `f` of `H` consists of diff --git a/src/structured-types/superglobular-types.lagda.md b/src/globular-types/superglobular-types.lagda.md similarity index 88% rename from src/structured-types/superglobular-types.lagda.md rename to src/globular-types/superglobular-types.lagda.md index d41313fbee..1fb43a443c 100644 --- a/src/structured-types/superglobular-types.lagda.md +++ b/src/globular-types/superglobular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.superglobular-types where +module globular-types.superglobular-types where ```
Imports @@ -12,12 +12,12 @@ module structured-types.superglobular-types where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.binary-dependent-reflexive-globular-types -open import structured-types.globular-types -open import structured-types.points-reflexive-globular-types -open import structured-types.pointwise-extensions-binary-families-reflexive-globular-types -open import structured-types.reflexive-globular-equivalences -open import structured-types.reflexive-globular-types +open import globular-types.binary-dependent-reflexive-globular-types +open import globular-types.globular-types +open import globular-types.points-reflexive-globular-types +open import globular-types.pointwise-extensions-binary-families-reflexive-globular-types +open import globular-types.reflexive-globular-equivalences +open import globular-types.reflexive-globular-types ```
@@ -28,7 +28,7 @@ changed or reconsidered. ## Idea An {{#concept "superglobular type" Agda=Superglobular-Type}} is a -[reflexive globular type](structured-types.reflexive-globular-types.md) `G` such +[reflexive globular type](globular-types.reflexive-globular-types.md) `G` such that the binary family of globular types ```text @@ -36,9 +36,9 @@ that the binary family of globular types ``` of 1-cells and higher cells -[extends pointwise](structured-types.pointwise-extensions-binary-families-globular-types.md) +[extends pointwise](globular-types.pointwise-extensions-binary-families-globular-types.md) to a -[binary dependent globular type](structured-types.binary-dependent-globular-types.md). +[binary dependent globular type](globular-types.binary-dependent-globular-types.md). More specifically, a superglobular type consists of a reflexive globular type `G` equipped with a binary dependent globular type @@ -46,8 +46,7 @@ More specifically, a superglobular type consists of a reflexive globular type H : Binary-Dependent-Globular-Type l2 l2 G G ``` -and a family of -[globular equivalences](structured-types.globular-equivalences.md) +and a family of [globular equivalences](globular-types.globular-equivalences.md) ```text (x y : G₀) → ev-point H x y ≃ G' x y. diff --git a/src/structured-types/symmetric-globular-types.lagda.md b/src/globular-types/symmetric-globular-types.lagda.md similarity index 95% rename from src/structured-types/symmetric-globular-types.lagda.md rename to src/globular-types/symmetric-globular-types.lagda.md index 3a05599770..f8b627002c 100644 --- a/src/structured-types/symmetric-globular-types.lagda.md +++ b/src/globular-types/symmetric-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.symmetric-globular-types where +module globular-types.symmetric-globular-types where ```
Imports @@ -14,14 +14,14 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types ```
## Idea -We say a [globular type](structured-types.globular-types.md) is +We say a [globular type](globular-types.globular-types.md) is {{#concept "symmetric" Disambiguation="globular type" Agda=is-symmetric-Globular-Type}} if there is a symmetry action on its $n$-cells for positive $n$, mapping $n$-cells from `x` to `y` to $n$-cells from `y` to `x`. diff --git a/src/structured-types/terminal-globular-types.lagda.md b/src/globular-types/terminal-globular-types.lagda.md similarity index 70% rename from src/structured-types/terminal-globular-types.lagda.md rename to src/globular-types/terminal-globular-types.lagda.md index 62331d496b..b9007c4347 100644 --- a/src/structured-types/terminal-globular-types.lagda.md +++ b/src/globular-types/terminal-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.terminal-globular-types where +module globular-types.terminal-globular-types where ```
Imports @@ -12,18 +12,18 @@ module structured-types.terminal-globular-types where open import foundation.contractible-types open import foundation.universe-levels -open import structured-types.globular-maps -open import structured-types.globular-types +open import globular-types.globular-maps +open import globular-types.globular-types ```
## Idea -A [globular type](structured-types.globular-types.md) `G` is said to be +A [globular type](globular-types.globular-types.md) `G` is said to be {{#concept "terminal" Disambiguation="globular type" Agda=is-terminal-Globular-Type}} if for any globular type `H` the type of -[globular maps](structured-types.globular-maps.md) `H → G` is +[globular maps](globular-types.globular-maps.md) `H → G` is [contractible](foundation-core.contractible-types.md). ## Definitions diff --git a/src/structured-types/transitive-globular-maps.lagda.md b/src/globular-types/transitive-globular-maps.lagda.md similarity index 96% rename from src/structured-types/transitive-globular-maps.lagda.md rename to src/globular-types/transitive-globular-maps.lagda.md index aa994efec4..3d7d093665 100644 --- a/src/structured-types/transitive-globular-maps.lagda.md +++ b/src/globular-types/transitive-globular-maps.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.transitive-globular-maps where +module globular-types.transitive-globular-maps where ```
Imports @@ -13,8 +13,8 @@ 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 +open import globular-types.globular-maps +open import globular-types.transitive-globular-types ```
@@ -22,8 +22,8 @@ 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](globular-types.transitive-globular-types.md) `G` +and `H` is a [globular map](globular-types.globular-maps.md) `f : G → H` equipped with a family of [identifications](foundation-core.identity-types.md) ```text diff --git a/src/structured-types/transitive-globular-types.lagda.md b/src/globular-types/transitive-globular-types.lagda.md similarity index 96% rename from src/structured-types/transitive-globular-types.lagda.md rename to src/globular-types/transitive-globular-types.lagda.md index 39a12d99f8..8e50b2014f 100644 --- a/src/structured-types/transitive-globular-types.lagda.md +++ b/src/globular-types/transitive-globular-types.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.transitive-globular-types where +module globular-types.transitive-globular-types where ```
Imports @@ -14,8 +14,8 @@ 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 globular-types.globular-maps +open import globular-types.globular-types ```
@@ -23,7 +23,7 @@ open import structured-types.globular-types ## Idea A {{#concept "transitive globular type" Agda=Transitive-Globular-Type}} is a -[globular type](structured-types.globular-types.md) `A` +[globular type](globular-types.globular-types.md) `A` [equipped](foundation.structure.md) with a binary operator ```text @@ -323,7 +323,7 @@ module _ ## See also -- [Composition structure on globular types](structured-types.composition-structure-globular-types.md) +- [Composition structure on globular types](globular-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. + [reflexive](globular-types.reflexive-globular-types.md) and transitive. diff --git a/src/structured-types/unit-globular-type.lagda.md b/src/globular-types/unit-globular-type.lagda.md similarity index 66% rename from src/structured-types/unit-globular-type.lagda.md rename to src/globular-types/unit-globular-type.lagda.md index f3027a82bd..6d7273092b 100644 --- a/src/structured-types/unit-globular-type.lagda.md +++ b/src/globular-types/unit-globular-type.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.unit-globular-type where +module globular-types.unit-globular-type where ```
Imports @@ -12,8 +12,8 @@ module structured-types.unit-globular-type where open import foundation.unit-type open import foundation.universe-levels -open import structured-types.constant-globular-types -open import structured-types.globular-types +open import globular-types.constant-globular-types +open import globular-types.globular-types ```
@@ -21,9 +21,9 @@ open import structured-types.globular-types ## Idea The {{#concept "unit globular type" Agda=unit-Globular-Type}} is the -[constant globular type](structured-types.constant-globular-types.md) at the +[constant globular type](globular-types.constant-globular-types.md) at the [unit type](foundation.unit-type.md). That is, the unit globular type is the -[globular type](structured-types.globular-types.md) `𝟏` given by +[globular type](globular-types.globular-types.md) `𝟏` given by ```text 𝟏₀ := unit diff --git a/src/structured-types/unit-reflexive-globular-type.lagda.md b/src/globular-types/unit-reflexive-globular-type.lagda.md similarity index 80% rename from src/structured-types/unit-reflexive-globular-type.lagda.md rename to src/globular-types/unit-reflexive-globular-type.lagda.md index 71dc61e919..1c3e8752c0 100644 --- a/src/structured-types/unit-reflexive-globular-type.lagda.md +++ b/src/globular-types/unit-reflexive-globular-type.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.unit-reflexive-globular-type where +module globular-types.unit-reflexive-globular-type where ```
Imports @@ -12,8 +12,8 @@ module structured-types.unit-reflexive-globular-type where open import foundation.unit-type open import foundation.universe-levels -open import structured-types.reflexive-globular-types -open import structured-types.unit-globular-type +open import globular-types.reflexive-globular-types +open import globular-types.unit-globular-type ```
@@ -22,7 +22,7 @@ open import structured-types.unit-globular-type The {{#concept "unit reflexive globular type" Agda=unit-Reflexive-Globular-Type}} is -the [reflexive globular type](structured-types.reflexive-globular-types.md) `𝟏` +the [reflexive globular type](globular-types.reflexive-globular-types.md) `𝟏` given by ```text diff --git a/src/structured-types/universal-globular-type.lagda.md b/src/globular-types/universal-globular-type.lagda.md similarity index 94% rename from src/structured-types/universal-globular-type.lagda.md rename to src/globular-types/universal-globular-type.lagda.md index 1e8b52694d..2d67afcbf1 100644 --- a/src/structured-types/universal-globular-type.lagda.md +++ b/src/globular-types/universal-globular-type.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.universal-globular-type where +module globular-types.universal-globular-type where ```
Imports @@ -13,10 +13,10 @@ 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.exponentials-globular-types -open import structured-types.globular-maps -open import structured-types.globular-types +open import globular-types.dependent-globular-types +open import globular-types.exponentials-globular-types +open import globular-types.globular-maps +open import globular-types.globular-types ```
@@ -101,8 +101,8 @@ 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.exponentials-globular-types.md) `(𝒰^Y)^X` of -globular types. +[exponent](globular-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 diff --git a/src/structured-types/universal-reflexive-globular-type.lagda.md b/src/globular-types/universal-reflexive-globular-type.lagda.md similarity index 93% rename from src/structured-types/universal-reflexive-globular-type.lagda.md rename to src/globular-types/universal-reflexive-globular-type.lagda.md index 6bb22b4d99..d704e71b34 100644 --- a/src/structured-types/universal-reflexive-globular-type.lagda.md +++ b/src/globular-types/universal-reflexive-globular-type.lagda.md @@ -3,7 +3,7 @@ ```agda {-# OPTIONS --guardedness #-} -module structured-types.universal-reflexive-globular-type where +module globular-types.universal-reflexive-globular-type where ```
Imports @@ -12,7 +12,7 @@ module structured-types.universal-reflexive-globular-type where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.reflexive-globular-types +open import globular-types.reflexive-globular-types ```
@@ -102,7 +102,7 @@ module _ ## See also - [The universal directed graph](graph-theory.universal-directed-graph.md) -- [The universal globular type](structured-types.universal-globular-type.md) +- [The universal globular type](globular-types.universal-globular-type.md) - [The universal reflexive graph](graph-theory.universal-reflexive-graph.md) ## External links diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md index 504868159c..081ebda794 100644 --- a/src/structured-types.lagda.md +++ b/src/structured-types.lagda.md @@ -9,71 +9,35 @@ ```agda module structured-types where -open import structured-types.base-change-dependent-globular-types public -open import structured-types.base-change-dependent-reflexive-globular-types public -open import structured-types.binary-dependent-globular-types public -open import structured-types.binary-dependent-reflexive-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 -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 -open import structured-types.composition-structure-globular-types public open import structured-types.conjugation-pointed-types public -open import structured-types.constant-globular-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-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.discrete-dependent-reflexive-globular-types public -open import structured-types.discrete-globular-types public -open import structured-types.discrete-reflexive-globular-types public -open import structured-types.empty-globular-types 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.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 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 open import structured-types.h-spaces public open import structured-types.initial-pointed-type-equipped-with-automorphism public 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.mere-equivalences-types-equipped-with-endomorphisms public open import structured-types.morphisms-h-spaces public @@ -102,37 +66,17 @@ open import structured-types.pointed-types public open import structured-types.pointed-types-equipped-with-automorphisms public open import structured-types.pointed-unit-type public open import structured-types.pointed-universal-property-contractible-types public -open import structured-types.points-globular-types public -open import structured-types.points-reflexive-globular-types public -open import structured-types.pointwise-extensions-binary-families-globular-types public -open import structured-types.pointwise-extensions-binary-families-reflexive-globular-types public -open import structured-types.pointwise-extensions-families-globular-types public -open import structured-types.pointwise-extensions-families-reflexive-globular-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-equivalences 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.superglobular-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.terminal-globular-types 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 open import structured-types.types-equipped-with-endomorphisms public open import structured-types.uniform-pointed-homotopies public -open import structured-types.unit-globular-type public -open import structured-types.unit-reflexive-globular-type 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/wild-category-theory/isomorphisms-in-noncoherent-large-wild-higher-precategories.lagda.md b/src/wild-category-theory/isomorphisms-in-noncoherent-large-wild-higher-precategories.lagda.md index 5dcb2e82cc..78566fcef7 100644 --- a/src/wild-category-theory/isomorphisms-in-noncoherent-large-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/isomorphisms-in-noncoherent-large-wild-higher-precategories.lagda.md @@ -30,7 +30,7 @@ in `𝒞` is a morphism `f : x → y` in `𝒞` [equipped](foundation.structure. - a $2$-morphism `is-split-epi : f ∘ s → id`, where `∘` and `id` denote composition of morphisms and the identity morphism given by the transitive and reflexive structure on the underlying - [globular type](structured-types.globular-types.md), respectively + [globular type](globular-types.globular-types.md), respectively - a proof `is-iso-is-split-epi : is-iso is-split-epi`, which shows that the above $2$-morphism is itself an isomorphism - a morphism `r : y → x` diff --git a/src/wild-category-theory/isomorphisms-in-noncoherent-wild-higher-precategories.lagda.md b/src/wild-category-theory/isomorphisms-in-noncoherent-wild-higher-precategories.lagda.md index c4a7182618..e0d30bc8ae 100644 --- a/src/wild-category-theory/isomorphisms-in-noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/isomorphisms-in-noncoherent-wild-higher-precategories.lagda.md @@ -29,7 +29,7 @@ in `𝒞` is a morphism `f : x → y` in `𝒞` [equipped](foundation.structure. - a $2$-morphism `is-split-epi : f ∘ s → id`, where `∘` and `id` denote composition of morphisms and the identity morphism given by the transitive and reflexive structure on the underlying - [globular type](structured-types.globular-types.md), respectively + [globular type](globular-types.globular-types.md), respectively - a proof `is-iso-is-split-epi : is-iso is-split-epi`, which shows that the above $2$-morphism is itself an isomorphism - a morphism `r : y → x` From 44edc1ebd88eaa4f18d259db711a22aab2e47f91 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 17 Nov 2024 11:21:46 -0500 Subject: [PATCH 75/87] fix imports --- ...obular-type-of-dependent-functions.lagda.md | 12 ++++++------ .../globular-type-of-functions.lagda.md | 12 ++++++------ src/foundation/wild-category-of-types.lagda.md | 12 ++++++------ .../wild-category-of-pointed-types.lagda.md | 14 +++++++------- ...cone-diagrams-synthetic-categories.lagda.md | 2 +- .../cospans-synthetic-categories.lagda.md | 2 +- .../equivalences-synthetic-categories.lagda.md | 2 +- ...ible-functors-synthetic-categories.lagda.md | 2 +- .../pullbacks-synthetic-categories.lagda.md | 2 +- .../retractions-synthetic-categories.lagda.md | 2 +- .../sections-synthetic-categories.lagda.md | 2 +- .../synthetic-categories.lagda.md | 4 ++-- ...nt-large-wild-higher-precategories.lagda.md | 10 +++++----- ...coherent-wild-higher-precategories.lagda.md | 14 +++++++------- ...nt-large-wild-higher-precategories.lagda.md | 12 ++++++------ ...coherent-wild-higher-precategories.lagda.md | 8 ++++---- ...nt-large-wild-higher-precategories.lagda.md | 18 +++++++++--------- ...coherent-wild-higher-precategories.lagda.md | 12 ++++++------ 18 files changed, 71 insertions(+), 71 deletions(-) diff --git a/src/foundation/globular-type-of-dependent-functions.lagda.md b/src/foundation/globular-type-of-dependent-functions.lagda.md index ac01ad8d14..6e46926464 100644 --- a/src/foundation/globular-type-of-dependent-functions.lagda.md +++ b/src/foundation/globular-type-of-dependent-functions.lagda.md @@ -13,9 +13,9 @@ 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 +open import globular-types.globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types ```
@@ -24,15 +24,15 @@ open import structured-types.transitive-globular-types The {{#concept "globular type of dependent functions" Agda=dependent-function-type-Globular-Type}} -is the [globular type](structured-types.globular-types.md) consisting of +is the [globular type](globular-types.globular-types.md) consisting of [dependent functions](foundation.dependent-function-types.md) and [homotopies](foundation-core.homotopies.md) between them. Since homotopies are themselves defined to be certain dependent functions, they directly provide a globular structure on dependent function types. The globular type of dependent functions of a type family `B` over `A` is -[reflexive](structured-types.reflexive-globular-types.md) and -[transitive](structured-types.transitive-globular-types.md), so it is a +[reflexive](globular-types.reflexive-globular-types.md) and +[transitive](globular-types.transitive-globular-types.md), so it is a [noncoherent wild higher precategory](wild-category-theory.noncoherent-wild-higher-precategories.md). The structures defined in this file are used to define the diff --git a/src/foundation/globular-type-of-functions.lagda.md b/src/foundation/globular-type-of-functions.lagda.md index 5dd8c2acee..8680a71da9 100644 --- a/src/foundation/globular-type-of-functions.lagda.md +++ b/src/foundation/globular-type-of-functions.lagda.md @@ -14,9 +14,9 @@ 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 +open import globular-types.globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types ```
@@ -24,7 +24,7 @@ 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 +is the [globular type](globular-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 @@ -32,8 +32,8 @@ 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 +[reflexive](globular-types.reflexive-globular-types.md) and +[transitive](globular-types.transitive-globular-types.md), so it is a [noncoherent wild higher precategory](wild-category-theory.noncoherent-wild-higher-precategories.md). The structures defined in this file are used to define the diff --git a/src/foundation/wild-category-of-types.lagda.md b/src/foundation/wild-category-of-types.lagda.md index ea2edac1e1..cf698e1a0f 100644 --- a/src/foundation/wild-category-of-types.lagda.md +++ b/src/foundation/wild-category-of-types.lagda.md @@ -24,12 +24,12 @@ open import foundation-core.function-types open import foundation-core.functoriality-dependent-pair-types open import foundation-core.identity-types -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 globular-types.globular-types +open import globular-types.large-globular-types +open import globular-types.large-reflexive-globular-types +open import globular-types.large-transitive-globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types open import wild-category-theory.isomorphisms-in-noncoherent-large-wild-higher-precategories open import wild-category-theory.isomorphisms-in-noncoherent-wild-higher-precategories 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 40effbc29d..64bf8971c7 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -16,19 +16,19 @@ open import foundation.identity-types open import foundation.universe-levels open import foundation.whiskering-identifications-concatenation -open import structured-types.discrete-reflexive-globular-types -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 globular-types.discrete-reflexive-globular-types +open import globular-types.globular-types +open import globular-types.large-globular-types +open import globular-types.large-reflexive-globular-types +open import globular-types.large-transitive-globular-types open import structured-types.pointed-2-homotopies open import structured-types.pointed-dependent-functions open import structured-types.pointed-families-of-types open import structured-types.pointed-homotopies open import structured-types.pointed-maps open import structured-types.pointed-types -open import structured-types.reflexive-globular-types -open import structured-types.transitive-globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types open import structured-types.uniform-pointed-homotopies open import wild-category-theory.noncoherent-large-wild-higher-precategories diff --git a/src/synthetic-category-theory/cone-diagrams-synthetic-categories.lagda.md b/src/synthetic-category-theory/cone-diagrams-synthetic-categories.lagda.md index b94a468b43..793041a163 100644 --- a/src/synthetic-category-theory/cone-diagrams-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/cone-diagrams-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.cospans-synthetic-categories open import synthetic-category-theory.synthetic-categories diff --git a/src/synthetic-category-theory/cospans-synthetic-categories.lagda.md b/src/synthetic-category-theory/cospans-synthetic-categories.lagda.md index 8051db1b1d..d4385ae17e 100644 --- a/src/synthetic-category-theory/cospans-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/cospans-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.equivalences-synthetic-categories open import synthetic-category-theory.synthetic-categories diff --git a/src/synthetic-category-theory/equivalences-synthetic-categories.lagda.md b/src/synthetic-category-theory/equivalences-synthetic-categories.lagda.md index 7e6f9d6866..e616153e9f 100644 --- a/src/synthetic-category-theory/equivalences-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/equivalences-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.retractions-synthetic-categories open import synthetic-category-theory.sections-synthetic-categories diff --git a/src/synthetic-category-theory/invertible-functors-synthetic-categories.lagda.md b/src/synthetic-category-theory/invertible-functors-synthetic-categories.lagda.md index 59b67d0c4f..79a237ffc1 100644 --- a/src/synthetic-category-theory/invertible-functors-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/invertible-functors-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.equivalences-synthetic-categories open import synthetic-category-theory.retractions-synthetic-categories diff --git a/src/synthetic-category-theory/pullbacks-synthetic-categories.lagda.md b/src/synthetic-category-theory/pullbacks-synthetic-categories.lagda.md index 9da94176ce..c57580a72d 100644 --- a/src/synthetic-category-theory/pullbacks-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/pullbacks-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.cone-diagrams-synthetic-categories open import synthetic-category-theory.cospans-synthetic-categories diff --git a/src/synthetic-category-theory/retractions-synthetic-categories.lagda.md b/src/synthetic-category-theory/retractions-synthetic-categories.lagda.md index cf22e0f544..9eefe32176 100644 --- a/src/synthetic-category-theory/retractions-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/retractions-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.synthetic-categories ``` diff --git a/src/synthetic-category-theory/sections-synthetic-categories.lagda.md b/src/synthetic-category-theory/sections-synthetic-categories.lagda.md index acd4f1c5db..dd5e327196 100644 --- a/src/synthetic-category-theory/sections-synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/sections-synthetic-categories.lagda.md @@ -13,7 +13,7 @@ open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types open import synthetic-category-theory.synthetic-categories ``` diff --git a/src/synthetic-category-theory/synthetic-categories.lagda.md b/src/synthetic-category-theory/synthetic-categories.lagda.md index 80066da1ba..5deaf488e8 100644 --- a/src/synthetic-category-theory/synthetic-categories.lagda.md +++ b/src/synthetic-category-theory/synthetic-categories.lagda.md @@ -12,7 +12,7 @@ module synthetic-category-theory.synthetic-categories where open import foundation.dependent-pair-types open import foundation.universe-levels -open import structured-types.globular-types +open import globular-types.globular-types ```
@@ -63,7 +63,7 @@ category theory. In synthetic category theory we may speak of categories, functors, isomorphisms between them, isomorphisms between those, and so forth. The sorts in the language of synthetic category theory are therefore organized in a -[globular type](structured-types.globular-types.md). +[globular type](globular-types.globular-types.md). ```agda module _ 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 885f278d55..f21f8983d1 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 globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.large-colax-reflexive-globular-maps +open import globular-types.large-colax-transitive-globular-maps +open import globular-types.large-globular-maps 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 179cd1d54a..edee7d3977 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,11 +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 globular-types.colax-reflexive-globular-maps +open import globular-types.colax-transitive-globular-maps +open import globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.reflexive-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-wild-higher-precategories @@ -34,8 +34,8 @@ A [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 +which is [colax reflexive](globular-types.colax-reflexive-globular-maps.md) +and [colax transitive](globular-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 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 6b34a71c36..669a93f24b 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,10 +14,10 @@ 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-maps -open import structured-types.large-globular-types +open import globular-types.globular-maps +open import globular-types.globular-types +open import globular-types.large-globular-maps +open import globular-types.large-globular-types open import wild-category-theory.maps-noncoherent-wild-higher-precategories open import wild-category-theory.noncoherent-large-wild-higher-precategories @@ -32,9 +32,9 @@ 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 `ℬ` is a [large globular map](structured-types.large-globular-maps.md) +`𝒜` and `ℬ` is a [large globular map](globular-types.large-globular-maps.md) between their underlying -[large globular types](structured-types.large-globular-types.md). More +[large globular types](globular-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 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 9a5a76e199..6cb3fcbda1 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-maps -open import structured-types.globular-types +open import globular-types.globular-maps +open import globular-types.globular-types open import wild-category-theory.noncoherent-wild-higher-precategories ``` @@ -28,8 +28,8 @@ 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 +`𝒜` and `ℬ` is a [globular map](globular-types.globular-maps.md) between their +underlying [globular types](globular-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 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 a448641016..d5b568a950 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 @@ -20,12 +20,12 @@ open import foundation.sets open import foundation.strictly-involutive-identity-types open import foundation.universe-levels -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 globular-types.globular-types +open import globular-types.large-globular-types +open import globular-types.large-reflexive-globular-types +open import globular-types.large-transitive-globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types open import wild-category-theory.noncoherent-wild-higher-precategories ``` @@ -45,7 +45,7 @@ A _large noncoherent wild higher precategory_ `𝒞` is a structure that attempt at capturing the structure of a large higher precategory to the $0$'th order. It consists of in some sense all of the operations and none of the coherence of a large higher precategory. Thus, it is defined as a -[large globular type](structured-types.large-globular-types.md) with families of +[large globular type](globular-types.large-globular-types.md) with families of $n$-morphisms labeled as "identities" ```text @@ -61,8 +61,8 @@ and a composition operation at every dimension Entirely concretely, we define a {{#concept "noncoherent large wild higher precategory" Agda=Noncoherent-Large-Wild-Higher-Precategory}} -to be a [reflexive](structured-types.reflexive-globular-types.md) and -[transitive](structured-types.transitive-globular-types.md) large globular type. +to be a [reflexive](globular-types.reflexive-globular-types.md) and +[transitive](globular-types.transitive-globular-types.md) large globular type. We call the 0-cells the _objects_, the 1-cells the _morphisms_ and the higher cells the _$n$-morphisms_. The reflexivities are called the _identity morphisms_, and the transitivity operations are branded as _composition of 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 743fb94601..fa28ec5f14 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -21,9 +21,9 @@ open import foundation.sets open import foundation.strictly-involutive-identity-types open import foundation.universe-levels -open import structured-types.globular-types -open import structured-types.reflexive-globular-types -open import structured-types.transitive-globular-types +open import globular-types.globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types ```
@@ -40,7 +40,7 @@ A _noncoherent wild higher precategory_ `𝒞` is a structure that attempts at capturing the structure of a higher precategory to the $0$'th order. It consists of in some sense all of the operations and none of the coherence of a higher precategory. Thus, it is defined as a -[globular type](structured-types.globular-types.md) with families of +[globular type](globular-types.globular-types.md) with families of $n$-morphisms labeled as "identities" ```text @@ -56,8 +56,8 @@ and a composition operation at every dimension Entirely concretely, we define a {{#concept "noncoherent wild higher precategory" Agda=Noncoherent-Wild-Higher-Precategory}} -to be a [reflexive](structured-types.reflexive-globular-types.md) and -[transitive](structured-types.transitive-globular-types.md) globular type. We +to be a [reflexive](globular-types.reflexive-globular-types.md) and +[transitive](globular-types.transitive-globular-types.md) globular type. We call the 0-cells the _objects_, the 1-cells the _morphisms_ and the higher cells the _$n$-morphisms_. The reflexivities are called the _identity morphisms_, and the transitivity operations are branded as _composition of morphisms_. From ef70c901f192e07f15499539f5369c24f8398cfc Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Sun, 17 Nov 2024 12:11:50 -0500 Subject: [PATCH 76/87] make pre-commit --- .../wild-category-of-pointed-types.lagda.md | 5 +++-- ...rs-noncoherent-wild-higher-precategories.lagda.md | 6 +++--- .../noncoherent-wild-higher-precategories.lagda.md | 12 ++++++------ 3 files changed, 12 insertions(+), 11 deletions(-) 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 64bf8971c7..a226d2cc41 100644 --- a/src/structured-types/wild-category-of-pointed-types.lagda.md +++ b/src/structured-types/wild-category-of-pointed-types.lagda.md @@ -21,14 +21,15 @@ open import globular-types.globular-types open import globular-types.large-globular-types open import globular-types.large-reflexive-globular-types open import globular-types.large-transitive-globular-types +open import globular-types.reflexive-globular-types +open import globular-types.transitive-globular-types + open import structured-types.pointed-2-homotopies open import structured-types.pointed-dependent-functions open import structured-types.pointed-families-of-types open import structured-types.pointed-homotopies open import structured-types.pointed-maps open import structured-types.pointed-types -open import globular-types.reflexive-globular-types -open import globular-types.transitive-globular-types open import structured-types.uniform-pointed-homotopies open import wild-category-theory.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 edee7d3977..64e54b42f5 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 @@ -34,9 +34,9 @@ A [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](globular-types.colax-reflexive-globular-maps.md) -and [colax transitive](globular-types.colax-transitive-globular-maps.md). This -means that for every $n$-morphism `f` in `𝒜`, where we take $0$-morphisms to be +which is [colax reflexive](globular-types.colax-reflexive-globular-maps.md) and +[colax transitive](globular-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 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 fa28ec5f14..b558da4ca2 100644 --- a/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md +++ b/src/wild-category-theory/noncoherent-wild-higher-precategories.lagda.md @@ -40,8 +40,8 @@ A _noncoherent wild higher precategory_ `𝒞` is a structure that attempts at capturing the structure of a higher precategory to the $0$'th order. It consists of in some sense all of the operations and none of the coherence of a higher precategory. Thus, it is defined as a -[globular type](globular-types.globular-types.md) with families of -$n$-morphisms labeled as "identities" +[globular type](globular-types.globular-types.md) with families of $n$-morphisms +labeled as "identities" ```text id-hom : (x : 𝑛-Cell 𝒞) → (𝑛+1)-Cell 𝒞 x x @@ -57,10 +57,10 @@ and a composition operation at every dimension Entirely concretely, we define a {{#concept "noncoherent wild higher precategory" Agda=Noncoherent-Wild-Higher-Precategory}} to be a [reflexive](globular-types.reflexive-globular-types.md) and -[transitive](globular-types.transitive-globular-types.md) globular type. We -call the 0-cells the _objects_, the 1-cells the _morphisms_ and the higher cells -the _$n$-morphisms_. The reflexivities are called the _identity morphisms_, and -the transitivity operations are branded as _composition of morphisms_. +[transitive](globular-types.transitive-globular-types.md) globular type. We call +the 0-cells the _objects_, the 1-cells the _morphisms_ and the higher cells the +_$n$-morphisms_. The reflexivities are called the _identity morphisms_, and the +transitivity operations are branded as _composition of morphisms_. ## Definitions From 735ea9c80d3e80c284899fa1898119b7fc97610c Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 20 Nov 2024 07:48:32 -0500 Subject: [PATCH 77/87] bug --- src/globular-types.lagda.md | 1 - .../globular-homotopies.lagda.md | 36 ------------------- .../discrete-reflexive-graphs.lagda.md | 8 ++--- 3 files changed, 4 insertions(+), 41 deletions(-) delete mode 100644 src/globular-types/globular-homotopies.lagda.md diff --git a/src/globular-types.lagda.md b/src/globular-types.lagda.md index abec043679..260995b614 100644 --- a/src/globular-types.lagda.md +++ b/src/globular-types.lagda.md @@ -29,7 +29,6 @@ open import globular-types.equality-globular-types public open import globular-types.exponentials-globular-types public open import globular-types.fibers-globular-maps public open import globular-types.globular-equivalences public -open import globular-types.globular-homotopies public open import globular-types.globular-maps public open import globular-types.globular-types public open import globular-types.large-colax-reflexive-globular-maps public diff --git a/src/globular-types/globular-homotopies.lagda.md b/src/globular-types/globular-homotopies.lagda.md deleted file mode 100644 index cad3709998..0000000000 --- a/src/globular-types/globular-homotopies.lagda.md +++ /dev/null @@ -1,36 +0,0 @@ -# Globular homotopies - -```agda -module globular-types.globular-homotopies where -``` - -
Imports - -```agda - -``` - -
- -## Idea - -Consider two [globular maps](globular-types.globular-maps.md) `f g : G → H` into -a [transitive globular type](globular-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](globular-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](globular-types.globular-types.md) `G' x y` and -`H' (f₀ x) (f₀ y)` diff --git a/src/graph-theory/discrete-reflexive-graphs.lagda.md b/src/graph-theory/discrete-reflexive-graphs.lagda.md index 187fd6cae6..5a183de0ee 100644 --- a/src/graph-theory/discrete-reflexive-graphs.lagda.md +++ b/src/graph-theory/discrete-reflexive-graphs.lagda.md @@ -100,10 +100,10 @@ module _ where discrete-Reflexive-Graph : Reflexive-Graph l1 l1 - pr1 discrete-Reflexive-Graph = A - pr1 (pr2 discrete-Reflexive-Graph) = Id - pr2 (pr2 discrete-Reflexive-Graph) a = refl - + pr1 (pr1 discrete-Reflexive-Graph) = A + pr2 (pr1 discrete-Reflexive-Graph) = Id + pr2 discrete-Reflexive-Graph x = refl + is-discrete-discrete-Reflexive-Graph : is-discrete-Reflexive-Graph discrete-Reflexive-Graph is-discrete-discrete-Reflexive-Graph = From 18b0121030195cbc320875fc498eeabce2d5d4a3 Mon Sep 17 00:00:00 2001 From: Egbert Rijke Date: Wed, 20 Nov 2024 07:54:39 -0500 Subject: [PATCH 78/87] make pre-commit --- src/graph-theory/discrete-reflexive-graphs.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graph-theory/discrete-reflexive-graphs.lagda.md b/src/graph-theory/discrete-reflexive-graphs.lagda.md index 5a183de0ee..e750402ea7 100644 --- a/src/graph-theory/discrete-reflexive-graphs.lagda.md +++ b/src/graph-theory/discrete-reflexive-graphs.lagda.md @@ -103,7 +103,7 @@ module _ pr1 (pr1 discrete-Reflexive-Graph) = A pr2 (pr1 discrete-Reflexive-Graph) = Id pr2 discrete-Reflexive-Graph x = refl - + is-discrete-discrete-Reflexive-Graph : is-discrete-Reflexive-Graph discrete-Reflexive-Graph is-discrete-discrete-Reflexive-Graph = From 8539d1aafabe8683403c0c4d0c3e63deae770c13 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Sat, 30 Nov 2024 18:22:52 +0100 Subject: [PATCH 79/87] =?UTF-8?q?noncoherent=20=CF=89-semiprecategories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binary-globular-maps.lagda.md | 67 +++++-- ...position-structure-globular-types.lagda.md | 113 ++++++++++- ...ncoherent-omega-semiprecategories.lagda.md | 182 ++++++++++++++++++ 3 files changed, 343 insertions(+), 19 deletions(-) create mode 100644 src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md diff --git a/src/globular-types/binary-globular-maps.lagda.md b/src/globular-types/binary-globular-maps.lagda.md index aa89346264..16240547d2 100644 --- a/src/globular-types/binary-globular-maps.lagda.md +++ b/src/globular-types/binary-globular-maps.lagda.md @@ -45,19 +45,56 @@ record {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')) + 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')) + +open binary-globular-map public +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {G : Globular-Type l1 l2} {H : Globular-Type l3 l4} {K : Globular-Type l5 l6} + (F : binary-globular-map G H K) + where + + 1-cell-binary-globular-map : + {x x' : 0-cell-Globular-Type G} {y y' : 0-cell-Globular-Type H} → + 1-cell-Globular-Type G x x' → + 1-cell-Globular-Type H y y' → + 1-cell-Globular-Type K + ( 0-cell-binary-globular-map F x y) + ( 0-cell-binary-globular-map F x' y') + 1-cell-binary-globular-map = + 0-cell-binary-globular-map + ( 1-cell-binary-globular-map-binary-globular-map F) + + 2-cell-binary-globular-map : + {x x' : 0-cell-Globular-Type G} + {y y' : 0-cell-Globular-Type H} + {f f' : 1-cell-Globular-Type G x x'} + {g g' : 1-cell-Globular-Type H y y'} → + 2-cell-Globular-Type G f f' → + 2-cell-Globular-Type H g g' → + 2-cell-Globular-Type K + ( 1-cell-binary-globular-map f g) + ( 1-cell-binary-globular-map f' g') + 2-cell-binary-globular-map = + 0-cell-binary-globular-map + ( 1-cell-binary-globular-map-binary-globular-map + ( 1-cell-binary-globular-map-binary-globular-map F)) ``` diff --git a/src/globular-types/composition-structure-globular-types.lagda.md b/src/globular-types/composition-structure-globular-types.lagda.md index 5d9fbf094b..3516258069 100644 --- a/src/globular-types/composition-structure-globular-types.lagda.md +++ b/src/globular-types/composition-structure-globular-types.lagda.md @@ -13,6 +13,7 @@ open import foundation.universe-levels open import globular-types.binary-globular-maps open import globular-types.globular-types +open import globular-types.transitive-globular-types ```
@@ -36,10 +37,9 @@ consists of binary operations - ∘ - : (𝑛+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](globular-types.transitive-globular-types.md) on -globular types. +each of which preserve all higher cells of the globular type `G`. In comparison +to [transitivity structure](globular-types.transitive-globular-types.md) on +globular types, this also gives horizontal composition of higher cells. ## Definitions @@ -58,10 +58,115 @@ record ( 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) + comp-1-cell-composition-Globular-Type : + {x y z : 0-cell-Globular-Type G} → + 1-cell-Globular-Type G y z → + 1-cell-Globular-Type G x y → + 1-cell-Globular-Type G x z + comp-1-cell-composition-Globular-Type = + 0-cell-binary-globular-map + comp-binary-globular-map-composition-Globular-Type + + horizontal-comp-2-cell-composition-Globular-Type : + {x y z : 0-cell-Globular-Type G} → + {g g' : 1-cell-Globular-Type G y z} → + {f f' : 1-cell-Globular-Type G x y} → + 2-cell-Globular-Type G g g' → + 2-cell-Globular-Type G f f' → + 2-cell-Globular-Type G + ( comp-1-cell-composition-Globular-Type g f) + ( comp-1-cell-composition-Globular-Type g' f') + horizontal-comp-2-cell-composition-Globular-Type = + 1-cell-binary-globular-map + ( comp-binary-globular-map-composition-Globular-Type) + + horizontal-comp-3-cell-composition-Globular-Type' : + {x y z : 0-cell-Globular-Type G} + {g g' : 1-cell-Globular-Type G y z} + {f f' : 1-cell-Globular-Type G x y} + {α α' : 2-cell-Globular-Type G g g'} + {β β' : 2-cell-Globular-Type G f f'} → + 3-cell-Globular-Type G α α' → + 3-cell-Globular-Type G β β' → + 3-cell-Globular-Type G + ( horizontal-comp-2-cell-composition-Globular-Type α β) + ( horizontal-comp-2-cell-composition-Globular-Type α' β') + horizontal-comp-3-cell-composition-Globular-Type' = + 2-cell-binary-globular-map + comp-binary-globular-map-composition-Globular-Type + open composition-Globular-Type public ``` + +```agda +module _ + {l1 l2 : Level} {G : Globular-Type l1 l2} (H : composition-Globular-Type G) + where + + comp-2-cell-composition-Globular-Type : + {x y : 0-cell-Globular-Type G} → + {f g h : 1-cell-Globular-Type G x y} → + 2-cell-Globular-Type G g h → + 2-cell-Globular-Type G f g → + 2-cell-Globular-Type G f h + comp-2-cell-composition-Globular-Type = + comp-1-cell-composition-Globular-Type + ( composition-1-cell-globular-type-Globular-Type H) + + horizontal-comp-3-cell-composition-Globular-Type : + {x y : 0-cell-Globular-Type G} + {f g h : 1-cell-Globular-Type G x y} + {α α' : 2-cell-Globular-Type G g h} + {β β' : 2-cell-Globular-Type G f g} → + 3-cell-Globular-Type G α α' → + 3-cell-Globular-Type G β β' → + 3-cell-Globular-Type G + ( comp-2-cell-composition-Globular-Type α β) + ( comp-2-cell-composition-Globular-Type α' β') + horizontal-comp-3-cell-composition-Globular-Type = + horizontal-comp-2-cell-composition-Globular-Type + ( composition-1-cell-globular-type-Globular-Type H) + +module _ + {l1 l2 : Level} {G : Globular-Type l1 l2} (H : composition-Globular-Type G) + where + + comp-3-cell-composition-Globular-Type : + {x y : 0-cell-Globular-Type G} → + {f g : 1-cell-Globular-Type G x y} → + {α β γ : 2-cell-Globular-Type G f g} → + 3-cell-Globular-Type G β γ → + 3-cell-Globular-Type G α β → + 3-cell-Globular-Type G α γ + comp-3-cell-composition-Globular-Type = + comp-2-cell-composition-Globular-Type + ( composition-1-cell-globular-type-Globular-Type H) +``` + +## Properties + +### Globular types with composition structure are transitive + +```agda +is-transitive-composition-Globular-Type : + {l1 l2 : Level} {G : Globular-Type l1 l2} → + composition-Globular-Type G → + is-transitive-Globular-Type G +comp-1-cell-is-transitive-Globular-Type + ( is-transitive-composition-Globular-Type H) = + comp-1-cell-composition-Globular-Type H +is-transitive-1-cell-globular-type-is-transitive-Globular-Type + ( is-transitive-composition-Globular-Type H) = + is-transitive-composition-Globular-Type + ( composition-1-cell-globular-type-Globular-Type H) +``` + +## See also + +- [Noncoherent wild $\omega$-semiprecategories](wild-category-theory.noncoherent-wild-omega-semiprecategories.md) diff --git a/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..ee93ea6cc9 --- /dev/null +++ b/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,182 @@ +# Noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.noncoherent-omega-semiprecategories where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import globular-types.globular-types +open import globular-types.composition-structure-globular-types +open import foundation.universe-levels + +``` + +
+ +## Idea + +A +{{#concept "noncoherent ω-semiprecategory" Agda=Noncoherent-ω-Semiprecategory}} +`𝒞` is a [globular type](globular-types.globular-types.md) `G` +[equipped](foundation.structure.md) with a +[composition structure](globular-types.composition-structure-globular-types.md). + +## Definitions + +### Noncoherent ω-semiprecategories + +```agda +Noncoherent-ω-Semiprecategory : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) +Noncoherent-ω-Semiprecategory l1 l2 = + Σ (Globular-Type l1 l2) (composition-Globular-Type) +``` + +```agda +module _ + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + where + + globular-type-Noncoherent-ω-Semiprecategory : Globular-Type l1 l2 + globular-type-Noncoherent-ω-Semiprecategory = pr1 𝒞 + + obj-Noncoherent-ω-Semiprecategory : UU l1 + obj-Noncoherent-ω-Semiprecategory = + 0-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory +``` + +Morphisms in a noncoherent ω-semiprecategory: + +```agda + hom-globular-type-Noncoherent-ω-Semiprecategory : + (x y : obj-Noncoherent-ω-Semiprecategory) → Globular-Type l2 l2 + hom-globular-type-Noncoherent-ω-Semiprecategory = + 1-cell-globular-type-Globular-Type + globular-type-Noncoherent-ω-Semiprecategory + + hom-Noncoherent-ω-Semiprecategory : + (x y : obj-Noncoherent-ω-Semiprecategory) → UU l2 + hom-Noncoherent-ω-Semiprecategory = + 1-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory +``` + +Composition in a noncoherent ω-semiprecategory: + +```agda + composition-Noncoherent-ω-Semiprecategory : + composition-Globular-Type globular-type-Noncoherent-ω-Semiprecategory + composition-Noncoherent-ω-Semiprecategory = pr2 𝒞 + + comp-hom-Noncoherent-ω-Semiprecategory : + {x y z : obj-Noncoherent-ω-Semiprecategory} → + hom-Noncoherent-ω-Semiprecategory y z → + hom-Noncoherent-ω-Semiprecategory x y → + hom-Noncoherent-ω-Semiprecategory x z + comp-hom-Noncoherent-ω-Semiprecategory = + comp-1-cell-composition-Globular-Type + composition-Noncoherent-ω-Semiprecategory + + composition-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} → + composition-Globular-Type + ( hom-globular-type-Noncoherent-ω-Semiprecategory x y) + composition-hom-Noncoherent-ω-Semiprecategory = + composition-1-cell-globular-type-Globular-Type + composition-Noncoherent-ω-Semiprecategory +``` + +The noncoherent ω-semiprecategory of morphisms between two objects in a +noncoherent ω-semiprecategory: + +```agda + hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory : + (x y : obj-Noncoherent-ω-Semiprecategory) → + Noncoherent-ω-Semiprecategory l2 l2 + hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory x y = + hom-globular-type-Noncoherent-ω-Semiprecategory x y , + composition-hom-Noncoherent-ω-Semiprecategory +``` + +2-Morphisms in a noncoherent ω-semiprecategory: + +```agda + 2-hom-globular-type-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + (f g : hom-Noncoherent-ω-Semiprecategory x y) → Globular-Type l2 l2 + 2-hom-globular-type-Noncoherent-ω-Semiprecategory = + 2-cell-globular-type-Globular-Type + globular-type-Noncoherent-ω-Semiprecategory + + 2-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + (f g : hom-Noncoherent-ω-Semiprecategory x y) → UU l2 + 2-hom-Noncoherent-ω-Semiprecategory = + 2-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory + + comp-2-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g h : hom-Noncoherent-ω-Semiprecategory x y} → + 2-hom-Noncoherent-ω-Semiprecategory g h → + 2-hom-Noncoherent-ω-Semiprecategory f g → + 2-hom-Noncoherent-ω-Semiprecategory f h + comp-2-hom-Noncoherent-ω-Semiprecategory = + comp-2-cell-composition-Globular-Type + composition-Noncoherent-ω-Semiprecategory + + composition-2-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} → + composition-Globular-Type + ( 2-hom-globular-type-Noncoherent-ω-Semiprecategory f g) + composition-2-hom-Noncoherent-ω-Semiprecategory = + composition-1-cell-globular-type-Globular-Type + composition-hom-Noncoherent-ω-Semiprecategory + + 2-hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + (f g : hom-Noncoherent-ω-Semiprecategory x y) → + Noncoherent-ω-Semiprecategory l2 l2 + 2-hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory f g = + 2-hom-globular-type-Noncoherent-ω-Semiprecategory f g , + composition-2-hom-Noncoherent-ω-Semiprecategory +``` + +Higher morphisms in a noncoherent ω-semiprecategory: + +```agda + 3-hom-globular-type-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} + (α β : 2-hom-Noncoherent-ω-Semiprecategory f g) → Globular-Type l2 l2 + 3-hom-globular-type-Noncoherent-ω-Semiprecategory = + 3-cell-globular-type-Globular-Type + globular-type-Noncoherent-ω-Semiprecategory + + 3-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} + (α β : 2-hom-Noncoherent-ω-Semiprecategory f g) → UU l2 + 3-hom-Noncoherent-ω-Semiprecategory = + 3-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory + + 4-hom-globular-type-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} + {α β : 2-hom-Noncoherent-ω-Semiprecategory f g} + (H K : 3-hom-Noncoherent-ω-Semiprecategory α β) → Globular-Type l2 l2 + 4-hom-globular-type-Noncoherent-ω-Semiprecategory = + 4-cell-globular-type-Globular-Type + globular-type-Noncoherent-ω-Semiprecategory + + 4-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} + {α β : 2-hom-Noncoherent-ω-Semiprecategory f g} + (H K : 3-hom-Noncoherent-ω-Semiprecategory α β) → UU l2 + 4-hom-Noncoherent-ω-Semiprecategory = + 4-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory +``` From fb7439d9ef948aaf015ab14732f8a721bf577239 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Sun, 1 Dec 2024 12:34:42 +0100 Subject: [PATCH 80/87] universal property isomorphisms --- .../binary-globular-maps.lagda.md | 27 +++ .../globular-equivalences.lagda.md | 165 ++++++++++++------ src/globular-types/globular-maps.lagda.md | 5 + .../reflexive-globular-equivalences.lagda.md | 6 +- src/wild-category-theory.lagda.md | 5 + ...ncoherent-omega-semiprecategories.lagda.md | 151 ++++++++++++++++ ...ncoherent-omega-semiprecategories.lagda.md | 68 +++++++- ...ncoherent-omega-semiprecategories.lagda.md | 62 +++++++ ...ncoherent-omega-semiprecategories.lagda.md | 62 +++++++ ...ncoherent-omega-semiprecategories.lagda.md | 64 +++++++ 10 files changed, 555 insertions(+), 60 deletions(-) create mode 100644 src/wild-category-theory/maps-noncoherent-omega-semiprecategories.lagda.md create mode 100644 src/wild-category-theory/postcomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md create mode 100644 src/wild-category-theory/precomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md create mode 100644 src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md diff --git a/src/globular-types/binary-globular-maps.lagda.md b/src/globular-types/binary-globular-maps.lagda.md index 16240547d2..16bdfa722f 100644 --- a/src/globular-types/binary-globular-maps.lagda.md +++ b/src/globular-types/binary-globular-maps.lagda.md @@ -13,6 +13,7 @@ open import foundation.universe-levels open import globular-types.globular-maps open import globular-types.globular-types +open import globular-types.points-globular-types ```
@@ -98,3 +99,29 @@ module _ ( 1-cell-binary-globular-map-binary-globular-map ( 1-cell-binary-globular-map-binary-globular-map F)) ``` + +### Evaluating one of the arguments of a binary globular map + +```agda +ev-left-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} + (F : binary-globular-map G H K) (x : point-Globular-Type G) → globular-map H K +0-cell-globular-map (ev-left-binary-globular-map F x) = + 0-cell-binary-globular-map F (0-cell-point-Globular-Type x) +1-cell-globular-map-globular-map (ev-left-binary-globular-map F x) = + ev-left-binary-globular-map + ( 1-cell-binary-globular-map-binary-globular-map F) + ( 1-cell-point-point-Globular-Type x) + +ev-right-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} + (F : binary-globular-map G H K) (x : point-Globular-Type H) → globular-map G K +0-cell-globular-map (ev-right-binary-globular-map F x) y = + 0-cell-binary-globular-map F y (0-cell-point-Globular-Type x) +1-cell-globular-map-globular-map (ev-right-binary-globular-map F x) = + ev-right-binary-globular-map + ( 1-cell-binary-globular-map-binary-globular-map F) + ( 1-cell-point-point-Globular-Type x) +``` diff --git a/src/globular-types/globular-equivalences.lagda.md b/src/globular-types/globular-equivalences.lagda.md index 5afece9603..b8a29f84dd 100644 --- a/src/globular-types/globular-equivalences.lagda.md +++ b/src/globular-types/globular-equivalences.lagda.md @@ -29,47 +29,90 @@ A {{#concept "globular equivalence" Agda=globular-equiv}} `e` between 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). + eₙ₊₁ : Aₙ₊₁ x y ≃ Bₙ₊₁ (eₙ x) (eₙ y). ``` ## Definitions -### Equivalences between globular types +### The predicate on a globular map of being an equivalence ```agda record - globular-equiv - {l1 l2 l3 l4 : Level} (A : Globular-Type l1 l2) (B : Globular-Type l3 l4) : + is-equiv-globular-map + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (f : globular-map A B) : 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 + is-equiv-0-cell-is-equiv-globular-map : is-equiv (0-cell-globular-map f) - field - 1-cell-globular-equiv-globular-equiv : + 1-cell-is-equiv-globular-map : {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)) + is-equiv-globular-map (1-cell-globular-map-globular-map f {x} {y}) + +open is-equiv-globular-map public +``` -open globular-equiv public +### Equivalences between globular types -globular-map-globular-equiv : - {l1 l2 l3 l4 : Level} - {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} → - globular-equiv A B → globular-map A B -0-cell-globular-map (globular-map-globular-equiv e) = - map-equiv (0-cell-equiv-globular-equiv e) -1-cell-globular-map-globular-map (globular-map-globular-equiv e) = - globular-map-globular-equiv (1-cell-globular-equiv-globular-equiv e) +```agda +globular-equiv : + {l1 l2 l3 l4 : Level} → Globular-Type l1 l2 → Globular-Type l3 l4 → + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) +globular-equiv A B = Σ (globular-map A B) (is-equiv-globular-map) + +module _ + {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (e : globular-equiv A B) + where + + globular-map-globular-equiv : globular-map A B + globular-map-globular-equiv = pr1 e + + is-equiv-globular-equiv : is-equiv-globular-map globular-map-globular-equiv + is-equiv-globular-equiv = pr2 e + + 0-cell-map-globular-equiv : 0-cell-Globular-Type A → 0-cell-Globular-Type B + 0-cell-map-globular-equiv = + 0-cell-globular-map globular-map-globular-equiv + + is-equiv-0-cell-map-globular-equiv : is-equiv 0-cell-map-globular-equiv + is-equiv-0-cell-map-globular-equiv = + is-equiv-0-cell-is-equiv-globular-map is-equiv-globular-equiv + + 0-cell-globular-equiv : 0-cell-Globular-Type A ≃ 0-cell-Globular-Type B + 0-cell-globular-equiv = + 0-cell-map-globular-equiv , is-equiv-0-cell-map-globular-equiv + + 1-cell-globular-map-globular-equiv : + (x y : 0-cell-Globular-Type A) → + globular-map + ( 1-cell-globular-type-Globular-Type A x y) + ( 1-cell-globular-type-Globular-Type B + ( 0-cell-map-globular-equiv x) + ( 0-cell-map-globular-equiv y)) + 1-cell-globular-map-globular-equiv x y = + 1-cell-globular-map-globular-map globular-map-globular-equiv + + is-equiv-1-cell-globular-map-globular-equiv : + {x y : 0-cell-Globular-Type A} → + is-equiv-globular-map (1-cell-globular-map-globular-equiv x y) + is-equiv-1-cell-globular-map-globular-equiv = + 1-cell-is-equiv-globular-map is-equiv-globular-equiv + + 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-map-globular-equiv x) + ( 0-cell-map-globular-equiv y)) + 1-cell-globular-equiv-globular-equiv {x} {y} = + 1-cell-globular-map-globular-equiv x y , + is-equiv-1-cell-globular-map-globular-equiv module _ {l1 l2 l3 l4 : Level} @@ -81,20 +124,19 @@ module _ {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) + ( 0-cell-map-globular-equiv e x) + ( 0-cell-map-globular-equiv e y) 1-cell-equiv-globular-equiv = - 0-cell-equiv-globular-equiv - ( 1-cell-globular-equiv-globular-equiv e) + 0-cell-globular-equiv (1-cell-globular-equiv-globular-equiv e) - 1-cell-globular-equiv : + 1-cell-map-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) + ( 0-cell-map-globular-equiv e x) + ( 0-cell-map-globular-equiv e y) + 1-cell-map-globular-equiv = + 0-cell-map-globular-equiv (1-cell-globular-equiv-globular-equiv e) module _ {l1 l2 l3 l4 : Level} @@ -107,8 +149,8 @@ module _ {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) + ( 1-cell-map-globular-equiv e f) + ( 1-cell-map-globular-equiv e g) 2-cell-equiv-globular-equiv = 1-cell-equiv-globular-equiv ( 1-cell-globular-equiv-globular-equiv e) @@ -118,10 +160,10 @@ module _ {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) + ( 1-cell-map-globular-equiv e f) + ( 1-cell-map-globular-equiv e g) 2-cell-globular-equiv = - 1-cell-globular-equiv (1-cell-globular-equiv-globular-equiv e) + 1-cell-map-globular-equiv (1-cell-globular-equiv-globular-equiv e) module _ {l1 l2 l3 l4 : Level} @@ -145,18 +187,40 @@ module _ ### The identity equivalence on a globular type ```agda +is-equiv-id-globular-map : + {l1 l2 : Level} (A : Globular-Type l1 l2) → + is-equiv-globular-map (id-globular-map A) +is-equiv-0-cell-is-equiv-globular-map (is-equiv-id-globular-map A) = is-equiv-id +1-cell-is-equiv-globular-map (is-equiv-id-globular-map A) = + is-equiv-id-globular-map (1-cell-globular-type-Globular-Type A _ _) + 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) +id-globular-equiv A = id-globular-map A , is-equiv-id-globular-map A ``` ### Composition of equivalences of globular types ```agda +is-equiv-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} + {g : globular-map B C} + {f : globular-map A B} → + is-equiv-globular-map g → + is-equiv-globular-map f → + is-equiv-globular-map (comp-globular-map g f) +is-equiv-0-cell-is-equiv-globular-map (is-equiv-comp-globular-map G F) = + is-equiv-comp _ _ + ( is-equiv-0-cell-is-equiv-globular-map F) + ( is-equiv-0-cell-is-equiv-globular-map G) +1-cell-is-equiv-globular-map (is-equiv-comp-globular-map G F) = + is-equiv-comp-globular-map + ( 1-cell-is-equiv-globular-map G) + ( 1-cell-is-equiv-globular-map F) + comp-globular-equiv : {l1 l2 l3 l4 l5 l6 : Level} {A : Globular-Type l1 l2} @@ -164,11 +228,10 @@ comp-globular-equiv : {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) + comp-globular-map + ( globular-map-globular-equiv g) + ( globular-map-globular-equiv f) , + is-equiv-comp-globular-map + ( is-equiv-globular-equiv g) + ( is-equiv-globular-equiv f) ``` diff --git a/src/globular-types/globular-maps.lagda.md b/src/globular-types/globular-maps.lagda.md index 4cdc042698..7c56f702f1 100644 --- a/src/globular-types/globular-maps.lagda.md +++ b/src/globular-types/globular-maps.lagda.md @@ -157,3 +157,8 @@ comp-globular-map g f = ( 1-cell-globular-map-globular-map g) ( 1-cell-globular-map-globular-map f) ``` + +## See also + +- The dependent counterpart to globular maps is + [sections of dependent globular types](type-theories.sections-dependent-globular-types.md) diff --git a/src/globular-types/reflexive-globular-equivalences.lagda.md b/src/globular-types/reflexive-globular-equivalences.lagda.md index 8d154f39af..27a6655106 100644 --- a/src/globular-types/reflexive-globular-equivalences.lagda.md +++ b/src/globular-types/reflexive-globular-equivalences.lagda.md @@ -72,12 +72,12 @@ record 0-cell-equiv-reflexive-globular-equiv : 0-cell-Reflexive-Globular-Type G ≃ 0-cell-Reflexive-Globular-Type H 0-cell-equiv-reflexive-globular-equiv = - 0-cell-equiv-globular-equiv globular-equiv-reflexive-globular-equiv + 0-cell-globular-equiv globular-equiv-reflexive-globular-equiv 0-cell-reflexive-globular-equiv : 0-cell-Reflexive-Globular-Type G → 0-cell-Reflexive-Globular-Type H 0-cell-reflexive-globular-equiv = - 0-cell-globular-equiv globular-equiv-reflexive-globular-equiv + 0-cell-map-globular-equiv globular-equiv-reflexive-globular-equiv 1-cell-equiv-reflexive-globular-equiv : {x y : 0-cell-Reflexive-Globular-Type G} → @@ -95,7 +95,7 @@ record ( 0-cell-reflexive-globular-equiv x) ( 0-cell-reflexive-globular-equiv y) 1-cell-reflexive-globular-equiv = - 1-cell-globular-equiv globular-equiv-reflexive-globular-equiv + 1-cell-map-globular-equiv globular-equiv-reflexive-globular-equiv 1-cell-globular-equiv-reflexive-globular-equiv : {x y : 0-cell-Reflexive-Globular-Type G} → diff --git a/src/wild-category-theory.lagda.md b/src/wild-category-theory.lagda.md index 63cf266e2d..8c53aab698 100644 --- a/src/wild-category-theory.lagda.md +++ b/src/wild-category-theory.lagda.md @@ -18,7 +18,12 @@ open import wild-category-theory.colax-functors-noncoherent-wild-higher-precateg open import wild-category-theory.isomorphisms-in-noncoherent-large-wild-higher-precategories public open import wild-category-theory.isomorphisms-in-noncoherent-wild-higher-precategories public open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories public +open import wild-category-theory.maps-noncoherent-omega-semiprecategories public open import wild-category-theory.maps-noncoherent-wild-higher-precategories public open import wild-category-theory.noncoherent-large-wild-higher-precategories public +open import wild-category-theory.noncoherent-omega-semiprecategories public open import wild-category-theory.noncoherent-wild-higher-precategories public +open import wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories public +open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories public +open import wild-category-theory.universal-property-isomorphisms-noncoherent-omega-semiprecategories public ``` diff --git a/src/wild-category-theory/maps-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/maps-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..ef7695f9f3 --- /dev/null +++ b/src/wild-category-theory/maps-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,151 @@ +# Maps between noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.maps-noncoherent-omega-semiprecategories where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.function-types +open import foundation.identity-types +open import foundation.universe-levels + +open import globular-types.globular-maps +open import globular-types.globular-types + +open import wild-category-theory.noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +A +{{#concept "map" Disambiguation="between noncoherent ω-semiprecategories" Agda=map-Noncoherent-ω-Semiprecategory}} +`f` between +[noncoherent ω-semiprecategories](wild-category-theory.noncoherent-omega-semiprecategories.md) +`𝒜` and `ℬ` is a [globular map](globular-types.globular-maps.md) between their +underlying [globular types](globular-types.globular-types.md). More +specifically, a map `F` between noncoherent ω-semiprecategories 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). +``` + +A map between noncoherent ω-semiprecategories does not have to preserve the +identities or composition in any shape or form, and is the least structured +notion of a "morphism" between noncoherent ω-semiprecategories. For a notion of +"morphism" between noncoherent ω-semiprecategories that in one sense preserves +this additional structure, see +[colax functors between noncoherent ω-semiprecategories](wild-category-theory.colax-functors-noncoherent-omega-semiprecategories.md). + +## Definitions + +### Maps between noncoherent ω-semiprecategories + +```agda +map-Noncoherent-ω-Semiprecategory : + {l1 l2 l3 l4 : Level} + (𝒜 : Noncoherent-ω-Semiprecategory l1 l2) + (ℬ : Noncoherent-ω-Semiprecategory l3 l4) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) +map-Noncoherent-ω-Semiprecategory 𝒜 ℬ = + globular-map + ( globular-type-Noncoherent-ω-Semiprecategory 𝒜) + ( globular-type-Noncoherent-ω-Semiprecategory ℬ) + +module _ + {l1 l2 l3 l4 : Level} + (𝒜 : Noncoherent-ω-Semiprecategory l1 l2) + (ℬ : Noncoherent-ω-Semiprecategory l3 l4) + (F : map-Noncoherent-ω-Semiprecategory 𝒜 ℬ) + where + + obj-map-Noncoherent-ω-Semiprecategory : + obj-Noncoherent-ω-Semiprecategory 𝒜 → + obj-Noncoherent-ω-Semiprecategory ℬ + obj-map-Noncoherent-ω-Semiprecategory = + 0-cell-globular-map F + + hom-globular-map-map-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory 𝒜} → + globular-map + ( hom-globular-type-Noncoherent-ω-Semiprecategory 𝒜 x y) + ( hom-globular-type-Noncoherent-ω-Semiprecategory ℬ + ( obj-map-Noncoherent-ω-Semiprecategory x) + ( obj-map-Noncoherent-ω-Semiprecategory y)) + hom-globular-map-map-Noncoherent-ω-Semiprecategory = + 1-cell-globular-map-globular-map F + + hom-map-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory 𝒜} → + hom-Noncoherent-ω-Semiprecategory 𝒜 x y → + hom-Noncoherent-ω-Semiprecategory ℬ + ( obj-map-Noncoherent-ω-Semiprecategory x) + ( obj-map-Noncoherent-ω-Semiprecategory y) + hom-map-Noncoherent-ω-Semiprecategory = + 0-cell-globular-map + ( hom-globular-map-map-Noncoherent-ω-Semiprecategory) + + 2-hom-map-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory 𝒜} + {f g : hom-Noncoherent-ω-Semiprecategory 𝒜 x y} → + 2-hom-Noncoherent-ω-Semiprecategory 𝒜 f g → + 2-hom-Noncoherent-ω-Semiprecategory ℬ + ( hom-map-Noncoherent-ω-Semiprecategory f) + ( hom-map-Noncoherent-ω-Semiprecategory g) + 2-hom-map-Noncoherent-ω-Semiprecategory = + 1-cell-globular-map + ( hom-globular-map-map-Noncoherent-ω-Semiprecategory) + + hom-noncoherent-ω-semiprecategory-map-Noncoherent-ω-Semiprecategory : + (x y : obj-Noncoherent-ω-Semiprecategory 𝒜) → + map-Noncoherent-ω-Semiprecategory + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory + ( 𝒜) + ( x) + ( y)) + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory + ( ℬ) + ( obj-map-Noncoherent-ω-Semiprecategory x) + ( obj-map-Noncoherent-ω-Semiprecategory y)) + hom-noncoherent-ω-semiprecategory-map-Noncoherent-ω-Semiprecategory + x y = + 1-cell-globular-map-globular-map F +``` + +### The identity map on a noncoherent ω-semiprecategory + +```agda +module _ + {l1 l2 : Level} (𝒜 : Noncoherent-ω-Semiprecategory l1 l2) + where + + id-map-Noncoherent-ω-Semiprecategory : + map-Noncoherent-ω-Semiprecategory 𝒜 𝒜 + id-map-Noncoherent-ω-Semiprecategory = + id-globular-map _ +``` + +### Composition of maps between noncoherent ω-semiprecategories + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + (𝒜 : Noncoherent-ω-Semiprecategory l1 l2) + (ℬ : Noncoherent-ω-Semiprecategory l3 l4) + (𝒞 : Noncoherent-ω-Semiprecategory l5 l6) + (G : map-Noncoherent-ω-Semiprecategory ℬ 𝒞) + (F : map-Noncoherent-ω-Semiprecategory 𝒜 ℬ) + where + + comp-map-Noncoherent-ω-Semiprecategory : + map-Noncoherent-ω-Semiprecategory 𝒜 𝒞 + comp-map-Noncoherent-ω-Semiprecategory = + comp-globular-map G F +``` diff --git a/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md index ee93ea6cc9..0d9dc41490 100644 --- a/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md +++ b/src/wild-category-theory/noncoherent-omega-semiprecategories.lagda.md @@ -10,10 +10,11 @@ module wild-category-theory.noncoherent-omega-semiprecategories where ```agda open import foundation.dependent-pair-types -open import globular-types.globular-types -open import globular-types.composition-structure-globular-types open import foundation.universe-levels +open import globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-types ```
@@ -25,6 +26,12 @@ A `𝒞` is a [globular type](globular-types.globular-types.md) `G` [equipped](foundation.structure.md) with a [composition structure](globular-types.composition-structure-globular-types.md). +It comes equipped with a type of objects `𝒞₀` such that for every pair of +objects `x y : 𝒞₀` there is a type of _morphisms_ `𝒞₁ x y`, in fact, a +noncoherent ω-semiprecategory of morphisms. For every pair of morphisms +`g : 𝒞₁ y z` and `f : 𝒞₁ x y` there is a morphism `g ∘ f : 𝒞₁ x z`, and a +noncoherent ω-semiprecategory also comes equipped with horizontal composition +operations on its higher morphisms. ## Definitions @@ -71,6 +78,16 @@ Composition in a noncoherent ω-semiprecategory: composition-Globular-Type globular-type-Noncoherent-ω-Semiprecategory composition-Noncoherent-ω-Semiprecategory = pr2 𝒞 + comp-binary-globular-map-hom-Noncoherent-ω-Semiprecategory : + {x y z : obj-Noncoherent-ω-Semiprecategory} → + binary-globular-map + ( hom-globular-type-Noncoherent-ω-Semiprecategory y z) + ( hom-globular-type-Noncoherent-ω-Semiprecategory x y) + ( hom-globular-type-Noncoherent-ω-Semiprecategory x z) + comp-binary-globular-map-hom-Noncoherent-ω-Semiprecategory = + comp-binary-globular-map-composition-Globular-Type + composition-Noncoherent-ω-Semiprecategory + comp-hom-Noncoherent-ω-Semiprecategory : {x y z : obj-Noncoherent-ω-Semiprecategory} → hom-Noncoherent-ω-Semiprecategory y z → @@ -93,10 +110,10 @@ The noncoherent ω-semiprecategory of morphisms between two objects in a noncoherent ω-semiprecategory: ```agda - hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory : + hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory : (x y : obj-Noncoherent-ω-Semiprecategory) → Noncoherent-ω-Semiprecategory l2 l2 - hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory x y = + hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory x y = hom-globular-type-Noncoherent-ω-Semiprecategory x y , composition-hom-Noncoherent-ω-Semiprecategory ``` @@ -136,13 +153,26 @@ noncoherent ω-semiprecategory: composition-1-cell-globular-type-Globular-Type composition-hom-Noncoherent-ω-Semiprecategory - 2-hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory : + 2-hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory : {x y : obj-Noncoherent-ω-Semiprecategory} (f g : hom-Noncoherent-ω-Semiprecategory x y) → Noncoherent-ω-Semiprecategory l2 l2 - 2-hom-noncoherent-semiprecategory-Noncoherent-ω-Semiprecategory f g = + 2-hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory f g = 2-hom-globular-type-Noncoherent-ω-Semiprecategory f g , composition-2-hom-Noncoherent-ω-Semiprecategory + + horizontal-comp-2-hom-Noncoherent-ω-Semiprecategory : + {x y z : obj-Noncoherent-ω-Semiprecategory} → + {g g' : hom-Noncoherent-ω-Semiprecategory y z} + {f f' : hom-Noncoherent-ω-Semiprecategory x y} → + 2-hom-Noncoherent-ω-Semiprecategory g g' → + 2-hom-Noncoherent-ω-Semiprecategory f f' → + 2-hom-Noncoherent-ω-Semiprecategory + ( comp-hom-Noncoherent-ω-Semiprecategory g f) + ( comp-hom-Noncoherent-ω-Semiprecategory g' f') + horizontal-comp-2-hom-Noncoherent-ω-Semiprecategory = + horizontal-comp-2-cell-composition-Globular-Type + composition-Noncoherent-ω-Semiprecategory ``` Higher morphisms in a noncoherent ω-semiprecategory: @@ -163,6 +193,32 @@ Higher morphisms in a noncoherent ω-semiprecategory: 3-hom-Noncoherent-ω-Semiprecategory = 3-cell-Globular-Type globular-type-Noncoherent-ω-Semiprecategory + comp-3-hom-Noncoherent-ω-Semiprecategory : + {x y : obj-Noncoherent-ω-Semiprecategory} + {f g : hom-Noncoherent-ω-Semiprecategory x y} + {α β γ : 2-hom-Noncoherent-ω-Semiprecategory f g} → + 3-hom-Noncoherent-ω-Semiprecategory β γ → + 3-hom-Noncoherent-ω-Semiprecategory α β → + 3-hom-Noncoherent-ω-Semiprecategory α γ + comp-3-hom-Noncoherent-ω-Semiprecategory = + comp-3-cell-composition-Globular-Type + composition-Noncoherent-ω-Semiprecategory + + horizontal-comp-3-hom-Noncoherent-ω-Semiprecategory : + {x y z : obj-Noncoherent-ω-Semiprecategory} + {g g' : hom-Noncoherent-ω-Semiprecategory y z} + {f f' : hom-Noncoherent-ω-Semiprecategory x y} + {α α' : 2-hom-Noncoherent-ω-Semiprecategory g g'} + {β β' : 2-hom-Noncoherent-ω-Semiprecategory f f'} → + 3-hom-Noncoherent-ω-Semiprecategory α α' → + 3-hom-Noncoherent-ω-Semiprecategory β β' → + 3-hom-Noncoherent-ω-Semiprecategory + ( horizontal-comp-2-hom-Noncoherent-ω-Semiprecategory α β) + ( horizontal-comp-2-hom-Noncoherent-ω-Semiprecategory α' β') + horizontal-comp-3-hom-Noncoherent-ω-Semiprecategory = + horizontal-comp-3-cell-composition-Globular-Type' + composition-Noncoherent-ω-Semiprecategory + 4-hom-globular-type-Noncoherent-ω-Semiprecategory : {x y : obj-Noncoherent-ω-Semiprecategory} {f g : hom-Noncoherent-ω-Semiprecategory x y} diff --git a/src/wild-category-theory/postcomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/postcomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..9a23b5cb6d --- /dev/null +++ b/src/wild-category-theory/postcomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,62 @@ +# Postcomposition of morphisms in noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-types +open import globular-types.points-globular-types + +open import wild-category-theory.maps-noncoherent-omega-semiprecategories +open import wild-category-theory.noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +Given a morphism `f : 𝒞₁ x y` in a +[noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) +with the structure of a [point](globular-types.points-globular-types.md), then +we have a +{{#concept "postcomposition map" Disambiguation="noncoherent ω-semiprecategory"}} +on hom-ω-semicategories + +```text + - ∘ f : 𝒞₁ z x → 𝒞₁ z y +``` + +for every object `z`. + +## Definitions + +### The precomposition globular map + +```agda +module _ + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + {x y : obj-Noncoherent-ω-Semiprecategory 𝒞} + (f : + point-Globular-Type (hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 x y)) + where + + postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory : + (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + map-Noncoherent-ω-Semiprecategory + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory 𝒞 z x) + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory 𝒞 z y) + postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory z = + ev-left-binary-globular-map + ( comp-binary-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞) + ( f) +``` diff --git a/src/wild-category-theory/precomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/precomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..9e496d135e --- /dev/null +++ b/src/wild-category-theory/precomposition-morphisms-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,62 @@ +# Precomposition of morphisms in noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-types +open import globular-types.points-globular-types + +open import wild-category-theory.maps-noncoherent-omega-semiprecategories +open import wild-category-theory.noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +Given a morphism `f : 𝒞₁ x y` in a +[noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) +with the structure of a [point](globular-types.points-globular-types.md), then +we have a +{{#concept "precomposition map" Disambiguation="noncoherent ω-semiprecategory"}} +on hom-ω-semicategories + +```text + - ∘ f : 𝒞₁ y z → 𝒞₁ x z +``` + +for every object `z`. + +## Definitions + +### The precomposition globular map + +```agda +module _ + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + {x y : obj-Noncoherent-ω-Semiprecategory 𝒞} + (f : + point-Globular-Type (hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 x y)) + where + + precomp-globular-map-hom-Noncoherent-ω-Semiprecategory : + (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + map-Noncoherent-ω-Semiprecategory + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory 𝒞 y z) + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory 𝒞 x z) + precomp-globular-map-hom-Noncoherent-ω-Semiprecategory z = + ev-right-binary-globular-map + ( comp-binary-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞) + ( f) +``` diff --git a/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..009576ecb2 --- /dev/null +++ b/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,64 @@ +# The universal property of isomorphisms in noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.universal-property-isomorphisms-noncoherent-omega-semiprecategories where +``` + +
Imports + +```agda +open import foundation.cartesian-product-types +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-types +open import globular-types.points-globular-types + +open import wild-category-theory.maps-noncoherent-omega-semiprecategories +open import wild-category-theory.noncoherent-omega-semiprecategories +open import wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories +open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +Given a morphism `f : 𝒞₁ x y` in a +[noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) +with the structure of a [point](globular-types.points-globular-types.md), `f` +satisfies the +{{#concept "universal property of isomorphisms" Disambiguation="in a noncoherent ω-semiprecategory"}} +if +[precomposition](wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories.md) +and +[postcomposition](wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories.md) +of by `f` is a [globular equivalence](globular-types.globular-equivalences.md) +for every object `z`. + +## Definitions + +### The universal property of isomorphisms + +```agda +module _ + {l1 l2 : Level} {𝒞 : Noncoherent-ω-Semiprecategory l1 l2} + {x y : obj-Noncoherent-ω-Semiprecategory 𝒞} + (f : + point-Globular-Type (hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 x y)) + where + + universal-property-iso-Noncoherent-ω-Semiprecategory : UU (l1 ⊔ l2) + universal-property-iso-Noncoherent-ω-Semiprecategory = + ( (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + is-equiv-globular-map + ( precomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 f z)) × + ( (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + is-equiv-globular-map + ( postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 f z)) +``` From 4eb4427deb0f1171040d6f66f1735a94db8457a6 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Sun, 1 Dec 2024 14:06:54 +0100 Subject: [PATCH 81/87] =?UTF-8?q?Idempotent=20points=20in=20noncoherent=20?= =?UTF-8?q?=CF=89-semiprecategories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../points-globular-types.lagda.md | 3 +- src/wild-category-theory.lagda.md | 1 + ...ncoherent-omega-semiprecategories.lagda.md | 71 +++++++++++++++++++ ...ncoherent-omega-semiprecategories.lagda.md | 8 +-- 4 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 src/wild-category-theory/idempotent-points-noncoherent-omega-semiprecategories.lagda.md diff --git a/src/globular-types/points-globular-types.lagda.md b/src/globular-types/points-globular-types.lagda.md index 94e81c6f56..36a32e8ed8 100644 --- a/src/globular-types/points-globular-types.lagda.md +++ b/src/globular-types/points-globular-types.lagda.md @@ -41,7 +41,6 @@ record point-Globular-Type field 0-cell-point-Globular-Type : 0-cell-Globular-Type G - field 1-cell-point-point-Globular-Type : point-Globular-Type ( 1-cell-globular-type-Globular-Type G @@ -53,7 +52,7 @@ open point-Globular-Type public 1-cell-point-Globular-Type : {l1 l2 : Level} (G : Globular-Type l1 l2) (x : point-Globular-Type G) → 1-cell-Globular-Type G - (0-cell-point-Globular-Type x) + ( 0-cell-point-Globular-Type x) ( 0-cell-point-Globular-Type x) 1-cell-point-Globular-Type G x = 0-cell-point-Globular-Type (1-cell-point-point-Globular-Type x) diff --git a/src/wild-category-theory.lagda.md b/src/wild-category-theory.lagda.md index 8c53aab698..bdf3e9d0f3 100644 --- a/src/wild-category-theory.lagda.md +++ b/src/wild-category-theory.lagda.md @@ -15,6 +15,7 @@ module wild-category-theory where open import wild-category-theory.colax-functors-noncoherent-large-wild-higher-precategories public open import wild-category-theory.colax-functors-noncoherent-wild-higher-precategories public +open import wild-category-theory.idempotent-points-noncoherent-omega-semiprecategories public open import wild-category-theory.isomorphisms-in-noncoherent-large-wild-higher-precategories public open import wild-category-theory.isomorphisms-in-noncoherent-wild-higher-precategories public open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories public diff --git a/src/wild-category-theory/idempotent-points-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/idempotent-points-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..9fdf07a543 --- /dev/null +++ b/src/wild-category-theory/idempotent-points-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,71 @@ +# Idempotent points in noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness #-} + +module wild-category-theory.idempotent-points-noncoherent-omega-semiprecategories 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 globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-types +open import globular-types.points-globular-types + +open import wild-category-theory.maps-noncoherent-omega-semiprecategories +open import wild-category-theory.noncoherent-omega-semiprecategories +open import wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories +open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +We say a [point](globular-types.points-globular-types.md) `x` in a +[noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) +`𝒞` is +{{#concept "idempotent" Disambiguation="point in a noncoherent ω-semiprecategory" Agda=is-idempotent-obj-Noncoherent-ω-Semiprecategory}} +if the equipped endomorphism `f : 𝒞₁ x x` satisfies the law `f ∘ f = f`, and is +again idempotent as a point of the hom-ω-semiprecategory. + +## Definitions + +### Idempotent points + +```agda +record + is-idempotent-point-Noncoherent-ω-Semiprecategory + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + (x : point-Globular-Type (globular-type-Noncoherent-ω-Semiprecategory 𝒞)) : + UU l2 + where + coinductive + field + is-idempotent-endo-Noncoherent-ω-Semiprecategory : + comp-hom-Noncoherent-ω-Semiprecategory 𝒞 + ( 1-cell-point-Globular-Type + ( globular-type-Noncoherent-ω-Semiprecategory 𝒞) + ( x)) + ( 1-cell-point-Globular-Type + ( globular-type-Noncoherent-ω-Semiprecategory 𝒞) + ( x)) = + 1-cell-point-Globular-Type + ( globular-type-Noncoherent-ω-Semiprecategory 𝒞) + ( x) + + is-idempotent-hom-point-point-Noncoherent-ω-Semiprecategory : + is-idempotent-point-Noncoherent-ω-Semiprecategory + ( hom-noncoherent-ω-semiprecategory-Noncoherent-ω-Semiprecategory 𝒞 + ( 0-cell-point-Globular-Type x) + ( 0-cell-point-Globular-Type x)) + ( 1-cell-point-point-Globular-Type x) +``` diff --git a/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md index 009576ecb2..ae5d7bb7b7 100644 --- a/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md +++ b/src/wild-category-theory/universal-property-isomorphisms-noncoherent-omega-semiprecategories.lagda.md @@ -31,15 +31,15 @@ open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semi Given a morphism `f : 𝒞₁ x y` in a [noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) -with the structure of a [point](globular-types.points-globular-types.md), `f` -satisfies the +with the structure of a [point](globular-types.points-globular-types.md), then +`f` satisfies the {{#concept "universal property of isomorphisms" Disambiguation="in a noncoherent ω-semiprecategory"}} if [precomposition](wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories.md) and [postcomposition](wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories.md) -of by `f` is a [globular equivalence](globular-types.globular-equivalences.md) -for every object `z`. +by `f` is a [globular equivalence](globular-types.globular-equivalences.md) for +every object `z`. ## Definitions From 89d88535ae974a14ad2e8ea497ec2ab4dae2df2c Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Sun, 1 Dec 2024 23:05:35 +0100 Subject: [PATCH 82/87] wip homotopies of globular maps --- .../homotopies-globular-maps.lagda.md | 181 ++++++++++++++++++ ...ncoherent-omega-semiprecategories.lagda.md | 93 +++++++++ 2 files changed, 274 insertions(+) create mode 100644 src/globular-types/homotopies-globular-maps.lagda.md create mode 100644 src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md diff --git a/src/globular-types/homotopies-globular-maps.lagda.md b/src/globular-types/homotopies-globular-maps.lagda.md new file mode 100644 index 0000000000..1294e8f19f --- /dev/null +++ b/src/globular-types/homotopies-globular-maps.lagda.md @@ -0,0 +1,181 @@ +# Homotopies of maps between globular types + +```agda +{-# OPTIONS --guardedness #-} + +module globular-types.homotopies-globular-maps where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.action-on-identifications-functions +open import foundation.function-types +open import foundation.identity-types +open import foundation.whiskering-homotopies-composition +open import foundation.homotopies +open import foundation.transport-along-pairs-of-identifications +open import foundation.dependent-identifications +open import foundation.universe-levels + +open import globular-types.globular-types +open import globular-types.globular-maps +open import globular-types.globular-equivalences +``` + +
+ +## Idea + +A +{{#concept "homotopy" Disambiguation="of globular maps of globular types" Agda=htpy-globular-map}} +`f ~ g` is a homotopy `H₀ : f₀ ~ g₀` together with a family of equivalences + +```text + A₁ x y + / \ + / \ + / \ + ∨ ∨ + B₁ (f₀ x) (f₀ y) ---> B₁ (g₀ x) (g₀ y) + tr-htpy B H +``` + +## Definitions + +### Homotopies of maps between globular types + +```agda +tr-pair-globular-map : + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + (C : A → B → Globular-Type l3 l4) → + {x y : A} (p : x = y) {x' : B} {y' : B} (q : x' = y') → + globular-map (C x x') (C y y') +tr-pair-globular-map C {x} refl {x'} refl = id-globular-map (C x x') + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + (C : A → B → Globular-Type l3 l4) + where + + compute-0-cell-tr-pair-globular-map : + {x y : A} (p : x = y) {x' : B} {y' : B} (q : x' = y') → + tr-pair' (λ u v → 0-cell-Globular-Type (C u v)) p q ~ + 0-cell-globular-map (tr-pair-globular-map C p q) + compute-0-cell-tr-pair-globular-map refl refl = refl-htpy + +record + htpy-globular-map + {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (f g : globular-map A B) : + UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) + where + coinductive + field + 0-cell-htpy-globular-map : + 0-cell-globular-map f ~ 0-cell-globular-map g + + 1-cell-htpy-globular-map-htpy-globular-map : + {x y : 0-cell-Globular-Type A} → + htpy-globular-map + ( comp-globular-map + ( tr-pair-globular-map + ( 1-cell-globular-type-Globular-Type B) + ( 0-cell-htpy-globular-map x) + ( 0-cell-htpy-globular-map y)) + ( 1-cell-globular-map-globular-map f {x} {y})) + ( 1-cell-globular-map-globular-map g {x} {y}) + +open htpy-globular-map public + +module _ + {l1 l2 l3 l4 : Level} + {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} + (f g : globular-map A B) + where + + 1-cell-htpy-globular-map : + (H : htpy-globular-map f g) → + {x y : 0-cell-Globular-Type A} → + tr-pair' + ( 1-cell-Globular-Type B) + ( 0-cell-htpy-globular-map H x) + ( 0-cell-htpy-globular-map H y) ∘ + 1-cell-globular-map f {x} {y} ~ + 1-cell-globular-map g {x} {y} + 1-cell-htpy-globular-map H {x} {y} = + ( ( compute-0-cell-tr-pair-globular-map + ( 1-cell-globular-type-Globular-Type B) + ( 0-cell-htpy-globular-map H x) + ( 0-cell-htpy-globular-map H y)) ·r + ( 0-cell-globular-map (1-cell-globular-map-globular-map f))) ∙h + ( 0-cell-htpy-globular-map (1-cell-htpy-globular-map-htpy-globular-map H)) +``` + +### The concatenation of homotopies of globular maps + +```agda +-- concat-htpy-globular-map : +-- {l1 l2 l3 l4 : Level} +-- {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} +-- {f g h : globular-map A B} → +-- htpy-globular-map f g → +-- htpy-globular-map g h → +-- htpy-globular-map f h +-- 0-cell-htpy-globular-map (concat-htpy-globular-map H K) = +-- 0-cell-htpy-globular-map H ∙h +-- 0-cell-htpy-globular-map K +-- 1-cell-htpy-globular-map-htpy-globular-map (concat-htpy-globular-map H K) = +-- concat-htpy-globular-map +-- {! !} +-- ( concat-htpy-globular-map +-- {! 1-cell-htpy-globular-map-htpy-globular-map H !} +-- ( 1-cell-htpy-globular-map-htpy-globular-map K)) +``` + +### The right unit law of globular map composition + +```agda +-- left-unit-law-htpy-globular-map : +-- {l1 l2 l3 l4 : Level} +-- {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} (f : globular-map A B) → +-- htpy-globular-map (comp-globular-map (id-globular-map B) f) f +-- 0-cell-htpy-globular-map (left-unit-law-htpy-globular-map f) = refl-htpy +-- 1-cell-htpy-globular-map-htpy-globular-map (left-unit-law-htpy-globular-map f) = +-- concat-htpy-globular-map +-- {! !} +-- ( left-unit-law-htpy-globular-map (1-cell-globular-map-globular-map f)) +``` + +### The reflexivity homotopy on a globular map + +```text +refl-htpy-globular-map : + {l1 l2 l3 l4 : Level} {A : Globular-Type l1 l2} {B : Globular-Type l3 l4} → + (f : globular-map A B) → htpy-globular-map f f +0-cell-htpy-globular-map (refl-htpy-globular-map f) = refl-htpy +1-cell-htpy-globular-map-htpy-globular-map (refl-htpy-globular-map f) = + left-unit-law-htpy-globular-map (1-cell-globular-map-globular-map f) +``` + +### Composition of maps of globular types + +```text +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} → + globular-map B C → globular-map A B → globular-map A C +comp-globular-map g f = + λ where + .0-cell-globular-map → + 0-cell-globular-map g ∘ 0-cell-globular-map f + .1-cell-globular-map-globular-map → + comp-globular-map + ( 1-cell-globular-map-globular-map g) + ( 1-cell-globular-map-globular-map f) +``` diff --git a/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md new file mode 100644 index 0000000000..f34d76ed28 --- /dev/null +++ b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md @@ -0,0 +1,93 @@ +# Neutral morphisms in noncoherent ω-semiprecategories + +```agda +{-# OPTIONS --guardedness --allow-unsolved-metas #-} + +module wild-category-theory.neutral-morphisms-noncoherent-omega-semiprecategories 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 globular-types.binary-globular-maps +open import globular-types.composition-structure-globular-types +open import globular-types.globular-equivalences +open import globular-types.globular-types +open import globular-types.globular-maps +open import globular-types.homotopies-globular-maps +open import globular-types.points-globular-types + +open import wild-category-theory.maps-noncoherent-omega-semiprecategories +open import wild-category-theory.noncoherent-omega-semiprecategories +open import wild-category-theory.postcomposition-morphisms-noncoherent-omega-semiprecategories +open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semiprecategories +``` + +
+ +## Idea + +We say an endomorphism `f : 𝒞₁ x y` in a +[noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) +`𝒞` is +{{#concept "neutral" Disambiguation="endomorphism in a noncoherent ω-semiprecategory" Agda=is-neutral-obj-Noncoherent-ω-Semiprecategory}} +if the precomposition and postcomposition maps are homotopic to identity maps. + +## Definitions + +### Right neutral points + +```agda +is-right-neutral-point-Noncoherent-ω-Semiprecategory : + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + (x : point-Globular-Type (globular-type-Noncoherent-ω-Semiprecategory 𝒞)) → + UU (l1 ⊔ l2) +is-right-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = + (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + htpy-globular-map + ( precomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 + ( 1-cell-point-point-Globular-Type x) + ( z)) + ( id-globular-map + ( hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 + ( 0-cell-point-Globular-Type x) + ( z))) +``` + +### Left neutral points + +```agda +is-left-neutral-point-Noncoherent-ω-Semiprecategory : + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + (x : point-Globular-Type (globular-type-Noncoherent-ω-Semiprecategory 𝒞)) → + UU (l1 ⊔ l2) +is-left-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = + (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → + htpy-globular-map + ( postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 + ( 1-cell-point-point-Globular-Type x) + ( z)) + ( id-globular-map + ( hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 + ( z) + ( 0-cell-point-Globular-Type x))) +``` + +### Right neutral points + +```agda +is-neutral-point-Noncoherent-ω-Semiprecategory : + {l1 l2 : Level} (𝒞 : Noncoherent-ω-Semiprecategory l1 l2) + (x : point-Globular-Type (globular-type-Noncoherent-ω-Semiprecategory 𝒞)) → + UU (l1 ⊔ l2) +is-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = + ( is-right-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x) × + ( is-left-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x) +``` + +## Properties From a96af863cebb14c4f117c7d18e774034b06bc00c Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Tue, 3 Dec 2024 18:47:39 +0100 Subject: [PATCH 83/87] type arithmetic standard pullbacks --- src/foundation-core/pullbacks.lagda.md | 1 + src/foundation/standard-pullbacks.lagda.md | 255 ------------ .../standard-ternary-pullbacks.lagda.md | 76 ++++ ...ype-arithmetic-standard-pullbacks.lagda.md | 380 ++++++++++++++++++ 4 files changed, 457 insertions(+), 255 deletions(-) create mode 100644 src/foundation/standard-ternary-pullbacks.lagda.md create mode 100644 src/foundation/type-arithmetic-standard-pullbacks.lagda.md diff --git a/src/foundation-core/pullbacks.lagda.md b/src/foundation-core/pullbacks.lagda.md index 9749065efc..332e6e96e2 100644 --- a/src/foundation-core/pullbacks.lagda.md +++ b/src/foundation-core/pullbacks.lagda.md @@ -15,6 +15,7 @@ open import foundation.functoriality-fibers-of-maps open import foundation.identity-types open import foundation.morphisms-arrows open import foundation.standard-pullbacks +open import foundation.type-arithmetic-standard-pullbacks open import foundation.universe-levels open import foundation-core.commuting-triangles-of-maps diff --git a/src/foundation/standard-pullbacks.lagda.md b/src/foundation/standard-pullbacks.lagda.md index bd7131a988..8f0db009ca 100644 --- a/src/foundation/standard-pullbacks.lagda.md +++ b/src/foundation/standard-pullbacks.lagda.md @@ -129,36 +129,6 @@ module _ pr2 (pr2 (gap c z)) = coherence-square-cone f g c z ``` -#### The standard ternary pullback - -Given two cospans with a shared vertex `B`: - -```text - f g h i - A ----> X <---- B ----> Y <---- C, -``` - -we call the standard limit of the diagram the -{{#concept "standard ternary pullback" Disambiguation="of types" Agda=standard-ternary-pullback}}. -It is defined as the sum - -```text - standard-ternary-pullback f g h i := - Σ (a : A) (b : B) (c : C), ((f a = g b) × (h b = i c)). -``` - -```agda -module _ - {l1 l2 l3 l4 l5 : Level} - {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} - (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) - where - - standard-ternary-pullback : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5) - standard-ternary-pullback = - Σ A (λ a → Σ B (λ b → Σ C (λ c → (f a = g b) × (h b = i c)))) -``` - ## Properties ### Characterization of the identity type of the standard pullback @@ -257,231 +227,6 @@ module _ pr2 (pr2 (htpy-cone-up-pullback-standard-pullback c)) = right-unit-htpy ``` -### Standard pullbacks are symmetric - -The standard pullback of `f : A -> X <- B : g` is equivalent to the standard -pullback of `g : B -> X <- A : f`. - -```agda -map-commutative-standard-pullback : - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} - (f : A → X) (g : B → X) → standard-pullback f g → standard-pullback g f -pr1 (map-commutative-standard-pullback f g x) = - horizontal-map-standard-pullback x -pr1 (pr2 (map-commutative-standard-pullback f g x)) = - vertical-map-standard-pullback x -pr2 (pr2 (map-commutative-standard-pullback f g x)) = - inv (coherence-square-standard-pullback x) - -inv-inv-map-commutative-standard-pullback : - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} - (f : A → X) (g : B → X) → - ( map-commutative-standard-pullback f g ∘ - map-commutative-standard-pullback g f) ~ id -inv-inv-map-commutative-standard-pullback f g x = - eq-pair-eq-fiber - ( eq-pair-eq-fiber - ( inv-inv (coherence-square-standard-pullback x))) - -abstract - is-equiv-map-commutative-standard-pullback : - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} - (f : A → X) (g : B → X) → is-equiv (map-commutative-standard-pullback f g) - is-equiv-map-commutative-standard-pullback f g = - is-equiv-is-invertible - ( map-commutative-standard-pullback g f) - ( inv-inv-map-commutative-standard-pullback f g) - ( inv-inv-map-commutative-standard-pullback g f) - -commutative-standard-pullback : - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} - (f : A → X) (g : B → X) → - standard-pullback f g ≃ standard-pullback g f -pr1 (commutative-standard-pullback f g) = - map-commutative-standard-pullback f g -pr2 (commutative-standard-pullback f g) = - is-equiv-map-commutative-standard-pullback f g -``` - -#### The gap map of the swapped cone computes as the underlying gap map followed by a swap - -```agda -triangle-map-commutative-standard-pullback : - {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {C : UU l4} - (f : A → X) (g : B → X) (c : cone f g C) → - gap g f (swap-cone f g c) ~ - map-commutative-standard-pullback f g ∘ gap f g c -triangle-map-commutative-standard-pullback f g c = refl-htpy -``` - -### Standard pullbacks are associative - -Consider two cospans with a shared vertex `B`: - -```text - f g h i - A ----> X <---- B ----> Y <---- C, -``` - -then we can construct their limit using standard pullbacks in two equivalent -ways. We can construct it by first forming the standard pullback of `f` and `g`, -and then forming the standard pullback of the resulting `h ∘ f'` and `i` - -```text - (A ×_X B) ×_Y C ---------------------> C - | ⌟ | - | | i - ∨ ∨ - A ×_X B ---------> B ------------> Y - | ⌟ f' | h - | | g - ∨ ∨ - A ------------> X, - f -``` - -or we can first form the pullback of `h` and `i`, and then form the pullback of -`f` and the resulting `g ∘ i'`: - -```text - A ×_X (B ×_Y C) --> B ×_Y C ---------> C - | ⌟ | ⌟ | - | | i' | i - | ∨ ∨ - | B ------------> Y - | | h - | | g - ∨ ∨ - A ------------> X. - f -``` - -We show that both of these constructions are equivalent by showing they are -equivalent to the standard ternary pullback. - -**Note:** Associativity with respect to ternary cospans - -```text - B - | - | g - ∨ - A ------> X <------ C - f h -``` - -is a special case of what we consider here that is recovered by using - -```text - f g g h - A ----> X <---- B ----> X <---- C. -``` - -- See also the following relevant stack exchange question: - [Associativity of pullbacks](https://math.stackexchange.com/questions/2046276/associativity-of-pullbacks). - -#### Computing the left associated iterated standard pullback - -```agda -module _ - {l1 l2 l3 l4 l5 : Level} - {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} - (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) - where - - map-left-associative-standard-pullback : - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i → - standard-ternary-pullback f g h i - map-left-associative-standard-pullback ((a , b , p) , c , q) = - ( a , b , c , p , q) - - map-inv-left-associative-standard-pullback : - standard-ternary-pullback f g h i → - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i - map-inv-left-associative-standard-pullback (a , b , c , p , q) = - ( ( a , b , p) , c , q) - - is-equiv-map-left-associative-standard-pullback : - is-equiv map-left-associative-standard-pullback - is-equiv-map-left-associative-standard-pullback = - is-equiv-is-invertible - ( map-inv-left-associative-standard-pullback) - ( refl-htpy) - ( refl-htpy) - - compute-left-associative-standard-pullback : - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ - standard-ternary-pullback f g h i - compute-left-associative-standard-pullback = - ( map-left-associative-standard-pullback , - is-equiv-map-left-associative-standard-pullback) -``` - -#### Computing the right associated iterated dependent pullback - -```agda -module _ - {l1 l2 l3 l4 l5 : Level} - {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} - (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) - where - - map-right-associative-standard-pullback : - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) → - standard-ternary-pullback f g h i - map-right-associative-standard-pullback (a , (b , c , p) , q) = - ( a , b , c , q , p) - - map-inv-right-associative-standard-pullback : - standard-ternary-pullback f g h i → - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) - map-inv-right-associative-standard-pullback (a , b , c , p , q) = - ( a , (b , c , q) , p) - - is-equiv-map-right-associative-standard-pullback : - is-equiv map-right-associative-standard-pullback - is-equiv-map-right-associative-standard-pullback = - is-equiv-is-invertible - ( map-inv-right-associative-standard-pullback) - ( refl-htpy) - ( refl-htpy) - - compute-right-associative-standard-pullback : - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) ≃ - standard-ternary-pullback f g h i - compute-right-associative-standard-pullback = - ( map-right-associative-standard-pullback , - is-equiv-map-right-associative-standard-pullback) -``` - -#### Standard pullbacks are associative - -```agda -module _ - {l1 l2 l3 l4 l5 : Level} - {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} - (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) - where - - associative-standard-pullback : - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) - associative-standard-pullback = - ( inv-equiv (compute-right-associative-standard-pullback f g h i)) ∘e - ( compute-left-associative-standard-pullback f g h i) - - map-associative-standard-pullback : - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i → - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) - map-associative-standard-pullback = map-equiv associative-standard-pullback - - map-inv-associative-standard-pullback : - standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) → - standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i - map-inv-associative-standard-pullback = - map-inv-equiv associative-standard-pullback -``` - ### Pullbacks can be "folded" Given a standard pullback square diff --git a/src/foundation/standard-ternary-pullbacks.lagda.md b/src/foundation/standard-ternary-pullbacks.lagda.md new file mode 100644 index 0000000000..6ca4fd1596 --- /dev/null +++ b/src/foundation/standard-ternary-pullbacks.lagda.md @@ -0,0 +1,76 @@ +# Standard ternary pullbacks + +```agda +module foundation.standard-ternary-pullbacks where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-functions +open import foundation.cones-over-cospan-diagrams +open import foundation.dependent-pair-types +open import foundation.equality-cartesian-product-types +open import foundation.functoriality-cartesian-product-types +open import foundation.identity-types +open import foundation.structure-identity-principle +open import foundation.universe-levels + +open import foundation-core.cartesian-product-types +open import foundation-core.commuting-squares-of-maps +open import foundation-core.diagonal-maps-cartesian-products-of-types +open import foundation-core.equality-dependent-pair-types +open import foundation-core.equivalences +open import foundation-core.function-types +open import foundation-core.functoriality-dependent-pair-types +open import foundation-core.homotopies +open import foundation-core.retractions +open import foundation-core.sections +open import foundation-core.type-theoretic-principle-of-choice +open import foundation-core.universal-property-pullbacks +open import foundation-core.whiskering-identifications-concatenation +``` + +
+ +## Idea + +Given two [cospan of types](foundation.cospans.md) with a shared vertex `B`: + +```text + f g h i + A ----> X <---- B ----> Y <---- C, +``` + +we call the standard limit of the diagram the +{{#concept "standard ternary pullback" Disambiguation="of types" Agda=standard-ternary-pullback}}. +It is defined as the [sum](foundation.dependent-pair-types.md) + +```text + standard-ternary-pullback f g h i := + Σ (a : A) (b : B) (c : C), ((f a = g b) × (h b = i c)). +``` + +## Definitions + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} + (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) + where + + standard-ternary-pullback : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4 ⊔ l5) + standard-ternary-pullback = + Σ A (λ a → Σ B (λ b → Σ C (λ c → (f a = g b) × (h b = i c)))) +``` + +## See also + +- [Type arithmetic with standard pullbacks](foundation.type-arithmetic-standard-pullbacks.md) + +## Table of files about pullbacks + +The following table lists files that are about pullbacks as a general concept. + +{{#include tables/pullbacks.md}} diff --git a/src/foundation/type-arithmetic-standard-pullbacks.lagda.md b/src/foundation/type-arithmetic-standard-pullbacks.lagda.md new file mode 100644 index 0000000000..df2f996ac4 --- /dev/null +++ b/src/foundation/type-arithmetic-standard-pullbacks.lagda.md @@ -0,0 +1,380 @@ +# Type arithmetic with standard pullbacks + +```agda +module foundation.type-arithmetic-standard-pullbacks where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equality-dependent-pair-types +open import foundation.type-arithmetic-dependent-pair-types +open import foundation.standard-pullbacks +open import foundation.cones-over-cospan-diagrams +open import foundation.standard-ternary-pullbacks +open import foundation.universe-levels + +open import foundation-core.cartesian-product-types +open import foundation-core.contractible-types +open import foundation-core.equivalences +open import foundation-core.function-types +open import foundation-core.homotopies +open import foundation-core.sections +open import foundation-core.retractions +open import foundation-core.identity-types +open import foundation-core.propositions +``` + +
+ +## Idea + +We prove laws for the manipulation of +[standard pullbacks](foundation.standard-pullbacks.md) with respect to +themselves. + +## Laws + +### Standard pullbacks are associative + +Consider two cospans with a shared vertex `B`: + +```text + f g h i + A ----> X <---- B ----> Y <---- C, +``` + +then we can construct their limit using standard pullbacks in two equivalent +ways. We can construct it by first forming the standard pullback of `f` and `g`, +and then forming the standard pullback of the resulting `h ∘ f'` and `i` + +```text + (A ×_X B) ×_Y C ---------------------> C + | ⌟ | + | | i + ∨ ∨ + A ×_X B ---------> B ------------> Y + | ⌟ f' | h + | | g + ∨ ∨ + A ------------> X, + f +``` + +or we can first form the pullback of `h` and `i`, and then form the pullback of +`f` and the resulting `g ∘ i'`: + +```text + A ×_X (B ×_Y C) --> B ×_Y C ---------> C + | ⌟ | ⌟ | + | | i' | i + | ∨ ∨ + | B ------------> Y + | | h + | | g + ∨ ∨ + A ------------> X. + f +``` + +We show that both of these constructions are equivalent by showing they are +equivalent to the standard ternary pullback. + +**Note:** Associativity with respect to ternary cospans + +```text + B + | + | g + ∨ + A ------> X <------ C + f h +``` + +is a special case of what we consider here that is recovered by using + +```text + f g g h + A ----> X <---- B ----> X <---- C. +``` + +- See also the following relevant stack exchange question: + [Associativity of pullbacks](https://math.stackexchange.com/questions/2046276/associativity-of-pullbacks). + +#### Computing the left associated iterated standard pullback + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} + (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) + where + + map-left-associative-standard-pullback : + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i → + standard-ternary-pullback f g h i + map-left-associative-standard-pullback ((a , b , p) , c , q) = + ( a , b , c , p , q) + + map-inv-left-associative-standard-pullback : + standard-ternary-pullback f g h i → + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i + map-inv-left-associative-standard-pullback (a , b , c , p , q) = + ( ( a , b , p) , c , q) + + is-equiv-map-left-associative-standard-pullback : + is-equiv map-left-associative-standard-pullback + is-equiv-map-left-associative-standard-pullback = + is-equiv-is-invertible + ( map-inv-left-associative-standard-pullback) + ( refl-htpy) + ( refl-htpy) + + compute-left-associative-standard-pullback : + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ + standard-ternary-pullback f g h i + compute-left-associative-standard-pullback = + ( map-left-associative-standard-pullback , + is-equiv-map-left-associative-standard-pullback) +``` + +#### Computing the right associated iterated dependent pullback + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} + (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) + where + + map-right-associative-standard-pullback : + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) → + standard-ternary-pullback f g h i + map-right-associative-standard-pullback (a , (b , c , p) , q) = + ( a , b , c , q , p) + + map-inv-right-associative-standard-pullback : + standard-ternary-pullback f g h i → + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) + map-inv-right-associative-standard-pullback (a , b , c , p , q) = + ( a , (b , c , q) , p) + + is-equiv-map-right-associative-standard-pullback : + is-equiv map-right-associative-standard-pullback + is-equiv-map-right-associative-standard-pullback = + is-equiv-is-invertible + ( map-inv-right-associative-standard-pullback) + ( refl-htpy) + ( refl-htpy) + + compute-right-associative-standard-pullback : + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) ≃ + standard-ternary-pullback f g h i + compute-right-associative-standard-pullback = + ( map-right-associative-standard-pullback , + is-equiv-map-right-associative-standard-pullback) +``` + +#### Standard pullbacks are associative + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {X : UU l1} {Y : UU l2} {A : UU l3} {B : UU l4} {C : UU l5} + (f : A → X) (g : B → X) (h : B → Y) (i : C → Y) + where + + associative-standard-pullback : + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) + associative-standard-pullback = + ( inv-equiv (compute-right-associative-standard-pullback f g h i)) ∘e + ( compute-left-associative-standard-pullback f g h i) + + map-associative-standard-pullback : + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i → + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) + map-associative-standard-pullback = map-equiv associative-standard-pullback + + map-inv-associative-standard-pullback : + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) → + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i + map-inv-associative-standard-pullback = + map-inv-equiv associative-standard-pullback +``` + +### Unit laws for standard pullbacks + +Pulling back along the identity map + +```agda +module _ + {l1 l2 : Level} {X : UU l1} {A : UU l2} (f : A → X) + where + + map-left-unit-law-standard-pullback : + standard-pullback id f → A + map-left-unit-law-standard-pullback (x , a , p) = a + + map-inv-left-unit-law-standard-pullback : + A → standard-pullback id f + map-inv-left-unit-law-standard-pullback a = f a , a , refl + + is-section-map-inv-left-unit-law-standard-pullback : + is-section + map-left-unit-law-standard-pullback + map-inv-left-unit-law-standard-pullback + is-section-map-inv-left-unit-law-standard-pullback = refl-htpy + + is-retraction-map-inv-left-unit-law-standard-pullback : + is-retraction + map-left-unit-law-standard-pullback + map-inv-left-unit-law-standard-pullback + is-retraction-map-inv-left-unit-law-standard-pullback (.(f a) , a , refl) = + refl + + is-equiv-map-left-unit-law-standard-pullback : + is-equiv map-left-unit-law-standard-pullback + is-equiv-map-left-unit-law-standard-pullback = + is-equiv-is-invertible + map-inv-left-unit-law-standard-pullback + is-section-map-inv-left-unit-law-standard-pullback + is-retraction-map-inv-left-unit-law-standard-pullback + + is-equiv-map-inv-left-unit-law-standard-pullback : + is-equiv map-inv-left-unit-law-standard-pullback + is-equiv-map-inv-left-unit-law-standard-pullback = + is-equiv-is-invertible + map-left-unit-law-standard-pullback + is-retraction-map-inv-left-unit-law-standard-pullback + is-section-map-inv-left-unit-law-standard-pullback + + left-unit-law-standard-pullback : + standard-pullback id f ≃ A + left-unit-law-standard-pullback = + map-left-unit-law-standard-pullback , + is-equiv-map-left-unit-law-standard-pullback + + inv-left-unit-law-standard-pullback : + A ≃ standard-pullback id f + inv-left-unit-law-standard-pullback = + map-inv-left-unit-law-standard-pullback , + is-equiv-map-inv-left-unit-law-standard-pullback +``` + +### Unit laws for standard pullbacks + +Pulling back along the identity map is the identity operation. + +```agda +module _ + {l1 l2 : Level} {X : UU l1} {A : UU l2} (f : A → X) + where + + map-right-unit-law-standard-pullback : + standard-pullback f id → A + map-right-unit-law-standard-pullback (a , x , p) = a + + map-inv-right-unit-law-standard-pullback : + A → standard-pullback f id + map-inv-right-unit-law-standard-pullback a = a , f a , refl + + is-section-map-inv-right-unit-law-standard-pullback : + is-section + map-right-unit-law-standard-pullback + map-inv-right-unit-law-standard-pullback + is-section-map-inv-right-unit-law-standard-pullback = refl-htpy + + is-retraction-map-inv-right-unit-law-standard-pullback : + is-retraction + map-right-unit-law-standard-pullback + map-inv-right-unit-law-standard-pullback + is-retraction-map-inv-right-unit-law-standard-pullback (a , .(f a) , refl) = + refl + + is-equiv-map-right-unit-law-standard-pullback : + is-equiv map-right-unit-law-standard-pullback + is-equiv-map-right-unit-law-standard-pullback = + is-equiv-is-invertible + map-inv-right-unit-law-standard-pullback + is-section-map-inv-right-unit-law-standard-pullback + is-retraction-map-inv-right-unit-law-standard-pullback + + is-equiv-map-inv-right-unit-law-standard-pullback : + is-equiv map-inv-right-unit-law-standard-pullback + is-equiv-map-inv-right-unit-law-standard-pullback = + is-equiv-is-invertible + map-right-unit-law-standard-pullback + is-retraction-map-inv-right-unit-law-standard-pullback + is-section-map-inv-right-unit-law-standard-pullback + + right-unit-law-standard-pullback : + standard-pullback f id ≃ A + right-unit-law-standard-pullback = + map-right-unit-law-standard-pullback , + is-equiv-map-right-unit-law-standard-pullback + + inv-right-unit-law-standard-pullback : + A ≃ standard-pullback f id + inv-right-unit-law-standard-pullback = + map-inv-right-unit-law-standard-pullback , + is-equiv-map-inv-right-unit-law-standard-pullback +``` + +### Standard pullbacks are symmetric + +The standard pullback of `f : A -> X <- B : g` is equivalent to the standard +pullback of `g : B -> X <- A : f`. + +```agda +map-commutative-standard-pullback : + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} + (f : A → X) (g : B → X) → standard-pullback f g → standard-pullback g f +pr1 (map-commutative-standard-pullback f g x) = + horizontal-map-standard-pullback x +pr1 (pr2 (map-commutative-standard-pullback f g x)) = + vertical-map-standard-pullback x +pr2 (pr2 (map-commutative-standard-pullback f g x)) = + inv (coherence-square-standard-pullback x) + +inv-inv-map-commutative-standard-pullback : + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} + (f : A → X) (g : B → X) → + ( map-commutative-standard-pullback f g ∘ + map-commutative-standard-pullback g f) ~ id +inv-inv-map-commutative-standard-pullback f g x = + eq-pair-eq-fiber + ( eq-pair-eq-fiber + ( inv-inv (coherence-square-standard-pullback x))) + +abstract + is-equiv-map-commutative-standard-pullback : + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} + (f : A → X) (g : B → X) → is-equiv (map-commutative-standard-pullback f g) + is-equiv-map-commutative-standard-pullback f g = + is-equiv-is-invertible + ( map-commutative-standard-pullback g f) + ( inv-inv-map-commutative-standard-pullback f g) + ( inv-inv-map-commutative-standard-pullback g f) + +commutative-standard-pullback : + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} + (f : A → X) (g : B → X) → + standard-pullback f g ≃ standard-pullback g f +pr1 (commutative-standard-pullback f g) = + map-commutative-standard-pullback f g +pr2 (commutative-standard-pullback f g) = + is-equiv-map-commutative-standard-pullback f g +``` + +#### The gap map of the swapped cone computes as the underlying gap map followed by a swap + +```agda +triangle-map-commutative-standard-pullback : + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {C : UU l4} + (f : A → X) (g : B → X) (c : cone f g C) → + gap g f (swap-cone f g c) ~ + map-commutative-standard-pullback f g ∘ gap f g c +triangle-map-commutative-standard-pullback f g c = refl-htpy +``` From 9008f71a6826845e5c695f4885a2e09682235d88 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Tue, 3 Dec 2024 18:48:08 +0100 Subject: [PATCH 84/87] pre-commit --- src/foundation.lagda.md | 1 + src/globular-types.lagda.md | 1 + src/globular-types/homotopies-globular-maps.lagda.md | 12 ++++++------ src/wild-category-theory.lagda.md | 1 + ...isms-noncoherent-omega-semiprecategories.lagda.md | 10 +++++----- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index 78a7642b23..73a8c72970 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -76,6 +76,7 @@ open import foundation.complements public open import foundation.complements-subtypes public open import foundation.composite-maps-in-inverse-sequential-diagrams public open import foundation.composition-algebra public +open import foundation.composition-spans public open import foundation.computational-identity-types public open import foundation.cones-over-cospan-diagrams public open import foundation.cones-over-inverse-sequential-diagrams public diff --git a/src/globular-types.lagda.md b/src/globular-types.lagda.md index 260995b614..89ac4160a3 100644 --- a/src/globular-types.lagda.md +++ b/src/globular-types.lagda.md @@ -31,6 +31,7 @@ open import globular-types.fibers-globular-maps public open import globular-types.globular-equivalences public open import globular-types.globular-maps public open import globular-types.globular-types public +open import globular-types.homotopies-globular-maps public open import globular-types.large-colax-reflexive-globular-maps public open import globular-types.large-colax-transitive-globular-maps public open import globular-types.large-globular-maps public diff --git a/src/globular-types/homotopies-globular-maps.lagda.md b/src/globular-types/homotopies-globular-maps.lagda.md index 1294e8f19f..be9d5d563c 100644 --- a/src/globular-types/homotopies-globular-maps.lagda.md +++ b/src/globular-types/homotopies-globular-maps.lagda.md @@ -9,19 +9,19 @@ module globular-types.homotopies-globular-maps where
Imports ```agda -open import foundation.dependent-pair-types open import foundation.action-on-identifications-functions +open import foundation.dependent-identifications +open import foundation.dependent-pair-types open import foundation.function-types -open import foundation.identity-types -open import foundation.whiskering-homotopies-composition open import foundation.homotopies +open import foundation.identity-types open import foundation.transport-along-pairs-of-identifications -open import foundation.dependent-identifications open import foundation.universe-levels +open import foundation.whiskering-homotopies-composition -open import globular-types.globular-types -open import globular-types.globular-maps open import globular-types.globular-equivalences +open import globular-types.globular-maps +open import globular-types.globular-types ```
diff --git a/src/wild-category-theory.lagda.md b/src/wild-category-theory.lagda.md index bdf3e9d0f3..501bb2b25e 100644 --- a/src/wild-category-theory.lagda.md +++ b/src/wild-category-theory.lagda.md @@ -21,6 +21,7 @@ open import wild-category-theory.isomorphisms-in-noncoherent-wild-higher-precate open import wild-category-theory.maps-noncoherent-large-wild-higher-precategories public open import wild-category-theory.maps-noncoherent-omega-semiprecategories public open import wild-category-theory.maps-noncoherent-wild-higher-precategories public +open import wild-category-theory.neutral-morphisms-noncoherent-omega-semiprecategories public open import wild-category-theory.noncoherent-large-wild-higher-precategories public open import wild-category-theory.noncoherent-omega-semiprecategories public open import wild-category-theory.noncoherent-wild-higher-precategories public diff --git a/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md index f34d76ed28..1be340818a 100644 --- a/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md +++ b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md @@ -17,8 +17,8 @@ open import foundation.universe-levels open import globular-types.binary-globular-maps open import globular-types.composition-structure-globular-types open import globular-types.globular-equivalences -open import globular-types.globular-types open import globular-types.globular-maps +open import globular-types.globular-types open import globular-types.homotopies-globular-maps open import globular-types.points-globular-types @@ -50,10 +50,10 @@ is-right-neutral-point-Noncoherent-ω-Semiprecategory : is-right-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → htpy-globular-map - ( precomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 + ( precomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 ( 1-cell-point-point-Globular-Type x) ( z)) - ( id-globular-map + ( id-globular-map ( hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 ( 0-cell-point-Globular-Type x) ( z))) @@ -69,10 +69,10 @@ is-left-neutral-point-Noncoherent-ω-Semiprecategory : is-left-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = (z : obj-Noncoherent-ω-Semiprecategory 𝒞) → htpy-globular-map - ( postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 + ( postcomp-globular-map-hom-Noncoherent-ω-Semiprecategory 𝒞 ( 1-cell-point-point-Globular-Type x) ( z)) - ( id-globular-map + ( id-globular-map ( hom-globular-type-Noncoherent-ω-Semiprecategory 𝒞 ( z) ( 0-cell-point-Globular-Type x))) From 005b2f4b9ad15839f7317df24056d6e1f4bbbe41 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Tue, 3 Dec 2024 19:12:12 +0100 Subject: [PATCH 85/87] composition of spans --- src/foundation.lagda.md | 2 + src/foundation/composition-spans.lagda.md | 163 ++++++++++++++++++ src/foundation/operations-spans.lagda.md | 5 + ...ype-arithmetic-standard-pullbacks.lagda.md | 47 ++++- 4 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 src/foundation/composition-spans.lagda.md diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md index 73a8c72970..df1b40c78a 100644 --- a/src/foundation.lagda.md +++ b/src/foundation.lagda.md @@ -381,6 +381,7 @@ open import foundation.split-idempotent-maps public open import foundation.split-surjective-maps public open import foundation.standard-apartness-relations public open import foundation.standard-pullbacks public +open import foundation.standard-ternary-pullbacks public open import foundation.strict-symmetrization-binary-relations public open import foundation.strictly-involutive-identity-types public open import foundation.strictly-right-unital-concatenation-identifications public @@ -433,6 +434,7 @@ open import foundation.type-arithmetic-coproduct-types public open import foundation.type-arithmetic-dependent-function-types public open import foundation.type-arithmetic-dependent-pair-types public open import foundation.type-arithmetic-empty-type public +open import foundation.type-arithmetic-standard-pullbacks public open import foundation.type-arithmetic-unit-type public open import foundation.type-duality public open import foundation.type-theoretic-principle-of-choice public diff --git a/src/foundation/composition-spans.lagda.md b/src/foundation/composition-spans.lagda.md new file mode 100644 index 0000000000..2611cdf5b1 --- /dev/null +++ b/src/foundation/composition-spans.lagda.md @@ -0,0 +1,163 @@ +# Composition of spans + +```agda +module foundation.composition-spans where +``` + +
Imports + +```agda +open import foundation.commuting-triangles-of-maps +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.equivalences-arrows +open import foundation.equivalences-spans +open import foundation.homotopies +open import foundation.identity-types +open import foundation.morphisms-arrows +open import foundation.morphisms-spans +open import foundation.pullbacks +open import foundation.spans +open import foundation.standard-pullbacks +open import foundation.type-arithmetic-standard-pullbacks +open import foundation.universe-levels + +open import foundation-core.function-types +``` + +
+ +## Idea + +Given two [spans](foundation.spans.md) `F` and `G` such that the source of `G` +is the target of `F` + +```text + F G + + A <----- S -----> B <----- T -----> C, +``` + +then we may +{{#concept "compose" Disambiguation="spans of types" Agda=comp-span}} the two +spans by forming the [pullback](foundation.standard-pullbacks.md) of the middle +[cospan diagram](foundation.cospan-diagrams.md) + +```text + ∙ ------> T ------> C + | ⌟ | + | | G + ∨ ∨ + S ------> B + | + | F + ∨ + A +``` + +giving us a span `G ∘ F` from `A` to `C`. This operation is unital and +associative. + +## Definitions + +### Composition of spans + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + (G : span l4 B C) (F : span l5 A B) + where + + spanning-type-comp-span : UU (l2 ⊔ l4 ⊔ l5) + spanning-type-comp-span = + standard-pullback (right-map-span F) (left-map-span G) + + left-map-comp-span : spanning-type-comp-span → A + left-map-comp-span = left-map-span F ∘ vertical-map-standard-pullback + + right-map-comp-span : spanning-type-comp-span → C + right-map-comp-span = right-map-span G ∘ horizontal-map-standard-pullback + + comp-span : span (l2 ⊔ l4 ⊔ l5) A C + comp-span = spanning-type-comp-span , left-map-comp-span , right-map-comp-span +``` + +## Properties + +### Associativity of composition of spans + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (H : span l5 C D) (G : span l6 B C) (F : span l7 A B) + where + + essentially-associative-spanning-type-comp-span : + spanning-type-comp-span (comp-span H G) F ≃ + spanning-type-comp-span H (comp-span G F) + essentially-associative-spanning-type-comp-span = + inv-associative-standard-pullback + ( right-map-span F) + ( left-map-span G) + ( right-map-span G) + ( left-map-span H) + + essentially-associative-comp-span : + equiv-span (comp-span (comp-span H G) F) (comp-span H (comp-span G F)) + essentially-associative-comp-span = + ( essentially-associative-spanning-type-comp-span , refl-htpy , refl-htpy) + + associative-comp-span : + comp-span (comp-span H G) F = comp-span H (comp-span G F) + associative-comp-span = + eq-equiv-span + ( comp-span (comp-span H G) F) + ( comp-span H (comp-span G F)) + ( essentially-associative-comp-span) +``` + +### The left unit law for composition of spans + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (F : span l3 A B) + where + + left-unit-law-comp-span' : + equiv-span F (comp-span id-span F) + left-unit-law-comp-span' = + inv-right-unit-law-standard-pullback (right-map-span F) , + refl-htpy , + refl-htpy + + left-unit-law-comp-span : + equiv-span (comp-span id-span F) F + left-unit-law-comp-span = + right-unit-law-standard-pullback (right-map-span F) , + refl-htpy , + inv-htpy coherence-square-standard-pullback +``` + +### The right unit law for composition of spans + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (F : span l3 A B) + where + + right-unit-law-comp-span' : + equiv-span F (comp-span F id-span) + right-unit-law-comp-span' = + inv-left-unit-law-standard-pullback (left-map-span F) , + refl-htpy , + refl-htpy + + right-unit-law-comp-span : + equiv-span (comp-span F id-span) F + right-unit-law-comp-span = + left-unit-law-standard-pullback (left-map-span F) , + coherence-square-standard-pullback , + refl-htpy +``` diff --git a/src/foundation/operations-spans.lagda.md b/src/foundation/operations-spans.lagda.md index 9037d78969..6562513941 100644 --- a/src/foundation/operations-spans.lagda.md +++ b/src/foundation/operations-spans.lagda.md @@ -138,3 +138,8 @@ module _ pr2 (pr2 right-concat-equiv-arrow-span) = right-map-right-concat-equiv-arrow-span ``` + +## See also + +- [Composition of spans](foundation.composition-spans.md) +- [Opposite spans](foundation.opposite-spans.md) diff --git a/src/foundation/type-arithmetic-standard-pullbacks.lagda.md b/src/foundation/type-arithmetic-standard-pullbacks.lagda.md index df2f996ac4..09335074fa 100644 --- a/src/foundation/type-arithmetic-standard-pullbacks.lagda.md +++ b/src/foundation/type-arithmetic-standard-pullbacks.lagda.md @@ -7,12 +7,12 @@ module foundation.type-arithmetic-standard-pullbacks where
Imports ```agda +open import foundation.cones-over-cospan-diagrams open import foundation.dependent-pair-types open import foundation.equality-dependent-pair-types -open import foundation.type-arithmetic-dependent-pair-types open import foundation.standard-pullbacks -open import foundation.cones-over-cospan-diagrams open import foundation.standard-ternary-pullbacks +open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels open import foundation-core.cartesian-product-types @@ -20,10 +20,10 @@ open import foundation-core.contractible-types open import foundation-core.equivalences open import foundation-core.function-types open import foundation-core.homotopies -open import foundation-core.sections -open import foundation-core.retractions open import foundation-core.identity-types open import foundation-core.propositions +open import foundation-core.retractions +open import foundation-core.sections ```
@@ -131,12 +131,27 @@ module _ ( refl-htpy) ( refl-htpy) + is-equiv-map-inv-left-associative-standard-pullback : + is-equiv map-inv-left-associative-standard-pullback + is-equiv-map-inv-left-associative-standard-pullback = + is-equiv-is-invertible + ( map-left-associative-standard-pullback) + ( refl-htpy) + ( refl-htpy) + compute-left-associative-standard-pullback : standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ standard-ternary-pullback f g h i compute-left-associative-standard-pullback = ( map-left-associative-standard-pullback , is-equiv-map-left-associative-standard-pullback) + + compute-inv-left-associative-standard-pullback : + standard-ternary-pullback f g h i ≃ + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i + compute-inv-left-associative-standard-pullback = + ( map-inv-left-associative-standard-pullback , + is-equiv-map-inv-left-associative-standard-pullback) ``` #### Computing the right associated iterated dependent pullback @@ -168,12 +183,27 @@ module _ ( refl-htpy) ( refl-htpy) + is-equiv-map-inv-right-associative-standard-pullback : + is-equiv map-inv-right-associative-standard-pullback + is-equiv-map-inv-right-associative-standard-pullback = + is-equiv-is-invertible + ( map-right-associative-standard-pullback) + ( refl-htpy) + ( refl-htpy) + compute-right-associative-standard-pullback : standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) ≃ standard-ternary-pullback f g h i compute-right-associative-standard-pullback = ( map-right-associative-standard-pullback , is-equiv-map-right-associative-standard-pullback) + + compute-inv-right-associative-standard-pullback : + standard-ternary-pullback f g h i ≃ + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) + compute-inv-right-associative-standard-pullback = + ( map-inv-right-associative-standard-pullback , + is-equiv-map-inv-right-associative-standard-pullback) ``` #### Standard pullbacks are associative @@ -189,9 +219,16 @@ module _ standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i ≃ standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) associative-standard-pullback = - ( inv-equiv (compute-right-associative-standard-pullback f g h i)) ∘e + ( compute-inv-right-associative-standard-pullback f g h i) ∘e ( compute-left-associative-standard-pullback f g h i) + inv-associative-standard-pullback : + standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) ≃ + standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i + inv-associative-standard-pullback = + ( compute-inv-left-associative-standard-pullback f g h i) ∘e + ( compute-right-associative-standard-pullback f g h i) + map-associative-standard-pullback : standard-pullback (h ∘ horizontal-map-standard-pullback {f = f} {g = g}) i → standard-pullback f (g ∘ vertical-map-standard-pullback {f = h} {g = i}) From 036551791c12badb021cfb912abbd1de0fb24a9d Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Tue, 3 Dec 2024 22:56:54 +0100 Subject: [PATCH 86/87] pre-commit --- .../composition-structure-globular-types.lagda.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/globular-types/composition-structure-globular-types.lagda.md b/src/globular-types/composition-structure-globular-types.lagda.md index b66c60533f..ec0b18b2bd 100644 --- a/src/globular-types/composition-structure-globular-types.lagda.md +++ b/src/globular-types/composition-structure-globular-types.lagda.md @@ -60,7 +60,6 @@ record ( 1-cell-globular-type-Globular-Type G x y) ( 1-cell-globular-type-Globular-Type G x z) - field composition-1-cell-globular-type-Globular-Type : {x y : 0-cell-Globular-Type G} → @@ -173,4 +172,3 @@ is-transitive-1-cell-globular-type-is-transitive-Globular-Type ## See also - [Noncoherent wild $\omega$-semiprecategories](wild-category-theory.noncoherent-wild-omega-semiprecategories.md) - From c578ff2dc7290fdcf73721039a536175a2438513 Mon Sep 17 00:00:00 2001 From: Fredrik Bakke Date: Tue, 3 Dec 2024 23:38:29 +0100 Subject: [PATCH 87/87] fix --- ...hisms-noncoherent-omega-semiprecategories.lagda.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md index 1be340818a..f8179a2c72 100644 --- a/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md +++ b/src/wild-category-theory/neutral-morphisms-noncoherent-omega-semiprecategories.lagda.md @@ -1,4 +1,4 @@ -# Neutral morphisms in noncoherent ω-semiprecategories +# Neutral points in noncoherent ω-semiprecategories ```agda {-# OPTIONS --guardedness --allow-unsolved-metas #-} @@ -32,11 +32,12 @@ open import wild-category-theory.precomposition-morphisms-noncoherent-omega-semi ## Idea -We say an endomorphism `f : 𝒞₁ x y` in a +We say a point `x` in a [noncoherent ω-semiprecategory](wild-category-theory.noncoherent-omega-semiprecategories.md) `𝒞` is -{{#concept "neutral" Disambiguation="endomorphism in a noncoherent ω-semiprecategory" Agda=is-neutral-obj-Noncoherent-ω-Semiprecategory}} -if the precomposition and postcomposition maps are homotopic to identity maps. +{{#concept "neutral" Disambiguation="point in a noncoherent ω-semiprecategory" Agda=is-neutral-point-Noncoherent-ω-Semiprecategory}} +if the precomposition and postcomposition globular maps at the distinguished +endomorphism `f : 𝒞₁ x x` are homotopic to identity maps. ## Definitions @@ -89,5 +90,3 @@ is-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x = ( is-right-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x) × ( is-left-neutral-point-Noncoherent-ω-Semiprecategory 𝒞 x) ``` - -## Properties