The representing arrow category
Content created by Fredrik Bakke and Egbert Rijke.
Created on 2023-09-26.
Last modified on 2024-04-11.
module category-theory.representing-arrow-category where
Imports
open import category-theory.categories open import category-theory.isomorphisms-in-precategories open import category-theory.precategories open import foundation.booleans open import foundation.dependent-pair-types open import foundation.empty-types open import foundation.identity-types open import foundation.logical-equivalences open import foundation.propositions open import foundation.sets open import foundation.subtypes open import foundation.unit-type open import foundation.universe-levels
Idea
The representing arrow is the category that represents arrows in a (pre-)category. We model it after implication on the booleans.
Definition
The objects and hom-sets of the representing arrow
obj-representing-arrow-Category : UU lzero obj-representing-arrow-Category = bool hom-set-representing-arrow-Category : obj-representing-arrow-Category → obj-representing-arrow-Category → Set lzero hom-set-representing-arrow-Category true true = unit-Set hom-set-representing-arrow-Category true false = empty-Set hom-set-representing-arrow-Category false _ = unit-Set hom-representing-arrow-Category : obj-representing-arrow-Category → obj-representing-arrow-Category → UU lzero hom-representing-arrow-Category x y = type-Set (hom-set-representing-arrow-Category x y)
The underlying precategory of the representing arrow
comp-hom-representing-arrow-Category : {x y z : obj-representing-arrow-Category} → hom-representing-arrow-Category y z → hom-representing-arrow-Category x y → hom-representing-arrow-Category x z comp-hom-representing-arrow-Category {true} {true} {true} _ _ = star comp-hom-representing-arrow-Category {false} _ _ = star associative-comp-hom-representing-arrow-Category : {x y z w : obj-representing-arrow-Category} → (h : hom-representing-arrow-Category z w) (g : hom-representing-arrow-Category y z) (f : hom-representing-arrow-Category x y) → ( comp-hom-representing-arrow-Category { x} (comp-hom-representing-arrow-Category {y} h g) f) = ( comp-hom-representing-arrow-Category { x} h (comp-hom-representing-arrow-Category {x} g f)) associative-comp-hom-representing-arrow-Category { true} {true} {true} {true} h g f = refl associative-comp-hom-representing-arrow-Category {false} h g f = refl id-hom-representing-arrow-Category : {x : obj-representing-arrow-Category} → hom-representing-arrow-Category x x id-hom-representing-arrow-Category {true} = star id-hom-representing-arrow-Category {false} = star left-unit-law-comp-hom-representing-arrow-Category : {x y : obj-representing-arrow-Category} → (f : hom-representing-arrow-Category x y) → comp-hom-representing-arrow-Category { x} (id-hom-representing-arrow-Category {y}) f = f left-unit-law-comp-hom-representing-arrow-Category {true} {true} f = refl left-unit-law-comp-hom-representing-arrow-Category {false} f = refl right-unit-law-comp-hom-representing-arrow-Category : {x y : obj-representing-arrow-Category} → (f : hom-representing-arrow-Category x y) → comp-hom-representing-arrow-Category { x} f (id-hom-representing-arrow-Category {x}) = f right-unit-law-comp-hom-representing-arrow-Category {true} {true} f = refl right-unit-law-comp-hom-representing-arrow-Category {false} f = refl representing-arrow-Precategory : Precategory lzero lzero representing-arrow-Precategory = make-Precategory ( obj-representing-arrow-Category) ( hom-set-representing-arrow-Category) ( λ {x} {y} {z} → comp-hom-representing-arrow-Category {x} {y} {z}) ( λ x → id-hom-representing-arrow-Category {x}) ( λ {x} {y} {z} {w} → associative-comp-hom-representing-arrow-Category {x} {y} {z} {w}) ( λ {x} {y} → left-unit-law-comp-hom-representing-arrow-Category {x} {y}) ( λ {x} {y} → right-unit-law-comp-hom-representing-arrow-Category {x} {y})
The representing arrow category
is-category-representing-arrow-Category : is-category-Precategory representing-arrow-Precategory is-category-representing-arrow-Category true true = is-equiv-has-converse-is-prop ( is-set-bool true true) ( is-prop-type-subtype ( is-iso-prop-Precategory representing-arrow-Precategory {true} {true}) ( is-prop-unit)) ( λ _ → refl) is-category-representing-arrow-Category true false = is-equiv-is-empty ( iso-eq-Precategory representing-arrow-Precategory true false) ( hom-iso-Precategory representing-arrow-Precategory) is-category-representing-arrow-Category false true = is-equiv-is-empty ( iso-eq-Precategory representing-arrow-Precategory false true) ( hom-inv-iso-Precategory representing-arrow-Precategory) is-category-representing-arrow-Category false false = is-equiv-has-converse-is-prop ( is-set-bool false false) ( is-prop-type-subtype ( is-iso-prop-Precategory representing-arrow-Precategory {false} {false}) ( is-prop-unit)) ( λ _ → refl) representing-arrow-Category : Category lzero lzero pr1 representing-arrow-Category = representing-arrow-Precategory pr2 representing-arrow-Category = is-category-representing-arrow-Category
Properties
The representing arrow represents arrows in a category
This remains to be formalized.
External links
- Interval category at 1lab
- interval category at Lab
A wikidata identifier was not available for this concept.
Recent changes
- 2024-04-11. Fredrik Bakke and Egbert Rijke. Propositional operations (#1008).
- 2024-03-11. Fredrik Bakke. Refactor category theory to use strictly involutive identity types (#1052).
- 2023-11-27. Fredrik Bakke. Refactor categories to carry a bidirectional witness of associativity (#945).
- 2023-11-24. Fredrik Bakke. Indiscrete precategories (#896).
- 2023-11-09. Fredrik Bakke. Typeset
nlab
as$n$Lab
(#911).