diff --git a/src/category-theory/augmented-simplex-category.lagda.md b/src/category-theory/augmented-simplex-category.lagda.md index fd816bc592..9c59e0e7b2 100644 --- a/src/category-theory/augmented-simplex-category.lagda.md +++ b/src/category-theory/augmented-simplex-category.lagda.md @@ -16,6 +16,7 @@ open import elementary-number-theory.natural-numbers open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels open import order-theory.order-preserving-maps-posets @@ -81,19 +82,19 @@ associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} = ( Fin-Poset r) ( Fin-Poset s) -inv-associative-comp-hom-augmented-simplex-Category : +involutive-eq-associative-comp-hom-augmented-simplex-Category : {n m r s : obj-augmented-simplex-Category} (h : hom-augmented-simplex-Category r s) (g : hom-augmented-simplex-Category m r) (f : hom-augmented-simplex-Category n m) → - comp-hom-augmented-simplex-Category {n} {r} {s} - ( h) - ( comp-hom-augmented-simplex-Category {n} {m} {r} g f) = comp-hom-augmented-simplex-Category {n} {m} {s} ( comp-hom-augmented-simplex-Category {m} {r} {s} h g) - ( f) -inv-associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} = - inv-associative-comp-hom-Poset + ( f) =ⁱ + comp-hom-augmented-simplex-Category {n} {r} {s} + ( h) + ( comp-hom-augmented-simplex-Category {n} {m} {r} g f) +involutive-eq-associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} = + involutive-eq-associative-comp-hom-Poset ( Fin-Poset n) ( Fin-Poset m) ( Fin-Poset r) @@ -104,16 +105,9 @@ associative-composition-operation-augmented-simplex-Category : hom-set-augmented-simplex-Category pr1 associative-composition-operation-augmented-simplex-Category {n} {m} {r} = comp-hom-augmented-simplex-Category {n} {m} {r} -pr1 - ( pr2 - associative-composition-operation-augmented-simplex-Category - { n} {m} {r} {s} h g f) = - associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} h g f -pr2 - ( pr2 - associative-composition-operation-augmented-simplex-Category - { n} {m} {r} {s} h g f) = - inv-associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} h g f +pr2 associative-composition-operation-augmented-simplex-Category + { n} {m} {r} {s} = + involutive-eq-associative-comp-hom-augmented-simplex-Category {n} {m} {r} {s} id-hom-augmented-simplex-Category : (n : obj-augmented-simplex-Category) → hom-augmented-simplex-Category n n diff --git a/src/category-theory/categories.lagda.md b/src/category-theory/categories.lagda.md index 79427a3da2..e015106c69 100644 --- a/src/category-theory/categories.lagda.md +++ b/src/category-theory/categories.lagda.md @@ -20,6 +20,7 @@ open import foundation.equivalences open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.surjective-maps open import foundation.universe-levels ``` @@ -28,7 +29,7 @@ open import foundation.universe-levels ## Idea -A **category** in Homotopy Type Theory is a +A {{#concept "category" Agda=Category}} in Homotopy Type Theory is a [precategory](category-theory.precategories.md) for which the [identifications](foundation-core.identity-types.md) between the objects are the [isomorphisms](category-theory.isomorphisms-in-precategories.md). More @@ -105,15 +106,15 @@ module _ associative-comp-hom-Category = associative-comp-hom-Precategory precategory-Category - inv-associative-comp-hom-Category : + involutive-eq-associative-comp-hom-Category : {x y z w : obj-Category} (h : hom-Category z w) (g : hom-Category y z) (f : hom-Category x y) → - comp-hom-Category h (comp-hom-Category g f) = - comp-hom-Category (comp-hom-Category h g) f - inv-associative-comp-hom-Category = - inv-associative-comp-hom-Precategory precategory-Category + comp-hom-Category (comp-hom-Category h g) f =ⁱ + comp-hom-Category h (comp-hom-Category g f) + involutive-eq-associative-comp-hom-Category = + involutive-eq-associative-comp-hom-Precategory precategory-Category associative-composition-operation-Category : associative-composition-operation-binary-family-Set hom-set-Category diff --git a/src/category-theory/composition-operations-on-binary-families-of-sets.lagda.md b/src/category-theory/composition-operations-on-binary-families-of-sets.lagda.md index 7e4f2bee3f..d4e50dfdf4 100644 --- a/src/category-theory/composition-operations-on-binary-families-of-sets.lagda.md +++ b/src/category-theory/composition-operations-on-binary-families-of-sets.lagda.md @@ -14,6 +14,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -22,22 +23,24 @@ open import foundation.universe-levels ## Idea -Given a type `A`, a **composition operation on a binary family of sets** -`hom : A → A → Set ` is a map +Given a type `A`, a +{{#concept "composition operation" Disambiguation="on binary families of sets" Agda=composition-operation-binary-family-Set}} +on a binary family of [sets](foundation-core.sets.md) `hom : A → A → Set` is a +map ```text - hom y z → hom x y → hom x z + _∘_ : hom y z → hom x y → hom x z ``` for every triple of elements `x y z : A`. For such operations, we can consider -[properties](foundation-core.propositions.md) such as **associativity** and -**unitality**. +[properties](foundation-core.propositions.md) such as _associativity_ and +_unitality_. ## Definitions -### Composition operations in binary families of sets +### Composition operations on binary families of sets ```agda module _ @@ -50,14 +53,30 @@ module _ type-Set (hom-set y z) → type-Set (hom-set x y) → type-Set (hom-set x z) ``` -### Associative composition operations in binary families of sets +### Associative composition operations on binary families of sets -We give a slightly nonstandard definition of associativity, requiring an -associativity witness in each direction. This is of course redundant as `inv` is -a [fibered involution](foundation.fibered-involutions.md) on -[identity types](foundation-core.identity-types.md). However, by recording both -directions we maintain a definitional double inverse law which is practical in -defining the [opposite category](category-theory.opposite-categories.md). +A composition operation + +```text + _∘_ : hom y z → hom x y → hom x z +``` + +on a binary family of sets of morphisms is called +{{#concept "associative" Disambiguation="composition operation on a binary family of sets" Agda=is-associative-composition-operation-binary-family-Set}} +if, for every triple of composable morphisms we have + +```text + (h ∘ g) ∘ f = h ∘ (g ∘ f). +``` + +We give a slightly nonstandard definition of associativity using the +[strictly involutive identity types](foundation.strictly-involutive-identity-types.md) +rather than the standard [identity types](foundation-core.identity-types.md). +This is because, while the strictly involutive identity types are always +[equivalent](foundation-core.equivalences.md) to the standard ones, they satisfy +the strict computation rule `inv (inv p) ≐ p` which is practical in defining the +[opposite category](category-theory.opposite-categories.md), as this also makes +the opposite construction strictly involutive: `(𝒞ᵒᵖ)ᵒᵖ ≐ 𝒞`. ```agda module _ @@ -71,8 +90,7 @@ module _ (h : type-Set (hom-set z w)) (g : type-Set (hom-set y z)) (f : type-Set (hom-set x y)) → - ( comp-hom (comp-hom h g) f = comp-hom h (comp-hom g f)) × - ( comp-hom h (comp-hom g f) = comp-hom (comp-hom h g) f) + ( comp-hom (comp-hom h g) f =ⁱ comp-hom h (comp-hom g f)) associative-composition-operation-binary-family-Set : UU (l1 ⊔ l2) associative-composition-operation-binary-family-Set = @@ -88,6 +106,19 @@ module _ composition-operation-binary-family-Set hom-set comp-hom-associative-composition-operation-binary-family-Set = pr1 H + involutive-eq-associative-composition-operation-binary-family-Set : + {x y z w : A} + (h : type-Set (hom-set z w)) + (g : type-Set (hom-set y z)) + (f : type-Set (hom-set x y)) → + ( comp-hom-associative-composition-operation-binary-family-Set + ( comp-hom-associative-composition-operation-binary-family-Set h g) + ( f)) =ⁱ + ( comp-hom-associative-composition-operation-binary-family-Set + ( h) + ( comp-hom-associative-composition-operation-binary-family-Set g f)) + involutive-eq-associative-composition-operation-binary-family-Set = pr2 H + witness-associative-composition-operation-binary-family-Set : {x y z w : A} (h : type-Set (hom-set z w)) @@ -98,7 +129,8 @@ module _ ( comp-hom-associative-composition-operation-binary-family-Set ( h) (comp-hom-associative-composition-operation-binary-family-Set g f)) witness-associative-composition-operation-binary-family-Set h g f = - pr1 (pr2 H h g f) + eq-involutive-eq + ( involutive-eq-associative-composition-operation-binary-family-Set h g f) inv-witness-associative-composition-operation-binary-family-Set : {x y z w : A} @@ -110,50 +142,32 @@ module _ ( comp-hom-associative-composition-operation-binary-family-Set ( comp-hom-associative-composition-operation-binary-family-Set h g) (f)) inv-witness-associative-composition-operation-binary-family-Set h g f = - pr2 (pr2 H h g f) + eq-involutive-eq + ( invⁱ + ( involutive-eq-associative-composition-operation-binary-family-Set + ( h) + ( g) + ( f))) ``` -```agda -module _ - {l1 l2 : Level} {A : UU l1} - (hom-set : A → A → Set l2) - (comp-hom : composition-operation-binary-family-Set hom-set) - where +### Unital composition operations on binary families of sets - is-associative-witness-associative-composition-operation-binary-family-Set : - ( {x y z w : A} - (h : type-Set (hom-set z w)) - (g : type-Set (hom-set y z)) - (f : type-Set (hom-set x y)) → - comp-hom (comp-hom h g) f = comp-hom h (comp-hom g f)) → - is-associative-composition-operation-binary-family-Set hom-set comp-hom - pr1 - ( is-associative-witness-associative-composition-operation-binary-family-Set - H h g f) = - H h g f - pr2 - ( is-associative-witness-associative-composition-operation-binary-family-Set - H h g f) = - inv (H h g f) - - is-associative-inv-witness-associative-composition-operation-binary-family-Set : - ( {x y z w : A} - (h : type-Set (hom-set z w)) - (g : type-Set (hom-set y z)) - (f : type-Set (hom-set x y)) → - comp-hom h (comp-hom g f) = comp-hom (comp-hom h g) f) → - is-associative-composition-operation-binary-family-Set hom-set comp-hom - pr1 - ( is-associative-inv-witness-associative-composition-operation-binary-family-Set - H h g f) = - inv (H h g f) - pr2 - ( is-associative-inv-witness-associative-composition-operation-binary-family-Set - H h g f) = - H h g f +A composition operation + +```text + _∘_ : hom y z → hom x y → hom x z +``` + +on a binary family of sets of morphisms is called +{{#concept "unital" Disambiguation="composition operation on a binary family of sets" Agda=is-unital-composition-operation-binary-family-Set}} +if there is a morphism `id_x : hom x x` for every element `x : A` such that + +```text + id_y ∘ f = f and f ∘ id_x = f. ``` -### Unital composition operations in binary families of sets +As will be demonstrated momentarily, every composition operation on a binary +family of sets is unital in [at most one](foundation.subterminal-types.md) way. ```agda module _ @@ -171,7 +185,7 @@ module _ ## Properties -### Being associative is a property of composition operations in binary families of sets +### Being associative is a property of composition operations on binary families of sets ```agda module _ @@ -187,15 +201,12 @@ module _ ( λ x y z w → is-prop-iterated-Π 3 ( λ h g f → - is-prop-product + is-prop-equiv + ( equiv-eq-involutive-eq) ( is-set-type-Set ( hom-set x w) ( comp-hom (comp-hom h g) f) - ( comp-hom h (comp-hom g f))) - ( is-set-type-Set - ( hom-set x w) - ( comp-hom h (comp-hom g f)) - ( comp-hom (comp-hom h g) f)))) + ( comp-hom h (comp-hom g f))))) is-associative-prop-composition-operation-binary-family-Set : Prop (l1 ⊔ l2) pr1 is-associative-prop-composition-operation-binary-family-Set = @@ -204,7 +215,7 @@ module _ is-prop-is-associative-composition-operation-binary-family-Set ``` -### Being unital is a property of composition operations in binary families of sets +### Being unital is a property of composition operations on binary families of sets **Proof:** Suppose `e e' : (x : A) → hom-set x x` are both right and left units with regard to composition. It is enough to show that `e = e'` since the right @@ -266,7 +277,8 @@ module _ - [Set-magmoids](category-theory.set-magmoids.md) capture the structure of composition operations on binary families of sets. -- [Precategories](category-theory.precategories.md) are associative and unital - composition operations on binary families of sets. -- [Nonunital precategories](category-theory.nonunital-precategories.md) are - associative composition operations on binary families of sets. +- [Precategories](category-theory.precategories.md) are the structure of an + associative and unital composition operation on a binary families of sets. +- [Nonunital precategories](category-theory.nonunital-precategories.md) are the + structure of an associative composition operation on a binary families of + sets. diff --git a/src/category-theory/conservative-functors-precategories.lagda.md b/src/category-theory/conservative-functors-precategories.lagda.md index e88c6afb17..0116f42e94 100644 --- a/src/category-theory/conservative-functors-precategories.lagda.md +++ b/src/category-theory/conservative-functors-precategories.lagda.md @@ -29,7 +29,7 @@ isomorphism in `C`. ## Definitions -### The predicate of being conservative +### The predicate on functors of being conservative ```agda module _ diff --git a/src/category-theory/copresheaf-categories.lagda.md b/src/category-theory/copresheaf-categories.lagda.md index 1a9b6d961e..584f90ada5 100644 --- a/src/category-theory/copresheaf-categories.lagda.md +++ b/src/category-theory/copresheaf-categories.lagda.md @@ -10,7 +10,6 @@ module category-theory.copresheaf-categories where open import category-theory.categories open import category-theory.category-of-functors-from-small-to-large-categories open import category-theory.functors-from-small-to-large-precategories -open import category-theory.functors-precategories open import category-theory.large-categories open import category-theory.large-precategories open import category-theory.natural-transformations-functors-from-small-to-large-precategories @@ -210,29 +209,6 @@ module _ { Z} { W} - inv-associative-comp-hom-copresheaf-Precategory : - {l3 l4 l5 l6 : Level} - (X : copresheaf-Precategory l3) - (Y : copresheaf-Precategory l4) - (Z : copresheaf-Precategory l5) - (W : copresheaf-Precategory l6) - (h : hom-copresheaf-Precategory Z W) - (g : hom-copresheaf-Precategory Y Z) - (f : hom-copresheaf-Precategory X Y) → - comp-hom-copresheaf-Precategory X Z W - ( h) - ( comp-hom-copresheaf-Precategory X Y Z g f) = - comp-hom-copresheaf-Precategory X Y W - ( comp-hom-copresheaf-Precategory Y Z W h g) - ( f) - inv-associative-comp-hom-copresheaf-Precategory X Y Z W = - inv-associative-comp-hom-Large-Precategory - ( copresheaf-large-precategory-Precategory) - { X = X} - { Y} - { Z} - { W} - left-unit-law-comp-hom-copresheaf-Precategory : {l3 l4 : Level} (X : copresheaf-Precategory l3) diff --git a/src/category-theory/dependent-products-of-categories.lagda.md b/src/category-theory/dependent-products-of-categories.lagda.md index 891865fc17..64742bf6c0 100644 --- a/src/category-theory/dependent-products-of-categories.lagda.md +++ b/src/category-theory/dependent-products-of-categories.lagda.md @@ -20,6 +20,7 @@ open import foundation.function-types open import foundation.functoriality-dependent-function-types open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -75,25 +76,25 @@ module _ hom-Π-Category x z comp-hom-Π-Category = comp-hom-Category Π-Category - associative-comp-hom-Π-Category : + involutive-eq-associative-comp-hom-Π-Category : {x y z w : obj-Π-Category} (h : hom-Π-Category z w) (g : hom-Π-Category y z) (f : hom-Π-Category x y) → - comp-hom-Π-Category (comp-hom-Π-Category h g) f = + comp-hom-Π-Category (comp-hom-Π-Category h g) f =ⁱ comp-hom-Π-Category h (comp-hom-Π-Category g f) - associative-comp-hom-Π-Category = - associative-comp-hom-Category Π-Category + involutive-eq-associative-comp-hom-Π-Category = + involutive-eq-associative-comp-hom-Category Π-Category - inv-associative-comp-hom-Π-Category : + associative-comp-hom-Π-Category : {x y z w : obj-Π-Category} (h : hom-Π-Category z w) (g : hom-Π-Category y z) (f : hom-Π-Category x y) → - comp-hom-Π-Category h (comp-hom-Π-Category g f) = - comp-hom-Π-Category (comp-hom-Π-Category h g) f - inv-associative-comp-hom-Π-Category = - inv-associative-comp-hom-Category Π-Category + comp-hom-Π-Category (comp-hom-Π-Category h g) f = + comp-hom-Π-Category h (comp-hom-Π-Category g f) + associative-comp-hom-Π-Category = + associative-comp-hom-Category Π-Category associative-composition-operation-Π-Category : associative-composition-operation-binary-family-Set hom-set-Π-Category diff --git a/src/category-theory/dependent-products-of-large-categories.lagda.md b/src/category-theory/dependent-products-of-large-categories.lagda.md index 945769cffc..d674d884ab 100644 --- a/src/category-theory/dependent-products-of-large-categories.lagda.md +++ b/src/category-theory/dependent-products-of-large-categories.lagda.md @@ -17,6 +17,7 @@ open import foundation.function-extensionality open import foundation.functoriality-dependent-function-types open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -98,7 +99,7 @@ module _ associative-comp-hom-Π-Large-Category = associative-comp-hom-Large-Category Π-Large-Category - inv-associative-comp-hom-Π-Large-Category : + involutive-eq-associative-comp-hom-Π-Large-Category : {l2 l3 l4 l5 : Level} {x : obj-Π-Large-Category l2} {y : obj-Π-Large-Category l3} @@ -107,10 +108,10 @@ module _ (h : hom-Π-Large-Category z w) (g : hom-Π-Large-Category y z) (f : hom-Π-Large-Category x y) → - comp-hom-Π-Large-Category h (comp-hom-Π-Large-Category g f) = - comp-hom-Π-Large-Category (comp-hom-Π-Large-Category h g) f - inv-associative-comp-hom-Π-Large-Category = - inv-associative-comp-hom-Large-Category Π-Large-Category + comp-hom-Π-Large-Category (comp-hom-Π-Large-Category h g) f =ⁱ + comp-hom-Π-Large-Category h (comp-hom-Π-Large-Category g f) + involutive-eq-associative-comp-hom-Π-Large-Category = + involutive-eq-associative-comp-hom-Large-Category Π-Large-Category id-hom-Π-Large-Category : {l2 : Level} {x : obj-Π-Large-Category l2} → diff --git a/src/category-theory/dependent-products-of-large-precategories.lagda.md b/src/category-theory/dependent-products-of-large-precategories.lagda.md index a66c1e1fe8..83d18e5945 100644 --- a/src/category-theory/dependent-products-of-large-precategories.lagda.md +++ b/src/category-theory/dependent-products-of-large-precategories.lagda.md @@ -16,6 +16,7 @@ open import foundation.function-extensionality open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -62,7 +63,7 @@ module _ comp-hom-Π-Large-Precategory f g i = comp-hom-Large-Precategory (C i) (f i) (g i) - associative-comp-hom-Π-Large-Precategory : + involutive-eq-associative-comp-hom-Π-Large-Precategory : {l2 l3 l4 l5 : Level} {x : obj-Π-Large-Precategory l2} {y : obj-Π-Large-Precategory l3} @@ -71,13 +72,18 @@ module _ (h : hom-Π-Large-Precategory z w) (g : hom-Π-Large-Precategory y z) (f : hom-Π-Large-Precategory x y) → - ( comp-hom-Π-Large-Precategory (comp-hom-Π-Large-Precategory h g) f) = + ( comp-hom-Π-Large-Precategory (comp-hom-Π-Large-Precategory h g) f) =ⁱ ( comp-hom-Π-Large-Precategory h (comp-hom-Π-Large-Precategory g f)) - associative-comp-hom-Π-Large-Precategory h g f = - eq-htpy - ( λ i → associative-comp-hom-Large-Precategory (C i) (h i) (g i) (f i)) + involutive-eq-associative-comp-hom-Π-Large-Precategory h g f = + involutive-eq-involutive-htpy + ( λ i → + involutive-eq-associative-comp-hom-Large-Precategory + ( C i) + ( h i) + ( g i) + ( f i)) - inv-associative-comp-hom-Π-Large-Precategory : + associative-comp-hom-Π-Large-Precategory : {l2 l3 l4 l5 : Level} {x : obj-Π-Large-Precategory l2} {y : obj-Π-Large-Precategory l3} @@ -86,12 +92,11 @@ module _ (h : hom-Π-Large-Precategory z w) (g : hom-Π-Large-Precategory y z) (f : hom-Π-Large-Precategory x y) → - ( comp-hom-Π-Large-Precategory h (comp-hom-Π-Large-Precategory g f)) = - ( comp-hom-Π-Large-Precategory (comp-hom-Π-Large-Precategory h g) f) - inv-associative-comp-hom-Π-Large-Precategory h g f = - eq-htpy - ( λ i → - inv-associative-comp-hom-Large-Precategory (C i) (h i) (g i) (f i)) + ( comp-hom-Π-Large-Precategory (comp-hom-Π-Large-Precategory h g) f) = + ( comp-hom-Π-Large-Precategory h (comp-hom-Π-Large-Precategory g f)) + associative-comp-hom-Π-Large-Precategory h g f = + eq-involutive-eq + ( involutive-eq-associative-comp-hom-Π-Large-Precategory h g f) id-hom-Π-Large-Precategory : {l2 : Level} {x : obj-Π-Large-Precategory l2} → hom-Π-Large-Precategory x x @@ -125,10 +130,8 @@ module _ comp-hom-Π-Large-Precategory id-hom-Large-Precategory Π-Large-Precategory = id-hom-Π-Large-Precategory - associative-comp-hom-Large-Precategory Π-Large-Precategory = - associative-comp-hom-Π-Large-Precategory - inv-associative-comp-hom-Large-Precategory Π-Large-Precategory = - inv-associative-comp-hom-Π-Large-Precategory + involutive-eq-associative-comp-hom-Large-Precategory Π-Large-Precategory = + involutive-eq-associative-comp-hom-Π-Large-Precategory left-unit-law-comp-hom-Large-Precategory Π-Large-Precategory = left-unit-law-comp-hom-Π-Large-Precategory right-unit-law-comp-hom-Large-Precategory Π-Large-Precategory = diff --git a/src/category-theory/dependent-products-of-precategories.lagda.md b/src/category-theory/dependent-products-of-precategories.lagda.md index e947708637..6e7448dc99 100644 --- a/src/category-theory/dependent-products-of-precategories.lagda.md +++ b/src/category-theory/dependent-products-of-precategories.lagda.md @@ -17,6 +17,7 @@ open import foundation.function-extensionality open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -54,33 +55,33 @@ module _ hom-Π-Precategory x z comp-hom-Π-Precategory f g i = comp-hom-Precategory (C i) (f i) (g i) - associative-comp-hom-Π-Precategory : + involutive-eq-associative-comp-hom-Π-Precategory : {x y z w : obj-Π-Precategory} (h : hom-Π-Precategory z w) (g : hom-Π-Precategory y z) (f : hom-Π-Precategory x y) → - ( comp-hom-Π-Precategory (comp-hom-Π-Precategory h g) f) = + ( comp-hom-Π-Precategory (comp-hom-Π-Precategory h g) f) =ⁱ ( comp-hom-Π-Precategory h (comp-hom-Π-Precategory g f)) - associative-comp-hom-Π-Precategory h g f = - eq-htpy (λ i → associative-comp-hom-Precategory (C i) (h i) (g i) (f i)) + involutive-eq-associative-comp-hom-Π-Precategory h g f = + involutive-eq-involutive-htpy + ( λ i → + involutive-eq-associative-comp-hom-Precategory (C i) (h i) (g i) (f i)) - inv-associative-comp-hom-Π-Precategory : + associative-comp-hom-Π-Precategory : {x y z w : obj-Π-Precategory} (h : hom-Π-Precategory z w) (g : hom-Π-Precategory y z) (f : hom-Π-Precategory x y) → - ( comp-hom-Π-Precategory h (comp-hom-Π-Precategory g f)) = - ( comp-hom-Π-Precategory (comp-hom-Π-Precategory h g) f) - inv-associative-comp-hom-Π-Precategory h g f = - eq-htpy (λ i → inv-associative-comp-hom-Precategory (C i) (h i) (g i) (f i)) + ( comp-hom-Π-Precategory (comp-hom-Π-Precategory h g) f) = + ( comp-hom-Π-Precategory h (comp-hom-Π-Precategory g f)) + associative-comp-hom-Π-Precategory h g f = + eq-involutive-eq (involutive-eq-associative-comp-hom-Π-Precategory h g f) associative-composition-operation-Π-Precategory : associative-composition-operation-binary-family-Set hom-set-Π-Precategory pr1 associative-composition-operation-Π-Precategory = comp-hom-Π-Precategory - pr1 (pr2 associative-composition-operation-Π-Precategory h g f) = - associative-comp-hom-Π-Precategory h g f - pr2 (pr2 associative-composition-operation-Π-Precategory h g f) = - inv-associative-comp-hom-Π-Precategory h g f + pr2 associative-composition-operation-Π-Precategory = + involutive-eq-associative-comp-hom-Π-Precategory id-hom-Π-Precategory : {x : obj-Π-Precategory} → hom-Π-Precategory x x id-hom-Π-Precategory i = id-hom-Precategory (C i) diff --git a/src/category-theory/discrete-categories.lagda.md b/src/category-theory/discrete-categories.lagda.md index 9769a562f9..f4a10cea33 100644 --- a/src/category-theory/discrete-categories.lagda.md +++ b/src/category-theory/discrete-categories.lagda.md @@ -12,6 +12,7 @@ open import category-theory.precategories open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -28,13 +29,13 @@ module _ where discrete-precategory-Set : Precategory l l - pr1 discrete-precategory-Set = type-Set X - pr1 (pr2 discrete-precategory-Set) x y = - set-Prop (x = y , is-set-type-Set X x y) - pr1 (pr1 (pr2 (pr2 discrete-precategory-Set))) = concat' _ - pr1 (pr2 (pr1 (pr2 (pr2 discrete-precategory-Set))) refl refl refl) = refl - pr2 (pr2 (pr1 (pr2 (pr2 discrete-precategory-Set))) refl refl refl) = refl - pr1 (pr2 (pr2 (pr2 discrete-precategory-Set))) x = refl - pr1 (pr2 (pr2 (pr2 (pr2 discrete-precategory-Set)))) _ = right-unit - pr2 (pr2 (pr2 (pr2 (pr2 discrete-precategory-Set)))) _ = left-unit + discrete-precategory-Set = + make-Precategory + ( type-Set X) + ( λ x y → set-Prop (Id-Prop X x y)) + ( λ p q → q ∙ p) + ( λ x → refl) + ( λ h g f → inv (assoc f g h)) + ( λ _ → right-unit) + ( λ _ → left-unit) ``` diff --git a/src/category-theory/equivalences-of-precategories.lagda.md b/src/category-theory/equivalences-of-precategories.lagda.md index 9ec17ab524..5478d066df 100644 --- a/src/category-theory/equivalences-of-precategories.lagda.md +++ b/src/category-theory/equivalences-of-precategories.lagda.md @@ -31,7 +31,7 @@ A [functor](category-theory.functors-precategories.md) `F : C → D` is an ## Definition -### The predicate of being an equivalence of precategories +### The predicate on functors of being an equivalence of precategories ```agda module _ diff --git a/src/category-theory/full-large-subcategories.lagda.md b/src/category-theory/full-large-subcategories.lagda.md index d69460afb2..4b96c679d6 100644 --- a/src/category-theory/full-large-subcategories.lagda.md +++ b/src/category-theory/full-large-subcategories.lagda.md @@ -15,6 +15,7 @@ open import category-theory.large-precategories open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -130,7 +131,7 @@ module _ ( large-precategory-Large-Category C) ( P) - inv-associative-comp-hom-Full-Large-Subcategory : + involutive-eq-associative-comp-hom-Full-Large-Subcategory : {l1 l2 l3 l4 : Level} (X : obj-Full-Large-Subcategory l1) (Y : obj-Full-Large-Subcategory l2) @@ -139,14 +140,14 @@ module _ (h : hom-Full-Large-Subcategory Z W) (g : hom-Full-Large-Subcategory Y Z) (f : hom-Full-Large-Subcategory X Y) → - comp-hom-Full-Large-Subcategory X Z W - ( h) - ( comp-hom-Full-Large-Subcategory X Y Z g f) = comp-hom-Full-Large-Subcategory X Y W ( comp-hom-Full-Large-Subcategory Y Z W h g) - ( f) - inv-associative-comp-hom-Full-Large-Subcategory = - inv-associative-comp-hom-Full-Large-Subprecategory + ( f) =ⁱ + comp-hom-Full-Large-Subcategory X Z W + ( h) + ( comp-hom-Full-Large-Subcategory X Y Z g f) + involutive-eq-associative-comp-hom-Full-Large-Subcategory = + involutive-eq-associative-comp-hom-Full-Large-Subprecategory ( large-precategory-Large-Category C) ( P) diff --git a/src/category-theory/full-large-subprecategories.lagda.md b/src/category-theory/full-large-subprecategories.lagda.md index 51ef6c9323..a3789dd83e 100644 --- a/src/category-theory/full-large-subprecategories.lagda.md +++ b/src/category-theory/full-large-subprecategories.lagda.md @@ -18,6 +18,7 @@ open import foundation.fundamental-theorem-of-identity-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtype-identity-principle open import foundation.subtypes open import foundation.universe-levels @@ -127,7 +128,7 @@ module _ associative-comp-hom-Full-Large-Subprecategory X Y Z W = associative-comp-hom-Large-Precategory C - inv-associative-comp-hom-Full-Large-Subprecategory : + involutive-eq-associative-comp-hom-Full-Large-Subprecategory : {l1 l2 l3 l4 : Level} (X : obj-Full-Large-Subprecategory l1) (Y : obj-Full-Large-Subprecategory l2) @@ -136,14 +137,14 @@ module _ (h : hom-Full-Large-Subprecategory Z W) (g : hom-Full-Large-Subprecategory Y Z) (f : hom-Full-Large-Subprecategory X Y) → - comp-hom-Full-Large-Subprecategory X Z W - ( h) - ( comp-hom-Full-Large-Subprecategory X Y Z g f) = comp-hom-Full-Large-Subprecategory X Y W ( comp-hom-Full-Large-Subprecategory Y Z W h g) - ( f) - inv-associative-comp-hom-Full-Large-Subprecategory X Y Z W = - inv-associative-comp-hom-Large-Precategory C + ( f) =ⁱ + comp-hom-Full-Large-Subprecategory X Z W + ( h) + ( comp-hom-Full-Large-Subprecategory X Y Z g f) + involutive-eq-associative-comp-hom-Full-Large-Subprecategory X Y Z W = + involutive-eq-associative-comp-hom-Large-Precategory C left-unit-law-comp-hom-Full-Large-Subprecategory : {l1 l2 : Level} @@ -184,14 +185,10 @@ module _ id-hom-Large-Precategory large-precategory-Full-Large-Subprecategory {l1} {X} = id-hom-Full-Large-Subprecategory X - associative-comp-hom-Large-Precategory - large-precategory-Full-Large-Subprecategory - {l1} {l2} {l3} {l4} {X} {Y} {Z} {W} = - associative-comp-hom-Full-Large-Subprecategory X Y Z W - inv-associative-comp-hom-Large-Precategory + involutive-eq-associative-comp-hom-Large-Precategory large-precategory-Full-Large-Subprecategory {l1} {l2} {l3} {l4} {X} {Y} {Z} {W} = - inv-associative-comp-hom-Full-Large-Subprecategory X Y Z W + involutive-eq-associative-comp-hom-Full-Large-Subprecategory X Y Z W left-unit-law-comp-hom-Large-Precategory large-precategory-Full-Large-Subprecategory {l1} {l2} {X} {Y} = left-unit-law-comp-hom-Full-Large-Subprecategory X Y diff --git a/src/category-theory/full-subcategories.lagda.md b/src/category-theory/full-subcategories.lagda.md index 6bd710e242..a1921d9182 100644 --- a/src/category-theory/full-subcategories.lagda.md +++ b/src/category-theory/full-subcategories.lagda.md @@ -21,6 +21,7 @@ open import foundation.embeddings open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -129,19 +130,19 @@ module _ associative-comp-hom-Full-Subprecategory ( precategory-Category C) P {x} {y} {z} {w} - inv-associative-comp-hom-Full-Subcategory : + involutive-eq-associative-comp-hom-Full-Subcategory : {x y z w : obj-Full-Subcategory C P} (h : hom-Full-Subcategory z w) (g : hom-Full-Subcategory y z) (f : hom-Full-Subcategory x y) → - comp-hom-Full-Subcategory {x} {z} {w} - ( h) - ( comp-hom-Full-Subcategory {x} {y} {z} g f) = comp-hom-Full-Subcategory {x} {y} {w} ( comp-hom-Full-Subcategory {y} {z} {w} h g) - ( f) - inv-associative-comp-hom-Full-Subcategory {x} {y} {z} {w} = - inv-associative-comp-hom-Full-Subprecategory + ( f) =ⁱ + comp-hom-Full-Subcategory {x} {z} {w} + ( h) + ( comp-hom-Full-Subcategory {x} {y} {z} g f) + involutive-eq-associative-comp-hom-Full-Subcategory {x} {y} {z} {w} = + involutive-eq-associative-comp-hom-Full-Subprecategory ( precategory-Category C) P {x} {y} {z} {w} left-unit-law-comp-hom-Full-Subcategory : diff --git a/src/category-theory/full-subprecategories.lagda.md b/src/category-theory/full-subprecategories.lagda.md index f959b45d70..7d2faeebad 100644 --- a/src/category-theory/full-subprecategories.lagda.md +++ b/src/category-theory/full-subprecategories.lagda.md @@ -25,6 +25,7 @@ open import foundation.fundamental-theorem-of-identity-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtype-identity-principle open import foundation.subtypes open import foundation.universe-levels @@ -118,33 +119,33 @@ module _ hom-Full-Subprecategory x z comp-hom-Full-Subprecategory = comp-hom-Precategory C - associative-comp-hom-Full-Subprecategory : + involutive-eq-associative-comp-hom-Full-Subprecategory : {x y z w : obj-Full-Subprecategory C P} (h : hom-Full-Subprecategory z w) (g : hom-Full-Subprecategory y z) (f : hom-Full-Subprecategory x y) → comp-hom-Full-Subprecategory {x} {y} {w} ( comp-hom-Full-Subprecategory {y} {z} {w} h g) - ( f) = + ( f) =ⁱ comp-hom-Full-Subprecategory {x} {z} {w} ( h) ( comp-hom-Full-Subprecategory {x} {y} {z} g f) - associative-comp-hom-Full-Subprecategory = - associative-comp-hom-Precategory C + involutive-eq-associative-comp-hom-Full-Subprecategory = + involutive-eq-associative-comp-hom-Precategory C - inv-associative-comp-hom-Full-Subprecategory : + associative-comp-hom-Full-Subprecategory : {x y z w : obj-Full-Subprecategory C P} (h : hom-Full-Subprecategory z w) (g : hom-Full-Subprecategory y z) (f : hom-Full-Subprecategory x y) → - comp-hom-Full-Subprecategory {x} {z} {w} - ( h) - ( comp-hom-Full-Subprecategory {x} {y} {z} g f) = comp-hom-Full-Subprecategory {x} {y} {w} ( comp-hom-Full-Subprecategory {y} {z} {w} h g) - ( f) - inv-associative-comp-hom-Full-Subprecategory = - inv-associative-comp-hom-Precategory C + ( f) = + comp-hom-Full-Subprecategory {x} {z} {w} + ( h) + ( comp-hom-Full-Subprecategory {x} {y} {z} g f) + associative-comp-hom-Full-Subprecategory = + associative-comp-hom-Precategory C left-unit-law-comp-hom-Full-Subprecategory : {x y : obj-Full-Subprecategory C P} @@ -171,16 +172,10 @@ module _ hom-set-Full-Subprecategory pr1 associative-composition-operation-Full-Subprecategory {x} {y} {z} = comp-hom-Full-Subprecategory {x} {y} {z} - pr1 - ( pr2 - associative-composition-operation-Full-Subprecategory - { x} {y} {z} {w} h g f) = - associative-comp-hom-Full-Subprecategory {x} {y} {z} {w} h g f pr2 - ( pr2 - associative-composition-operation-Full-Subprecategory - { x} {y} {z} {w} h g f) = - inv-associative-comp-hom-Full-Subprecategory {x} {y} {z} {w} h g f + associative-composition-operation-Full-Subprecategory + { x} {y} {z} {w} h g f = + involutive-eq-associative-comp-hom-Full-Subprecategory {x} {y} {z} {w} h g f is-unital-composition-operation-Full-Subprecategory : is-unital-composition-operation-binary-family-Set diff --git a/src/category-theory/function-categories.lagda.md b/src/category-theory/function-categories.lagda.md index 0b69fe58ce..2e86a66718 100644 --- a/src/category-theory/function-categories.lagda.md +++ b/src/category-theory/function-categories.lagda.md @@ -16,6 +16,7 @@ open import category-theory.precategories open import foundation.equivalences open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -73,15 +74,15 @@ module _ associative-comp-hom-function-Category = associative-comp-hom-Category function-Category - inv-associative-comp-hom-function-Category : + involutive-eq-associative-comp-hom-function-Category : {x y z w : obj-function-Category} (h : hom-function-Category z w) (g : hom-function-Category y z) (f : hom-function-Category x y) → - comp-hom-function-Category h (comp-hom-function-Category g f) = - comp-hom-function-Category (comp-hom-function-Category h g) f - inv-associative-comp-hom-function-Category = - inv-associative-comp-hom-Category function-Category + comp-hom-function-Category (comp-hom-function-Category h g) f =ⁱ + comp-hom-function-Category h (comp-hom-function-Category g f) + involutive-eq-associative-comp-hom-function-Category = + involutive-eq-associative-comp-hom-Category function-Category associative-composition-operation-function-Category : associative-composition-operation-binary-family-Set diff --git a/src/category-theory/function-precategories.lagda.md b/src/category-theory/function-precategories.lagda.md index ddbcfb33d6..64506a827d 100644 --- a/src/category-theory/function-precategories.lagda.md +++ b/src/category-theory/function-precategories.lagda.md @@ -15,6 +15,7 @@ open import category-theory.precategories open import foundation.equivalences open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -65,15 +66,15 @@ module _ associative-comp-hom-function-Precategory = associative-comp-hom-Precategory function-Precategory - inv-associative-comp-hom-function-Precategory : + involutive-eq-associative-comp-hom-function-Precategory : {x y z w : obj-function-Precategory} (h : hom-function-Precategory z w) (g : hom-function-Precategory y z) (f : hom-function-Precategory x y) → - comp-hom-function-Precategory h (comp-hom-function-Precategory g f) = - comp-hom-function-Precategory (comp-hom-function-Precategory h g) f - inv-associative-comp-hom-function-Precategory = - inv-associative-comp-hom-Precategory function-Precategory + comp-hom-function-Precategory (comp-hom-function-Precategory h g) f =ⁱ + comp-hom-function-Precategory h (comp-hom-function-Precategory g f) + involutive-eq-associative-comp-hom-function-Precategory = + involutive-eq-associative-comp-hom-Precategory function-Precategory associative-composition-operation-function-Precategory : associative-composition-operation-binary-family-Set diff --git a/src/category-theory/gaunt-categories.lagda.md b/src/category-theory/gaunt-categories.lagda.md index 8e495012bb..8235795ebe 100644 --- a/src/category-theory/gaunt-categories.lagda.md +++ b/src/category-theory/gaunt-categories.lagda.md @@ -23,6 +23,7 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -166,15 +167,15 @@ module _ associative-comp-hom-Gaunt-Category = associative-comp-hom-Category category-Gaunt-Category - inv-associative-comp-hom-Gaunt-Category : + involutive-eq-associative-comp-hom-Gaunt-Category : {x y z w : obj-Gaunt-Category} (h : hom-Gaunt-Category z w) (g : hom-Gaunt-Category y z) (f : hom-Gaunt-Category x y) → - comp-hom-Gaunt-Category h (comp-hom-Gaunt-Category g f) = - comp-hom-Gaunt-Category (comp-hom-Gaunt-Category h g) f - inv-associative-comp-hom-Gaunt-Category = - inv-associative-comp-hom-Category category-Gaunt-Category + comp-hom-Gaunt-Category (comp-hom-Gaunt-Category h g) f =ⁱ + comp-hom-Gaunt-Category h (comp-hom-Gaunt-Category g f) + involutive-eq-associative-comp-hom-Gaunt-Category = + involutive-eq-associative-comp-hom-Category category-Gaunt-Category associative-composition-operation-Gaunt-Category : associative-composition-operation-binary-family-Set diff --git a/src/category-theory/groupoids.lagda.md b/src/category-theory/groupoids.lagda.md index 7028c7da72..117845dff7 100644 --- a/src/category-theory/groupoids.lagda.md +++ b/src/category-theory/groupoids.lagda.md @@ -25,6 +25,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-pair-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels ``` @@ -88,13 +89,13 @@ module _ associative-comp-hom-Groupoid = associative-comp-hom-Category category-Groupoid - inv-associative-comp-hom-Groupoid : + involutive-eq-associative-comp-hom-Groupoid : {x y z w : obj-Groupoid} (h : hom-Groupoid z w) (g : hom-Groupoid y z) (f : hom-Groupoid x y) → - comp-hom-Groupoid h (comp-hom-Groupoid g f) = - comp-hom-Groupoid (comp-hom-Groupoid h g) f - inv-associative-comp-hom-Groupoid = - inv-associative-comp-hom-Category category-Groupoid + comp-hom-Groupoid (comp-hom-Groupoid h g) f =ⁱ + comp-hom-Groupoid h (comp-hom-Groupoid g f) + involutive-eq-associative-comp-hom-Groupoid = + involutive-eq-associative-comp-hom-Category category-Groupoid left-unit-law-comp-hom-Groupoid : {x y : obj-Groupoid} (f : hom-Groupoid x y) → @@ -130,16 +131,15 @@ module _ obj-groupoid-1-Type = type-1-Type X precategory-Groupoid-1-Type : Precategory l l - pr1 precategory-Groupoid-1-Type = obj-groupoid-1-Type - pr1 (pr2 precategory-Groupoid-1-Type) = Id-Set X - pr1 (pr1 (pr2 (pr2 precategory-Groupoid-1-Type))) q p = p ∙ q - pr1 (pr2 (pr1 (pr2 (pr2 precategory-Groupoid-1-Type))) r q p) = - inv (assoc p q r) - pr2 (pr2 (pr1 (pr2 (pr2 precategory-Groupoid-1-Type))) r q p) = - assoc p q r - pr1 (pr2 (pr2 (pr2 precategory-Groupoid-1-Type))) x = refl - pr1 (pr2 (pr2 (pr2 (pr2 precategory-Groupoid-1-Type)))) p = right-unit - pr2 (pr2 (pr2 (pr2 (pr2 precategory-Groupoid-1-Type)))) p = left-unit + precategory-Groupoid-1-Type = + make-Precategory + ( obj-groupoid-1-Type) + ( Id-Set X) + ( λ q p → p ∙ q) + ( λ x → refl) + ( λ r q p → inv (assoc p q r)) + ( λ p → right-unit) + ( λ p → left-unit) is-category-groupoid-1-Type : is-category-Precategory precategory-Groupoid-1-Type diff --git a/src/category-theory/indiscrete-precategories.lagda.md b/src/category-theory/indiscrete-precategories.lagda.md index 0ac8c5fe4a..68479adbd5 100644 --- a/src/category-theory/indiscrete-precategories.lagda.md +++ b/src/category-theory/indiscrete-precategories.lagda.md @@ -7,29 +7,22 @@ module category-theory.indiscrete-precategories where
Imports ```agda -open import category-theory.composition-operations-on-binary-families-of-sets -open import category-theory.fully-faithful-functors-precategories open import category-theory.isomorphisms-in-precategories open import category-theory.precategories open import category-theory.pregroupoids open import category-theory.preunivalent-categories open import category-theory.strict-categories open import category-theory.subterminal-precategories -open import category-theory.terminal-category -open import foundation.action-on-identifications-functions open import foundation.contractible-types open import foundation.dependent-pair-types -open import foundation.embeddings open import foundation.equivalences open import foundation.function-types -open import foundation.fundamental-theorem-of-identity-types open import foundation.homotopies open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets -open import foundation.subtype-identity-principle open import foundation.unit-type open import foundation.universe-levels ``` @@ -98,35 +91,6 @@ module _ ( comp-hom-indiscrete-Precategory {x} {y} {z} g f) associative-comp-hom-indiscrete-Precategory h g f = refl - inv-associative-comp-hom-indiscrete-Precategory : - {x y z w : obj-indiscrete-Precategory X} → - (h : hom-indiscrete-Precategory X z w) - (g : hom-indiscrete-Precategory X y z) - (f : hom-indiscrete-Precategory X x y) → - comp-hom-indiscrete-Precategory {x} {z} {w} - ( h) - ( comp-hom-indiscrete-Precategory {x} {y} {z} g f) = - comp-hom-indiscrete-Precategory {x} {y} {w} - ( comp-hom-indiscrete-Precategory {y} {z} {w} h g) - ( f) - inv-associative-comp-hom-indiscrete-Precategory h g f = refl - - associative-composition-operation-indiscrete-Precategory : - associative-composition-operation-binary-family-Set - ( hom-set-indiscrete-Precategory X) - pr1 associative-composition-operation-indiscrete-Precategory {x} {y} {z} = - comp-hom-indiscrete-Precategory {x} {y} {z} - pr1 - ( pr2 - associative-composition-operation-indiscrete-Precategory - { x} {y} {z} {w} h g f) = - associative-comp-hom-indiscrete-Precategory {x} {y} {z} {w} h g f - pr2 - ( pr2 - associative-composition-operation-indiscrete-Precategory - { x} {y} {z} {w} h g f) = - inv-associative-comp-hom-indiscrete-Precategory {x} {y} {z} {w} h g f - id-hom-indiscrete-Precategory : {x : obj-indiscrete-Precategory X} → hom-indiscrete-Precategory X x x id-hom-indiscrete-Precategory = star @@ -149,24 +113,17 @@ module _ f right-unit-law-comp-hom-indiscrete-Precategory f = refl - is-unital-composition-operation-indiscrete-Precategory : - is-unital-composition-operation-binary-family-Set + indiscrete-Precategory : Precategory l lzero + indiscrete-Precategory = + make-Precategory + ( obj-indiscrete-Precategory X) ( hom-set-indiscrete-Precategory X) ( λ {x} {y} {z} → comp-hom-indiscrete-Precategory {x} {y} {z}) - pr1 is-unital-composition-operation-indiscrete-Precategory x = - id-hom-indiscrete-Precategory {x} - pr1 (pr2 is-unital-composition-operation-indiscrete-Precategory) {x} {y} = - left-unit-law-comp-hom-indiscrete-Precategory {x} {y} - pr2 (pr2 is-unital-composition-operation-indiscrete-Precategory) {x} {y} = - right-unit-law-comp-hom-indiscrete-Precategory {x} {y} - - indiscrete-Precategory : Precategory l lzero - pr1 indiscrete-Precategory = obj-indiscrete-Precategory X - pr1 (pr2 indiscrete-Precategory) = hom-set-indiscrete-Precategory X - pr1 (pr2 (pr2 indiscrete-Precategory)) = - associative-composition-operation-indiscrete-Precategory - pr2 (pr2 (pr2 indiscrete-Precategory)) = - is-unital-composition-operation-indiscrete-Precategory + ( λ x → id-hom-indiscrete-Precategory {x}) + ( λ {x} {y} {z} {w} → + associative-comp-hom-indiscrete-Precategory {x} {y} {z} {w}) + ( λ {x} {y} → left-unit-law-comp-hom-indiscrete-Precategory {x} {y}) + ( λ {x} {y} → right-unit-law-comp-hom-indiscrete-Precategory {x} {y}) ``` #### The pregroupoid structure of the indiscrete precategory associated to a type diff --git a/src/category-theory/initial-category.lagda.md b/src/category-theory/initial-category.lagda.md index b0976ba941..14a42fb3f9 100644 --- a/src/category-theory/initial-category.lagda.md +++ b/src/category-theory/initial-category.lagda.md @@ -51,25 +51,42 @@ hom-initial-Category x y = type-Set (hom-set-initial-Category x y) ### The underlying precategory of the initial category ```agda -comp-hom-initial-Category = - comp-hom-indiscrete-Precategory empty - -associative-comp-hom-initial-Category = - associative-comp-hom-indiscrete-Precategory empty - -associative-composition-operation-initial-Category = - associative-composition-operation-indiscrete-Precategory empty - -id-hom-initial-Category = id-hom-indiscrete-Precategory empty - -left-unit-law-comp-hom-initial-Category = - left-unit-law-comp-hom-indiscrete-Precategory empty - -right-unit-law-comp-hom-initial-Category = - right-unit-law-comp-hom-indiscrete-Precategory empty - -is-unital-composition-operation-initial-Category = - is-unital-composition-operation-indiscrete-Precategory empty +comp-hom-initial-Category : + {x y z : obj-initial-Category} → + hom-initial-Category y z → hom-initial-Category x y → hom-initial-Category x z +comp-hom-initial-Category {x} {y} {z} = + comp-hom-indiscrete-Precategory empty {x} {y} {z} + +associative-comp-hom-initial-Category : + {x y z w : obj-initial-Category} + (h : hom-initial-Category z w) + (g : hom-initial-Category y z) + (f : hom-initial-Category x y) → + comp-hom-initial-Category {x} {y} {w} + ( comp-hom-initial-Category {y} {z} {w} h g) + ( f) = + comp-hom-initial-Category {x} {z} {w} + ( h) + ( comp-hom-initial-Category {x} {y} {z} g f) +associative-comp-hom-initial-Category {x} {y} {z} {w} = + associative-comp-hom-indiscrete-Precategory empty {x} {y} {z} {w} + +id-hom-initial-Category : {x : obj-initial-Category} → hom-initial-Category x x +id-hom-initial-Category {x} = id-hom-indiscrete-Precategory empty {x} + +left-unit-law-comp-hom-initial-Category : + {x y : obj-initial-Category} + (f : hom-initial-Category x y) → + comp-hom-initial-Category {x} {y} {y} (id-hom-initial-Category {y}) f = f +left-unit-law-comp-hom-initial-Category {x} {y} = + left-unit-law-comp-hom-indiscrete-Precategory empty {x} {y} + +right-unit-law-comp-hom-initial-Category : + {x y : obj-initial-Category} + (f : hom-initial-Category x y) → + comp-hom-initial-Category {x} {x} {y} f (id-hom-initial-Category {x}) = f +right-unit-law-comp-hom-initial-Category {x} {y} = + right-unit-law-comp-hom-indiscrete-Precategory empty {x} {y} initial-Precategory : Precategory lzero lzero initial-Precategory = indiscrete-Precategory empty diff --git a/src/category-theory/large-categories.lagda.md b/src/category-theory/large-categories.lagda.md index c391818c5e..b798eee311 100644 --- a/src/category-theory/large-categories.lagda.md +++ b/src/category-theory/large-categories.lagda.md @@ -18,6 +18,7 @@ open import foundation.equivalences open import foundation.homotopies open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -117,7 +118,7 @@ module _ id-hom-Large-Category = id-hom-Large-Precategory (large-precategory-Large-Category C) - associative-comp-hom-Large-Category : + involutive-eq-associative-comp-hom-Large-Category : {l1 l2 l3 l4 : Level} {X : obj-Large-Category l1} {Y : obj-Large-Category l2} @@ -126,12 +127,13 @@ module _ (h : hom-Large-Category Z W) (g : hom-Large-Category Y Z) (f : hom-Large-Category X Y) → - ( comp-hom-Large-Category (comp-hom-Large-Category h g) f) = + ( comp-hom-Large-Category (comp-hom-Large-Category h g) f) =ⁱ ( comp-hom-Large-Category h (comp-hom-Large-Category g f)) - associative-comp-hom-Large-Category = - associative-comp-hom-Large-Precategory (large-precategory-Large-Category C) + involutive-eq-associative-comp-hom-Large-Category = + involutive-eq-associative-comp-hom-Large-Precategory + ( large-precategory-Large-Category C) - inv-associative-comp-hom-Large-Category : + associative-comp-hom-Large-Category : {l1 l2 l3 l4 : Level} {X : obj-Large-Category l1} {Y : obj-Large-Category l2} @@ -140,11 +142,10 @@ module _ (h : hom-Large-Category Z W) (g : hom-Large-Category Y Z) (f : hom-Large-Category X Y) → - ( comp-hom-Large-Category h (comp-hom-Large-Category g f)) = - ( comp-hom-Large-Category (comp-hom-Large-Category h g) f) - inv-associative-comp-hom-Large-Category = - inv-associative-comp-hom-Large-Precategory - ( large-precategory-Large-Category C) + ( comp-hom-Large-Category (comp-hom-Large-Category h g) f) = + ( comp-hom-Large-Category h (comp-hom-Large-Category g f)) + associative-comp-hom-Large-Category = + associative-comp-hom-Large-Precategory (large-precategory-Large-Category C) left-unit-law-comp-hom-Large-Category : {l1 l2 : Level} diff --git a/src/category-theory/large-function-categories.lagda.md b/src/category-theory/large-function-categories.lagda.md index 9d133cf142..dedadafc7f 100644 --- a/src/category-theory/large-function-categories.lagda.md +++ b/src/category-theory/large-function-categories.lagda.md @@ -14,6 +14,7 @@ open import category-theory.large-categories open import foundation.equivalences open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -22,8 +23,9 @@ open import foundation.universe-levels ## Idea Given a type `I` and a [large category](category-theory.large-categories.md) -`C`, the **large function category** `Cᴵ` consists of `I`-indexed families of -objects of `C` and `I`-indexed familis of morphisms between them. +`C`, the {{#concept "large function category" Agda=Large-Function-Category}} +`Cᴵ` consists of `I`-indexed families of objects of `C` and `I`-indexed families +of morphisms between them. ## Definition @@ -83,7 +85,7 @@ module _ associative-comp-hom-Large-Function-Category = associative-comp-hom-Π-Large-Category I (λ _ → C) - inv-associative-comp-hom-Large-Function-Category : + involutive-eq-associative-comp-hom-Large-Function-Category : {l2 l3 l4 l5 : Level} {x : obj-Large-Function-Category l2} {y : obj-Large-Function-Category l3} @@ -92,10 +94,14 @@ module _ (h : hom-Large-Function-Category z w) (g : hom-Large-Function-Category y z) (f : hom-Large-Function-Category x y) → - comp-hom-Large-Function-Category h (comp-hom-Large-Function-Category g f) = - comp-hom-Large-Function-Category (comp-hom-Large-Function-Category h g) f - inv-associative-comp-hom-Large-Function-Category = - inv-associative-comp-hom-Π-Large-Category I (λ _ → C) + comp-hom-Large-Function-Category + ( comp-hom-Large-Function-Category h g) + ( f) =ⁱ + comp-hom-Large-Function-Category + ( h) + ( comp-hom-Large-Function-Category g f) + involutive-eq-associative-comp-hom-Large-Function-Category = + involutive-eq-associative-comp-hom-Π-Large-Category I (λ _ → C) id-hom-Large-Function-Category : {l2 : Level} {x : obj-Large-Function-Category l2} → diff --git a/src/category-theory/large-function-precategories.lagda.md b/src/category-theory/large-function-precategories.lagda.md index 1314c5319e..e7b592b608 100644 --- a/src/category-theory/large-function-precategories.lagda.md +++ b/src/category-theory/large-function-precategories.lagda.md @@ -14,6 +14,7 @@ open import category-theory.large-precategories open import foundation.equivalences open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -24,7 +25,7 @@ open import foundation.universe-levels Given a type `I` and a [large precategory](category-theory.large-precategories.md) `C`, the **large function pre-category** `Cᴵ` consists of `I`-indexed families of objects of `C` -and `I`-indexed familis of morphisms between them. +and `I`-indexed families of morphisms between them. ## Definition @@ -88,7 +89,7 @@ module _ associative-comp-hom-Large-Function-Precategory = associative-comp-hom-Π-Large-Precategory I (λ _ → C) - inv-associative-comp-hom-Large-Function-Precategory : + involutive-eq-associative-comp-hom-Large-Function-Precategory : {l2 l3 l4 l5 : Level} {x : obj-Large-Function-Precategory l2} {y : obj-Large-Function-Precategory l3} @@ -97,14 +98,14 @@ module _ (h : hom-Large-Function-Precategory z w) (g : hom-Large-Function-Precategory y z) (f : hom-Large-Function-Precategory x y) → - comp-hom-Large-Function-Precategory - ( h) - ( comp-hom-Large-Function-Precategory g f) = comp-hom-Large-Function-Precategory ( comp-hom-Large-Function-Precategory h g) - ( f) - inv-associative-comp-hom-Large-Function-Precategory = - inv-associative-comp-hom-Π-Large-Precategory I (λ _ → C) + ( f) =ⁱ + comp-hom-Large-Function-Precategory + ( h) + ( comp-hom-Large-Function-Precategory g f) + involutive-eq-associative-comp-hom-Large-Function-Precategory = + involutive-eq-associative-comp-hom-Π-Large-Precategory I (λ _ → C) id-hom-Large-Function-Precategory : {l2 : Level} {x : obj-Large-Function-Precategory l2} → diff --git a/src/category-theory/large-precategories.lagda.md b/src/category-theory/large-precategories.lagda.md index 837dbd4f09..da7bed345a 100644 --- a/src/category-theory/large-precategories.lagda.md +++ b/src/category-theory/large-precategories.lagda.md @@ -15,6 +15,7 @@ open import foundation.function-types open import foundation.homotopies open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -33,7 +34,6 @@ be done with Σ-types, we must use a record type.) ```agda record Large-Precategory (α : Level → Level) (β : Level → Level → Level) : UUω where - constructor make-Large-Precategory field obj-Large-Precategory : (l : Level) → UU (α l) @@ -44,59 +44,115 @@ record obj-Large-Precategory l2 → Set (β l1 l2) + hom-Large-Precategory : + {l1 l2 : Level} + (X : obj-Large-Precategory l1) + (Y : obj-Large-Precategory l2) → + UU (β l1 l2) + hom-Large-Precategory X Y = type-Set (hom-set-Large-Precategory X Y) + + is-set-hom-Large-Precategory : + {l1 l2 : Level} + (X : obj-Large-Precategory l1) + (Y : obj-Large-Precategory l2) → + is-set (hom-Large-Precategory X Y) + is-set-hom-Large-Precategory X Y = + is-set-type-Set (hom-set-Large-Precategory X Y) + + field comp-hom-Large-Precategory : {l1 l2 l3 : Level} {X : obj-Large-Precategory l1} {Y : obj-Large-Precategory l2} {Z : obj-Large-Precategory l3} → - type-Set (hom-set-Large-Precategory Y Z) → - type-Set (hom-set-Large-Precategory X Y) → - type-Set (hom-set-Large-Precategory X Z) + hom-Large-Precategory Y Z → + hom-Large-Precategory X Y → + hom-Large-Precategory X Z id-hom-Large-Precategory : {l1 : Level} {X : obj-Large-Precategory l1} → - type-Set (hom-set-Large-Precategory X X) + hom-Large-Precategory X X - associative-comp-hom-Large-Precategory : + involutive-eq-associative-comp-hom-Large-Precategory : {l1 l2 l3 l4 : Level} {X : obj-Large-Precategory l1} {Y : obj-Large-Precategory l2} {Z : obj-Large-Precategory l3} {W : obj-Large-Precategory l4} → - (h : type-Set (hom-set-Large-Precategory Z W)) - (g : type-Set (hom-set-Large-Precategory Y Z)) - (f : type-Set (hom-set-Large-Precategory X Y)) → - ( comp-hom-Large-Precategory (comp-hom-Large-Precategory h g) f) = + (h : hom-Large-Precategory Z W) + (g : hom-Large-Precategory Y Z) + (f : hom-Large-Precategory X Y) → + ( comp-hom-Large-Precategory (comp-hom-Large-Precategory h g) f) =ⁱ ( comp-hom-Large-Precategory h (comp-hom-Large-Precategory g f)) - inv-associative-comp-hom-Large-Precategory : - {l1 l2 l3 l4 : Level} - {X : obj-Large-Precategory l1} - {Y : obj-Large-Precategory l2} - {Z : obj-Large-Precategory l3} - {W : obj-Large-Precategory l4} → - (h : type-Set (hom-set-Large-Precategory Z W)) - (g : type-Set (hom-set-Large-Precategory Y Z)) - (f : type-Set (hom-set-Large-Precategory X Y)) → - ( comp-hom-Large-Precategory h (comp-hom-Large-Precategory g f)) = - ( comp-hom-Large-Precategory (comp-hom-Large-Precategory h g) f) - left-unit-law-comp-hom-Large-Precategory : {l1 l2 : Level} {X : obj-Large-Precategory l1} {Y : obj-Large-Precategory l2} - (f : type-Set (hom-set-Large-Precategory X Y)) → + (f : hom-Large-Precategory X Y) → ( comp-hom-Large-Precategory id-hom-Large-Precategory f) = f right-unit-law-comp-hom-Large-Precategory : {l1 l2 : Level} {X : obj-Large-Precategory l1} {Y : obj-Large-Precategory l2} - (f : type-Set (hom-set-Large-Precategory X Y)) → + (f : hom-Large-Precategory X Y) → ( comp-hom-Large-Precategory f id-hom-Large-Precategory) = f + associative-comp-hom-Large-Precategory : + {l1 l2 l3 l4 : Level} + {X : obj-Large-Precategory l1} + {Y : obj-Large-Precategory l2} + {Z : obj-Large-Precategory l3} + {W : obj-Large-Precategory l4} → + (h : hom-Large-Precategory Z W) + (g : hom-Large-Precategory Y Z) + (f : hom-Large-Precategory X Y) → + ( comp-hom-Large-Precategory (comp-hom-Large-Precategory h g) f) = + ( comp-hom-Large-Precategory h (comp-hom-Large-Precategory g f)) + associative-comp-hom-Large-Precategory h g f = + eq-involutive-eq + ( involutive-eq-associative-comp-hom-Large-Precategory h g f) + open Large-Precategory public + +make-Large-Precategory : + {α : Level → Level} {β : Level → Level → Level} + ( obj : (l : Level) → UU (α l)) + ( hom-set : {l1 l2 : Level} → obj l1 → obj l2 → Set (β l1 l2)) + ( _∘_ : + {l1 l2 l3 : Level} + {X : obj l1} {Y : obj l2} {Z : obj l3} → + type-Set (hom-set Y Z) → type-Set (hom-set X Y) → type-Set (hom-set X Z)) + ( id : {l : Level} {X : obj l} → type-Set (hom-set X X)) + ( assoc-comp-hom : + {l1 l2 l3 l4 : Level} + {X : obj l1} {Y : obj l2} {Z : obj l3} {W : obj l4} + (h : type-Set (hom-set Z W)) + (g : type-Set (hom-set Y Z)) + (f : type-Set (hom-set X Y)) → + ( (h ∘ g) ∘ f) = ( h ∘ (g ∘ f))) + ( left-unit-comp-hom : + {l1 l2 : Level} {X : obj l1} {Y : obj l2} (f : type-Set (hom-set X Y)) → + id ∘ f = f) + ( right-unit-comp-hom : + {l1 l2 : Level} {X : obj l1} {Y : obj l2} (f : type-Set (hom-set X Y)) → + f ∘ id = f) → + Large-Precategory α β +make-Large-Precategory + obj hom-set _∘_ id assoc-comp-hom left-unit-comp-hom right-unit-comp-hom = + λ where + .obj-Large-Precategory → obj + .hom-set-Large-Precategory → hom-set + .comp-hom-Large-Precategory → _∘_ + .id-hom-Large-Precategory → id + .involutive-eq-associative-comp-hom-Large-Precategory h g f → + involutive-eq-eq (assoc-comp-hom h g f) + .left-unit-law-comp-hom-Large-Precategory → left-unit-comp-hom + .right-unit-law-comp-hom-Large-Precategory → right-unit-comp-hom + +{-# INLINE make-Large-Precategory #-} ``` ```agda @@ -106,28 +162,13 @@ module _ (C : Large-Precategory α β) where - hom-Large-Precategory : - {l1 l2 : Level} - (X : obj-Large-Precategory C l1) - (Y : obj-Large-Precategory C l2) → - UU (β l1 l2) - hom-Large-Precategory X Y = type-Set (hom-set-Large-Precategory C X Y) - - is-set-hom-Large-Precategory : - {l1 l2 : Level} - (X : obj-Large-Precategory C l1) - (Y : obj-Large-Precategory C l2) → - is-set (hom-Large-Precategory X Y) - is-set-hom-Large-Precategory X Y = - is-set-type-Set (hom-set-Large-Precategory C X Y) - ap-comp-hom-Large-Precategory : {l1 l2 l3 : Level} {X : obj-Large-Precategory C l1} {Y : obj-Large-Precategory C l2} {Z : obj-Large-Precategory C l3} - {g g' : hom-Large-Precategory Y Z} (p : g = g') - {f f' : hom-Large-Precategory X Y} (q : f = f') → + {g g' : hom-Large-Precategory C Y Z} (p : g = g') + {f f' : hom-Large-Precategory C X Y} (q : f = f') → comp-hom-Large-Precategory C g f = comp-hom-Large-Precategory C g' f' ap-comp-hom-Large-Precategory = ap-binary (comp-hom-Large-Precategory C) @@ -137,9 +178,9 @@ module _ {X : obj-Large-Precategory C l1} {Y : obj-Large-Precategory C l2} {Z : obj-Large-Precategory C l3} → - hom-Large-Precategory X Y → - hom-Large-Precategory Y Z → - hom-Large-Precategory X Z + hom-Large-Precategory C X Y → + hom-Large-Precategory C Y Z → + hom-Large-Precategory C X Z comp-hom-Large-Precategory' f g = comp-hom-Large-Precategory C g f ``` @@ -159,10 +200,8 @@ module _ hom-set-Large-Precategory C pr1 (pr1 (pr2 (pr2 (precategory-Large-Precategory l)))) = comp-hom-Large-Precategory C - pr1 (pr2 (pr1 (pr2 (pr2 (precategory-Large-Precategory l)))) h g f) = - associative-comp-hom-Large-Precategory C h g f - pr2 (pr2 (pr1 (pr2 (pr2 (precategory-Large-Precategory l)))) h g f) = - inv-associative-comp-hom-Large-Precategory C h g f + pr2 (pr1 (pr2 (pr2 (precategory-Large-Precategory l)))) = + involutive-eq-associative-comp-hom-Large-Precategory C pr1 (pr2 (pr2 (pr2 (precategory-Large-Precategory l)))) x = id-hom-Large-Precategory C pr1 (pr2 (pr2 (pr2 (pr2 (precategory-Large-Precategory l))))) = diff --git a/src/category-theory/large-subprecategories.lagda.md b/src/category-theory/large-subprecategories.lagda.md index efeeebbc58..935a5ad81c 100644 --- a/src/category-theory/large-subprecategories.lagda.md +++ b/src/category-theory/large-subprecategories.lagda.md @@ -9,6 +9,10 @@ module category-theory.large-subprecategories where ```agda open import category-theory.large-precategories +open import foundation.dependent-pair-types +open import foundation.identity-types +open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -35,62 +39,196 @@ of the objects of `C` indexed by universe levels, and a family of subtypes `P₁ of the morphisms of `C`, such that `P₁` contains all identity morphisms of objects in `P₀` and is closed under composition. -## Definition +## Definitions ### Large subprecategories ```agda -module _ - {α : Level → Level} {β : Level → Level → Level} - (γ : Level → Level) (δ : Level → Level → Level) - (C : Large-Precategory α β) - where - - record - Large-Subprecategory : UUω - where - field - subtype-obj-Large-Subprecategory : - (l : Level) → subtype (γ l) (obj-Large-Precategory C l) - subtype-hom-Large-Subprecategory : - {l1 l2 : Level} - (X : obj-Large-Precategory C l1) (Y : obj-Large-Precategory C l2) → - is-in-subtype (subtype-obj-Large-Subprecategory l1) X → - is-in-subtype (subtype-obj-Large-Subprecategory l2) Y → - subtype (β l1 l2) (hom-Large-Precategory C X Y) - contains-id-Large-Subprecategory : - {l1 : Level} (X : obj-Large-Precategory C l1) → - (H : is-in-subtype (subtype-obj-Large-Subprecategory l1) X) → - is-in-subtype - ( subtype-hom-Large-Subprecategory X X H H) - ( id-hom-Large-Precategory C) - is-closed-under-composition-Large-Subprecategory : - {l1 l2 l3 : Level} - (X : obj-Large-Precategory C l1) - (Y : obj-Large-Precategory C l2) - (Z : obj-Large-Precategory C l3) - (g : hom-Large-Precategory C Y Z) - (f : hom-Large-Precategory C X Y) → - (K : is-in-subtype (subtype-obj-Large-Subprecategory l1) X) → - (L : is-in-subtype (subtype-obj-Large-Subprecategory l2) Y) → - (M : is-in-subtype (subtype-obj-Large-Subprecategory l3) Z) → - is-in-subtype (subtype-hom-Large-Subprecategory Y Z L M) g → - is-in-subtype (subtype-hom-Large-Subprecategory X Y K L) f → - is-in-subtype - ( subtype-hom-Large-Subprecategory X Z K M) - ( comp-hom-Large-Precategory C g f) - - open Large-Subprecategory public - -module _ - {α : Level → Level} {β : Level → Level → Level} - {γ : Level → Level} {δ : Level → Level → Level} - (C : Large-Precategory α β) - (P : Large-Subprecategory γ δ C) +record + Large-Subprecategory + {α : Level → Level} {β : Level → Level → Level} + (γ : Level → Level) (δ : Level → Level → Level) + (C : Large-Precategory α β) : UUω where + field + subtype-obj-Large-Subprecategory : + (l : Level) → subtype (γ l) (obj-Large-Precategory C l) is-in-obj-Large-Subprecategory : {l : Level} → obj-Large-Precategory C l → UU (γ l) - is-in-obj-Large-Subprecategory = - is-in-subtype (subtype-obj-Large-Subprecategory P _) + is-in-obj-Large-Subprecategory {l} = + is-in-subtype (subtype-obj-Large-Subprecategory l) + + obj-Large-Subprecategory : + (l : Level) → UU (α l ⊔ γ l) + obj-Large-Subprecategory l = type-subtype (subtype-obj-Large-Subprecategory l) + + field + subtype-hom-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Precategory C l1) + (Y : obj-Large-Precategory C l2) → + is-in-obj-Large-Subprecategory X → + is-in-obj-Large-Subprecategory Y → + subtype (δ l1 l2) (hom-Large-Precategory C X Y) + + is-in-hom-is-in-obj-Large-Subprecategory : + {l1 l2 : Level} + {X : obj-Large-Precategory C l1} + {Y : obj-Large-Precategory C l2} + (x : is-in-obj-Large-Subprecategory X) + (y : is-in-obj-Large-Subprecategory Y) → + hom-Large-Precategory C X Y → UU (δ l1 l2) + is-in-hom-is-in-obj-Large-Subprecategory {l1} {l2} {X} {Y} x y = + is-in-subtype (subtype-hom-Large-Subprecategory X Y x y) + + field + contains-id-Large-Subprecategory : + {l : Level} (X : obj-Large-Precategory C l) → + (H : is-in-obj-Large-Subprecategory X) → + is-in-hom-is-in-obj-Large-Subprecategory H H (id-hom-Large-Precategory C) + + is-closed-under-composition-Large-Subprecategory : + {l1 l2 l3 : Level} + (X : obj-Large-Precategory C l1) + (Y : obj-Large-Precategory C l2) + (Z : obj-Large-Precategory C l3) + (g : hom-Large-Precategory C Y Z) + (f : hom-Large-Precategory C X Y) → + (K : is-in-obj-Large-Subprecategory X) → + (L : is-in-obj-Large-Subprecategory Y) → + (M : is-in-obj-Large-Subprecategory Z) → + is-in-hom-is-in-obj-Large-Subprecategory L M g → + is-in-hom-is-in-obj-Large-Subprecategory K L f → + is-in-hom-is-in-obj-Large-Subprecategory K M + ( comp-hom-Large-Precategory C g f) + + hom-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) → UU (β l1 l2 ⊔ δ l1 l2) + hom-Large-Subprecategory (X , x) (Y , y) = + type-subtype (subtype-hom-Large-Subprecategory X Y x y) + + hom-set-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) → Set (β l1 l2 ⊔ δ l1 l2) + hom-set-Large-Subprecategory (X , x) (Y , y) = + set-subset + ( hom-set-Large-Precategory C X Y) + ( subtype-hom-Large-Subprecategory X Y x y) + + is-set-hom-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) → is-set (hom-Large-Subprecategory X Y) + is-set-hom-Large-Subprecategory X Y = + is-set-type-Set (hom-set-Large-Subprecategory X Y) + + id-hom-Large-Subprecategory : + {l : Level} (X : obj-Large-Subprecategory l) → + hom-Large-Subprecategory X X + id-hom-Large-Subprecategory (X , x) = + ( id-hom-Large-Precategory C , contains-id-Large-Subprecategory X x) + + comp-hom-Large-Subprecategory : + {l1 l2 l3 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) + (Z : obj-Large-Subprecategory l3) → + hom-Large-Subprecategory Y Z → + hom-Large-Subprecategory X Y → + hom-Large-Subprecategory X Z + comp-hom-Large-Subprecategory (X , x) (Y , y) (Z , z) (G , g) (F , f) = + ( comp-hom-Large-Precategory C G F , + is-closed-under-composition-Large-Subprecategory X Y Z G F x y z g f) + + associative-comp-hom-Large-Subprecategory : + {l1 l2 l3 l4 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) + (Z : obj-Large-Subprecategory l3) + (W : obj-Large-Subprecategory l4) + (h : hom-Large-Subprecategory Z W) + (g : hom-Large-Subprecategory Y Z) + (f : hom-Large-Subprecategory X Y) → + comp-hom-Large-Subprecategory X Y W + ( comp-hom-Large-Subprecategory Y Z W h g) + ( f) = + comp-hom-Large-Subprecategory X Z W + ( h) + ( comp-hom-Large-Subprecategory X Y Z g f) + associative-comp-hom-Large-Subprecategory + ( X , x) (Y , y) (Z , z) (W , w) (H , h) (G , g) (F , f) = + eq-type-subtype + ( subtype-hom-Large-Subprecategory X W x w) + ( associative-comp-hom-Large-Precategory C H G F) + + involutive-eq-associative-comp-hom-Large-Subprecategory : + {l1 l2 l3 l4 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) + (Z : obj-Large-Subprecategory l3) + (W : obj-Large-Subprecategory l4) + (h : hom-Large-Subprecategory Z W) + (g : hom-Large-Subprecategory Y Z) + (f : hom-Large-Subprecategory X Y) → + comp-hom-Large-Subprecategory X Y W + ( comp-hom-Large-Subprecategory Y Z W h g) + ( f) =ⁱ + comp-hom-Large-Subprecategory X Z W + ( h) + ( comp-hom-Large-Subprecategory X Y Z g f) + involutive-eq-associative-comp-hom-Large-Subprecategory + X Y Z W h g f = + involutive-eq-eq (associative-comp-hom-Large-Subprecategory X Y Z W h g f) + + left-unit-law-comp-hom-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) + (f : hom-Large-Subprecategory X Y) → + comp-hom-Large-Subprecategory X Y Y (id-hom-Large-Subprecategory Y) f = f + left-unit-law-comp-hom-Large-Subprecategory (X , x) (Y , y) (F , f) = + eq-type-subtype + ( subtype-hom-Large-Subprecategory X Y x y) + ( left-unit-law-comp-hom-Large-Precategory C F) + + right-unit-law-comp-hom-Large-Subprecategory : + {l1 l2 : Level} + (X : obj-Large-Subprecategory l1) + (Y : obj-Large-Subprecategory l2) + (f : hom-Large-Subprecategory X Y) → + comp-hom-Large-Subprecategory X X Y f (id-hom-Large-Subprecategory X) = f + right-unit-law-comp-hom-Large-Subprecategory (X , x) (Y , y) (F , f) = + eq-type-subtype + ( subtype-hom-Large-Subprecategory X Y x y) + ( right-unit-law-comp-hom-Large-Precategory C F) +``` + +### The underlying large precategory of a large subprecategory + +```agda + large-precategory-Large-Subprecategory : + Large-Precategory (λ l → α l ⊔ γ l) (λ l1 l2 → β l1 l2 ⊔ δ l1 l2) + large-precategory-Large-Subprecategory = + λ where + .obj-Large-Precategory → + obj-Large-Subprecategory + .hom-set-Large-Precategory → + hom-set-Large-Subprecategory + .comp-hom-Large-Precategory {X = X} {Y} {Z} → + comp-hom-Large-Subprecategory X Y Z + .id-hom-Large-Precategory {X = X} → + id-hom-Large-Subprecategory X + .involutive-eq-associative-comp-hom-Large-Precategory + {X = X} {Y} {Z} {W} → + involutive-eq-associative-comp-hom-Large-Subprecategory X Y Z W + .left-unit-law-comp-hom-Large-Precategory {X = X} {Y} → + left-unit-law-comp-hom-Large-Subprecategory X Y + .right-unit-law-comp-hom-Large-Precategory {X = X} {Y} → + right-unit-law-comp-hom-Large-Subprecategory X Y + +open Large-Subprecategory public ``` diff --git a/src/category-theory/natural-transformations-functors-from-small-to-large-precategories.lagda.md b/src/category-theory/natural-transformations-functors-from-small-to-large-precategories.lagda.md index f76793468d..bde1b382d5 100644 --- a/src/category-theory/natural-transformations-functors-from-small-to-large-precategories.lagda.md +++ b/src/category-theory/natural-transformations-functors-from-small-to-large-precategories.lagda.md @@ -19,6 +19,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -262,7 +263,7 @@ module _ ( map-functor-Small-Large-Precategory C D H) ( map-functor-Small-Large-Precategory C D I) - inv-associative-comp-natural-transformation-Small-Large-Precategory : + involutive-eq-associative-comp-natural-transformation-Small-Large-Precategory : {γF γG γH γI : Level} (F : functor-Small-Large-Precategory C D γF) (G : functor-Small-Large-Precategory C D γG) @@ -271,12 +272,15 @@ module _ (a : natural-transformation-Small-Large-Precategory C D F G) (b : natural-transformation-Small-Large-Precategory C D G H) (c : natural-transformation-Small-Large-Precategory C D H I) → - comp-natural-transformation-Small-Large-Precategory C D F H I c - ( comp-natural-transformation-Small-Large-Precategory C D F G H b a) = comp-natural-transformation-Small-Large-Precategory C D F G I - ( comp-natural-transformation-Small-Large-Precategory C D G H I c b) a - inv-associative-comp-natural-transformation-Small-Large-Precategory F G H I = - inv-associative-comp-natural-transformation-map-Small-Large-Precategory C D + ( comp-natural-transformation-Small-Large-Precategory C D G H I c b) a =ⁱ + comp-natural-transformation-Small-Large-Precategory C D F H I c + ( comp-natural-transformation-Small-Large-Precategory C D F G H b a) + involutive-eq-associative-comp-natural-transformation-Small-Large-Precategory + F G H I = + involutive-eq-associative-comp-natural-transformation-map-Small-Large-Precategory + ( C) + ( D) ( map-functor-Small-Large-Precategory C D F) ( map-functor-Small-Large-Precategory C D G) ( map-functor-Small-Large-Precategory C D H) diff --git a/src/category-theory/natural-transformations-functors-precategories.lagda.md b/src/category-theory/natural-transformations-functors-precategories.lagda.md index 2bb9c36a2c..75078505a6 100644 --- a/src/category-theory/natural-transformations-functors-precategories.lagda.md +++ b/src/category-theory/natural-transformations-functors-precategories.lagda.md @@ -21,6 +21,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -243,17 +244,17 @@ module _ ( map-functor-Precategory C D H) ( map-functor-Precategory C D I) - inv-associative-comp-natural-transformation-Precategory : + involutive-eq-associative-comp-natural-transformation-Precategory : (F G H I : functor-Precategory C D) (α : natural-transformation-Precategory C D F G) (β : natural-transformation-Precategory C D G H) (γ : natural-transformation-Precategory C D H I) → - comp-natural-transformation-Precategory C D F H I γ - ( comp-natural-transformation-Precategory C D F G H β α) = comp-natural-transformation-Precategory C D F G I - ( comp-natural-transformation-Precategory C D G H I γ β) α - inv-associative-comp-natural-transformation-Precategory F G H I = - inv-associative-comp-natural-transformation-map-Precategory C D + ( comp-natural-transformation-Precategory C D G H I γ β) α =ⁱ + comp-natural-transformation-Precategory C D F H I γ + ( comp-natural-transformation-Precategory C D F G H β α) + involutive-eq-associative-comp-natural-transformation-Precategory F G H I = + involutive-eq-associative-comp-natural-transformation-map-Precategory C D ( map-functor-Precategory C D F) ( map-functor-Precategory C D G) ( map-functor-Precategory C D H) diff --git a/src/category-theory/natural-transformations-maps-from-small-to-large-precategories.lagda.md b/src/category-theory/natural-transformations-maps-from-small-to-large-precategories.lagda.md index 41fade4d73..3158288d63 100644 --- a/src/category-theory/natural-transformations-maps-from-small-to-large-precategories.lagda.md +++ b/src/category-theory/natural-transformations-maps-from-small-to-large-precategories.lagda.md @@ -22,6 +22,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -343,7 +344,7 @@ module _ ( hom-natural-transformation-map-Small-Large-Precategory C D F G a x)) - inv-associative-comp-natural-transformation-map-Small-Large-Precategory : + involutive-eq-associative-comp-natural-transformation-map-Small-Large-Precategory : {γF γG γH γI : Level} (F : map-Small-Large-Precategory C D γF) (G : map-Small-Large-Precategory C D γG) @@ -352,22 +353,14 @@ module _ (a : natural-transformation-map-Small-Large-Precategory C D F G) (b : natural-transformation-map-Small-Large-Precategory C D G H) (c : natural-transformation-map-Small-Large-Precategory C D H I) → - comp-natural-transformation-map-Small-Large-Precategory C D F H I c - ( comp-natural-transformation-map-Small-Large-Precategory - C D F G H b a) = comp-natural-transformation-map-Small-Large-Precategory C D F G I ( comp-natural-transformation-map-Small-Large-Precategory C D G H I c b) - ( a) - inv-associative-comp-natural-transformation-map-Small-Large-Precategory + ( a) =ⁱ + comp-natural-transformation-map-Small-Large-Precategory C D F H I c + ( comp-natural-transformation-map-Small-Large-Precategory C D F G H b a) + involutive-eq-associative-comp-natural-transformation-map-Small-Large-Precategory F G H I a b c = - eq-htpy-hom-natural-transformation-map-Small-Large-Precategory - C D F I _ _ - ( λ x → - inv-associative-comp-hom-Large-Precategory D - ( hom-natural-transformation-map-Small-Large-Precategory - C D H I c x) - ( hom-natural-transformation-map-Small-Large-Precategory - C D G H b x) - ( hom-natural-transformation-map-Small-Large-Precategory - C D F G a x)) + involutive-eq-eq + ( associative-comp-natural-transformation-map-Small-Large-Precategory + F G H I a b c) ``` diff --git a/src/category-theory/natural-transformations-maps-precategories.lagda.md b/src/category-theory/natural-transformations-maps-precategories.lagda.md index 488f1fbf3e..757216ed17 100644 --- a/src/category-theory/natural-transformations-maps-precategories.lagda.md +++ b/src/category-theory/natural-transformations-maps-precategories.lagda.md @@ -21,6 +21,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -294,20 +295,17 @@ module _ ( hom-family-natural-transformation-map-Precategory C D G H β x) ( hom-family-natural-transformation-map-Precategory C D F G α x)) - inv-associative-comp-natural-transformation-map-Precategory : + involutive-eq-associative-comp-natural-transformation-map-Precategory : (F G H I : map-Precategory C D) (α : natural-transformation-map-Precategory C D F G) (β : natural-transformation-map-Precategory C D G H) (γ : natural-transformation-map-Precategory C D H I) → - comp-natural-transformation-map-Precategory C D F H I γ - ( comp-natural-transformation-map-Precategory C D F G H β α) = comp-natural-transformation-map-Precategory C D F G I - ( comp-natural-transformation-map-Precategory C D G H I γ β) α - inv-associative-comp-natural-transformation-map-Precategory F G H I α β γ = - eq-htpy-hom-family-natural-transformation-map-Precategory C D F I _ _ - ( λ x → - inv-associative-comp-hom-Precategory D - ( hom-family-natural-transformation-map-Precategory C D H I γ x) - ( hom-family-natural-transformation-map-Precategory C D G H β x) - ( hom-family-natural-transformation-map-Precategory C D F G α x)) + ( comp-natural-transformation-map-Precategory C D G H I γ β) α =ⁱ + comp-natural-transformation-map-Precategory C D F H I γ + ( comp-natural-transformation-map-Precategory C D F G H β α) + involutive-eq-associative-comp-natural-transformation-map-Precategory + F G H I α β γ = + involutive-eq-eq + ( associative-comp-natural-transformation-map-Precategory F G H I α β γ) ``` diff --git a/src/category-theory/nonunital-precategories.lagda.md b/src/category-theory/nonunital-precategories.lagda.md index 21f5ae93c3..32f4782eab 100644 --- a/src/category-theory/nonunital-precategories.lagda.md +++ b/src/category-theory/nonunital-precategories.lagda.md @@ -15,6 +15,7 @@ open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.truncated-types open import foundation.truncation-levels open import foundation.universe-levels @@ -24,10 +25,15 @@ open import foundation.universe-levels ## Idea -A **nonunital precategory** is a [precategory](category-theory.precategories.md) -that may not have identity maps. In other words, it is an associative +A {{#concept "nonunital precategory" Agda=Nonunital-Precategory}} is a +[precategory](category-theory.precategories.md) that may not have identity +morphisms. In other words, it is an associative [composition operation on binary families of sets](category-theory.composition-operations-on-binary-families-of-sets.md). -Such an object may also be called a **semiprecategory**. +Such a structure may also be referred to as a _semiprecategory_. + +Perhaps surprisingly, there is [at most one](foundation.subterminal-types.md) +way to equip nonunital precategories with identity morphisms, so precategories +form a [subtype](foundation-core.subtypes.md) of nonunital precategories. ## Definition @@ -94,15 +100,15 @@ module _ ( hom-set-Nonunital-Precategory) ( associative-composition-operation-Nonunital-Precategory) - inv-associative-comp-hom-Nonunital-Precategory : + involutive-eq-associative-comp-hom-Nonunital-Precategory : {x y z w : obj-Nonunital-Precategory} (h : hom-Nonunital-Precategory z w) (g : hom-Nonunital-Precategory y z) (f : hom-Nonunital-Precategory x y) → - comp-hom-Nonunital-Precategory h (comp-hom-Nonunital-Precategory g f) = - comp-hom-Nonunital-Precategory (comp-hom-Nonunital-Precategory h g) f - inv-associative-comp-hom-Nonunital-Precategory = - inv-witness-associative-composition-operation-binary-family-Set + comp-hom-Nonunital-Precategory (comp-hom-Nonunital-Precategory h g) f =ⁱ + comp-hom-Nonunital-Precategory h (comp-hom-Nonunital-Precategory g f) + involutive-eq-associative-comp-hom-Nonunital-Precategory = + involutive-eq-associative-composition-operation-binary-family-Set ( hom-set-Nonunital-Precategory) ( associative-composition-operation-Nonunital-Precategory) ``` diff --git a/src/category-theory/one-object-precategories.lagda.md b/src/category-theory/one-object-precategories.lagda.md index 376efd5dee..76dbd98741 100644 --- a/src/category-theory/one-object-precategories.lagda.md +++ b/src/category-theory/one-object-precategories.lagda.md @@ -7,7 +7,6 @@ module category-theory.one-object-precategories where
Imports ```agda -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.endomorphisms-in-precategories open import category-theory.precategories @@ -64,7 +63,7 @@ module _ hom-set-one-object-precategory-Monoid : unit → unit → Set l - hom-set-one-object-precategory-Monoid star star = set-Monoid M + hom-set-one-object-precategory-Monoid _ _ = set-Monoid M hom-one-object-precategory-Monoid : unit → unit → UU l @@ -76,7 +75,7 @@ module _ hom-one-object-precategory-Monoid y z → hom-one-object-precategory-Monoid x y → hom-one-object-precategory-Monoid x z - comp-hom-one-object-precategory-Monoid {star} {star} {star} = + comp-hom-one-object-precategory-Monoid = mul-Monoid M associative-comp-hom-one-object-precategory-Monoid : @@ -90,24 +89,12 @@ module _ comp-hom-one-object-precategory-Monoid ( h) ( comp-hom-one-object-precategory-Monoid g f) - associative-comp-hom-one-object-precategory-Monoid - {star} {star} {star} {star} = + associative-comp-hom-one-object-precategory-Monoid = associative-mul-Monoid M - associative-composition-operation-one-object-precategory-Monoid : - associative-composition-operation-binary-family-Set - hom-set-one-object-precategory-Monoid - pr1 associative-composition-operation-one-object-precategory-Monoid = - comp-hom-one-object-precategory-Monoid - pr2 associative-composition-operation-one-object-precategory-Monoid = - is-associative-witness-associative-composition-operation-binary-family-Set - ( hom-set-one-object-precategory-Monoid) - ( comp-hom-one-object-precategory-Monoid) - ( associative-comp-hom-one-object-precategory-Monoid) - id-hom-one-object-precategory-Monoid : (x : unit) → hom-one-object-precategory-Monoid x x - id-hom-one-object-precategory-Monoid star = unit-Monoid M + id-hom-one-object-precategory-Monoid _ = unit-Monoid M left-unit-law-comp-hom-one-object-precategory-Monoid : {x y : unit} (f : hom-one-object-precategory-Monoid x y) → @@ -115,7 +102,7 @@ module _ ( id-hom-one-object-precategory-Monoid y) ( f) = f - left-unit-law-comp-hom-one-object-precategory-Monoid {star} {star} = + left-unit-law-comp-hom-one-object-precategory-Monoid = left-unit-law-mul-Monoid M right-unit-law-comp-hom-one-object-precategory-Monoid : @@ -124,28 +111,19 @@ module _ ( f) ( id-hom-one-object-precategory-Monoid x) = f - right-unit-law-comp-hom-one-object-precategory-Monoid {star} {star} = + right-unit-law-comp-hom-one-object-precategory-Monoid = right-unit-law-mul-Monoid M - is-unital-composition-operation-one-object-precategory-Monoid : - is-unital-composition-operation-binary-family-Set - hom-set-one-object-precategory-Monoid - comp-hom-one-object-precategory-Monoid - pr1 is-unital-composition-operation-one-object-precategory-Monoid = - id-hom-one-object-precategory-Monoid - pr1 (pr2 is-unital-composition-operation-one-object-precategory-Monoid) = - left-unit-law-comp-hom-one-object-precategory-Monoid - pr2 (pr2 is-unital-composition-operation-one-object-precategory-Monoid) = - right-unit-law-comp-hom-one-object-precategory-Monoid - precategory-one-object-precategory-Monoid : Precategory lzero l - pr1 precategory-one-object-precategory-Monoid = unit - pr1 (pr2 precategory-one-object-precategory-Monoid) = - hom-set-one-object-precategory-Monoid - pr1 (pr2 (pr2 precategory-one-object-precategory-Monoid)) = - associative-composition-operation-one-object-precategory-Monoid - pr2 (pr2 (pr2 precategory-one-object-precategory-Monoid)) = - is-unital-composition-operation-one-object-precategory-Monoid + precategory-one-object-precategory-Monoid = + make-Precategory + ( unit) + ( hom-set-one-object-precategory-Monoid) + ( comp-hom-one-object-precategory-Monoid) + ( id-hom-one-object-precategory-Monoid) + ( associative-comp-hom-one-object-precategory-Monoid) + ( left-unit-law-comp-hom-one-object-precategory-Monoid) + ( right-unit-law-comp-hom-one-object-precategory-Monoid) one-object-precategory-Monoid : One-Object-Precategory lzero l pr1 one-object-precategory-Monoid = precategory-one-object-precategory-Monoid diff --git a/src/category-theory/opposite-categories.lagda.md b/src/category-theory/opposite-categories.lagda.md index 45be60417f..8eefb6735c 100644 --- a/src/category-theory/opposite-categories.lagda.md +++ b/src/category-theory/opposite-categories.lagda.md @@ -17,8 +17,8 @@ open import foundation.equivalences open import foundation.identity-types open import foundation.involutions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes -open import foundation.transport-along-identifications open import foundation.universe-levels ``` @@ -96,15 +96,16 @@ module _ associative-comp-hom-opposite-Category = associative-comp-hom-opposite-Precategory (precategory-Category C) - inv-associative-comp-hom-opposite-Category : + involutive-eq-associative-comp-hom-opposite-Category : {x y z w : obj-opposite-Category} (h : hom-opposite-Category z w) (g : hom-opposite-Category y z) (f : hom-opposite-Category x y) → - comp-hom-opposite-Category h (comp-hom-opposite-Category g f) = - comp-hom-opposite-Category (comp-hom-opposite-Category h g) f - inv-associative-comp-hom-opposite-Category = - inv-associative-comp-hom-opposite-Precategory (precategory-Category C) + comp-hom-opposite-Category (comp-hom-opposite-Category h g) f =ⁱ + comp-hom-opposite-Category h (comp-hom-opposite-Category g f) + involutive-eq-associative-comp-hom-opposite-Category = + involutive-eq-associative-comp-hom-opposite-Precategory + ( precategory-Category C) id-hom-opposite-Category : {x : obj-opposite-Category} → hom-opposite-Category x x diff --git a/src/category-theory/opposite-large-precategories.lagda.md b/src/category-theory/opposite-large-precategories.lagda.md index 817c81bc5d..3365e3523b 100644 --- a/src/category-theory/opposite-large-precategories.lagda.md +++ b/src/category-theory/opposite-large-precategories.lagda.md @@ -7,18 +7,15 @@ module category-theory.opposite-large-precategories where
Imports ```agda -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.isomorphisms-in-large-precategories open import category-theory.large-precategories open import foundation.dependent-pair-types -open import foundation.equality-dependent-pair-types open import foundation.equivalences open import foundation.homotopies open import foundation.identity-types -open import foundation.involutions -open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -64,7 +61,7 @@ module _ hom-opposite-Large-Precategory X Z comp-hom-opposite-Large-Precategory g f = comp-hom-Large-Precategory C f g - associative-comp-hom-opposite-Large-Precategory : + involutive-eq-associative-comp-hom-opposite-Large-Precategory : {l1 l2 l3 l4 : Level} {X : obj-opposite-Large-Precategory l1} {Y : obj-opposite-Large-Precategory l2} @@ -75,14 +72,14 @@ module _ (f : hom-opposite-Large-Precategory X Y) → comp-hom-opposite-Large-Precategory ( comp-hom-opposite-Large-Precategory h g) - ( f) = + ( f) =ⁱ comp-hom-opposite-Large-Precategory ( h) ( comp-hom-opposite-Large-Precategory g f) - associative-comp-hom-opposite-Large-Precategory h g f = - inv-associative-comp-hom-Large-Precategory C f g h + involutive-eq-associative-comp-hom-opposite-Large-Precategory h g f = + invⁱ (involutive-eq-associative-comp-hom-Large-Precategory C f g h) - inv-associative-comp-hom-opposite-Large-Precategory : + associative-comp-hom-opposite-Large-Precategory : {l1 l2 l3 l4 : Level} {X : obj-opposite-Large-Precategory l1} {Y : obj-opposite-Large-Precategory l2} @@ -91,14 +88,15 @@ module _ (h : hom-opposite-Large-Precategory Z W) (g : hom-opposite-Large-Precategory Y Z) (f : hom-opposite-Large-Precategory X Y) → - comp-hom-opposite-Large-Precategory - ( h) - ( comp-hom-opposite-Large-Precategory g f) = comp-hom-opposite-Large-Precategory ( comp-hom-opposite-Large-Precategory h g) - ( f) - inv-associative-comp-hom-opposite-Large-Precategory h g f = - associative-comp-hom-Large-Precategory C f g h + ( f) = + comp-hom-opposite-Large-Precategory + ( h) + ( comp-hom-opposite-Large-Precategory g f) + associative-comp-hom-opposite-Large-Precategory h g f = + eq-involutive-eq + ( involutive-eq-associative-comp-hom-opposite-Large-Precategory h g f) id-hom-opposite-Large-Precategory : {l1 : Level} {X : obj-opposite-Large-Precategory l1} → @@ -132,10 +130,9 @@ module _ comp-hom-opposite-Large-Precategory id-hom-Large-Precategory opposite-Large-Precategory = id-hom-opposite-Large-Precategory - associative-comp-hom-Large-Precategory opposite-Large-Precategory = - associative-comp-hom-opposite-Large-Precategory - inv-associative-comp-hom-Large-Precategory opposite-Large-Precategory = - inv-associative-comp-hom-opposite-Large-Precategory + involutive-eq-associative-comp-hom-Large-Precategory + opposite-Large-Precategory = + involutive-eq-associative-comp-hom-opposite-Large-Precategory left-unit-law-comp-hom-Large-Precategory opposite-Large-Precategory = left-unit-law-comp-hom-opposite-Large-Precategory right-unit-law-comp-hom-Large-Precategory opposite-Large-Precategory = diff --git a/src/category-theory/opposite-precategories.lagda.md b/src/category-theory/opposite-precategories.lagda.md index 142ddf7f2f..d349bfe93e 100644 --- a/src/category-theory/opposite-precategories.lagda.md +++ b/src/category-theory/opposite-precategories.lagda.md @@ -7,18 +7,16 @@ module category-theory.opposite-precategories where
Imports ```agda -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.isomorphisms-in-precategories open import category-theory.precategories open import foundation.dependent-pair-types -open import foundation.equality-dependent-pair-types open import foundation.equivalences open import foundation.homotopies open import foundation.identity-types open import foundation.involutions -open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -54,35 +52,26 @@ module _ hom-opposite-Precategory x z comp-hom-opposite-Precategory g f = comp-hom-Precategory C f g - associative-comp-hom-opposite-Precategory : + involutive-eq-associative-comp-hom-opposite-Precategory : {x y z w : obj-opposite-Precategory} (h : hom-opposite-Precategory z w) (g : hom-opposite-Precategory y z) (f : hom-opposite-Precategory x y) → - ( comp-hom-opposite-Precategory (comp-hom-opposite-Precategory h g) f) = + ( comp-hom-opposite-Precategory (comp-hom-opposite-Precategory h g) f) =ⁱ ( comp-hom-opposite-Precategory h (comp-hom-opposite-Precategory g f)) - associative-comp-hom-opposite-Precategory h g f = - inv-witness-associative-composition-operation-binary-family-Set - ( hom-set-Precategory C) - ( associative-composition-operation-Precategory C) - ( f) - ( g) - ( h) - - inv-associative-comp-hom-opposite-Precategory : + involutive-eq-associative-comp-hom-opposite-Precategory h g f = + invⁱ (involutive-eq-associative-comp-hom-Precategory C f g h) + + associative-comp-hom-opposite-Precategory : {x y z w : obj-opposite-Precategory} (h : hom-opposite-Precategory z w) (g : hom-opposite-Precategory y z) (f : hom-opposite-Precategory x y) → - ( comp-hom-opposite-Precategory h (comp-hom-opposite-Precategory g f)) = - ( comp-hom-opposite-Precategory (comp-hom-opposite-Precategory h g) f) - inv-associative-comp-hom-opposite-Precategory h g f = - witness-associative-composition-operation-binary-family-Set - ( hom-set-Precategory C) - ( associative-composition-operation-Precategory C) - ( f) - ( g) - ( h) + ( comp-hom-opposite-Precategory (comp-hom-opposite-Precategory h g) f) = + ( comp-hom-opposite-Precategory h (comp-hom-opposite-Precategory g f)) + associative-comp-hom-opposite-Precategory h g f = + eq-involutive-eq + ( involutive-eq-associative-comp-hom-opposite-Precategory h g f) id-hom-opposite-Precategory : {x : obj-opposite-Precategory} → hom-opposite-Precategory x x @@ -105,10 +94,8 @@ module _ pr1 opposite-Precategory = obj-opposite-Precategory pr1 (pr2 opposite-Precategory) = hom-set-opposite-Precategory pr1 (pr1 (pr2 (pr2 opposite-Precategory))) = comp-hom-opposite-Precategory - pr1 (pr2 (pr1 (pr2 (pr2 opposite-Precategory))) h g f) = - associative-comp-hom-opposite-Precategory h g f - pr2 (pr2 (pr1 (pr2 (pr2 opposite-Precategory))) h g f) = - inv-associative-comp-hom-opposite-Precategory h g f + pr2 (pr1 (pr2 (pr2 opposite-Precategory))) = + involutive-eq-associative-comp-hom-opposite-Precategory pr1 (pr2 (pr2 (pr2 opposite-Precategory))) x = id-hom-opposite-Precategory {x} pr1 (pr2 (pr2 (pr2 (pr2 opposite-Precategory)))) = left-unit-law-comp-hom-opposite-Precategory diff --git a/src/category-theory/opposite-preunivalent-categories.lagda.md b/src/category-theory/opposite-preunivalent-categories.lagda.md index 18f52b4ff6..4ea17ae265 100644 --- a/src/category-theory/opposite-preunivalent-categories.lagda.md +++ b/src/category-theory/opposite-preunivalent-categories.lagda.md @@ -18,8 +18,8 @@ open import foundation.equivalences open import foundation.identity-types open import foundation.involutions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes -open import foundation.transport-along-identifications open import foundation.universe-levels ``` @@ -94,34 +94,34 @@ module _ comp-hom-opposite-Preunivalent-Category = comp-hom-opposite-Precategory (precategory-Preunivalent-Category C) - associative-comp-hom-opposite-Preunivalent-Category : + involutive-eq-associative-comp-hom-opposite-Preunivalent-Category : {x y z w : obj-opposite-Preunivalent-Category} (h : hom-opposite-Preunivalent-Category z w) (g : hom-opposite-Preunivalent-Category y z) (f : hom-opposite-Preunivalent-Category x y) → comp-hom-opposite-Preunivalent-Category ( comp-hom-opposite-Preunivalent-Category h g) - ( f) = + ( f) =ⁱ comp-hom-opposite-Preunivalent-Category ( h) ( comp-hom-opposite-Preunivalent-Category g f) - associative-comp-hom-opposite-Preunivalent-Category = - associative-comp-hom-opposite-Precategory + involutive-eq-associative-comp-hom-opposite-Preunivalent-Category = + involutive-eq-associative-comp-hom-opposite-Precategory ( precategory-Preunivalent-Category C) - inv-associative-comp-hom-opposite-Preunivalent-Category : + associative-comp-hom-opposite-Preunivalent-Category : {x y z w : obj-opposite-Preunivalent-Category} (h : hom-opposite-Preunivalent-Category z w) (g : hom-opposite-Preunivalent-Category y z) (f : hom-opposite-Preunivalent-Category x y) → - comp-hom-opposite-Preunivalent-Category - ( h) - ( comp-hom-opposite-Preunivalent-Category g f) = comp-hom-opposite-Preunivalent-Category ( comp-hom-opposite-Preunivalent-Category h g) - ( f) - inv-associative-comp-hom-opposite-Preunivalent-Category = - inv-associative-comp-hom-opposite-Precategory + ( f) = + comp-hom-opposite-Preunivalent-Category + ( h) + ( comp-hom-opposite-Preunivalent-Category g f) + associative-comp-hom-opposite-Preunivalent-Category = + associative-comp-hom-opposite-Precategory ( precategory-Preunivalent-Category C) id-hom-opposite-Preunivalent-Category : diff --git a/src/category-theory/precategories.lagda.md b/src/category-theory/precategories.lagda.md index de63ac4bab..782ff09569 100644 --- a/src/category-theory/precategories.lagda.md +++ b/src/category-theory/precategories.lagda.md @@ -17,6 +17,7 @@ open import foundation.function-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.truncated-types open import foundation.truncation-levels open import foundation.universe-levels @@ -26,21 +27,38 @@ open import foundation.universe-levels ## Idea -A **precategory** in Homotopy Type Theory consists of: - -- a type `A` of objects, -- for each pair of objects `x y : A`, a [set](foundation-core.sets.md) of - morphisms `hom x y : Set`, together with a composition operation - `_∘_ : hom y z → hom x y → hom x z` such that: -- `(h ∘ g) ∘ f = h ∘ (g ∘ f)` for any morphisms `h : hom z w`, `g : hom y z` and - `f : hom x y`, -- for each object `x : A` there is a morphism `id_x : hom x x` such that - `id_x ∘ f = f` and `g ∘ id_x = g` for any morphisms `f : hom x y` and - `g : hom z x`. - -The reason this is called a *pre*category and not a category in Homotopy Type -Theory is that we want to reserve that name for precategories where the -identities between the objects are exactly the isomorphisms. +A {{#concept "precategory" Agda=Precategory}} `𝒞` in Homotopy Type Theory is the +structure of an associative and unital +[composition operation](category-theory.composition-operations-on-binary-families-of-sets.md) +on a binary familiy of sets. + +This means a precategory consists of: + +- **Objects.** A type `Ob 𝒞` of _objects_. +- **Morphisms.** For each pair of objects `x y : Ob 𝒞`, a + [set](foundation-core.sets.md) of _morphisms_ `hom 𝒞 x y : Set`. +- **Composition.** For every triple of objects `x y z : Ob 𝒞` there is a + _composition operation_ on morphisms + ```text + _∘_ : hom 𝒞 y z → hom 𝒞 x y → hom 𝒞 x z. + ``` +- **Associativity.** For every triple of composable morphisms, we have + ```text + (h ∘ g) ∘ f = h ∘ (g ∘ f). + ``` +- **Identity morphisms.** For every object `x : Ob 𝒞`, there is a distinguished + _identity_ morphism `id_x : hom 𝒞 x x`. +- **Unitality.** The identity morphisms are two-sided units for the composition + operation, meaning that for every `f : hom 𝒞 x y` we have + ```text + id_y ∘ f = f and f ∘ id_x = f. + ``` + +**Note.** The reason this is called a *pre*category and not a _category_ in +Homotopy Type Theory is that we reserve that name for precategories where the +[identity types](foundation-core.identity-types.md) of the type of objects are +characterized by the +[isomorphism sets](category-theory.isomorphisms-in-precategories.md). ## Definitions @@ -88,6 +106,34 @@ Precategory l1 l2 = ( hom-set) ( comp-hom)))) +make-Precategory : + { l1 l2 : Level} + ( obj : UU l1) + ( hom-set : obj → obj → Set l2) + ( _∘_ : composition-operation-binary-family-Set hom-set) + ( id : (x : obj) → type-Set (hom-set x x)) + ( assoc-comp-hom : + { x y z w : obj} → + ( h : type-Set (hom-set z w)) + ( g : type-Set (hom-set y z)) + ( f : type-Set (hom-set x y)) → + ( (h ∘ g) ∘ f = h ∘ (g ∘ f))) + ( left-unit-comp-hom : + { x y : obj} (f : type-Set (hom-set x y)) → id y ∘ f = f) + ( right-unit-comp-hom : + { x y : obj} (f : type-Set (hom-set x y)) → f ∘ id x = f) → + Precategory l1 l2 +make-Precategory + obj hom-set _∘_ id assoc-comp-hom left-unit-comp-hom right-unit-comp-hom = + ( ( obj) , + ( hom-set) , + ( _∘_ , (λ h g f → involutive-eq-eq (assoc-comp-hom h g f))) , + ( id) , + ( left-unit-comp-hom) , + ( right-unit-comp-hom)) + +{-# INLINE make-Precategory #-} + module _ {l1 l2 : Level} (C : Precategory l1 l2) where @@ -126,27 +172,27 @@ module _ hom-Precategory x z comp-hom-Precategory' f g = comp-hom-Precategory g f - associative-comp-hom-Precategory : + involutive-eq-associative-comp-hom-Precategory : {x y z w : obj-Precategory} (h : hom-Precategory z w) (g : hom-Precategory y z) (f : hom-Precategory x y) → - ( comp-hom-Precategory (comp-hom-Precategory h g) f) = + ( comp-hom-Precategory (comp-hom-Precategory h g) f) =ⁱ ( comp-hom-Precategory h (comp-hom-Precategory g f)) - associative-comp-hom-Precategory = - witness-associative-composition-operation-binary-family-Set + involutive-eq-associative-comp-hom-Precategory = + involutive-eq-associative-composition-operation-binary-family-Set ( hom-set-Precategory) ( associative-composition-operation-Precategory) - inv-associative-comp-hom-Precategory : + associative-comp-hom-Precategory : {x y z w : obj-Precategory} (h : hom-Precategory z w) (g : hom-Precategory y z) (f : hom-Precategory x y) → - ( comp-hom-Precategory h (comp-hom-Precategory g f)) = - ( comp-hom-Precategory (comp-hom-Precategory h g) f) - inv-associative-comp-hom-Precategory = - inv-witness-associative-composition-operation-binary-family-Set + ( comp-hom-Precategory (comp-hom-Precategory h g) f) = + ( comp-hom-Precategory h (comp-hom-Precategory g f)) + associative-comp-hom-Precategory = + witness-associative-composition-operation-binary-family-Set ( hom-set-Precategory) ( associative-composition-operation-Precategory) @@ -276,7 +322,7 @@ module _ - [Functors between precategories](category-theory.categories.md) are [structure](foundation.structure.md)-preserving maps of precategories. - [Large precategories](category-theory.large-precategories.md) are - precategories whose collection of objects form a large type. + precategories whose collections of objects and morphisms form large types. ## External links diff --git a/src/category-theory/precategory-of-elements-of-a-presheaf.lagda.md b/src/category-theory/precategory-of-elements-of-a-presheaf.lagda.md index 41a42dec87..2e36074e3f 100644 --- a/src/category-theory/precategory-of-elements-of-a-presheaf.lagda.md +++ b/src/category-theory/precategory-of-elements-of-a-presheaf.lagda.md @@ -15,7 +15,6 @@ open import category-theory.presheaf-categories open import foundation.action-on-identifications-functions open import foundation.category-of-sets open import foundation.dependent-pair-types -open import foundation.function-extensionality open import foundation.identity-types open import foundation.sets open import foundation.subtypes @@ -109,27 +108,6 @@ module _ ( comp-hom-precategory-of-elements-presheaf-Precategory g f)) ( associative-comp-hom-Precategory C (pr1 h) (pr1 g) (pr1 f)) - inv-associative-comp-hom-precategory-of-elements-presheaf-Precategory : - {X Y Z W : obj-precategory-of-elements-presheaf-Precategory} → - (h : hom-precategory-of-elements-presheaf-Precategory Z W) - (g : hom-precategory-of-elements-presheaf-Precategory Y Z) - (f : hom-precategory-of-elements-presheaf-Precategory X Y) → - comp-hom-precategory-of-elements-presheaf-Precategory - ( h) - ( comp-hom-precategory-of-elements-presheaf-Precategory g f) = - comp-hom-precategory-of-elements-presheaf-Precategory - ( comp-hom-precategory-of-elements-presheaf-Precategory h g) - ( f) - inv-associative-comp-hom-precategory-of-elements-presheaf-Precategory h g f = - eq-hom-precategory-of-elements-presheaf-Precategory - ( comp-hom-precategory-of-elements-presheaf-Precategory - ( h) - ( comp-hom-precategory-of-elements-presheaf-Precategory g f)) - ( comp-hom-precategory-of-elements-presheaf-Precategory - ( comp-hom-precategory-of-elements-presheaf-Precategory h g) - ( f)) - ( inv-associative-comp-hom-Precategory C (pr1 h) (pr1 g) (pr1 f)) - id-hom-precategory-of-elements-presheaf-Precategory : {X : obj-precategory-of-elements-presheaf-Precategory} → hom-precategory-of-elements-presheaf-Precategory X X @@ -169,24 +147,15 @@ module _ ( right-unit-law-comp-hom-Precategory C (pr1 f)) precategory-of-elements-presheaf-Precategory : Precategory (l1 ⊔ l3) (l2 ⊔ l3) - pr1 precategory-of-elements-presheaf-Precategory = - obj-precategory-of-elements-presheaf-Precategory - pr1 (pr2 precategory-of-elements-presheaf-Precategory) = - hom-set-precategory-of-elements-presheaf-Precategory - pr1 (pr1 (pr2 (pr2 precategory-of-elements-presheaf-Precategory))) = - comp-hom-precategory-of-elements-presheaf-Precategory - pr1 (pr2 (pr1 (pr2 (pr2 precategory-of-elements-presheaf-Precategory))) h g f) - = - associative-comp-hom-precategory-of-elements-presheaf-Precategory h g f - pr2 (pr2 (pr1 (pr2 (pr2 precategory-of-elements-presheaf-Precategory))) h g f) - = - inv-associative-comp-hom-precategory-of-elements-presheaf-Precategory h g f - pr1 (pr2 (pr2 (pr2 precategory-of-elements-presheaf-Precategory))) X = - id-hom-precategory-of-elements-presheaf-Precategory - pr1 (pr2 (pr2 (pr2 (pr2 precategory-of-elements-presheaf-Precategory)))) = - left-unit-law-comp-hom-precategory-of-elements-presheaf-Precategory - pr2 (pr2 (pr2 (pr2 (pr2 precategory-of-elements-presheaf-Precategory)))) = - right-unit-law-comp-hom-precategory-of-elements-presheaf-Precategory + precategory-of-elements-presheaf-Precategory = + make-Precategory + ( obj-precategory-of-elements-presheaf-Precategory) + ( hom-set-precategory-of-elements-presheaf-Precategory) + ( comp-hom-precategory-of-elements-presheaf-Precategory) + ( λ X → id-hom-precategory-of-elements-presheaf-Precategory {X}) + ( associative-comp-hom-precategory-of-elements-presheaf-Precategory) + ( left-unit-law-comp-hom-precategory-of-elements-presheaf-Precategory) + ( right-unit-law-comp-hom-precategory-of-elements-presheaf-Precategory) ``` ### The projection from the category of elements of a presheaf to the base category diff --git a/src/category-theory/precategory-of-functors-from-small-to-large-precategories.lagda.md b/src/category-theory/precategory-of-functors-from-small-to-large-precategories.lagda.md index b1527d41a3..6494609f6b 100644 --- a/src/category-theory/precategory-of-functors-from-small-to-large-precategories.lagda.md +++ b/src/category-theory/precategory-of-functors-from-small-to-large-precategories.lagda.md @@ -13,6 +13,7 @@ open import category-theory.natural-transformations-functors-from-small-to-large open import category-theory.precategories open import foundation.identity-types +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -78,7 +79,7 @@ module _ associative-comp-natural-transformation-Small-Large-Precategory C D F G H I f g h - inv-associative-comp-hom-functor-large-precategory-Small-Large-Precategory : + involutive-eq-associative-comp-hom-functor-large-precategory-Small-Large-Precategory : {γF γG γH γI : Level} {F : functor-Small-Large-Precategory C D γF} {G : functor-Small-Large-Precategory C D γG} @@ -87,15 +88,15 @@ module _ (h : natural-transformation-Small-Large-Precategory C D H I) (g : natural-transformation-Small-Large-Precategory C D G H) (f : natural-transformation-Small-Large-Precategory C D F G) → - comp-natural-transformation-Small-Large-Precategory C D F H I - ( h) - ( comp-natural-transformation-Small-Large-Precategory C D F G H g f) = comp-natural-transformation-Small-Large-Precategory C D F G I ( comp-natural-transformation-Small-Large-Precategory C D G H I h g) - ( f) - inv-associative-comp-hom-functor-large-precategory-Small-Large-Precategory + ( f) =ⁱ + comp-natural-transformation-Small-Large-Precategory C D F H I + ( h) + ( comp-natural-transformation-Small-Large-Precategory C D F G H g f) + involutive-eq-associative-comp-hom-functor-large-precategory-Small-Large-Precategory {F = F} {G} {H} {I} h g f = - inv-associative-comp-natural-transformation-Small-Large-Precategory + involutive-eq-associative-comp-natural-transformation-Small-Large-Precategory C D F G H I f g h id-hom-functor-large-precategory-Small-Large-Precategory : @@ -140,13 +141,9 @@ module _ id-hom-Large-Precategory functor-large-precategory-Small-Large-Precategory {X = F} = id-hom-functor-large-precategory-Small-Large-Precategory {F = F} - associative-comp-hom-Large-Precategory - functor-large-precategory-Small-Large-Precategory {X = F} {G} {H} {I} = - associative-comp-hom-functor-large-precategory-Small-Large-Precategory - { F = F} {G} {H} {I} - inv-associative-comp-hom-Large-Precategory + involutive-eq-associative-comp-hom-Large-Precategory functor-large-precategory-Small-Large-Precategory {X = F} {G} {H} {I} = - inv-associative-comp-hom-functor-large-precategory-Small-Large-Precategory + involutive-eq-associative-comp-hom-functor-large-precategory-Small-Large-Precategory { F = F} {G} {H} {I} left-unit-law-comp-hom-Large-Precategory functor-large-precategory-Small-Large-Precategory {X = F} {G} = diff --git a/src/category-theory/precategory-of-functors.lagda.md b/src/category-theory/precategory-of-functors.lagda.md index 3850b59294..9130ba3fe0 100644 --- a/src/category-theory/precategory-of-functors.lagda.md +++ b/src/category-theory/precategory-of-functors.lagda.md @@ -21,6 +21,7 @@ open import foundation.function-extensionality open import foundation.functoriality-dependent-pair-types open import foundation.identity-types open import foundation.propositions +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -67,20 +68,20 @@ module _ associative-comp-natural-transformation-Precategory C D F G H I f g h - inv-associative-comp-hom-functor-precategory-Precategory : + involutive-eq-associative-comp-hom-functor-precategory-Precategory : {F G H I : functor-Precategory C D} (h : natural-transformation-Precategory C D H I) (g : natural-transformation-Precategory C D G H) (f : natural-transformation-Precategory C D F G) → - comp-natural-transformation-Precategory C D F H I - ( h) - ( comp-natural-transformation-Precategory C D F G H g f) = comp-natural-transformation-Precategory C D F G I ( comp-natural-transformation-Precategory C D G H I h g) - ( f) - inv-associative-comp-hom-functor-precategory-Precategory + ( f) =ⁱ + comp-natural-transformation-Precategory C D F H I + ( h) + ( comp-natural-transformation-Precategory C D F G H g f) + involutive-eq-associative-comp-hom-functor-precategory-Precategory { F} {G} {H} {I} h g f = - inv-associative-comp-natural-transformation-Precategory + involutive-eq-associative-comp-natural-transformation-Precategory C D F G H I f g h associative-composition-operation-functor-precategory-Precategory : @@ -89,16 +90,10 @@ module _ pr1 associative-composition-operation-functor-precategory-Precategory {F} {G} {H} = comp-hom-functor-precategory-Precategory {F} {G} {H} - pr1 - ( pr2 - associative-composition-operation-functor-precategory-Precategory - { F} {G} {H} {I} h g f) = - associative-comp-hom-functor-precategory-Precategory {F} {G} {H} {I} h g f pr2 - ( pr2 - associative-composition-operation-functor-precategory-Precategory - { F} {G} {H} {I} h g f) = - inv-associative-comp-hom-functor-precategory-Precategory + associative-composition-operation-functor-precategory-Precategory + { F} {G} {H} {I} h g f = + involutive-eq-associative-comp-hom-functor-precategory-Precategory { F} {G} {H} {I} h g f id-hom-functor-precategory-Precategory : diff --git a/src/category-theory/precategory-of-maps-from-small-to-large-precategories.lagda.md b/src/category-theory/precategory-of-maps-from-small-to-large-precategories.lagda.md index 02cf9d0884..7c755df183 100644 --- a/src/category-theory/precategory-of-maps-from-small-to-large-precategories.lagda.md +++ b/src/category-theory/precategory-of-maps-from-small-to-large-precategories.lagda.md @@ -13,6 +13,7 @@ open import category-theory.natural-transformations-maps-from-small-to-large-pre open import category-theory.precategories open import foundation.identity-types +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -70,7 +71,7 @@ module _ associative-comp-natural-transformation-map-Small-Large-Precategory C D F G H I f g h - inv-associative-comp-hom-map-large-precategory-Small-Large-Precategory : + involutive-eq-associative-comp-hom-map-large-precategory-Small-Large-Precategory : {γF γG γH γI : Level} {F : map-Small-Large-Precategory C D γF} {G : map-Small-Large-Precategory C D γG} @@ -79,15 +80,15 @@ module _ (h : natural-transformation-map-Small-Large-Precategory C D H I) (g : natural-transformation-map-Small-Large-Precategory C D G H) (f : natural-transformation-map-Small-Large-Precategory C D F G) → - comp-natural-transformation-map-Small-Large-Precategory C D F H I - ( h) - ( comp-natural-transformation-map-Small-Large-Precategory C D F G H g f) = comp-natural-transformation-map-Small-Large-Precategory C D F G I ( comp-natural-transformation-map-Small-Large-Precategory C D G H I h g) - ( f) - inv-associative-comp-hom-map-large-precategory-Small-Large-Precategory + ( f) =ⁱ + comp-natural-transformation-map-Small-Large-Precategory C D F H I + ( h) + ( comp-natural-transformation-map-Small-Large-Precategory C D F G H g f) + involutive-eq-associative-comp-hom-map-large-precategory-Small-Large-Precategory {F = F} {G} {H} {I} h g f = - inv-associative-comp-natural-transformation-map-Small-Large-Precategory + involutive-eq-associative-comp-natural-transformation-map-Small-Large-Precategory C D F G H I f g h id-hom-map-large-precategory-Small-Large-Precategory : @@ -132,12 +133,9 @@ module _ comp-hom-map-large-precategory-Small-Large-Precategory id-hom-Large-Precategory map-large-precategory-Small-Large-Precategory = id-hom-map-large-precategory-Small-Large-Precategory - associative-comp-hom-Large-Precategory - map-large-precategory-Small-Large-Precategory = - associative-comp-hom-map-large-precategory-Small-Large-Precategory - inv-associative-comp-hom-Large-Precategory + involutive-eq-associative-comp-hom-Large-Precategory map-large-precategory-Small-Large-Precategory = - inv-associative-comp-hom-map-large-precategory-Small-Large-Precategory + involutive-eq-associative-comp-hom-map-large-precategory-Small-Large-Precategory left-unit-law-comp-hom-Large-Precategory map-large-precategory-Small-Large-Precategory = left-unit-law-comp-hom-map-large-precategory-Small-Large-Precategory diff --git a/src/category-theory/precategory-of-maps-precategories.lagda.md b/src/category-theory/precategory-of-maps-precategories.lagda.md index 5424b56506..bb248ce3b4 100644 --- a/src/category-theory/precategory-of-maps-precategories.lagda.md +++ b/src/category-theory/precategory-of-maps-precategories.lagda.md @@ -21,6 +21,7 @@ open import foundation.function-extensionality open import foundation.functoriality-dependent-pair-types open import foundation.identity-types open import foundation.propositions +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -67,19 +68,20 @@ module _ associative-comp-natural-transformation-map-Precategory C D F G H I f g h - inv-associative-comp-hom-map-precategory-Precategory : + involutive-eq-associative-comp-hom-map-precategory-Precategory : {F G H I : map-Precategory C D} (h : natural-transformation-map-Precategory C D H I) (g : natural-transformation-map-Precategory C D G H) (f : natural-transformation-map-Precategory C D F G) → - comp-natural-transformation-map-Precategory C D F H I - ( h) - ( comp-natural-transformation-map-Precategory C D F G H g f) = comp-natural-transformation-map-Precategory C D F G I ( comp-natural-transformation-map-Precategory C D G H I h g) - ( f) - inv-associative-comp-hom-map-precategory-Precategory {F} {G} {H} {I} h g f = - inv-associative-comp-natural-transformation-map-Precategory + ( f) =ⁱ + comp-natural-transformation-map-Precategory C D F H I + ( h) + ( comp-natural-transformation-map-Precategory C D F G H g f) + involutive-eq-associative-comp-hom-map-precategory-Precategory + { F} {G} {H} {I} h g f = + involutive-eq-associative-comp-natural-transformation-map-Precategory C D F G H I f g h associative-composition-operation-map-precategory-Precategory : @@ -88,16 +90,11 @@ module _ pr1 associative-composition-operation-map-precategory-Precategory {F} {G} {H} = comp-hom-map-precategory-Precategory {F} {G} {H} - pr1 - ( pr2 - associative-composition-operation-map-precategory-Precategory - { F} {G} {H} {I} h g f) = - associative-comp-hom-map-precategory-Precategory {F} {G} {H} {I} h g f pr2 - ( pr2 - associative-composition-operation-map-precategory-Precategory - { F} {G} {H} {I} h g f) = - inv-associative-comp-hom-map-precategory-Precategory {F} {G} {H} {I} h g f + associative-composition-operation-map-precategory-Precategory + {F} {G} {H} {I} h g f = + involutive-eq-associative-comp-hom-map-precategory-Precategory + { F} {G} {H} {I} h g f id-hom-map-precategory-Precategory : (F : map-Precategory C D) → natural-transformation-map-Precategory C D F F diff --git a/src/category-theory/pregroupoids.lagda.md b/src/category-theory/pregroupoids.lagda.md index baf074016f..e5cd73ad42 100644 --- a/src/category-theory/pregroupoids.lagda.md +++ b/src/category-theory/pregroupoids.lagda.md @@ -16,6 +16,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels ``` @@ -95,13 +96,13 @@ module _ associative-comp-hom-Pregroupoid = associative-comp-hom-Precategory precategory-Pregroupoid - inv-associative-comp-hom-Pregroupoid : + involutive-eq-associative-comp-hom-Pregroupoid : {x y z w : obj-Pregroupoid} (h : hom-Pregroupoid z w) (g : hom-Pregroupoid y z) (f : hom-Pregroupoid x y) → - comp-hom-Pregroupoid h (comp-hom-Pregroupoid g f) = - comp-hom-Pregroupoid (comp-hom-Pregroupoid h g) f - inv-associative-comp-hom-Pregroupoid = - inv-associative-comp-hom-Precategory precategory-Pregroupoid + comp-hom-Pregroupoid (comp-hom-Pregroupoid h g) f =ⁱ + comp-hom-Pregroupoid h (comp-hom-Pregroupoid g f) + involutive-eq-associative-comp-hom-Pregroupoid = + involutive-eq-associative-comp-hom-Precategory precategory-Pregroupoid left-unit-law-comp-hom-Pregroupoid : {x y : obj-Pregroupoid} (f : hom-Pregroupoid x y) → diff --git a/src/category-theory/presheaf-categories.lagda.md b/src/category-theory/presheaf-categories.lagda.md index 0327297765..1e61775687 100644 --- a/src/category-theory/presheaf-categories.lagda.md +++ b/src/category-theory/presheaf-categories.lagda.md @@ -23,6 +23,7 @@ open import foundation.function-types open import foundation.homotopies open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -209,7 +210,7 @@ module _ { Z} { W} - inv-associative-comp-hom-presheaf-Precategory : + involutive-eq-associative-comp-hom-presheaf-Precategory : {l3 l4 l5 l6 : Level} (X : presheaf-Precategory l3) (Y : presheaf-Precategory l4) @@ -218,16 +219,18 @@ module _ (h : hom-presheaf-Precategory Z W) (g : hom-presheaf-Precategory Y Z) (f : hom-presheaf-Precategory X Y) → - comp-hom-presheaf-Precategory X Z W - ( h) - ( comp-hom-presheaf-Precategory X Y Z g f) = comp-hom-presheaf-Precategory X Y W ( comp-hom-presheaf-Precategory Y Z W h g) - ( f) - inv-associative-comp-hom-presheaf-Precategory X Y Z W = - inv-associative-comp-hom-Large-Precategory - ( presheaf-large-precategory-Precategory) - { X = X} {Y} {Z} {W} + ( f) =ⁱ + comp-hom-presheaf-Precategory X Z W h + ( comp-hom-presheaf-Precategory X Y Z g f) + involutive-eq-associative-comp-hom-presheaf-Precategory X Y Z W = + involutive-eq-associative-comp-hom-Large-Category + ( presheaf-large-category-Precategory) + { X = X} + { Y} + { Z} + { W} left-unit-law-comp-hom-presheaf-Precategory : {l3 l4 : Level} diff --git a/src/category-theory/preunivalent-categories.lagda.md b/src/category-theory/preunivalent-categories.lagda.md index 7ce5890611..9f593f0cbe 100644 --- a/src/category-theory/preunivalent-categories.lagda.md +++ b/src/category-theory/preunivalent-categories.lagda.md @@ -18,6 +18,7 @@ open import foundation.embeddings open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels ``` @@ -120,15 +121,16 @@ module _ associative-comp-hom-Preunivalent-Category = associative-comp-hom-Precategory precategory-Preunivalent-Category - inv-associative-comp-hom-Preunivalent-Category : + involutive-eq-associative-comp-hom-Preunivalent-Category : {x y z w : obj-Preunivalent-Category} (h : hom-Preunivalent-Category z w) (g : hom-Preunivalent-Category y z) (f : hom-Preunivalent-Category x y) → - comp-hom-Preunivalent-Category h (comp-hom-Preunivalent-Category g f) = - comp-hom-Preunivalent-Category (comp-hom-Preunivalent-Category h g) f - inv-associative-comp-hom-Preunivalent-Category = - inv-associative-comp-hom-Precategory precategory-Preunivalent-Category + comp-hom-Preunivalent-Category (comp-hom-Preunivalent-Category h g) f =ⁱ + comp-hom-Preunivalent-Category h (comp-hom-Preunivalent-Category g f) + involutive-eq-associative-comp-hom-Preunivalent-Category = + involutive-eq-associative-comp-hom-Precategory + ( precategory-Preunivalent-Category) associative-composition-operation-Preunivalent-Category : associative-composition-operation-binary-family-Set diff --git a/src/category-theory/products-of-precategories.lagda.md b/src/category-theory/products-of-precategories.lagda.md index ea5d88bdc8..cb52fdd0e6 100644 --- a/src/category-theory/products-of-precategories.lagda.md +++ b/src/category-theory/products-of-precategories.lagda.md @@ -12,6 +12,7 @@ open import category-theory.precategories open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.equality-cartesian-product-types +open import foundation.identity-types open import foundation.sets open import foundation.universe-levels ``` @@ -20,11 +21,13 @@ open import foundation.universe-levels ## Idea -The **product** of two [precategories](category-theory.precategories.md) `C` and -`D` has as objects pairs `(x , y)`, for `x` in `obj-Precategory C` and `y` in -`obj-Precategory D`; and has a morphism `Hom (x , y) (x' , y)` for each pair of -morphisms `f : x → x'` and `g : y → y'`. Composition of morphisms is given by -composing each entry. +The +{{#concept "product" Disambiguation="of precategories" Agda=product-Precategory}} +of two [precategories](category-theory.precategories.md) `C` and `D` has as +objects [pairs](foundation-core.cartesian-product-types.md) `(x , y)`, where `x` +is an object of `C` and `y` is an object of `D`, and has as morphisms from +`(x , y)` to `(x' , y)` pairs `(f , g)` where `f : x → x'` in `C` and +`g : y → y'` in `D`. Composition of morphisms is given componentwise. ## Definition @@ -35,35 +38,73 @@ module _ (D : Precategory l3 l4) where - product-Precategory : - Precategory (l1 ⊔ l3) (l2 ⊔ l4) - pr1 product-Precategory = obj-Precategory C × obj-Precategory D - pr1 (pr2 product-Precategory) (x , y) (x' , y') = + obj-product-Precategory : UU (l1 ⊔ l3) + obj-product-Precategory = obj-Precategory C × obj-Precategory D + + hom-set-product-Precategory : + obj-product-Precategory → obj-product-Precategory → Set (l2 ⊔ l4) + hom-set-product-Precategory (x , y) (x' , y') = product-Set (hom-set-Precategory C x x') (hom-set-Precategory D y y') - pr1 (pr1 (pr1 (pr2 (pr2 product-Precategory))) (f' , g') (f , g)) = - comp-hom-Precategory C f' f - pr2 (pr1 (pr1 (pr2 (pr2 product-Precategory))) (f' , g') (f , g)) = - comp-hom-Precategory D g' g - pr1 - ( pr2 (pr1 (pr2 (pr2 product-Precategory))) (f'' , g'') (f' , g') (f , g)) = + + hom-product-Precategory : + obj-product-Precategory → obj-product-Precategory → UU (l2 ⊔ l4) + hom-product-Precategory p q = type-Set (hom-set-product-Precategory p q) + + is-set-hom-product-Precategory : + (p q : obj-product-Precategory) → is-set (hom-product-Precategory p q) + is-set-hom-product-Precategory p q = + is-set-type-Set (hom-set-product-Precategory p q) + + comp-hom-product-Precategory : + {p q r : obj-product-Precategory} + (g : hom-product-Precategory q r) + (f : hom-product-Precategory p q) → + hom-product-Precategory p r + comp-hom-product-Precategory (f' , g') (f , g) = + ( comp-hom-Precategory C f' f , comp-hom-Precategory D g' g) + + id-hom-product-Precategory : + {p : obj-product-Precategory} → hom-product-Precategory p p + id-hom-product-Precategory = id-hom-Precategory C , id-hom-Precategory D + + associative-comp-hom-product-Precategory : + {p q r s : obj-product-Precategory} + (h : hom-product-Precategory r s) + (g : hom-product-Precategory q r) + (f : hom-product-Precategory p q) → + comp-hom-product-Precategory (comp-hom-product-Precategory h g) f = + comp-hom-product-Precategory h (comp-hom-product-Precategory g f) + associative-comp-hom-product-Precategory (f'' , g'') (f' , g') (f , g) = eq-pair ( associative-comp-hom-Precategory C f'' f' f) ( associative-comp-hom-Precategory D g'' g' g) - pr2 - ( pr2 (pr1 (pr2 (pr2 product-Precategory))) (f'' , g'') (f' , g') (f , g)) = - eq-pair - ( inv-associative-comp-hom-Precategory C f'' f' f) - ( inv-associative-comp-hom-Precategory D g'' g' g) - pr1 (pr1 (pr2 (pr2 (pr2 product-Precategory))) (x , y)) = - id-hom-Precategory C {x} - pr2 (pr1 (pr2 (pr2 (pr2 product-Precategory))) (x , y)) = - id-hom-Precategory D {y} - pr1 (pr2 (pr2 (pr2 (pr2 product-Precategory)))) (f , g) = + + left-unit-law-comp-hom-product-Precategory : + {p q : obj-product-Precategory} + (f : hom-product-Precategory p q) → + comp-hom-product-Precategory id-hom-product-Precategory f = f + left-unit-law-comp-hom-product-Precategory (f , g) = eq-pair ( left-unit-law-comp-hom-Precategory C f) ( left-unit-law-comp-hom-Precategory D g) - pr2 (pr2 (pr2 (pr2 (pr2 product-Precategory)))) (f , g) = + + right-unit-law-comp-hom-product-Precategory : + {p q : obj-product-Precategory} + (f : hom-product-Precategory p q) → + comp-hom-product-Precategory f id-hom-product-Precategory = f + right-unit-law-comp-hom-product-Precategory (f , g) = eq-pair ( right-unit-law-comp-hom-Precategory C f) ( right-unit-law-comp-hom-Precategory D g) + + product-Precategory : Precategory (l1 ⊔ l3) (l2 ⊔ l4) + product-Precategory = + make-Precategory + ( obj-product-Precategory) + ( hom-set-product-Precategory) + ( comp-hom-product-Precategory) + ( λ x → id-hom-product-Precategory {x}) + ( associative-comp-hom-product-Precategory) + ( left-unit-law-comp-hom-product-Precategory) + ( right-unit-law-comp-hom-product-Precategory) ``` diff --git a/src/category-theory/pseudomonic-functors-precategories.lagda.md b/src/category-theory/pseudomonic-functors-precategories.lagda.md index fb87d82f14..8dacf40fbd 100644 --- a/src/category-theory/pseudomonic-functors-precategories.lagda.md +++ b/src/category-theory/pseudomonic-functors-precategories.lagda.md @@ -30,11 +30,13 @@ open import foundation.universe-levels ## Idea A [functor](category-theory.functors-precategories.md) between -[precategories](category-theory.precategories.md) `C` and `D` is **pseudomonic** +[precategories](category-theory.precategories.md) `C` and `D` is +{{#concept "pseudomonic" Disambiguation="functor between precategories" Agda=is-pseudomonic-functor-Precategory}} if it is [faithful](category-theory.faithful-functors-precategories.md) on all morphism-[sets](foundation-core.sets.md) and full on [isomorphisms](category-theory.isomorphisms-in-precategories.md). In particular, -this means it induces an equivalence on isomorphism-sets. +this means it induces an [equivalence](foundation-core.equivalences.md) on +isomorphism-sets. Pseudomonic functors present [replete subprecategories](category-theory.replete-subprecategories.md), which @@ -43,7 +45,7 @@ invariance under equivalences_. ## Definition -### The predicate of being full on isomorphisms +### The predicate on isomorphisms of being full ```agda module _ @@ -210,7 +212,7 @@ module _ map-equiv inv-equiv-iso-is-pseudomonic-functor-Precategory ``` -The previous entry records what is also known as "essential injectivivty". +The previous entry records what is also known as "essential injectivity". ```agda module _ @@ -247,7 +249,7 @@ module _ map-equiv inv-equiv-iso-pseudomonic-functor-Precategory ``` -The previous entry records what is also known as "essential injectivivty". +The previous entry records what is also known as "essential injectivity". ### Pseudomonic functors are conservative @@ -291,7 +293,7 @@ module _ - Pseudomonic functors present [replete subprecategories](category-theory.replete-subprecategories.md). -- [Fully faithful functors between precategories](category-theory.pseudomonic-functors-precategories.md) +- [Fully faithful functors between precategories](category-theory.fully-faithful-functors-precategories.md) ## External links diff --git a/src/category-theory/representing-arrow-category.lagda.md b/src/category-theory/representing-arrow-category.lagda.md index 6b9f51b389..ff5fd7b484 100644 --- a/src/category-theory/representing-arrow-category.lagda.md +++ b/src/category-theory/representing-arrow-category.lagda.md @@ -8,7 +8,6 @@ module category-theory.representing-arrow-category where ```agda open import category-theory.categories -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.isomorphisms-in-precategories open import category-theory.precategories @@ -77,30 +76,6 @@ associative-comp-hom-representing-arrow-Category refl associative-comp-hom-representing-arrow-Category {false} h g f = refl -inv-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} h (comp-hom-representing-arrow-Category {x} g f)) = - ( comp-hom-representing-arrow-Category - { x} (comp-hom-representing-arrow-Category {y} h g) f) -inv-associative-comp-hom-representing-arrow-Category - { true} {true} {true} {true} h g f = - refl -inv-associative-comp-hom-representing-arrow-Category {false} h g f = refl - -associative-composition-operation-representing-arrow-Category : - associative-composition-operation-binary-family-Set - ( hom-set-representing-arrow-Category) -pr1 associative-composition-operation-representing-arrow-Category {x} = - comp-hom-representing-arrow-Category {x} -pr1 (pr2 associative-composition-operation-representing-arrow-Category h g f) = - associative-comp-hom-representing-arrow-Category h g f -pr2 (pr2 associative-composition-operation-representing-arrow-Category h g f) = - inv-associative-comp-hom-representing-arrow-Category h g f - id-hom-representing-arrow-Category : {x : obj-representing-arrow-Category} → hom-representing-arrow-Category x x id-hom-representing-arrow-Category {true} = star @@ -124,24 +99,17 @@ right-unit-law-comp-hom-representing-arrow-Category : right-unit-law-comp-hom-representing-arrow-Category {true} {true} f = refl right-unit-law-comp-hom-representing-arrow-Category {false} f = refl -is-unital-composition-operation-representing-arrow-Category : - is-unital-composition-operation-binary-family-Set +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}) -pr1 is-unital-composition-operation-representing-arrow-Category x = - id-hom-representing-arrow-Category {x} -pr1 (pr2 is-unital-composition-operation-representing-arrow-Category) = - left-unit-law-comp-hom-representing-arrow-Category -pr2 (pr2 is-unital-composition-operation-representing-arrow-Category) = - right-unit-law-comp-hom-representing-arrow-Category - -representing-arrow-Precategory : Precategory lzero lzero -pr1 representing-arrow-Precategory = obj-representing-arrow-Category -pr1 (pr2 representing-arrow-Precategory) = hom-set-representing-arrow-Category -pr1 (pr2 (pr2 representing-arrow-Precategory)) = - associative-composition-operation-representing-arrow-Category -pr2 (pr2 (pr2 representing-arrow-Precategory)) = - is-unital-composition-operation-representing-arrow-Category + ( λ 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 diff --git a/src/category-theory/simplex-category.lagda.md b/src/category-theory/simplex-category.lagda.md index f152fd4a2b..aa311fa6b6 100644 --- a/src/category-theory/simplex-category.lagda.md +++ b/src/category-theory/simplex-category.lagda.md @@ -16,6 +16,7 @@ open import elementary-number-theory.natural-numbers open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels open import order-theory.order-preserving-maps-posets @@ -82,19 +83,19 @@ associative-comp-hom-simplex-Category {n} {m} {r} {s} = ( Fin-Poset (succ-ℕ r)) ( Fin-Poset (succ-ℕ s)) -inv-associative-comp-hom-simplex-Category : +involutive-eq-associative-comp-hom-simplex-Category : {n m r s : obj-simplex-Category} (h : hom-simplex-Category r s) (g : hom-simplex-Category m r) (f : hom-simplex-Category n m) → - comp-hom-simplex-Category {n} {r} {s} - ( h) - ( comp-hom-simplex-Category {n} {m} {r} g f) = comp-hom-simplex-Category {n} {m} {s} ( comp-hom-simplex-Category {m} {r} {s} h g) - ( f) -inv-associative-comp-hom-simplex-Category {n} {m} {r} {s} = - inv-associative-comp-hom-Poset + ( f) =ⁱ + comp-hom-simplex-Category {n} {r} {s} + ( h) + ( comp-hom-simplex-Category {n} {m} {r} g f) +involutive-eq-associative-comp-hom-simplex-Category {n} {m} {r} {s} = + involutive-eq-associative-comp-hom-Poset ( Fin-Poset (succ-ℕ n)) ( Fin-Poset (succ-ℕ m)) ( Fin-Poset (succ-ℕ r)) @@ -105,10 +106,7 @@ associative-composition-operation-simplex-Category : pr1 associative-composition-operation-simplex-Category {n} {m} {r} = comp-hom-simplex-Category {n} {m} {r} pr2 associative-composition-operation-simplex-Category {n} {m} {r} {s} = - is-associative-witness-associative-composition-operation-binary-family-Set - ( hom-set-simplex-Category) - ( comp-hom-simplex-Category) - ( associative-comp-hom-simplex-Category) + involutive-eq-associative-comp-hom-simplex-Category {n} {m} {r} {s} id-hom-simplex-Category : (n : obj-simplex-Category) → hom-simplex-Category n n id-hom-simplex-Category n = id-hom-Poset (Fin-Poset (succ-ℕ n)) diff --git a/src/category-theory/slice-precategories.lagda.md b/src/category-theory/slice-precategories.lagda.md index f61992ccad..c971f834ce 100644 --- a/src/category-theory/slice-precategories.lagda.md +++ b/src/category-theory/slice-precategories.lagda.md @@ -24,6 +24,7 @@ open import foundation.homotopies open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -134,18 +135,15 @@ module _ ( comp-hom-Slice-Precategory h (comp-hom-Slice-Precategory g f)) ( associative-comp-hom-Precategory C (pr1 h) (pr1 g) (pr1 f)) - inv-associative-comp-hom-Slice-Precategory : + involutive-eq-associative-comp-hom-Slice-Precategory : {A1 A2 A3 A4 : obj-Slice-Precategory} → (h : hom-Slice-Precategory A3 A4) (g : hom-Slice-Precategory A2 A3) (f : hom-Slice-Precategory A1 A2) → - comp-hom-Slice-Precategory h (comp-hom-Slice-Precategory g f) = - comp-hom-Slice-Precategory (comp-hom-Slice-Precategory h g) f - inv-associative-comp-hom-Slice-Precategory h g f = - eq-hom-Slice-Precategory - ( comp-hom-Slice-Precategory h (comp-hom-Slice-Precategory g f)) - ( comp-hom-Slice-Precategory (comp-hom-Slice-Precategory h g) f) - ( inv-associative-comp-hom-Precategory C (pr1 h) (pr1 g) (pr1 f)) + comp-hom-Slice-Precategory (comp-hom-Slice-Precategory h g) f =ⁱ + comp-hom-Slice-Precategory h (comp-hom-Slice-Precategory g f) + involutive-eq-associative-comp-hom-Slice-Precategory h g f = + involutive-eq-eq (associative-comp-hom-Slice-Precategory h g f) ``` ### The left unit law for composition of morphisms in the slice category @@ -181,10 +179,8 @@ module _ pr1 Slice-Precategory = obj-Slice-Precategory pr1 (pr2 Slice-Precategory) = hom-set-Slice-Precategory pr1 (pr1 (pr2 (pr2 Slice-Precategory))) = comp-hom-Slice-Precategory - pr1 (pr2 (pr1 (pr2 (pr2 Slice-Precategory))) h g f) = - associative-comp-hom-Slice-Precategory h g f - pr2 (pr2 (pr1 (pr2 (pr2 Slice-Precategory))) h g f) = - inv-associative-comp-hom-Slice-Precategory h g f + pr2 (pr1 (pr2 (pr2 Slice-Precategory))) = + involutive-eq-associative-comp-hom-Slice-Precategory pr1 (pr2 (pr2 (pr2 Slice-Precategory))) = id-hom-Slice-Precategory pr1 (pr2 (pr2 (pr2 (pr2 Slice-Precategory)))) = left-unit-law-comp-hom-Slice-Precategory @@ -415,14 +411,12 @@ module _ eq-pair-eq-fiber ( eq-pair-eq-fiber ( eq-type-subtype - ( λ _ → - is-product-prop-Precategory + ( is-product-prop-Precategory ( Slice-Precategory C A) ( X , f) ( Y , g) - ( _) - ( _) - ( _)) + ( Z , comp-hom-Precategory C f h₁) + ( h₁ , refl)) ( refl))) is-retraction-map-inv-pullback-product-Slice-Precategory : @@ -434,7 +428,7 @@ module _ ( eq-pair-eq-fiber ( eq-pair-eq-fiber ( eq-type-subtype - (λ _ → is-pullback-prop-Precategory C A X Y f g _ _ _ α) + ( λ _ → is-pullback-prop-Precategory C A X Y f g _ _ _ α) ( refl)))) equiv-pullback-product-Slice-Precategory : diff --git a/src/category-theory/strict-categories.lagda.md b/src/category-theory/strict-categories.lagda.md index 1a42c41889..d26990c1f5 100644 --- a/src/category-theory/strict-categories.lagda.md +++ b/src/category-theory/strict-categories.lagda.md @@ -28,12 +28,15 @@ open import foundation.universe-levels ## Idea -A **strict category** is a [precategory](category-theory.precategories.md) for -which the type of objects form a [set](foundation-core.sets.md). Such categories -are the set-theoretic analogue to -[(univalent) categories](category-theory.categories.md), and have the defect -that strict categorical constructions may generally fail to be invariant under -equivalences. +A {{#concept "strict category" Agda=Strict-Category}} is a +[precategory](category-theory.precategories.md) for which the type of objects +form a [set](foundation-core.sets.md). Such categories are the set-theoretic +analogue to [(univalent) categories](category-theory.categories.md), and have +the disadvantages that strict categorical constructions may generally fail to be +invariant under equivalences, and that the +([essentially surjective](category-theory.essentially-surjective-functors-precategories.md)/[fully-faithful](category-theory.fully-faithful-functors-precategories.md))-factorization +system on [functors](category-theory.functors-precategories.md) requires the +[axiom of choice](foundation.axiom-of-choice.md). ## Definitions diff --git a/src/category-theory/subcategories.lagda.md b/src/category-theory/subcategories.lagda.md index 1f4f0b33e8..cb8cf062cf 100644 --- a/src/category-theory/subcategories.lagda.md +++ b/src/category-theory/subcategories.lagda.md @@ -28,6 +28,7 @@ open import foundation.fundamental-theorem-of-identity-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtype-identity-principle open import foundation.subtypes open import foundation.universe-levels @@ -342,19 +343,19 @@ module _ associative-comp-hom-Subcategory = associative-comp-hom-Subprecategory (precategory-Category C) P - inv-associative-comp-hom-Subcategory : + involutive-eq-associative-comp-hom-Subcategory : {x y z w : obj-Subcategory C P} (h : hom-Subcategory C P z w) (g : hom-Subcategory C P y z) (f : hom-Subcategory C P x y) → - comp-hom-Subcategory {x} {z} {w} - ( h) - ( comp-hom-Subcategory {x} {y} {z} g f) = comp-hom-Subcategory {x} {y} {w} ( comp-hom-Subcategory {y} {z} {w} h g) - ( f) - inv-associative-comp-hom-Subcategory = - inv-associative-comp-hom-Subprecategory (precategory-Category C) P + ( f) =ⁱ + comp-hom-Subcategory {x} {z} {w} + ( h) + ( comp-hom-Subcategory {x} {y} {z} g f) + involutive-eq-associative-comp-hom-Subcategory = + involutive-eq-associative-comp-hom-Subprecategory (precategory-Category C) P left-unit-law-comp-hom-Subcategory : {x y : obj-Subcategory C P} diff --git a/src/category-theory/subprecategories.lagda.md b/src/category-theory/subprecategories.lagda.md index 6ae069a35b..684e900afc 100644 --- a/src/category-theory/subprecategories.lagda.md +++ b/src/category-theory/subprecategories.lagda.md @@ -19,6 +19,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.universe-levels ``` @@ -400,26 +401,19 @@ module _ ( inclusion-hom-Subprecategory C P y z g) ( inclusion-hom-Subprecategory C P x y f)) - inv-associative-comp-hom-Subprecategory : + involutive-eq-associative-comp-hom-Subprecategory : {x y z w : obj-Subprecategory C P} (h : hom-Subprecategory C P z w) (g : hom-Subprecategory C P y z) (f : hom-Subprecategory C P x y) → - ( comp-hom-Subprecategory {x} {z} {w} h - ( comp-hom-Subprecategory {x} {y} {z} g f)) = - ( comp-hom-Subprecategory {x} {y} {w} - ( comp-hom-Subprecategory {y} {z} {w} h g) f) - inv-associative-comp-hom-Subprecategory {x} {y} {z} {w} h g f = - eq-type-subtype - ( subtype-hom-Subprecategory C P - ( inclusion-obj-Subprecategory C P x) - ( inclusion-obj-Subprecategory C P w) - ( is-in-obj-inclusion-obj-Subprecategory C P x) - ( is-in-obj-inclusion-obj-Subprecategory C P w)) - ( inv-associative-comp-hom-Precategory C - ( inclusion-hom-Subprecategory C P z w h) - ( inclusion-hom-Subprecategory C P y z g) - ( inclusion-hom-Subprecategory C P x y f)) + comp-hom-Subprecategory {x} {y} {w} + ( comp-hom-Subprecategory {y} {z} {w} h g) + ( f) =ⁱ + comp-hom-Subprecategory {x} {z} {w} + ( h) + ( comp-hom-Subprecategory {x} {y} {z} g f) + involutive-eq-associative-comp-hom-Subprecategory {x} {y} {z} {w} h g f = + involutive-eq-eq (associative-comp-hom-Subprecategory h g f) left-unit-law-comp-hom-Subprecategory : {x y : obj-Subprecategory C P} @@ -453,14 +447,8 @@ module _ associative-composition-operation-binary-family-Set hom-set-Subprecategory pr1 associative-composition-operation-Subprecategory {x} {y} {z} = comp-hom-Subprecategory {x} {y} {z} - pr1 - ( pr2 - associative-composition-operation-Subprecategory {x} {y} {z} {w} h g f) = - associative-comp-hom-Subprecategory {x} {y} {z} {w} h g f - pr2 - ( pr2 - associative-composition-operation-Subprecategory {x} {y} {z} {w} h g f) = - inv-associative-comp-hom-Subprecategory {x} {y} {z} {w} h g f + pr2 associative-composition-operation-Subprecategory = + involutive-eq-associative-comp-hom-Subprecategory is-unital-composition-operation-Subprecategory : is-unital-composition-operation-binary-family-Set diff --git a/src/category-theory/terminal-category.lagda.md b/src/category-theory/terminal-category.lagda.md index 2fab623ae4..b7fb6f334c 100644 --- a/src/category-theory/terminal-category.lagda.md +++ b/src/category-theory/terminal-category.lagda.md @@ -8,7 +8,6 @@ module category-theory.terminal-category where ```agda open import category-theory.categories -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.constant-functors open import category-theory.functors-categories open import category-theory.functors-precategories @@ -75,24 +74,6 @@ associative-comp-hom-terminal-Category : comp-hom-terminal-Category {x} h (comp-hom-terminal-Category {x} g f) associative-comp-hom-terminal-Category h g f = refl -inv-associative-comp-hom-terminal-Category : - {x y z w : obj-terminal-Category} → - (h : hom-terminal-Category z w) - (g : hom-terminal-Category y z) - (f : hom-terminal-Category x y) → - comp-hom-terminal-Category {x} h (comp-hom-terminal-Category {x} g f) = - comp-hom-terminal-Category {x} (comp-hom-terminal-Category {y} h g) f -inv-associative-comp-hom-terminal-Category h g f = refl - -associative-composition-operation-terminal-Category : - associative-composition-operation-binary-family-Set hom-set-terminal-Category -pr1 associative-composition-operation-terminal-Category = - comp-hom-terminal-Category -pr1 (pr2 associative-composition-operation-terminal-Category h g f) = - associative-comp-hom-terminal-Category h g f -pr2 (pr2 associative-composition-operation-terminal-Category h g f) = - inv-associative-comp-hom-terminal-Category h g f - id-hom-terminal-Category : {x : obj-terminal-Category} → hom-terminal-Category x x id-hom-terminal-Category = star @@ -109,24 +90,16 @@ right-unit-law-comp-hom-terminal-Category : comp-hom-terminal-Category {x} f (id-hom-terminal-Category {x}) = f right-unit-law-comp-hom-terminal-Category f = refl -is-unital-composition-operation-terminal-Category : - is-unital-composition-operation-binary-family-Set - ( hom-set-terminal-Category) - ( λ {x} {y} {z} → comp-hom-terminal-Category {x} {y} {z}) -pr1 is-unital-composition-operation-terminal-Category _ = - id-hom-terminal-Category -pr1 (pr2 is-unital-composition-operation-terminal-Category) = - left-unit-law-comp-hom-terminal-Category -pr2 (pr2 is-unital-composition-operation-terminal-Category) = - right-unit-law-comp-hom-terminal-Category - terminal-Precategory : Precategory lzero lzero -pr1 terminal-Precategory = obj-terminal-Category -pr1 (pr2 terminal-Precategory) = hom-set-terminal-Category -pr1 (pr2 (pr2 terminal-Precategory)) = - associative-composition-operation-terminal-Category -pr2 (pr2 (pr2 terminal-Precategory)) = - is-unital-composition-operation-terminal-Category +terminal-Precategory = + make-Precategory + ( obj-terminal-Category) + ( hom-set-terminal-Category) + ( comp-hom-terminal-Category) + ( λ x → id-hom-terminal-Category {x}) + ( associative-comp-hom-terminal-Category) + ( left-unit-law-comp-hom-terminal-Category) + ( right-unit-law-comp-hom-terminal-Category) ``` ### The terminal category diff --git a/src/category-theory/wide-subcategories.lagda.md b/src/category-theory/wide-subcategories.lagda.md index 1d82241ead..8b3b4631fd 100644 --- a/src/category-theory/wide-subcategories.lagda.md +++ b/src/category-theory/wide-subcategories.lagda.md @@ -28,6 +28,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.unit-type open import foundation.universe-levels @@ -354,15 +355,17 @@ module _ associative-comp-hom-Wide-Subcategory = associative-comp-hom-Wide-Subprecategory (precategory-Category C) P - inv-associative-comp-hom-Wide-Subcategory : + involutive-eq-associative-comp-hom-Wide-Subcategory : {x y z w : obj-Wide-Subcategory C P} (h : hom-Wide-Subcategory C P z w) (g : hom-Wide-Subcategory C P y z) (f : hom-Wide-Subcategory C P x y) → - comp-hom-Wide-Subcategory h (comp-hom-Wide-Subcategory g f) = - comp-hom-Wide-Subcategory (comp-hom-Wide-Subcategory h g) f - inv-associative-comp-hom-Wide-Subcategory = - inv-associative-comp-hom-Wide-Subprecategory (precategory-Category C) P + comp-hom-Wide-Subcategory (comp-hom-Wide-Subcategory h g) f =ⁱ + comp-hom-Wide-Subcategory h (comp-hom-Wide-Subcategory g f) + involutive-eq-associative-comp-hom-Wide-Subcategory = + involutive-eq-associative-comp-hom-Wide-Subprecategory + ( precategory-Category C) + ( P) left-unit-law-comp-hom-Wide-Subcategory : {x y : obj-Wide-Subcategory C P} diff --git a/src/category-theory/wide-subprecategories.lagda.md b/src/category-theory/wide-subprecategories.lagda.md index d86fb934d6..598da33856 100644 --- a/src/category-theory/wide-subprecategories.lagda.md +++ b/src/category-theory/wide-subprecategories.lagda.md @@ -21,6 +21,7 @@ open import foundation.identity-types open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.unit-type open import foundation.universe-levels @@ -340,23 +341,15 @@ module _ ( inclusion-hom-Wide-Subprecategory C P y z g) ( inclusion-hom-Wide-Subprecategory C P x y f)) - inv-associative-comp-hom-Wide-Subprecategory : + involutive-eq-associative-comp-hom-Wide-Subprecategory : {x y z w : obj-Wide-Subprecategory C P} (h : hom-Wide-Subprecategory C P z w) (g : hom-Wide-Subprecategory C P y z) (f : hom-Wide-Subprecategory C P x y) → - ( comp-hom-Wide-Subprecategory h - ( comp-hom-Wide-Subprecategory g f)) = - ( comp-hom-Wide-Subprecategory - ( comp-hom-Wide-Subprecategory h g) f) - - inv-associative-comp-hom-Wide-Subprecategory {x} {y} {z} {w} h g f = - eq-type-subtype - ( subtype-hom-Wide-Subprecategory C P x w) - ( inv-associative-comp-hom-Precategory C - ( inclusion-hom-Wide-Subprecategory C P z w h) - ( inclusion-hom-Wide-Subprecategory C P y z g) - ( inclusion-hom-Wide-Subprecategory C P x y f)) + comp-hom-Wide-Subprecategory (comp-hom-Wide-Subprecategory h g) f =ⁱ + comp-hom-Wide-Subprecategory h (comp-hom-Wide-Subprecategory g f) + involutive-eq-associative-comp-hom-Wide-Subprecategory h g f = + involutive-eq-eq (associative-comp-hom-Wide-Subprecategory h g f) left-unit-law-comp-hom-Wide-Subprecategory : {x y : obj-Wide-Subprecategory C P} @@ -383,10 +376,8 @@ module _ ( hom-set-Wide-Subprecategory) pr1 associative-composition-operation-Wide-Subprecategory = comp-hom-Wide-Subprecategory - pr1 (pr2 associative-composition-operation-Wide-Subprecategory h g f) = - associative-comp-hom-Wide-Subprecategory h g f - pr2 (pr2 associative-composition-operation-Wide-Subprecategory h g f) = - inv-associative-comp-hom-Wide-Subprecategory h g f + pr2 associative-composition-operation-Wide-Subprecategory = + involutive-eq-associative-comp-hom-Wide-Subprecategory is-unital-composition-operation-Wide-Subprecategory : is-unital-composition-operation-binary-family-Set diff --git a/src/commutative-algebra/category-of-commutative-rings.lagda.md b/src/commutative-algebra/category-of-commutative-rings.lagda.md index 530c71516b..bd49bfac40 100644 --- a/src/commutative-algebra/category-of-commutative-rings.lagda.md +++ b/src/commutative-algebra/category-of-commutative-rings.lagda.md @@ -36,7 +36,7 @@ is-large-category-Commutative-Ring-Large-Category : is-large-category-Commutative-Ring-Large-Category = is-equiv-iso-eq-Commutative-Ring -Commutative-Ring-Large-Category : Large-Category lsuc _⊔_ +Commutative-Ring-Large-Category : Large-Category lsuc (_⊔_) large-precategory-Large-Category Commutative-Ring-Large-Category = Commutative-Ring-Large-Precategory is-large-category-Large-Category Commutative-Ring-Large-Category = diff --git a/src/commutative-algebra/commutative-rings.lagda.md b/src/commutative-algebra/commutative-rings.lagda.md index 1ed5a691d1..06b3e5d600 100644 --- a/src/commutative-algebra/commutative-rings.lagda.md +++ b/src/commutative-algebra/commutative-rings.lagda.md @@ -53,23 +53,32 @@ commutative, i.e., if `xy = yx` for all `x, y ∈ A`. ## Definition -### Commutative rings +### The predicate on rings of being commutative ```agda -is-commutative-Ring : - { l : Level} → Ring l → UU l -is-commutative-Ring A = - (x y : type-Ring A) → mul-Ring A x y = mul-Ring A y x - -is-prop-is-commutative-Ring : - { l : Level} (A : Ring l) → is-prop (is-commutative-Ring A) -is-prop-is-commutative-Ring A = - is-prop-Π - ( λ x → - is-prop-Π - ( λ y → - is-set-type-Ring A (mul-Ring A x y) (mul-Ring A y x))) +module _ + {l : Level} (A : Ring l) + where + + is-commutative-Ring : UU l + is-commutative-Ring = + (x y : type-Ring A) → mul-Ring A x y = mul-Ring A y x + + is-prop-is-commutative-Ring : is-prop is-commutative-Ring + is-prop-is-commutative-Ring = + is-prop-Π + ( λ x → + is-prop-Π + ( λ y → + is-set-type-Ring A (mul-Ring A x y) (mul-Ring A y x))) + is-commutative-prop-Ring : Prop l + is-commutative-prop-Ring = is-commutative-Ring , is-prop-is-commutative-Ring +``` + +### Commutative rings + +```agda Commutative-Ring : ( l : Level) → UU (lsuc l) Commutative-Ring l = Σ (Ring l) is-commutative-Ring @@ -127,7 +136,7 @@ module _ additive-semigroup-Commutative-Ring = semigroup-Ab ab-Commutative-Ring is-group-additive-semigroup-Commutative-Ring : - is-group additive-semigroup-Commutative-Ring + is-group-Semigroup additive-semigroup-Commutative-Ring is-group-additive-semigroup-Commutative-Ring = is-group-Ab ab-Commutative-Ring @@ -278,7 +287,9 @@ module _ ```agda has-negatives-Commutative-Ring : - is-group' additive-semigroup-Commutative-Ring has-zero-Commutative-Ring + is-group-is-unital-Semigroup + ( additive-semigroup-Commutative-Ring) + ( has-zero-Commutative-Ring) has-negatives-Commutative-Ring = has-negatives-Ab ab-Commutative-Ring neg-Commutative-Ring : type-Commutative-Ring → type-Commutative-Ring diff --git a/src/commutative-algebra/commutative-semirings.lagda.md b/src/commutative-algebra/commutative-semirings.lagda.md index 012521dbb4..78e21f5b30 100644 --- a/src/commutative-algebra/commutative-semirings.lagda.md +++ b/src/commutative-algebra/commutative-semirings.lagda.md @@ -12,6 +12,7 @@ open import elementary-number-theory.natural-numbers open import foundation.dependent-pair-types open import foundation.identity-types +open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets open import foundation.universe-levels @@ -26,27 +27,38 @@ open import ring-theory.semirings ## Idea -A semiring `A` is said to be **commutative** if its multiplicative operation is -commutative, i.e., if `xy = yx` for all `x, y ∈ A`. +A [semiring](ring-theory.semirings.md) `A` is said to be +{{#concept "commutative" Disambiguation="semiring" Agda=is-commutative-Semiring}} +if its multiplicative operation is commutative, i.e., if `xy = yx` for all +`x, y ∈ A`. -## Definition +## Definitions -### Main definition +### The predicate on semirings of being commutative ```agda -is-commutative-Semiring : {l : Level} → Semiring l → UU l -is-commutative-Semiring A = - (x y : type-Semiring A) → mul-Semiring A x y = mul-Semiring A y x - -is-prop-is-commutative-Semiring : - { l : Level} (A : Semiring l) → is-prop (is-commutative-Semiring A) -is-prop-is-commutative-Semiring A = - is-prop-Π - ( λ x → - is-prop-Π - ( λ y → - is-set-type-Semiring A (mul-Semiring A x y) (mul-Semiring A y x))) +module _ + {l : Level} (A : Semiring l) + where + + is-commutative-Semiring : UU l + is-commutative-Semiring = + (x y : type-Semiring A) → mul-Semiring A x y = mul-Semiring A y x + + is-prop-is-commutative-Semiring : is-prop is-commutative-Semiring + is-prop-is-commutative-Semiring = + is-prop-iterated-Π 2 + ( λ x y → + is-set-type-Semiring A (mul-Semiring A x y) (mul-Semiring A y x)) + is-commutative-prop-Semiring : Prop l + is-commutative-prop-Semiring = + ( is-commutative-Semiring , is-prop-is-commutative-Semiring) +``` + +### The type of commutative semirings + +```agda Commutative-Semiring : ( l : Level) → UU (lsuc l) Commutative-Semiring l = Σ (Semiring l) is-commutative-Semiring diff --git a/src/commutative-algebra/euclidean-domains.lagda.md b/src/commutative-algebra/euclidean-domains.lagda.md index 46a30f31a1..abd586d5ef 100644 --- a/src/commutative-algebra/euclidean-domains.lagda.md +++ b/src/commutative-algebra/euclidean-domains.lagda.md @@ -172,7 +172,7 @@ module _ additive-semigroup-Euclidean-Domain = semigroup-Ab ab-Euclidean-Domain is-group-additive-semigroup-Euclidean-Domain : - is-group additive-semigroup-Euclidean-Domain + is-group-Semigroup additive-semigroup-Euclidean-Domain is-group-additive-semigroup-Euclidean-Domain = is-group-Ab ab-Euclidean-Domain @@ -282,7 +282,9 @@ module _ ```agda has-negatives-Euclidean-Domain : - is-group' additive-semigroup-Euclidean-Domain has-zero-Euclidean-Domain + is-group-is-unital-Semigroup + ( additive-semigroup-Euclidean-Domain) + ( has-zero-Euclidean-Domain) has-negatives-Euclidean-Domain = has-negatives-Ab ab-Euclidean-Domain neg-Euclidean-Domain : type-Euclidean-Domain → type-Euclidean-Domain diff --git a/src/commutative-algebra/groups-of-units-commutative-rings.lagda.md b/src/commutative-algebra/groups-of-units-commutative-rings.lagda.md index 7a04dcd509..f3fcd5aac1 100644 --- a/src/commutative-algebra/groups-of-units-commutative-rings.lagda.md +++ b/src/commutative-algebra/groups-of-units-commutative-rings.lagda.md @@ -151,14 +151,14 @@ module _ ( commutative-mul-Commutative-Ring A (pr1 x) (pr1 y)) is-group-group-of-units-Commutative-Ring' : - is-group' + is-group-is-unital-Semigroup ( semigroup-group-of-units-Commutative-Ring) ( is-unital-group-of-units-Commutative-Ring) is-group-group-of-units-Commutative-Ring' = is-group-group-of-units-Ring' (ring-Commutative-Ring A) is-group-group-of-units-Commutative-Ring : - is-group semigroup-group-of-units-Commutative-Ring + is-group-Semigroup semigroup-group-of-units-Commutative-Ring is-group-group-of-units-Commutative-Ring = is-group-group-of-units-Ring (ring-Commutative-Ring A) diff --git a/src/commutative-algebra/homomorphisms-commutative-rings.lagda.md b/src/commutative-algebra/homomorphisms-commutative-rings.lagda.md index f2a6ee1bd5..284d752ce5 100644 --- a/src/commutative-algebra/homomorphisms-commutative-rings.lagda.md +++ b/src/commutative-algebra/homomorphisms-commutative-rings.lagda.md @@ -397,19 +397,6 @@ module _ ( h) ( g) ( f) - - inv-associative-comp-hom-Commutative-Ring : - comp-hom-Commutative-Ring A C D h (comp-hom-Commutative-Ring A B C g f) = - comp-hom-Commutative-Ring A B D (comp-hom-Commutative-Ring B C D h g) f - inv-associative-comp-hom-Commutative-Ring = - inv-associative-comp-hom-Ring - ( ring-Commutative-Ring A) - ( ring-Commutative-Ring B) - ( ring-Commutative-Ring C) - ( ring-Commutative-Ring D) - ( h) - ( g) - ( f) ``` ### Unit laws for composition of homomorphisms of commutative rings diff --git a/src/commutative-algebra/homomorphisms-commutative-semirings.lagda.md b/src/commutative-algebra/homomorphisms-commutative-semirings.lagda.md index d190260a96..c5ee3254af 100644 --- a/src/commutative-algebra/homomorphisms-commutative-semirings.lagda.md +++ b/src/commutative-algebra/homomorphisms-commutative-semirings.lagda.md @@ -361,23 +361,6 @@ module _ ( h) ( g) ( f) - - inv-associative-comp-hom-Commutative-Semiring : - comp-hom-Commutative-Semiring A C D - ( h) - ( comp-hom-Commutative-Semiring A B C g f) = - comp-hom-Commutative-Semiring A B D - ( comp-hom-Commutative-Semiring B C D h g) - ( f) - inv-associative-comp-hom-Commutative-Semiring = - inv-associative-comp-hom-Semiring - ( semiring-Commutative-Semiring A) - ( semiring-Commutative-Semiring B) - ( semiring-Commutative-Semiring C) - ( semiring-Commutative-Semiring D) - ( h) - ( g) - ( f) ``` ### Unit laws for composition of homomorphisms of commutative semirings diff --git a/src/commutative-algebra/integral-domains.lagda.md b/src/commutative-algebra/integral-domains.lagda.md index f345c4d755..d960d94053 100644 --- a/src/commutative-algebra/integral-domains.lagda.md +++ b/src/commutative-algebra/integral-domains.lagda.md @@ -141,7 +141,7 @@ module _ additive-semigroup-Integral-Domain = semigroup-Ab ab-Integral-Domain is-group-additive-semigroup-Integral-Domain : - is-group additive-semigroup-Integral-Domain + is-group-Semigroup additive-semigroup-Integral-Domain is-group-additive-semigroup-Integral-Domain = is-group-Ab ab-Integral-Domain @@ -251,7 +251,9 @@ module _ ```agda has-negatives-Integral-Domain : - is-group' additive-semigroup-Integral-Domain has-zero-Integral-Domain + is-group-is-unital-Semigroup + ( additive-semigroup-Integral-Domain) + ( has-zero-Integral-Domain) has-negatives-Integral-Domain = has-negatives-Ab ab-Integral-Domain neg-Integral-Domain : type-Integral-Domain → type-Integral-Domain diff --git a/src/commutative-algebra/precategory-of-commutative-rings.lagda.md b/src/commutative-algebra/precategory-of-commutative-rings.lagda.md index 21baa0f9d1..51c54f1c3f 100644 --- a/src/commutative-algebra/precategory-of-commutative-rings.lagda.md +++ b/src/commutative-algebra/precategory-of-commutative-rings.lagda.md @@ -7,52 +7,44 @@ module commutative-algebra.precategory-of-commutative-rings where
Imports ```agda +open import category-theory.full-large-subprecategories open import category-theory.large-precategories open import category-theory.precategories open import commutative-algebra.commutative-rings -open import commutative-algebra.homomorphisms-commutative-rings open import foundation.universe-levels + +open import ring-theory.precategory-of-rings ```
## Idea -The **precategory of commutative rings** consists of commutative rings and -homomorphisms of commutative rings. +The +{{#concept "precategory of commutative rings" Agda=Commutative-Ring-Large-Precategory}} +consists of [commutative rings](commutative-algebra.commutative-rings.md) and +[homomorphisms of commutative rings](commutative-algebra.homomorphisms-commutative-rings.md). ## Definitions +### The precategory of commutative rings as a full subprecategory of rings + +```agda +Commutative-Ring-Full-Large-Subprecategory : + Full-Large-Subprecategory (λ l → l) Ring-Large-Precategory +Commutative-Ring-Full-Large-Subprecategory = is-commutative-prop-Ring +``` + ### The large precategory of commutative rings ```agda -Commutative-Ring-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Commutative-Ring-Large-Precategory = - Commutative-Ring -hom-set-Large-Precategory - Commutative-Ring-Large-Precategory = - hom-set-Commutative-Ring -comp-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} {B} {C} = - comp-hom-Commutative-Ring A B C -id-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} = - id-hom-Commutative-Ring A -associative-comp-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} {B} {C} {D} = - associative-comp-hom-Commutative-Ring A B C D -inv-associative-comp-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} {B} {C} {D} = - inv-associative-comp-hom-Commutative-Ring A B C D -left-unit-law-comp-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} {B} = - left-unit-law-comp-hom-Commutative-Ring A B -right-unit-law-comp-hom-Large-Precategory - Commutative-Ring-Large-Precategory {X = A} {B} = - right-unit-law-comp-hom-Commutative-Ring A B +Commutative-Ring-Large-Precategory : Large-Precategory lsuc (_⊔_) +Commutative-Ring-Large-Precategory = + large-precategory-Full-Large-Subprecategory + ( Ring-Large-Precategory) + ( Commutative-Ring-Full-Large-Subprecategory) ``` ### The precategory of commutative rings of universe level `l` diff --git a/src/commutative-algebra/precategory-of-commutative-semirings.lagda.md b/src/commutative-algebra/precategory-of-commutative-semirings.lagda.md index ac5b884aee..e0239a074f 100644 --- a/src/commutative-algebra/precategory-of-commutative-semirings.lagda.md +++ b/src/commutative-algebra/precategory-of-commutative-semirings.lagda.md @@ -7,52 +7,45 @@ module commutative-algebra.precategory-of-commutative-semirings where
Imports ```agda +open import category-theory.full-large-subprecategories open import category-theory.large-precategories open import category-theory.precategories open import commutative-algebra.commutative-semirings -open import commutative-algebra.homomorphisms-commutative-semirings open import foundation.universe-levels + +open import ring-theory.precategory-of-semirings ```
## Idea -The **precategory of commutative semirings** consists of commutative semirings -and homomorphisms of semirings. +The +{{#concept "precategory of commutative semirings" Agda=Commutative-Semiring-Large-Precategory}} +consists of +[commutative semirings](commutative-algebra.commutative-semirings.md) and +[homomorphisms of semirings](commutative-algebra.homomorphisms-commutative-semirings.md). ## Definitions +### The precategory of commutative semirings as a full subprecategory of semirings + +```agda +Commutative-Semiring-Full-Large-Precategory : + Full-Large-Subprecategory (λ l → l) Semiring-Large-Precategory +Commutative-Semiring-Full-Large-Precategory = is-commutative-prop-Semiring +``` + ### The large precategory of commutative semirings ```agda -Commutative-Semiring-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Commutative-Semiring-Large-Precategory = - Commutative-Semiring -hom-set-Large-Precategory - Commutative-Semiring-Large-Precategory = - hom-set-Commutative-Semiring -comp-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} {B} {C} = - comp-hom-Commutative-Semiring A B C -id-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} = - id-hom-Commutative-Semiring A -associative-comp-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} {B} {C} {D} = - associative-comp-hom-Commutative-Semiring A B C D -inv-associative-comp-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} {B} {C} {D} = - inv-associative-comp-hom-Commutative-Semiring A B C D -left-unit-law-comp-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} {B} = - left-unit-law-comp-hom-Commutative-Semiring A B -right-unit-law-comp-hom-Large-Precategory - Commutative-Semiring-Large-Precategory {X = A} {B} = - right-unit-law-comp-hom-Commutative-Semiring A B +Commutative-Semiring-Large-Precategory : Large-Precategory lsuc (_⊔_) +Commutative-Semiring-Large-Precategory = + large-precategory-Full-Large-Subprecategory + ( Semiring-Large-Precategory) + ( Commutative-Semiring-Full-Large-Precategory) ``` ### The precategory of commutative semirings of universe level `l` diff --git a/src/finite-algebra/commutative-finite-rings.lagda.md b/src/finite-algebra/commutative-finite-rings.lagda.md index 52394614ad..43b9f67381 100644 --- a/src/finite-algebra/commutative-finite-rings.lagda.md +++ b/src/finite-algebra/commutative-finite-rings.lagda.md @@ -147,7 +147,7 @@ module _ additive-semigroup-Commutative-Ring-𝔽 = semigroup-Ab ab-Commutative-Ring-𝔽 is-group-additive-semigroup-Commutative-Ring-𝔽 : - is-group additive-semigroup-Commutative-Ring-𝔽 + is-group-Semigroup additive-semigroup-Commutative-Ring-𝔽 is-group-additive-semigroup-Commutative-Ring-𝔽 = is-group-Ab ab-Commutative-Ring-𝔽 @@ -258,7 +258,9 @@ module _ ```agda has-negatives-Commutative-Ring-𝔽 : - is-group' additive-semigroup-Commutative-Ring-𝔽 has-zero-Commutative-Ring-𝔽 + is-group-is-unital-Semigroup + ( additive-semigroup-Commutative-Ring-𝔽) + ( has-zero-Commutative-Ring-𝔽) has-negatives-Commutative-Ring-𝔽 = has-negatives-Ab ab-Commutative-Ring-𝔽 neg-Commutative-Ring-𝔽 : type-Commutative-Ring-𝔽 → type-Commutative-Ring-𝔽 diff --git a/src/finite-algebra/finite-fields.lagda.md b/src/finite-algebra/finite-fields.lagda.md index f4fbb7921e..829d28547f 100644 --- a/src/finite-algebra/finite-fields.lagda.md +++ b/src/finite-algebra/finite-fields.lagda.md @@ -126,7 +126,7 @@ module _ additive-semigroup-Field-𝔽 = semigroup-Ab ab-Field-𝔽 is-group-additive-semigroup-Field-𝔽 : - is-group additive-semigroup-Field-𝔽 + is-group-Semigroup additive-semigroup-Field-𝔽 is-group-additive-semigroup-Field-𝔽 = is-group-Ab ab-Field-𝔽 @@ -230,7 +230,7 @@ module _ ```agda has-negatives-Field-𝔽 : - is-group' additive-semigroup-Field-𝔽 has-zero-Field-𝔽 + is-group-is-unital-Semigroup additive-semigroup-Field-𝔽 has-zero-Field-𝔽 has-negatives-Field-𝔽 = has-negatives-Ab ab-Field-𝔽 neg-Field-𝔽 : type-Field-𝔽 → type-Field-𝔽 diff --git a/src/finite-algebra/finite-rings.lagda.md b/src/finite-algebra/finite-rings.lagda.md index 0f4df958a6..8d5ca8a2af 100644 --- a/src/finite-algebra/finite-rings.lagda.md +++ b/src/finite-algebra/finite-rings.lagda.md @@ -140,7 +140,8 @@ module _ Id (add-Ring-𝔽 (add-Ring-𝔽 x y) z) (add-Ring-𝔽 x (add-Ring-𝔽 y z)) associative-add-Ring-𝔽 = associative-add-Ring (ring-Ring-𝔽 R) - is-group-additive-semigroup-Ring-𝔽 : is-group (additive-semigroup-Ring-𝔽 R) + is-group-additive-semigroup-Ring-𝔽 : + is-group-Semigroup (additive-semigroup-Ring-𝔽 R) is-group-additive-semigroup-Ring-𝔽 = is-group-additive-semigroup-Ring (ring-Ring-𝔽 R) @@ -232,7 +233,9 @@ module _ where has-negatives-Ring-𝔽 : - is-group' (additive-semigroup-Ring-𝔽 R) (has-zero-Ring-𝔽 R) + is-group-is-unital-Semigroup + ( additive-semigroup-Ring-𝔽 R) + ( has-zero-Ring-𝔽 R) has-negatives-Ring-𝔽 = has-negatives-Ring (ring-Ring-𝔽 R) neg-Ring-𝔽 : type-Ring-𝔽 R → type-Ring-𝔽 R diff --git a/src/finite-algebra/homomorphisms-commutative-finite-rings.lagda.md b/src/finite-algebra/homomorphisms-commutative-finite-rings.lagda.md index baf6d0942e..bbd41dbe64 100644 --- a/src/finite-algebra/homomorphisms-commutative-finite-rings.lagda.md +++ b/src/finite-algebra/homomorphisms-commutative-finite-rings.lagda.md @@ -418,23 +418,6 @@ module _ ( h) ( g) ( f) - - inv-associative-comp-hom-Commutative-Ring-𝔽 : - comp-hom-Commutative-Ring-𝔽 A C D - ( h) - ( comp-hom-Commutative-Ring-𝔽 A B C g f) = - comp-hom-Commutative-Ring-𝔽 A B D - ( comp-hom-Commutative-Ring-𝔽 B C D h g) - ( f) - inv-associative-comp-hom-Commutative-Ring-𝔽 = - inv-associative-comp-hom-Ring - ( ring-Commutative-Ring-𝔽 A) - ( ring-Commutative-Ring-𝔽 B) - ( ring-Commutative-Ring-𝔽 C) - ( ring-Commutative-Ring-𝔽 D) - ( h) - ( g) - ( f) ``` ### Unit laws for composition of homomorphisms of commutative rings diff --git a/src/finite-algebra/homomorphisms-finite-rings.lagda.md b/src/finite-algebra/homomorphisms-finite-rings.lagda.md index c469d3fe0f..c533ed1b6c 100644 --- a/src/finite-algebra/homomorphisms-finite-rings.lagda.md +++ b/src/finite-algebra/homomorphisms-finite-rings.lagda.md @@ -382,19 +382,6 @@ module _ ( h) ( g) ( f) - - inv-associative-comp-hom-Ring-𝔽 : - comp-hom-Ring-𝔽 A C D h (comp-hom-Ring-𝔽 A B C g f) = - comp-hom-Ring-𝔽 A B D (comp-hom-Ring-𝔽 B C D h g) f - inv-associative-comp-hom-Ring-𝔽 = - inv-associative-comp-hom-Ring - ( ring-Ring-𝔽 A) - ( ring-Ring-𝔽 B) - ( ring-Ring-𝔽 C) - ( ring-Ring-𝔽 D) - ( h) - ( g) - ( f) ``` ### Unit laws for composition of homomorphisms of commutative rings diff --git a/src/finite-group-theory/delooping-sign-homomorphism.lagda.md b/src/finite-group-theory/delooping-sign-homomorphism.lagda.md index cd43fb75bf..e34a655ed0 100644 --- a/src/finite-group-theory/delooping-sign-homomorphism.lagda.md +++ b/src/finite-group-theory/delooping-sign-homomorphism.lagda.md @@ -85,7 +85,7 @@ open import univalent-combinatorics.standard-finite-types ## Ideas The delooping of a group homomorphism `f : G → H` is a pointed map -`Bf : BG → BH` equiped with a homotopy witnessing that the following square +`Bf : BG → BH` equipped with a homotopy witnessing that the following square commutes : ```text diff --git a/src/finite-group-theory/finite-abelian-groups.lagda.md b/src/finite-group-theory/finite-abelian-groups.lagda.md index 137c9c647a..2b8dd899f6 100644 --- a/src/finite-group-theory/finite-abelian-groups.lagda.md +++ b/src/finite-group-theory/finite-abelian-groups.lagda.md @@ -115,7 +115,7 @@ module _ semigroup-Ab-𝔽 : Semigroup l semigroup-Ab-𝔽 = semigroup-Group group-Ab-𝔽 - is-group-Ab-𝔽 : is-group semigroup-Ab-𝔽 + is-group-Ab-𝔽 : is-group-Semigroup semigroup-Ab-𝔽 is-group-Ab-𝔽 = is-group-Group group-Ab-𝔽 has-zero-Ab-𝔽 : is-unital-Semigroup semigroup-Ab-𝔽 @@ -139,7 +139,7 @@ module _ right-unit-law-add-Ab-𝔽 : (x : type-Ab-𝔽) → add-Ab-𝔽 x zero-Ab-𝔽 = x right-unit-law-add-Ab-𝔽 = right-unit-law-mul-Group group-Ab-𝔽 - has-negatives-Ab-𝔽 : is-group' semigroup-Ab-𝔽 has-zero-Ab-𝔽 + has-negatives-Ab-𝔽 : is-group-is-unital-Semigroup semigroup-Ab-𝔽 has-zero-Ab-𝔽 has-negatives-Ab-𝔽 = has-inverses-Group group-Ab-𝔽 neg-Ab-𝔽 : type-Ab-𝔽 → type-Ab-𝔽 diff --git a/src/finite-group-theory/finite-groups.lagda.md b/src/finite-group-theory/finite-groups.lagda.md index fbb7a1421a..b19ed72587 100644 --- a/src/finite-group-theory/finite-groups.lagda.md +++ b/src/finite-group-theory/finite-groups.lagda.md @@ -16,7 +16,6 @@ open import foundation.binary-embeddings open import foundation.binary-equivalences open import foundation.decidable-equality open import foundation.decidable-types -open import foundation.dependent-pair-types open import foundation.embeddings open import foundation.equivalences open import foundation.function-types @@ -79,7 +78,7 @@ usual algebraic sense, i.e., it consists of a ```agda is-group-𝔽 : {l : Level} (G : Semigroup-𝔽 l) → UU l -is-group-𝔽 G = is-group (semigroup-Semigroup-𝔽 G) +is-group-𝔽 G = is-group-Semigroup (semigroup-Semigroup-𝔽 G) ``` ### The type of finite groups @@ -100,7 +99,7 @@ module _ semigroup-Group-𝔽 = semigroup-Semigroup-𝔽 finite-semigroup-Group-𝔽 - is-group-Group-𝔽 : is-group semigroup-Group-𝔽 + is-group-Group-𝔽 : is-group-Semigroup semigroup-Group-𝔽 is-group-Group-𝔽 = pr2 G group-Group-𝔽 : Group l @@ -199,7 +198,7 @@ module _ pointed-type-Group-𝔽 = pointed-type-Group group-Group-𝔽 has-inverses-Group-𝔽 : - is-group' semigroup-Group-𝔽 is-unital-Group-𝔽 + is-group-is-unital-Semigroup semigroup-Group-𝔽 is-unital-Group-𝔽 has-inverses-Group-𝔽 = has-inverses-Group group-Group-𝔽 inv-Group-𝔽 : type-Group-𝔽 → type-Group-𝔽 @@ -333,13 +332,13 @@ Group-of-Order l n = Σ (Group l) (λ G → mere-equiv (Fin n) (type-Group G)) ## Properties -### The type `is-group G` is finite for any semigroup of fixed finite order +### The type `is-group-Semigroup G` is finite for any semigroup of fixed finite order ```agda -is-finite-is-group : +is-finite-is-group-Semigroup : {l : Level} (n : ℕ) (G : Semigroup-of-Order l n) → - is-finite {l} (is-group (pr1 G)) -is-finite-is-group {l} n G = + is-finite {l} (is-group-Semigroup (pr1 G)) +is-finite-is-group-Semigroup {l} n G = apply-universal-property-trunc-Prop ( pr2 G) ( is-finite-Prop _) @@ -393,11 +392,11 @@ is-π-finite-Group-of-Order {l} k n = ( is-π-finite-Semigroup-of-Order (succ-ℕ k) n) ( λ X → is-π-finite-is-finite k - ( is-finite-is-group n X))) + ( is-finite-is-group-Semigroup n X))) where e : Group-of-Order l n ≃ - Σ (Semigroup-of-Order l n) (λ X → is-group (pr1 X)) + Σ (Semigroup-of-Order l n) (λ X → is-group-Semigroup (pr1 X)) e = equiv-right-swap-Σ number-of-groups-of-order : ℕ → ℕ diff --git a/src/foundation/category-of-sets.lagda.md b/src/foundation/category-of-sets.lagda.md index 803e007a6a..b465639494 100644 --- a/src/foundation/category-of-sets.lagda.md +++ b/src/foundation/category-of-sets.lagda.md @@ -17,6 +17,7 @@ open import foundation.dependent-pair-types open import foundation.fundamental-theorem-of-identity-types open import foundation.isomorphisms-of-sets open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels open import foundation-core.contractible-types @@ -44,8 +45,9 @@ obj-Large-Precategory Set-Large-Precategory = Set hom-set-Large-Precategory Set-Large-Precategory = hom-set-Set comp-hom-Large-Precategory Set-Large-Precategory g f = g ∘ f id-hom-Large-Precategory Set-Large-Precategory = id -associative-comp-hom-Large-Precategory Set-Large-Precategory h g f = refl -inv-associative-comp-hom-Large-Precategory Set-Large-Precategory h g f = refl +involutive-eq-associative-comp-hom-Large-Precategory Set-Large-Precategory + h g f = + reflⁱ left-unit-law-comp-hom-Large-Precategory Set-Large-Precategory f = refl right-unit-law-comp-hom-Large-Precategory Set-Large-Precategory f = refl ``` diff --git a/src/foundation/large-locale-of-propositions.lagda.md b/src/foundation/large-locale-of-propositions.lagda.md index faeb653117..233f214be3 100644 --- a/src/foundation/large-locale-of-propositions.lagda.md +++ b/src/foundation/large-locale-of-propositions.lagda.md @@ -38,7 +38,7 @@ form a [large locale](order-theory.large-locales.md). ### The large preorder of propositions ```agda -Prop-Large-Preorder : Large-Preorder lsuc _⊔_ +Prop-Large-Preorder : Large-Preorder lsuc (_⊔_) type-Large-Preorder Prop-Large-Preorder = Prop leq-prop-Large-Preorder Prop-Large-Preorder = hom-Prop refl-leq-Large-Preorder Prop-Large-Preorder P = id @@ -48,7 +48,7 @@ transitive-leq-Large-Preorder Prop-Large-Preorder P Q R g f = g ∘ f ### The large poset of propositions ```agda -Prop-Large-Poset : Large-Poset lsuc _⊔_ +Prop-Large-Poset : Large-Poset lsuc (_⊔_) large-preorder-Large-Poset Prop-Large-Poset = Prop-Large-Preorder antisymmetric-leq-Large-Poset Prop-Large-Poset P Q = eq-iff ``` @@ -105,7 +105,7 @@ is-least-upper-bound-sup-has-least-upper-bound-family-of-elements-Large-Poset ### The large frame of propositions ```agda -Prop-Large-Frame : Large-Frame lsuc _⊔_ lzero +Prop-Large-Frame : Large-Frame lsuc (_⊔_) lzero large-poset-Large-Frame Prop-Large-Frame = Prop-Large-Poset is-large-meet-semilattice-Large-Frame Prop-Large-Frame = @@ -119,6 +119,6 @@ distributive-meet-sup-Large-Frame Prop-Large-Frame = ### The large locale of propositions ```agda -Prop-Large-Locale : Large-Locale lsuc _⊔_ lzero +Prop-Large-Locale : Large-Locale lsuc (_⊔_) lzero Prop-Large-Locale = Prop-Large-Frame ``` diff --git a/src/foundation/mere-embeddings.lagda.md b/src/foundation/mere-embeddings.lagda.md index f4947fe895..49197506fd 100644 --- a/src/foundation/mere-embeddings.lagda.md +++ b/src/foundation/mere-embeddings.lagda.md @@ -54,7 +54,7 @@ transitive-mere-emb g f = ( mere-emb-Prop _ _) ( λ f' → unit-trunc-Prop (comp-emb g' f'))) -mere-emb-Large-Preorder : Large-Preorder lsuc _⊔_ +mere-emb-Large-Preorder : Large-Preorder lsuc (_⊔_) type-Large-Preorder mere-emb-Large-Preorder l = UU l leq-prop-Large-Preorder mere-emb-Large-Preorder = mere-emb-Prop refl-leq-Large-Preorder mere-emb-Large-Preorder = refl-mere-emb diff --git a/src/foundation/strictly-involutive-identity-types.lagda.md b/src/foundation/strictly-involutive-identity-types.lagda.md index 0484a7fb0a..79e477f008 100644 --- a/src/foundation/strictly-involutive-identity-types.lagda.md +++ b/src/foundation/strictly-involutive-identity-types.lagda.md @@ -7,11 +7,14 @@ module foundation.strictly-involutive-identity-types where
Imports ```agda +open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.equality-cartesian-product-types +open import foundation.function-extensionality open import foundation.multivariable-homotopies open import foundation.strictly-right-unital-concatenation-identifications +open import foundation.univalence open import foundation.universal-property-identity-systems open import foundation.universe-levels @@ -19,11 +22,14 @@ open import foundation-core.cartesian-product-types open import foundation-core.contractible-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.identity-types open import foundation-core.retractions open import foundation-core.sections open import foundation-core.torsorial-type-families +open import foundation-core.transport-along-identifications ```
@@ -538,6 +544,185 @@ module _ ( left-unit-right-strict-concat)) ``` +## Operations + +We define a range of basic operations on the strictly involutive identifications +that all enjoy strict computational properties. + +### Action of functions on strictly involutive identifications + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) + where + + eq-ap-involutive-Id : {x y : A} → x =ⁱ y → f x = f y + eq-ap-involutive-Id = ap f ∘ eq-involutive-eq + + ap-involutive-Id : {x y : A} → x =ⁱ y → f x =ⁱ f y + ap-involutive-Id = involutive-eq-eq ∘ eq-ap-involutive-Id + + compute-ap-refl-involutive-Id : + {x : A} → ap-involutive-Id (reflⁱ {x = x}) = reflⁱ + compute-ap-refl-involutive-Id = refl + +module _ + {l1 : Level} {A : UU l1} + where + + compute-ap-id-involutive-Id : + {x y : A} (p : x =ⁱ y) → ap-involutive-Id id p = p + compute-ap-id-involutive-Id (z , q , refl) = + eq-pair-eq-fiber (eq-pair (ap-id q) refl) +``` + +### Action of binary functions on strictly involutive identifications + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} (f : A → B → C) + where + + ap-binary-involutive-Id : + {x x' : A} (p : x =ⁱ x') {y y' : B} (q : y =ⁱ y') → f x y =ⁱ f x' y' + ap-binary-involutive-Id (z , p1 , p2) (w , q1 , q2) = + ( f z w , ap-binary f p1 q1 , ap-binary f p2 q2) + + left-unit-ap-binary-involutive-Id : + {x : A} {y y' : B} (q : y =ⁱ y') → + ap-binary-involutive-Id reflⁱ q = ap-involutive-Id (f x) q + left-unit-ap-binary-involutive-Id (z , p , refl) = refl + + right-unit-ap-binary-involutive-Id : + {x x' : A} (p : x =ⁱ x') {y : B} → + ap-binary-involutive-Id p reflⁱ = ap-involutive-Id (λ z → f z y) p + right-unit-ap-binary-involutive-Id {.z} {x'} (z , p , refl) {y} = + eq-pair-eq-fiber (eq-pair right-unit refl) +``` + +### Transport along strictly involutive identifications + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : A → UU l2) + where + + tr-involutive-Id : {x y : A} → x =ⁱ y → B x → B y + tr-involutive-Id = tr B ∘ eq-involutive-eq + + compute-tr-refl-involutive-Id : + {x : A} → tr-involutive-Id (reflⁱ {x = x}) = id + compute-tr-refl-involutive-Id = refl +``` + +### Function extensionality with respect to strictly involutive identifications + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A → UU l2} {f g : (x : A) → B x} + where + + htpy-involutive-eq : f =ⁱ g → f ~ g + htpy-involutive-eq = htpy-eq ∘ eq-involutive-eq + + involutive-eq-htpy : f ~ g → f =ⁱ g + involutive-eq-htpy = involutive-eq-eq ∘ eq-htpy + + equiv-htpy-involutive-eq : (f =ⁱ g) ≃ (f ~ g) + equiv-htpy-involutive-eq = equiv-funext ∘e equiv-eq-involutive-eq + + equiv-involutive-eq-htpy : (f ~ g) ≃ (f =ⁱ g) + equiv-involutive-eq-htpy = equiv-involutive-eq-eq ∘e equiv-eq-htpy + + funext-involutive-Id : is-equiv htpy-involutive-eq + funext-involutive-Id = is-equiv-map-equiv equiv-htpy-involutive-eq +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A → UU l2} {f g : (x : A) → B x} + where + + involutive-htpy-involutive-eq : f =ⁱ g → (x : A) → f x =ⁱ g x + involutive-htpy-involutive-eq (h , p , q) x = + ( h x , htpy-eq p x , htpy-eq q x) + + involutive-eq-involutive-htpy : ((x : A) → f x =ⁱ g x) → f =ⁱ g + involutive-eq-involutive-htpy H = + ( pr1 ∘ H , eq-htpy (pr1 ∘ (pr2 ∘ H)) , eq-htpy (pr2 ∘ (pr2 ∘ H))) +``` + +It remains to show that these maps are part of an equivalence. + +### Standard univalence with respect to strictly involutive identifications + +```agda +module _ + {l1 : Level} {A B : UU l1} + where + + map-involutive-eq : A =ⁱ B → A → B + map-involutive-eq = map-eq ∘ eq-involutive-eq + + equiv-involutive-eq : A =ⁱ B → A ≃ B + equiv-involutive-eq = equiv-eq ∘ eq-involutive-eq + + involutive-eq-equiv : A ≃ B → A =ⁱ B + involutive-eq-equiv = involutive-eq-eq ∘ eq-equiv + + equiv-equiv-involutive-eq : (A =ⁱ B) ≃ (A ≃ B) + equiv-equiv-involutive-eq = equiv-univalence ∘e equiv-eq-involutive-eq + + is-equiv-equiv-involutive-eq : is-equiv equiv-involutive-eq + is-equiv-equiv-involutive-eq = is-equiv-map-equiv equiv-equiv-involutive-eq + + equiv-involutive-eq-equiv : (A ≃ B) ≃ (A =ⁱ B) + equiv-involutive-eq-equiv = equiv-involutive-eq-eq ∘e equiv-eq-equiv A B + + is-equiv-involutive-eq-equiv : is-equiv involutive-eq-equiv + is-equiv-involutive-eq-equiv = is-equiv-map-equiv equiv-involutive-eq-equiv +``` + +### Whiskering of strictly involutive identifications + +```agda +module _ + {l : Level} {A : UU l} {x y z : A} + where + + left-whisker-concat-involutive-Id : + (p : x =ⁱ y) {q r : y =ⁱ z} → q =ⁱ r → p ∙ⁱ q =ⁱ p ∙ⁱ r + left-whisker-concat-involutive-Id p β = ap-involutive-Id (p ∙ⁱ_) β + + right-whisker-concat-involutive-Id : + {p q : x =ⁱ y} → p =ⁱ q → (r : y =ⁱ z) → p ∙ⁱ r =ⁱ q ∙ⁱ r + right-whisker-concat-involutive-Id α r = ap-involutive-Id (_∙ⁱ r) α +``` + +### Horizontal concatenation of strictly involutive identifications + +```agda +module _ + {l : Level} {A : UU l} {x y z : A} + where + + horizontal-concat-involutive-Id² : + {p q : x =ⁱ y} → p =ⁱ q → {u v : y =ⁱ z} → u =ⁱ v → p ∙ⁱ u =ⁱ q ∙ⁱ v + horizontal-concat-involutive-Id² = ap-binary-involutive-Id (_∙ⁱ_) +``` + +### Vertical concatenation of strictly involutive identifications + +```agda +module _ + {l : Level} {A : UU l} {x y : A} + where + + vertical-concat-involutive-Id² : + {p q r : x =ⁱ y} → p =ⁱ q → q =ⁱ r → p =ⁱ r + vertical-concat-involutive-Id² α β = α ∙ⁱ β +``` + ## See also - [The Yoneda identity types](foundation.yoneda-identity-types.md) for an diff --git a/src/foundation/yoneda-identity-types.lagda.md b/src/foundation/yoneda-identity-types.lagda.md index 081408e0ba..c763b6c36a 100644 --- a/src/foundation/yoneda-identity-types.lagda.md +++ b/src/foundation/yoneda-identity-types.lagda.md @@ -7,7 +7,6 @@ module foundation.yoneda-identity-types where
Imports ```agda -open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.function-extensionality @@ -719,7 +718,7 @@ on both arguments using one of the two sides in the Gray interchanger diagram ap (r ↦ f r y) p | | ap (r ↦ f r y') p | | ∨ ∨ - f x' y ------------> f x' y'. + f x' y ------------> f x' y' ap (r ↦ f x' r) q ``` @@ -736,15 +735,15 @@ module _ ap-binary-yoneda-Id {x} {x'} p {y} {y'} q = ap-yoneda-Id (λ z → f z y) p ∙ʸ ap-yoneda-Id (f x') q - left-unit-ap-binary-Id : + left-unit-ap-binary-yoneda-Id : {x : A} {y y' : B} (q : y =ʸ y') → ap-binary-yoneda-Id reflʸ q = ap-yoneda-Id (f x) q - left-unit-ap-binary-Id q = refl + left-unit-ap-binary-yoneda-Id q = refl - right-unit-ap-binary-Id : + right-unit-ap-binary-yoneda-Id : {x x' : A} (p : x =ʸ x') {y : B} → ap-binary-yoneda-Id p reflʸ = ap-yoneda-Id (λ z → f z y) p - right-unit-ap-binary-Id p = refl + right-unit-ap-binary-yoneda-Id p = refl ``` ### Transport along Yoneda identifications @@ -820,13 +819,13 @@ module _ {l : Level} {A : UU l} {x y z : A} where - left-whisker-concat-yoenda-Id : + left-whisker-concat-yoneda-Id : (p : x =ʸ y) {q r : y =ʸ z} → q =ʸ r → p ∙ʸ q =ʸ p ∙ʸ r - left-whisker-concat-yoenda-Id p β = ap-yoneda-Id (p ∙ʸ_) β + left-whisker-concat-yoneda-Id p β = ap-yoneda-Id (p ∙ʸ_) β - right-whisker-concat-yoenda-Id : + right-whisker-concat-yoneda-Id : {p q : x =ʸ y} → p =ʸ q → (r : y =ʸ z) → p ∙ʸ r =ʸ q ∙ʸ r - right-whisker-concat-yoenda-Id α r = ap-yoneda-Id (_∙ʸ r) α + right-whisker-concat-yoneda-Id α r = ap-yoneda-Id (_∙ʸ r) α ``` ### Horizontal concatenation of Yoneda identifications @@ -847,13 +846,13 @@ module _ compute-left-horizontal-concat-yoneda-Id² : {p : x =ʸ y} {u v : y =ʸ z} (β : u =ʸ v) → horizontal-concat-yoneda-Id² reflʸ β = - left-whisker-concat-yoenda-Id p β + left-whisker-concat-yoneda-Id p β compute-left-horizontal-concat-yoneda-Id² β = refl compute-right-horizontal-concat-yoneda-Id² : {p q : x =ʸ y} (α : p =ʸ q) {u : y =ʸ z} → horizontal-concat-yoneda-Id² α (reflʸ {x = u}) = - right-whisker-concat-yoenda-Id α u + right-whisker-concat-yoneda-Id α u compute-right-horizontal-concat-yoneda-Id² α = refl module _ diff --git a/src/group-theory.lagda.md b/src/group-theory.lagda.md index e1be2d9b8d..5ce7c983b7 100644 --- a/src/group-theory.lagda.md +++ b/src/group-theory.lagda.md @@ -135,7 +135,6 @@ open import group-theory.opposite-semigroups public open import group-theory.orbit-stabilizer-theorem-concrete-groups public open import group-theory.orbits-concrete-group-actions public open import group-theory.orbits-group-actions public -open import group-theory.orbits-monoid-actions public open import group-theory.orders-of-elements-groups public open import group-theory.perfect-cores public open import group-theory.perfect-groups public @@ -148,6 +147,7 @@ open import group-theory.precategory-of-concrete-groups public open import group-theory.precategory-of-group-actions public open import group-theory.precategory-of-groups public open import group-theory.precategory-of-monoids public +open import group-theory.precategory-of-orbits-monoid-actions public open import group-theory.precategory-of-semigroups public open import group-theory.principal-group-actions public open import group-theory.principal-torsors-concrete-groups public diff --git a/src/group-theory/abelian-groups.lagda.md b/src/group-theory/abelian-groups.lagda.md index 518213fe02..ab6e812b23 100644 --- a/src/group-theory/abelian-groups.lagda.md +++ b/src/group-theory/abelian-groups.lagda.md @@ -127,7 +127,7 @@ module _ semigroup-Ab : Semigroup l semigroup-Ab = semigroup-Group group-Ab - is-group-Ab : is-group semigroup-Ab + is-group-Ab : is-group-Semigroup semigroup-Ab is-group-Ab = is-group-Group group-Ab has-zero-Ab : is-unital-Semigroup semigroup-Ab @@ -154,7 +154,7 @@ module _ right-unit-law-add-Ab : (x : type-Ab) → add-Ab x zero-Ab = x right-unit-law-add-Ab = right-unit-law-mul-Group group-Ab - has-negatives-Ab : is-group' semigroup-Ab has-zero-Ab + has-negatives-Ab : is-group-is-unital-Semigroup semigroup-Ab has-zero-Ab has-negatives-Ab = has-inverses-Group group-Ab neg-Ab : type-Ab → type-Ab diff --git a/src/group-theory/category-of-abelian-groups.lagda.md b/src/group-theory/category-of-abelian-groups.lagda.md index 6f778a9f5a..abb1ac4341 100644 --- a/src/group-theory/category-of-abelian-groups.lagda.md +++ b/src/group-theory/category-of-abelian-groups.lagda.md @@ -10,13 +10,10 @@ module group-theory.category-of-abelian-groups where open import category-theory.categories open import category-theory.full-large-subcategories open import category-theory.functors-large-categories -open import category-theory.functors-large-precategories open import category-theory.large-categories open import category-theory.large-precategories open import category-theory.precategories -open import foundation.function-types -open import foundation.identity-types open import foundation.universe-levels open import group-theory.abelian-groups @@ -38,7 +35,7 @@ The **category of abelian groups** is the ### The large category of abelian groups ```agda -Ab-Large-Category : Large-Category lsuc _⊔_ +Ab-Large-Category : Large-Category lsuc (_⊔_) Ab-Large-Category = large-category-Full-Large-Subcategory ( Group-Large-Category) @@ -48,7 +45,7 @@ Ab-Large-Category = ### The large precategory of abelian groups ```agda -Ab-Large-Precategory : Large-Precategory lsuc _⊔_ +Ab-Large-Precategory : Large-Precategory lsuc (_⊔_) Ab-Large-Precategory = large-precategory-Large-Category Ab-Large-Category ``` diff --git a/src/group-theory/category-of-groups.lagda.md b/src/group-theory/category-of-groups.lagda.md index 6114c0e1c6..e543101e66 100644 --- a/src/group-theory/category-of-groups.lagda.md +++ b/src/group-theory/category-of-groups.lagda.md @@ -28,9 +28,7 @@ open import group-theory.precategory-of-groups is-large-category-Group : is-large-category-Large-Precategory Group-Large-Precategory is-large-category-Group G = - fundamental-theorem-id - ( is-torsorial-iso-Group G) - ( iso-eq-Group G) + fundamental-theorem-id (is-torsorial-iso-Group G) (iso-eq-Group G) eq-iso-Group : {l : Level} (G H : Group l) → iso-Group G H → Id G H eq-iso-Group G H = map-inv-is-equiv (is-large-category-Group G H) diff --git a/src/group-theory/category-of-semigroups.lagda.md b/src/group-theory/category-of-semigroups.lagda.md index ceb07b9051..997979a69e 100644 --- a/src/group-theory/category-of-semigroups.lagda.md +++ b/src/group-theory/category-of-semigroups.lagda.md @@ -36,9 +36,7 @@ category. is-large-category-Semigroup : is-large-category-Large-Precategory Semigroup-Large-Precategory is-large-category-Semigroup G = - fundamental-theorem-id - ( is-torsorial-iso-Semigroup G) - ( iso-eq-Semigroup G) + fundamental-theorem-id (is-torsorial-iso-Semigroup G) (iso-eq-Semigroup G) extensionality-Semigroup : {l : Level} (G H : Semigroup l) → Id G H ≃ iso-Semigroup G H diff --git a/src/group-theory/commutative-monoids.lagda.md b/src/group-theory/commutative-monoids.lagda.md index 61fd30c897..e48be716ac 100644 --- a/src/group-theory/commutative-monoids.lagda.md +++ b/src/group-theory/commutative-monoids.lagda.md @@ -11,6 +11,7 @@ open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.interchange-law +open import foundation.iterated-dependent-product-types open import foundation.propositions open import foundation.sets open import foundation.unital-binary-operations @@ -24,18 +25,36 @@ open import group-theory.semigroups ## Idea -A commutative monoid is a monoid `M` in which `xy = yx` holds for all `x y : M`. +A {{#concept "commutative monoid" Agda=Commutative-Monoid}} is a +[monoid](group-theory.monoids.md) `M` in which `xy = yx` holds for all +`x y : M`. -## Definition +## Definitions -### Commutative monoids +### The predicate on monoids of being commutative ```agda -is-commutative-Monoid : - {l : Level} (M : Monoid l) → UU l -is-commutative-Monoid M = - (x y : type-Monoid M) → Id (mul-Monoid M x y) (mul-Monoid M y x) +module _ + {l : Level} (M : Monoid l) + where + + is-commutative-Monoid : UU l + is-commutative-Monoid = + (x y : type-Monoid M) → mul-Monoid M x y = mul-Monoid M y x + + is-prop-is-commutative-Monoid : is-prop is-commutative-Monoid + is-prop-is-commutative-Monoid = + is-prop-iterated-Π 2 + ( λ x y → is-set-type-Monoid M (mul-Monoid M x y) (mul-Monoid M y x)) + is-commutative-prop-Monoid : Prop l + is-commutative-prop-Monoid = + ( is-commutative-Monoid , is-prop-is-commutative-Monoid) +``` + +### Commutative monoids + +```agda Commutative-Monoid : (l : Level) → UU (lsuc l) Commutative-Monoid l = Σ (Monoid l) is-commutative-Monoid diff --git a/src/group-theory/concrete-groups.lagda.md b/src/group-theory/concrete-groups.lagda.md index 01941b4f68..0dfca3da67 100644 --- a/src/group-theory/concrete-groups.lagda.md +++ b/src/group-theory/concrete-groups.lagda.md @@ -184,14 +184,16 @@ module _ right-unit-law-mul-Concrete-Group is-group-Concrete-Group' : - is-group' semigroup-Concrete-Group is-unital-semigroup-Concrete-Group + is-group-is-unital-Semigroup + ( semigroup-Concrete-Group) + ( is-unital-semigroup-Concrete-Group) pr1 is-group-Concrete-Group' = inv-Concrete-Group pr1 (pr2 is-group-Concrete-Group') = left-inverse-law-mul-Concrete-Group pr2 (pr2 is-group-Concrete-Group') = right-inverse-law-mul-Concrete-Group - is-group-Concrete-Group : is-group semigroup-Concrete-Group + is-group-Concrete-Group : is-group-Semigroup semigroup-Concrete-Group pr1 is-group-Concrete-Group = is-unital-semigroup-Concrete-Group pr2 is-group-Concrete-Group = is-group-Concrete-Group' @@ -215,7 +217,7 @@ module _ is-unital-op-semigroup-Concrete-Group = is-unital-op-Group (group-Concrete-Group G) - is-group-op-Concrete-Group : is-group op-semigroup-Concrete-Group + is-group-op-Concrete-Group : is-group-Semigroup op-semigroup-Concrete-Group is-group-op-Concrete-Group = is-group-op-Group (group-Concrete-Group G) op-group-Concrete-Group : Group l diff --git a/src/group-theory/cores-monoids.lagda.md b/src/group-theory/cores-monoids.lagda.md index ab9d3a1329..50328b33a1 100644 --- a/src/group-theory/cores-monoids.lagda.md +++ b/src/group-theory/cores-monoids.lagda.md @@ -111,12 +111,13 @@ module _ ( subtype-core-Monoid) ( is-right-inverse-inv-is-invertible-element-Monoid M (pr2 x)) - is-group-core-Monoid' : is-group' semigroup-core-Monoid is-unital-core-Monoid + is-group-core-Monoid' : + is-group-is-unital-Semigroup semigroup-core-Monoid is-unital-core-Monoid pr1 is-group-core-Monoid' = inv-core-Monoid pr1 (pr2 is-group-core-Monoid') = left-inverse-law-mul-core-Monoid pr2 (pr2 is-group-core-Monoid') = right-inverse-law-mul-core-Monoid - is-group-core-Monoid : is-group semigroup-core-Monoid + is-group-core-Monoid : is-group-Semigroup semigroup-core-Monoid pr1 is-group-core-Monoid = is-unital-core-Monoid pr2 is-group-core-Monoid = is-group-core-Monoid' diff --git a/src/group-theory/dependent-products-abelian-groups.lagda.md b/src/group-theory/dependent-products-abelian-groups.lagda.md index 77af46cc8d..94aa816e80 100644 --- a/src/group-theory/dependent-products-abelian-groups.lagda.md +++ b/src/group-theory/dependent-products-abelian-groups.lagda.md @@ -82,7 +82,7 @@ module _ (f : type-Π-Ab) → add-Π-Ab f (neg-Π-Ab f) = zero-Π-Ab right-inverse-law-add-Π-Ab = right-inverse-law-mul-Group group-Π-Ab - is-group-Π-Ab : is-group semigroup-Π-Ab + is-group-Π-Ab : is-group-Semigroup semigroup-Π-Ab is-group-Π-Ab = is-group-Group group-Π-Ab commutative-add-Π-Ab : diff --git a/src/group-theory/dependent-products-groups.lagda.md b/src/group-theory/dependent-products-groups.lagda.md index 80997e68b6..6c0d59730a 100644 --- a/src/group-theory/dependent-products-groups.lagda.md +++ b/src/group-theory/dependent-products-groups.lagda.md @@ -91,7 +91,7 @@ module _ right-inverse-law-mul-Π-Group f = eq-htpy (λ x → right-inverse-law-mul-Group (G x) (f x)) - is-group-Π-Group : is-group semigroup-Π-Group + is-group-Π-Group : is-group-Semigroup semigroup-Π-Group pr1 is-group-Π-Group = is-unital-Π-Group pr1 (pr2 is-group-Π-Group) = inv-Π-Group pr1 (pr2 (pr2 is-group-Π-Group)) = left-inverse-law-mul-Π-Group diff --git a/src/group-theory/function-groups.lagda.md b/src/group-theory/function-groups.lagda.md index c3dcabbead..b9d8cff7aa 100644 --- a/src/group-theory/function-groups.lagda.md +++ b/src/group-theory/function-groups.lagda.md @@ -94,6 +94,6 @@ module _ right-inverse-law-mul-function-Group = right-inverse-law-mul-Π-Group X (λ _ → G) - is-group-function-Group : is-group semigroup-function-Group + is-group-function-Group : is-group-Semigroup semigroup-function-Group is-group-function-Group = is-group-Π-Group X (λ _ → G) ``` diff --git a/src/group-theory/groups.lagda.md b/src/group-theory/groups.lagda.md index 513db7f496..3aa3bee992 100644 --- a/src/group-theory/groups.lagda.md +++ b/src/group-theory/groups.lagda.md @@ -59,9 +59,9 @@ an inverse operation `x ↦ x⁻¹` satisfying the group laws ### The condition that a semigroup is a group ```agda -is-group' : +is-group-is-unital-Semigroup : {l : Level} (G : Semigroup l) → is-unital-Semigroup G → UU l -is-group' G is-unital-Semigroup-G = +is-group-is-unital-Semigroup G is-unital-Semigroup-G = Σ ( type-Semigroup G → type-Semigroup G) ( λ i → ( (x : type-Semigroup G) → @@ -69,10 +69,10 @@ is-group' G is-unital-Semigroup-G = ( (x : type-Semigroup G) → Id (mul-Semigroup G x (i x)) (pr1 is-unital-Semigroup-G))) -is-group : +is-group-Semigroup : {l : Level} (G : Semigroup l) → UU l -is-group G = - Σ (is-unital-Semigroup G) (is-group' G) +is-group-Semigroup G = + Σ (is-unital-Semigroup G) (is-group-is-unital-Semigroup G) ``` ### The type of groups @@ -80,7 +80,7 @@ is-group G = ```agda Group : (l : Level) → UU (lsuc l) -Group l = Σ (Semigroup l) is-group +Group l = Σ (Semigroup l) is-group-Semigroup module _ {l : Level} (G : Group l) @@ -117,7 +117,7 @@ module _ Id (mul-Group (mul-Group x y) z) (mul-Group x (mul-Group y z)) associative-mul-Group = pr2 has-associative-mul-Group - is-group-Group : is-group semigroup-Group + is-group-Group : is-group-Semigroup semigroup-Group is-group-Group = pr2 G is-unital-Group : is-unital-Semigroup semigroup-Group @@ -162,7 +162,8 @@ module _ pr1 pointed-type-Group = type-Group pr2 pointed-type-Group = unit-Group - has-inverses-Group : is-group' semigroup-Group is-unital-Group + has-inverses-Group : + is-group-is-unital-Semigroup semigroup-Group is-unital-Group has-inverses-Group = pr2 is-group-Group inv-Group : type-Group → type-Group @@ -216,7 +217,8 @@ module _ structure-group : {l1 : Level} → UU l1 → UU l1 structure-group X = - Σ (structure-semigroup X) (λ p → is-group (semigroup-structure-semigroup X p)) + Σ ( structure-semigroup X) + ( λ p → is-group-Semigroup (semigroup-structure-semigroup X p)) group-structure-group : {l1 : Level} → (X : UU l1) → structure-group X → Group l1 @@ -545,10 +547,10 @@ module _ ```agda abstract - all-elements-equal-is-group : + all-elements-equal-is-group-Semigroup : {l : Level} (G : Semigroup l) (e : is-unital-Semigroup G) → - all-elements-equal (is-group' G e) - all-elements-equal-is-group + all-elements-equal (is-group-is-unital-Semigroup G e) + all-elements-equal-is-group-Semigroup ( pair G (pair μ associative-G)) ( pair e (pair left-unit-G right-unit-G)) ( pair i (pair left-inv-i right-inv-i)) @@ -559,7 +561,8 @@ abstract ( Π-Prop (type-Set G) (λ x → Id-Prop G (μ (i x) x) e)) ( Π-Prop (type-Set G) (λ x → Id-Prop G (μ x (i x)) e))) ( eq-htpy - ( λ x → equational-reasoning + ( λ x → + equational-reasoning i x = μ e (i x) by inv (left-unit-G (i x)) @@ -573,17 +576,17 @@ abstract by right-unit-G (i' x))) abstract - is-prop-is-group : - {l : Level} (G : Semigroup l) → is-prop (is-group G) - is-prop-is-group G = + is-prop-is-group-Semigroup : + {l : Level} (G : Semigroup l) → is-prop (is-group-Semigroup G) + is-prop-is-group-Semigroup G = is-prop-Σ ( is-prop-is-unital-Semigroup G) ( λ e → - is-prop-all-elements-equal (all-elements-equal-is-group G e)) + is-prop-all-elements-equal (all-elements-equal-is-group-Semigroup G e)) is-group-prop-Semigroup : {l : Level} (G : Semigroup l) → Prop l -pr1 (is-group-prop-Semigroup G) = is-group G -pr2 (is-group-prop-Semigroup G) = is-prop-is-group G +pr1 (is-group-prop-Semigroup G) = is-group-Semigroup G +pr2 (is-group-prop-Semigroup G) = is-prop-is-group-Semigroup G ``` ### Any idempotent element in a group is the unit diff --git a/src/group-theory/homomorphisms-abelian-groups.lagda.md b/src/group-theory/homomorphisms-abelian-groups.lagda.md index 9e5cac9313..172b824ed0 100644 --- a/src/group-theory/homomorphisms-abelian-groups.lagda.md +++ b/src/group-theory/homomorphisms-abelian-groups.lagda.md @@ -178,19 +178,6 @@ associative-comp-hom-Ab A B C D = ( semigroup-Ab B) ( semigroup-Ab C) ( semigroup-Ab D) - -inv-associative-comp-hom-Ab : - {l1 l2 l3 l4 : Level} - (A : Ab l1) (B : Ab l2) (C : Ab l3) (D : Ab l4) - (h : hom-Ab C D) (g : hom-Ab B C) (f : hom-Ab A B) → - comp-hom-Ab A C D h (comp-hom-Ab A B C g f) = - comp-hom-Ab A B D (comp-hom-Ab B C D h g) f -inv-associative-comp-hom-Ab A B C D = - inv-associative-comp-hom-Semigroup - ( semigroup-Ab A) - ( semigroup-Ab B) - ( semigroup-Ab C) - ( semigroup-Ab D) ``` ### The unit laws for composition of abelian groups diff --git a/src/group-theory/homomorphisms-commutative-monoids.lagda.md b/src/group-theory/homomorphisms-commutative-monoids.lagda.md index 998509491b..b5783ad749 100644 --- a/src/group-theory/homomorphisms-commutative-monoids.lagda.md +++ b/src/group-theory/homomorphisms-commutative-monoids.lagda.md @@ -222,23 +222,6 @@ module _ ( monoid-Commutative-Monoid L) ( monoid-Commutative-Monoid M) ( monoid-Commutative-Monoid N) - - inv-associative-comp-hom-Commutative-Monoid : - (h : hom-Commutative-Monoid M N) - (g : hom-Commutative-Monoid L M) - (f : hom-Commutative-Monoid K L) → - comp-hom-Commutative-Monoid K M N - ( h) - ( comp-hom-Commutative-Monoid K L M g f) = - comp-hom-Commutative-Monoid K L N - ( comp-hom-Commutative-Monoid L M N h g) - ( f) - inv-associative-comp-hom-Commutative-Monoid = - inv-associative-comp-hom-Monoid - ( monoid-Commutative-Monoid K) - ( monoid-Commutative-Monoid L) - ( monoid-Commutative-Monoid M) - ( monoid-Commutative-Monoid N) ``` ### The unit laws for composition of homomorphisms of commutative monoids diff --git a/src/group-theory/homomorphisms-concrete-groups.lagda.md b/src/group-theory/homomorphisms-concrete-groups.lagda.md index 1ecb7ad778..d61de489f6 100644 --- a/src/group-theory/homomorphisms-concrete-groups.lagda.md +++ b/src/group-theory/homomorphisms-concrete-groups.lagda.md @@ -172,22 +172,6 @@ associative-comp-hom-Concrete-Group G H K L = ( ∞-group-Concrete-Group K) ( ∞-group-Concrete-Group L) -inv-associative-comp-hom-Concrete-Group : - {l1 l2 l3 l4 : Level} - (G : Concrete-Group l1) (H : Concrete-Group l2) - (K : Concrete-Group l3) (L : Concrete-Group l4) - (h : hom-Concrete-Group K L) (g : hom-Concrete-Group H K) - (f : hom-Concrete-Group G H) → - htpy-hom-Concrete-Group G L - ( comp-hom-Concrete-Group G K L h (comp-hom-Concrete-Group G H K g f)) - ( comp-hom-Concrete-Group G H L (comp-hom-Concrete-Group H K L h g) f) -inv-associative-comp-hom-Concrete-Group G H K L = - inv-associative-comp-hom-∞-Group - ( ∞-group-Concrete-Group G) - ( ∞-group-Concrete-Group H) - ( ∞-group-Concrete-Group K) - ( ∞-group-Concrete-Group L) - module _ {l1 l2 : Level} (G : Concrete-Group l1) (H : Concrete-Group l2) where diff --git a/src/group-theory/homomorphisms-group-actions.lagda.md b/src/group-theory/homomorphisms-group-actions.lagda.md index e8f45751af..d615116603 100644 --- a/src/group-theory/homomorphisms-group-actions.lagda.md +++ b/src/group-theory/homomorphisms-group-actions.lagda.md @@ -256,19 +256,6 @@ module _ ( h) ( comp-hom-action-Group G X1 X2 X3 g f)) ( refl-htpy) - - inv-associative-comp-hom-action-Group : - comp-hom-action-Group G X1 X3 X4 h (comp-hom-action-Group G X1 X2 X3 g f) = - comp-hom-action-Group G X1 X2 X4 (comp-hom-action-Group G X2 X3 X4 h g) f - inv-associative-comp-hom-action-Group = - eq-htpy-hom-action-Group G X1 X4 - ( comp-hom-action-Group G X1 X3 X4 - ( h) - ( comp-hom-action-Group G X1 X2 X3 g f)) - ( comp-hom-action-Group G X1 X2 X4 - ( comp-hom-action-Group G X2 X3 X4 h g) - ( f)) - ( refl-htpy) ``` ### Composition satisfies the left and right unit laws diff --git a/src/group-theory/homomorphisms-groups.lagda.md b/src/group-theory/homomorphisms-groups.lagda.md index 7f6ba599f2..a4e286a07f 100644 --- a/src/group-theory/homomorphisms-groups.lagda.md +++ b/src/group-theory/homomorphisms-groups.lagda.md @@ -192,17 +192,6 @@ module _ ( semigroup-Group H) ( semigroup-Group K) ( semigroup-Group L) - - inv-associative-comp-hom-Group : - (h : hom-Group K L) (g : hom-Group H K) (f : hom-Group G H) → - comp-hom-Group G K L h (comp-hom-Group G H K g f) = - comp-hom-Group G H L (comp-hom-Group H K L h g) f - inv-associative-comp-hom-Group = - inv-associative-comp-hom-Semigroup - ( semigroup-Group G) - ( semigroup-Group H) - ( semigroup-Group K) - ( semigroup-Group L) ``` ### The left and right unit laws for composition of group homomorphisms diff --git a/src/group-theory/homomorphisms-monoids.lagda.md b/src/group-theory/homomorphisms-monoids.lagda.md index 5b647d2956..f8c37265bd 100644 --- a/src/group-theory/homomorphisms-monoids.lagda.md +++ b/src/group-theory/homomorphisms-monoids.lagda.md @@ -66,6 +66,13 @@ module _ is-prop-preserves-unit-hom-Semigroup f = is-prop-type-Prop (preserves-unit-prop-hom-Semigroup f) + preserves-unit-hom-prop-Semigroup : + hom-Semigroup (semigroup-Monoid M1) (semigroup-Monoid M2) → + Prop l2 + preserves-unit-hom-prop-Semigroup f = + ( preserves-unit-hom-Semigroup f , + is-prop-preserves-unit-hom-Semigroup f) + hom-set-Monoid : Set (l1 ⊔ l2) hom-set-Monoid = set-subset @@ -234,16 +241,6 @@ module _ ( comp-hom-Monoid K L N (comp-hom-Monoid L M N h g) f) ( comp-hom-Monoid K M N h (comp-hom-Monoid K L M g f)) ( refl-htpy) - - inv-associative-comp-hom-Monoid : - (h : hom-Monoid M N) (g : hom-Monoid L M) (f : hom-Monoid K L) → - comp-hom-Monoid K M N h (comp-hom-Monoid K L M g f) = - comp-hom-Monoid K L N (comp-hom-Monoid L M N h g) f - inv-associative-comp-hom-Monoid h g f = - eq-htpy-hom-Monoid K N - ( comp-hom-Monoid K M N h (comp-hom-Monoid K L M g f)) - ( comp-hom-Monoid K L N (comp-hom-Monoid L M N h g) f) - ( refl-htpy) ``` ### Unit laws for composition of homomorphisms of monoids diff --git a/src/group-theory/homomorphisms-semigroups.lagda.md b/src/group-theory/homomorphisms-semigroups.lagda.md index 53dc30b3c5..b00a30a3fa 100644 --- a/src/group-theory/homomorphisms-semigroups.lagda.md +++ b/src/group-theory/homomorphisms-semigroups.lagda.md @@ -216,11 +216,6 @@ module _ comp-hom-Semigroup G H L (comp-hom-Semigroup H K L h g) f = comp-hom-Semigroup G K L h (comp-hom-Semigroup G H K g f) associative-comp-hom-Semigroup = eq-htpy-hom-Semigroup G L refl-htpy - - inv-associative-comp-hom-Semigroup : - comp-hom-Semigroup G K L h (comp-hom-Semigroup G H K g f) = - comp-hom-Semigroup G H L (comp-hom-Semigroup H K L h g) f - inv-associative-comp-hom-Semigroup = eq-htpy-hom-Semigroup G L refl-htpy ``` ### The left and right unit laws for composition of homomorphisms of semigroups diff --git a/src/group-theory/loop-groups-sets.lagda.md b/src/group-theory/loop-groups-sets.lagda.md index 098f85479c..15fdf92516 100644 --- a/src/group-theory/loop-groups-sets.lagda.md +++ b/src/group-theory/loop-groups-sets.lagda.md @@ -69,7 +69,9 @@ module _ pr2 (pr2 is-unital-Semigroup-loop-semigroup-Set) x = right-unit is-group-loop-semigroup-Set' : - is-group' loop-semigroup-Set is-unital-Semigroup-loop-semigroup-Set + is-group-is-unital-Semigroup + ( loop-semigroup-Set) + ( is-unital-Semigroup-loop-semigroup-Set) pr1 is-group-loop-semigroup-Set' = inv pr1 (pr2 is-group-loop-semigroup-Set') = left-inv pr2 (pr2 is-group-loop-semigroup-Set') = right-inv diff --git a/src/group-theory/opposite-groups.lagda.md b/src/group-theory/opposite-groups.lagda.md index c8cb5e7bab..1b8b84aac2 100644 --- a/src/group-theory/opposite-groups.lagda.md +++ b/src/group-theory/opposite-groups.lagda.md @@ -36,7 +36,7 @@ module _ pr1 (pr2 is-unital-op-Group) = right-unit-law-mul-Group G pr2 (pr2 is-unital-op-Group) = left-unit-law-mul-Group G - is-group-op-Group : is-group (op-Semigroup (semigroup-Group G)) + is-group-op-Group : is-group-Semigroup (op-Semigroup (semigroup-Group G)) pr1 is-group-op-Group = is-unital-op-Group pr1 (pr2 is-group-op-Group) = inv-Group G pr1 (pr2 (pr2 is-group-op-Group)) = right-inverse-law-mul-Group G diff --git a/src/group-theory/precategory-of-commutative-monoids.lagda.md b/src/group-theory/precategory-of-commutative-monoids.lagda.md index cb959988f3..f3d5757c93 100644 --- a/src/group-theory/precategory-of-commutative-monoids.lagda.md +++ b/src/group-theory/precategory-of-commutative-monoids.lagda.md @@ -7,12 +7,14 @@ module group-theory.precategory-of-commutative-monoids where
Imports ```agda +open import category-theory.full-large-subprecategories open import category-theory.large-precategories +open import category-theory.precategories open import foundation.universe-levels open import group-theory.commutative-monoids -open import group-theory.homomorphisms-commutative-monoids +open import group-theory.precategory-of-monoids ```
@@ -24,32 +26,28 @@ homomorphisms of monoids. ## Definitions +### The precategory of commutative monoids as a full subprecategory of monoids + +```agda +Commutative-Monoid-Full-Large-Subprecategory : + Full-Large-Subprecategory (λ l → l) Monoid-Large-Precategory +Commutative-Monoid-Full-Large-Subprecategory = is-commutative-prop-Monoid +``` + ### The large precategory of commutative monoids ```agda -Commutative-Monoid-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Commutative-Monoid-Large-Precategory = - Commutative-Monoid -hom-set-Large-Precategory - Commutative-Monoid-Large-Precategory = - hom-set-Commutative-Monoid -comp-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = K} {L} {M} = - comp-hom-Commutative-Monoid K L M -id-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = M} = - id-hom-Commutative-Monoid M -associative-comp-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = K} {L} {M} {N} = - associative-comp-hom-Commutative-Monoid K L M N -inv-associative-comp-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = K} {L} {M} {N} = - inv-associative-comp-hom-Commutative-Monoid K L M N -left-unit-law-comp-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = M} {N} = - left-unit-law-comp-hom-Commutative-Monoid M N -right-unit-law-comp-hom-Large-Precategory - Commutative-Monoid-Large-Precategory {X = M} {N} = - right-unit-law-comp-hom-Commutative-Monoid M N +Commutative-Monoid-Large-Precategory : Large-Precategory lsuc (_⊔_) +Commutative-Monoid-Large-Precategory = + large-precategory-Full-Large-Subprecategory + ( Monoid-Large-Precategory) + ( Commutative-Monoid-Full-Large-Subprecategory) +``` + +### The precategory of small commutative monoids + +```agda +Commutative-Monoid-Precategory : (l : Level) → Precategory (lsuc l) l +Commutative-Monoid-Precategory = + precategory-Large-Precategory Commutative-Monoid-Large-Precategory ``` diff --git a/src/group-theory/precategory-of-concrete-groups.lagda.md b/src/group-theory/precategory-of-concrete-groups.lagda.md index 2da61df681..43b955bd5d 100644 --- a/src/group-theory/precategory-of-concrete-groups.lagda.md +++ b/src/group-theory/precategory-of-concrete-groups.lagda.md @@ -23,32 +23,19 @@ open import group-theory.homomorphisms-concrete-groups ```agda Concrete-Group-Large-Precategory : Large-Precategory lsuc (_⊔_) -obj-Large-Precategory - Concrete-Group-Large-Precategory = - Concrete-Group -hom-set-Large-Precategory - Concrete-Group-Large-Precategory = - hom-set-Concrete-Group -comp-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} {Y = H} {Z = K} = - comp-hom-Concrete-Group G H K -id-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} = - id-hom-Concrete-Group G -associative-comp-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} {Y = H} {Z = K} {W = L} h g f = - eq-htpy-hom-Concrete-Group G L _ _ - ( associative-comp-hom-Concrete-Group G H K L h g f) -inv-associative-comp-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} {Y = H} {Z = K} {W = L} h g f = - eq-htpy-hom-Concrete-Group G L _ _ - ( inv-associative-comp-hom-Concrete-Group G H K L h g f) -left-unit-law-comp-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} {Y = H} f = - eq-htpy-hom-Concrete-Group G H _ _ - ( left-unit-law-comp-hom-Concrete-Group G H f) -right-unit-law-comp-hom-Large-Precategory - Concrete-Group-Large-Precategory {X = G} {Y = H} f = - eq-htpy-hom-Concrete-Group G H _ _ - ( right-unit-law-comp-hom-Concrete-Group G H f) +Concrete-Group-Large-Precategory = + make-Large-Precategory + ( Concrete-Group) + ( hom-set-Concrete-Group) + ( λ {l1} {l2} {l3} {G} {H} {K} → comp-hom-Concrete-Group G H K) + ( λ {l} {G} → id-hom-Concrete-Group G) + ( λ {l1} {l2} {l3} {l4} {G} {H} {K} {L} h g f → + eq-htpy-hom-Concrete-Group G L _ _ + ( associative-comp-hom-Concrete-Group G H K L h g f)) + ( λ {l1} {l2} {G} {H} f → + eq-htpy-hom-Concrete-Group G H _ _ + ( left-unit-law-comp-hom-Concrete-Group G H f)) + ( λ {l1} {l2} {G} {H} f → + eq-htpy-hom-Concrete-Group G H _ _ + ( right-unit-law-comp-hom-Concrete-Group G H f)) ``` diff --git a/src/group-theory/precategory-of-group-actions.lagda.md b/src/group-theory/precategory-of-group-actions.lagda.md index 3ea66e7300..d8fc00a1c5 100644 --- a/src/group-theory/precategory-of-group-actions.lagda.md +++ b/src/group-theory/precategory-of-group-actions.lagda.md @@ -10,8 +10,6 @@ module group-theory.precategory-of-group-actions where open import category-theory.large-precategories open import category-theory.precategories -open import foundation.dependent-pair-types -open import foundation.identity-types open import foundation.universe-levels open import group-theory.group-actions @@ -39,30 +37,16 @@ module _ action-Group-Large-Precategory : Large-Precategory (λ l2 → l1 ⊔ lsuc l2) (λ l2 l3 → l1 ⊔ l2 ⊔ l3) - obj-Large-Precategory - action-Group-Large-Precategory = - action-Group G - hom-set-Large-Precategory - action-Group-Large-Precategory = - hom-set-action-Group G - comp-hom-Large-Precategory - action-Group-Large-Precategory {X = X} {Y} {Z} = - comp-hom-action-Group G X Y Z - id-hom-Large-Precategory - action-Group-Large-Precategory {X = X} = - id-hom-action-Group G X - associative-comp-hom-Large-Precategory - action-Group-Large-Precategory {X = X} {Y} {Z} {W} = - associative-comp-hom-action-Group G X Y Z W - inv-associative-comp-hom-Large-Precategory - action-Group-Large-Precategory {X = X} {Y} {Z} {W} = - inv-associative-comp-hom-action-Group G X Y Z W - left-unit-law-comp-hom-Large-Precategory - action-Group-Large-Precategory {X = X} {Y} = - left-unit-law-comp-hom-action-Group G X Y - right-unit-law-comp-hom-Large-Precategory - action-Group-Large-Precategory {X = X} {Y} = - right-unit-law-comp-hom-action-Group G X Y + action-Group-Large-Precategory = + make-Large-Precategory + ( action-Group G) + ( hom-set-action-Group G) + ( λ {l1} {l2} {l3} {X} {Y} {Z} → comp-hom-action-Group G X Y Z) + ( λ {l1} {X} → id-hom-action-Group G X) + ( λ {l1} {l2} {l3} {l4} {X} {Y} {Z} {W} → + associative-comp-hom-action-Group G X Y Z W) + ( λ {l1} {l2} {X} {Y} → left-unit-law-comp-hom-action-Group G X Y) + ( λ {l1} {l2} {X} {Y} → right-unit-law-comp-hom-action-Group G X Y) ``` ### The small precategory of `G`-sets diff --git a/src/group-theory/precategory-of-groups.lagda.md b/src/group-theory/precategory-of-groups.lagda.md index 32e64622c1..10f8be5a09 100644 --- a/src/group-theory/precategory-of-groups.lagda.md +++ b/src/group-theory/precategory-of-groups.lagda.md @@ -7,37 +7,41 @@ module group-theory.precategory-of-groups where
Imports ```agda +open import category-theory.full-large-subprecategories open import category-theory.large-precategories +open import category-theory.precategories open import foundation.universe-levels open import group-theory.groups -open import group-theory.homomorphisms-groups +open import group-theory.precategory-of-semigroups ```
## Definition +### The precategory of groups as a full subprecategory of the precategory of semigroups + +```agda +Group-Full-Large-Subprecategory : + Full-Large-Subprecategory (λ l → l) Semigroup-Large-Precategory +Group-Full-Large-Subprecategory = is-group-prop-Semigroup +``` + +### The large precategory of groups + +```agda +Group-Large-Precategory : Large-Precategory lsuc (_⊔_) +Group-Large-Precategory = + large-precategory-Full-Large-Subprecategory + ( Semigroup-Large-Precategory) + ( Group-Full-Large-Subprecategory) +``` + +### The small precategories of groups + ```agda -instance - Group-Large-Precategory : Large-Precategory lsuc (_⊔_) - obj-Large-Precategory Group-Large-Precategory = Group - hom-set-Large-Precategory Group-Large-Precategory = hom-set-Group - comp-hom-Large-Precategory Group-Large-Precategory {X = G} {H} {K} = - comp-hom-Group G H K - id-hom-Large-Precategory Group-Large-Precategory {X = G} = - id-hom-Group G - associative-comp-hom-Large-Precategory - Group-Large-Precategory {X = G} {H} {K} {L} = - associative-comp-hom-Group G H K L - inv-associative-comp-hom-Large-Precategory - Group-Large-Precategory {X = G} {H} {K} {L} = - inv-associative-comp-hom-Group G H K L - left-unit-law-comp-hom-Large-Precategory - Group-Large-Precategory {X = G} {H} = - left-unit-law-comp-hom-Group G H - right-unit-law-comp-hom-Large-Precategory - Group-Large-Precategory {X = G} {H} = - right-unit-law-comp-hom-Group G H +Group-Precategory : (l : Level) → Precategory (lsuc l) l +Group-Precategory = precategory-Large-Precategory Group-Large-Precategory ``` diff --git a/src/group-theory/precategory-of-monoids.lagda.md b/src/group-theory/precategory-of-monoids.lagda.md index e8e90de208..a16650574c 100644 --- a/src/group-theory/precategory-of-monoids.lagda.md +++ b/src/group-theory/precategory-of-monoids.lagda.md @@ -8,50 +8,56 @@ module group-theory.precategory-of-monoids where ```agda open import category-theory.large-precategories +open import category-theory.large-subprecategories open import category-theory.precategories +open import foundation.dependent-pair-types open import foundation.universe-levels open import group-theory.homomorphisms-monoids open import group-theory.monoids +open import group-theory.precategory-of-semigroups ```
## Idea -The **precategory of monoids** consists of monoids and homomorphisms of monoids. +The {{#concept "precategory of monoids" Agda=Monoid-Large-Precategory}} consists +of [monoids](group-theory.monoids.md) and +[homomorphisms of monoids](group-theory.homomorphisms-monoids.md). ## Definitions +### The precategory of monoids as a subprecategory of the precategory of semigroups + +```agda +Monoid-Large-Subprecategory : + Large-Subprecategory (λ l → l) (λ l1 l2 → l2) Semigroup-Large-Precategory +Monoid-Large-Subprecategory = + λ where + .subtype-obj-Large-Subprecategory l → + is-unital-prop-Semigroup {l} + .subtype-hom-Large-Subprecategory G H is-unital-G is-unital-H → + preserves-unit-hom-prop-Semigroup (G , is-unital-G) (H , is-unital-H) + .contains-id-Large-Subprecategory G is-unital-G → + preserves-unit-id-hom-Monoid (G , is-unital-G) + .is-closed-under-composition-Large-Subprecategory + G H K g f is-unital-G is-unital-H is-unital-K unit-g unit-f → + preserves-unit-comp-hom-Monoid + ( G , is-unital-G) + ( H , is-unital-H) + ( K , is-unital-K) + ( g , unit-g) + ( f , unit-f) +``` + ### The large precategory of monoids ```agda -Monoid-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Monoid-Large-Precategory = - Monoid -hom-set-Large-Precategory - Monoid-Large-Precategory = - hom-set-Monoid -comp-hom-Large-Precategory - Monoid-Large-Precategory {X = K} {L} {M} = - comp-hom-Monoid K L M -id-hom-Large-Precategory - Monoid-Large-Precategory {X = M} = - id-hom-Monoid M -associative-comp-hom-Large-Precategory - Monoid-Large-Precategory {X = K} {L} {M} {N} = - associative-comp-hom-Monoid K L M N -inv-associative-comp-hom-Large-Precategory - Monoid-Large-Precategory {X = K} {L} {M} {N} = - inv-associative-comp-hom-Monoid K L M N -left-unit-law-comp-hom-Large-Precategory - Monoid-Large-Precategory {X = M} {N} = - left-unit-law-comp-hom-Monoid M N -right-unit-law-comp-hom-Large-Precategory - Monoid-Large-Precategory {X = M} {N} = - right-unit-law-comp-hom-Monoid M N +Monoid-Large-Precategory : Large-Precategory lsuc (_⊔_) +Monoid-Large-Precategory = + large-precategory-Large-Subprecategory Monoid-Large-Subprecategory ``` ### The precategory of small monoids diff --git a/src/group-theory/orbits-monoid-actions.lagda.md b/src/group-theory/precategory-of-orbits-monoid-actions.lagda.md similarity index 89% rename from src/group-theory/orbits-monoid-actions.lagda.md rename to src/group-theory/precategory-of-orbits-monoid-actions.lagda.md index a6766ac596..5a51488a0e 100644 --- a/src/group-theory/orbits-monoid-actions.lagda.md +++ b/src/group-theory/precategory-of-orbits-monoid-actions.lagda.md @@ -1,13 +1,12 @@ # The precategory of orbits of a monoid action ```agda -module group-theory.orbits-monoid-actions where +module group-theory.precategory-of-orbits-monoid-actions where ```
Imports ```agda -open import category-theory.composition-operations-on-binary-families-of-sets open import category-theory.precategories open import foundation.contractible-types @@ -179,19 +178,13 @@ module _ ( right-unit-law-mul-Monoid M (element-hom-orbit-action-Monoid f)) orbit-monoid-action-Precategory : Precategory l2 (l1 ⊔ l2) - pr1 orbit-monoid-action-Precategory = type-action-Monoid M X - pr1 (pr2 orbit-monoid-action-Precategory) = hom-orbit-monoid-action-Set - pr1 (pr1 (pr2 (pr2 orbit-monoid-action-Precategory))) = - comp-hom-orbit-action-Monoid - pr2 (pr1 (pr2 (pr2 orbit-monoid-action-Precategory))) = - is-associative-witness-associative-composition-operation-binary-family-Set + orbit-monoid-action-Precategory = + make-Precategory + ( type-action-Monoid M X) ( hom-orbit-monoid-action-Set) ( comp-hom-orbit-action-Monoid) + ( id-hom-orbit-action-Monoid) ( associative-comp-hom-orbit-action-Monoid) - pr1 (pr2 (pr2 (pr2 orbit-monoid-action-Precategory))) = - id-hom-orbit-action-Monoid - pr1 (pr2 (pr2 (pr2 (pr2 orbit-monoid-action-Precategory)))) = - left-unit-law-comp-hom-orbit-action-Monoid - pr2 (pr2 (pr2 (pr2 (pr2 orbit-monoid-action-Precategory)))) = - right-unit-law-comp-hom-orbit-action-Monoid + ( left-unit-law-comp-hom-orbit-action-Monoid) + ( right-unit-law-comp-hom-orbit-action-Monoid) ``` diff --git a/src/group-theory/precategory-of-semigroups.lagda.md b/src/group-theory/precategory-of-semigroups.lagda.md index b752aeea3b..264d32e6b7 100644 --- a/src/group-theory/precategory-of-semigroups.lagda.md +++ b/src/group-theory/precategory-of-semigroups.lagda.md @@ -23,29 +23,18 @@ Semigroups and semigroup homomorphisms form a precategory. ## Definition -### The precategory of semigroups +### The large precategory of semigroups ```agda -instance - Semigroup-Large-Precategory : Large-Precategory lsuc (_⊔_) - obj-Large-Precategory Semigroup-Large-Precategory = Semigroup - hom-set-Large-Precategory Semigroup-Large-Precategory = hom-set-Semigroup - comp-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} {H} {K} = - comp-hom-Semigroup G H K - id-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} = - id-hom-Semigroup G - associative-comp-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} {H} {K} {L} = - associative-comp-hom-Semigroup G H K L - inv-associative-comp-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} {H} {K} {L} = - inv-associative-comp-hom-Semigroup G H K L - left-unit-law-comp-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} {H} = - left-unit-law-comp-hom-Semigroup G H - right-unit-law-comp-hom-Large-Precategory Semigroup-Large-Precategory - {X = G} {H} = - right-unit-law-comp-hom-Semigroup G H +Semigroup-Large-Precategory : Large-Precategory lsuc (_⊔_) +Semigroup-Large-Precategory = + make-Large-Precategory + ( Semigroup) + ( hom-set-Semigroup) + ( λ {l1} {l2} {l3} {G} {H} {K} → comp-hom-Semigroup G H K) + ( λ {l} {G} → id-hom-Semigroup G) + ( λ {l1} {l2} {l3} {l4} {G} {H} {K} {L} → + associative-comp-hom-Semigroup G H K L) + ( λ {l1} {l2} {G} {H} → left-unit-law-comp-hom-Semigroup G H) + ( λ {l1} {l2} {G} {H} → right-unit-law-comp-hom-Semigroup G H) ``` diff --git a/src/group-theory/symmetric-groups.lagda.md b/src/group-theory/symmetric-groups.lagda.md index 282ff09a2f..bb5b38be9e 100644 --- a/src/group-theory/symmetric-groups.lagda.md +++ b/src/group-theory/symmetric-groups.lagda.md @@ -10,12 +10,9 @@ module group-theory.symmetric-groups where open import foundation.action-on-identifications-functions open import foundation.automorphisms open import foundation.dependent-pair-types -open import foundation.equality-dependent-pair-types open import foundation.equivalences open import foundation.function-extensionality -open import foundation.function-types open import foundation.identity-types -open import foundation.propositions open import foundation.sets open import foundation.subtypes open import foundation.universe-levels @@ -64,7 +61,9 @@ pr2 (pr2 (is-unital-Semigroup-symmetric-Semigroup X)) = right-unit-law-equiv is-group-symmetric-Semigroup' : {l : Level} (X : Set l) → - is-group' (symmetric-Semigroup X) (is-unital-Semigroup-symmetric-Semigroup X) + is-group-is-unital-Semigroup + ( symmetric-Semigroup X) + ( is-unital-Semigroup-symmetric-Semigroup X) pr1 (is-group-symmetric-Semigroup' X) = inv-equiv pr1 (pr2 (is-group-symmetric-Semigroup' X)) = left-inverse-law-equiv pr2 (pr2 (is-group-symmetric-Semigroup' X)) = right-inverse-law-equiv diff --git a/src/higher-group-theory/homomorphisms-higher-groups.lagda.md b/src/higher-group-theory/homomorphisms-higher-groups.lagda.md index 72ad473da7..e40ff05191 100644 --- a/src/higher-group-theory/homomorphisms-higher-groups.lagda.md +++ b/src/higher-group-theory/homomorphisms-higher-groups.lagda.md @@ -116,12 +116,6 @@ module _ ( comp-hom-∞-Group G K L h (comp-hom-∞-Group G H K g f)) associative-comp-hom-∞-Group = associative-comp-pointed-map - inv-associative-comp-hom-∞-Group : - (h : hom-∞-Group K L) (g : hom-∞-Group H K) (f : hom-∞-Group G H) → - htpy-hom-∞-Group G L - ( comp-hom-∞-Group G K L h (comp-hom-∞-Group G H K g f)) - ( comp-hom-∞-Group G H L (comp-hom-∞-Group H K L h g) f) - inv-associative-comp-hom-∞-Group = inv-associative-comp-pointed-map module _ {l1 l2 : Level} (G : ∞-Group l1) (H : ∞-Group l2) where diff --git a/src/linear-algebra/vectors-on-euclidean-domains.lagda.md b/src/linear-algebra/vectors-on-euclidean-domains.lagda.md index fae1dfb56d..63019ac835 100644 --- a/src/linear-algebra/vectors-on-euclidean-domains.lagda.md +++ b/src/linear-algebra/vectors-on-euclidean-domains.lagda.md @@ -316,7 +316,7 @@ module _ right-unit-law-add-vec-Euclidean-Domain R is-group-vec-Euclidean-Domain : - (n : ℕ) → is-group (vec-Euclidean-Domain-Semigroup R n) + (n : ℕ) → is-group-Semigroup (vec-Euclidean-Domain-Semigroup R n) pr1 (is-group-vec-Euclidean-Domain n) = is-unital-vec-Euclidean-Domain n pr1 (pr2 (is-group-vec-Euclidean-Domain n)) = neg-vec-Euclidean-Domain pr1 (pr2 (pr2 (is-group-vec-Euclidean-Domain n))) = diff --git a/src/linear-algebra/vectors-on-rings.lagda.md b/src/linear-algebra/vectors-on-rings.lagda.md index 661b80f987..fbeb4ee829 100644 --- a/src/linear-algebra/vectors-on-rings.lagda.md +++ b/src/linear-algebra/vectors-on-rings.lagda.md @@ -265,7 +265,7 @@ module _ pr1 (pr2 (is-unital-vec-Ring n)) = left-unit-law-add-vec-Ring R pr2 (pr2 (is-unital-vec-Ring n)) = right-unit-law-add-vec-Ring R - is-group-vec-Ring : (n : ℕ) → is-group (vec-Ring-Semigroup R n) + is-group-vec-Ring : (n : ℕ) → is-group-Semigroup (vec-Ring-Semigroup R n) pr1 (is-group-vec-Ring n) = is-unital-vec-Ring n pr1 (pr2 (is-group-vec-Ring n)) = neg-vec-Ring pr1 (pr2 (pr2 (is-group-vec-Ring n))) = left-inverse-law-add-vec-Ring diff --git a/src/order-theory/large-preorders.lagda.md b/src/order-theory/large-preorders.lagda.md index adecba1d79..814b16dabb 100644 --- a/src/order-theory/large-preorders.lagda.md +++ b/src/order-theory/large-preorders.lagda.md @@ -14,6 +14,7 @@ open import foundation.identity-types open import foundation.large-binary-relations open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.universe-levels open import order-theory.preorders @@ -142,12 +143,10 @@ module _ transitive-leq-Large-Preorder P x y z id-hom-Large-Precategory large-precategory-Large-Preorder {X = x} = refl-leq-Large-Preorder P x - associative-comp-hom-Large-Precategory large-precategory-Large-Preorder + involutive-eq-associative-comp-hom-Large-Precategory + large-precategory-Large-Preorder {X = x} {W = w} h g f = - eq-is-prop (is-prop-leq-Large-Preorder P x w) - inv-associative-comp-hom-Large-Precategory large-precategory-Large-Preorder - {X = x} {W = w} h g f = - eq-is-prop (is-prop-leq-Large-Preorder P x w) + involutive-eq-eq (eq-is-prop (is-prop-leq-Large-Preorder P x w)) left-unit-law-comp-hom-Large-Precategory large-precategory-Large-Preorder {X = x} {y} f = eq-is-prop (is-prop-leq-Large-Preorder P x y) diff --git a/src/order-theory/order-preserving-maps-large-posets.lagda.md b/src/order-theory/order-preserving-maps-large-posets.lagda.md index 6c8ff099cc..f4cd9eb033 100644 --- a/src/order-theory/order-preserving-maps-large-posets.lagda.md +++ b/src/order-theory/order-preserving-maps-large-posets.lagda.md @@ -9,9 +9,6 @@ module order-theory.order-preserving-maps-large-posets where ```agda open import foundation.universe-levels -open import foundation-core.function-types -open import foundation-core.homotopies - open import order-theory.large-posets open import order-theory.order-preserving-maps-large-preorders open import order-theory.similarity-of-elements-large-posets @@ -192,20 +189,6 @@ module _ ( h) ( g) ( f) - - inv-associative-comp-hom-Large-Poset : - htpy-hom-Large-Poset P S - ( comp-hom-Large-Poset P R S h (comp-hom-Large-Poset P Q R g f)) - ( comp-hom-Large-Poset P Q S (comp-hom-Large-Poset Q R S h g) f) - inv-associative-comp-hom-Large-Poset = - inv-associative-comp-hom-Large-Preorder - ( large-preorder-Large-Poset P) - ( large-preorder-Large-Poset Q) - ( large-preorder-Large-Poset R) - ( large-preorder-Large-Poset S) - ( h) - ( g) - ( f) ``` ### Composition of order preserving maps satisfies left and right unit laws diff --git a/src/order-theory/order-preserving-maps-large-preorders.lagda.md b/src/order-theory/order-preserving-maps-large-preorders.lagda.md index bf603766c6..bca9ee11b2 100644 --- a/src/order-theory/order-preserving-maps-large-preorders.lagda.md +++ b/src/order-theory/order-preserving-maps-large-preorders.lagda.md @@ -159,12 +159,6 @@ module _ ( comp-hom-Large-Preorder P Q S (comp-hom-Large-Preorder Q R S h g) f) ( comp-hom-Large-Preorder P R S h (comp-hom-Large-Preorder P Q R g f)) associative-comp-hom-Large-Preorder = refl-htpy - - inv-associative-comp-hom-Large-Preorder : - htpy-hom-Large-Preorder P S - ( comp-hom-Large-Preorder P R S h (comp-hom-Large-Preorder P Q R g f)) - ( comp-hom-Large-Preorder P Q S (comp-hom-Large-Preorder Q R S h g) f) - inv-associative-comp-hom-Large-Preorder = refl-htpy ``` ### Composition of order preserving maps satisfies left and right unit laws diff --git a/src/order-theory/order-preserving-maps-posets.lagda.md b/src/order-theory/order-preserving-maps-posets.lagda.md index 3c5f3ef61e..cfb1e1f651 100644 --- a/src/order-theory/order-preserving-maps-posets.lagda.md +++ b/src/order-theory/order-preserving-maps-posets.lagda.md @@ -12,6 +12,7 @@ open import foundation.function-types open import foundation.identity-types open import foundation.propositions open import foundation.sets +open import foundation.strictly-involutive-identity-types open import foundation.subtypes open import foundation.torsorial-type-families open import foundation.universe-levels @@ -197,12 +198,12 @@ module _ ( preorder-Poset R) ( preorder-Poset S) - inv-associative-comp-hom-Poset : + involutive-eq-associative-comp-hom-Poset : (h : hom-Poset R S) (g : hom-Poset Q R) (f : hom-Poset P Q) → - comp-hom-Poset P R S h (comp-hom-Poset P Q R g f) = - comp-hom-Poset P Q S (comp-hom-Poset Q R S h g) f - inv-associative-comp-hom-Poset = - inv-associative-comp-hom-Preorder + comp-hom-Poset P Q S (comp-hom-Poset Q R S h g) f =ⁱ + comp-hom-Poset P R S h (comp-hom-Poset P Q R g f) + involutive-eq-associative-comp-hom-Poset = + involutive-eq-associative-comp-hom-Preorder ( preorder-Poset P) ( preorder-Poset Q) ( preorder-Poset R) diff --git a/src/order-theory/order-preserving-maps-preorders.lagda.md b/src/order-theory/order-preserving-maps-preorders.lagda.md index 8021299f9d..b3bbc7d62b 100644 --- a/src/order-theory/order-preserving-maps-preorders.lagda.md +++ b/src/order-theory/order-preserving-maps-preorders.lagda.md @@ -15,6 +15,7 @@ open import foundation.homotopies open import foundation.homotopy-induction open import foundation.identity-types open import foundation.propositions +open import foundation.strictly-involutive-identity-types open import foundation.subtype-identity-principle open import foundation.torsorial-type-families open import foundation.universe-levels @@ -209,12 +210,9 @@ module _ ( comp-hom-Preorder P R S h (comp-hom-Preorder P Q R g f)) ( refl-htpy) - inv-associative-comp-hom-Preorder : - comp-hom-Preorder P R S h (comp-hom-Preorder P Q R g f) = - comp-hom-Preorder P Q S (comp-hom-Preorder Q R S h g) f - inv-associative-comp-hom-Preorder = - eq-htpy-hom-Preorder P S - ( comp-hom-Preorder P R S h (comp-hom-Preorder P Q R g f)) - ( comp-hom-Preorder P Q S (comp-hom-Preorder Q R S h g) f) - ( refl-htpy) + involutive-eq-associative-comp-hom-Preorder : + comp-hom-Preorder P Q S (comp-hom-Preorder Q R S h g) f =ⁱ + comp-hom-Preorder P R S h (comp-hom-Preorder P Q R g f) + involutive-eq-associative-comp-hom-Preorder = + involutive-eq-eq associative-comp-hom-Preorder ``` diff --git a/src/order-theory/precategory-of-posets.lagda.md b/src/order-theory/precategory-of-posets.lagda.md index 6eee88f969..29876db4bc 100644 --- a/src/order-theory/precategory-of-posets.lagda.md +++ b/src/order-theory/precategory-of-posets.lagda.md @@ -20,8 +20,8 @@ open import order-theory.posets ## Idea -The **(large) precategory of posets** consists of -[posets](order-theory.posets.md) and +The {{#concept "(large) precategory of posets" Agda=Poset-Large-Precategory}} +consists of [posets](order-theory.posets.md) and [order preserving maps](order-theory.order-preserving-maps-posets.md). ## Definitions @@ -36,14 +36,16 @@ parametric-Poset-Large-Precategory : ( λ l1 l2 → α l1 ⊔ β l1 ⊔ α l2 ⊔ β l2) parametric-Poset-Large-Precategory α β = λ where - .obj-Large-Precategory l → Poset (α l) (β l) - .hom-set-Large-Precategory → hom-set-Poset - .comp-hom-Large-Precategory {X = X} {Y} {Z} → comp-hom-Poset X Y Z - .id-hom-Large-Precategory {X = X} → id-hom-Poset X - .associative-comp-hom-Large-Precategory {X = X} {Y} {Z} {W} → - associative-comp-hom-Poset X Y Z W - .inv-associative-comp-hom-Large-Precategory {X = X} {Y} {Z} {W} → - inv-associative-comp-hom-Poset X Y Z W + .obj-Large-Precategory l → + Poset (α l) (β l) + .hom-set-Large-Precategory → + hom-set-Poset + .comp-hom-Large-Precategory {X = X} {Y} {Z} → + comp-hom-Poset X Y Z + .id-hom-Large-Precategory {X = X} → + id-hom-Poset X + .involutive-eq-associative-comp-hom-Large-Precategory {X = X} {Y} {Z} {W} → + involutive-eq-associative-comp-hom-Poset X Y Z W .left-unit-law-comp-hom-Large-Precategory {X = X} {Y} → left-unit-law-comp-hom-Poset X Y .right-unit-law-comp-hom-Large-Precategory {X = X} {Y} → diff --git a/src/order-theory/preorders.lagda.md b/src/order-theory/preorders.lagda.md index 6ad7c5df71..2bc2aa9ba2 100644 --- a/src/order-theory/preorders.lagda.md +++ b/src/order-theory/preorders.lagda.md @@ -137,19 +137,16 @@ module _ where precategory-Preorder : Precategory l1 l2 - pr1 precategory-Preorder = type-Preorder X - pr1 (pr2 precategory-Preorder) x y = set-Prop (leq-Preorder-Prop X x y) - pr1 (pr1 (pr2 (pr2 precategory-Preorder))) {x} {y} {z} = - is-transitive-leq-Preorder X x y z - pr1 (pr2 (pr1 (pr2 (pr2 precategory-Preorder))) {x} {y} {z} {w} h g f) = - eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x w)) - pr2 (pr2 (pr1 (pr2 (pr2 precategory-Preorder))) {x} {y} {z} {w} h g f) = - eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x w)) - pr1 (pr2 (pr2 (pr2 precategory-Preorder))) = refl-leq-Preorder X - pr1 (pr2 (pr2 (pr2 (pr2 precategory-Preorder)))) {x} {y} f = - eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x y)) - pr2 (pr2 (pr2 (pr2 (pr2 precategory-Preorder)))) {x} {y} f = - eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x y)) + precategory-Preorder = + make-Precategory + ( type-Preorder X) + ( λ x y → set-Prop (leq-Preorder-Prop X x y)) + ( λ {x} {y} {z} → is-transitive-leq-Preorder X x y z) + ( refl-leq-Preorder X) + ( λ {x} {y} {z} {w} h g f → + eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x w))) + ( λ {x} {y} f → eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x y))) + ( λ {x} {y} f → eq-is-prop (is-prop-type-Prop (leq-Preorder-Prop X x y))) module _ {l1 l2 : Level} (C : Precategory l1 l2) diff --git a/src/ring-theory/category-of-cyclic-rings.lagda.md b/src/ring-theory/category-of-cyclic-rings.lagda.md index b513d8c8d1..27c4f61a07 100644 --- a/src/ring-theory/category-of-cyclic-rings.lagda.md +++ b/src/ring-theory/category-of-cyclic-rings.lagda.md @@ -8,27 +8,27 @@ module ring-theory.category-of-cyclic-rings where ```agda open import category-theory.categories -open import category-theory.isomorphisms-in-large-precategories +open import category-theory.full-large-subprecategories open import category-theory.large-categories open import category-theory.large-precategories -open import foundation.fundamental-theorem-of-identity-types -open import foundation.subtype-identity-principle open import foundation.universe-levels open import order-theory.large-posets +open import ring-theory.category-of-rings open import ring-theory.cyclic-rings open import ring-theory.homomorphisms-cyclic-rings -open import ring-theory.isomorphisms-rings +open import ring-theory.precategory-of-rings ```
## Idea -The **large category of cyclic rings** is the -[large category](category-theory.large-categories.md) consisting of +The +{{#concept "large category of cyclic rings" Agda=Cyclic-Ring-Large-Category}} is +the [large category](category-theory.large-categories.md) consisting of [cyclic rings](ring-theory.cyclic-rings.md) and [ring homomorphisms](ring-theory.homomorphisms-cyclic-rings.md). @@ -40,34 +40,22 @@ rings is constructed in the file ## Definition +### The precategory of cyclic rings as a full subprecategory of the precategory of rings + +```agda +Cyclic-Ring-Full-Large-Subprecategory : + Full-Large-Subprecategory (λ l → l) Ring-Large-Precategory +Cyclic-Ring-Full-Large-Subprecategory = is-cyclic-prop-Ring +``` + ### The large precategory of cyclic rings ```agda -Cyclic-Ring-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Cyclic-Ring-Large-Precategory = - Cyclic-Ring -hom-set-Large-Precategory - Cyclic-Ring-Large-Precategory = - hom-set-Cyclic-Ring -comp-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} {Y = S} {Z = T} = - comp-hom-Cyclic-Ring R S T -id-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} = - id-hom-Cyclic-Ring R -associative-comp-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} {Y = S} {Z = T} {W = U} = - associative-comp-hom-Cyclic-Ring R S T U -inv-associative-comp-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} {Y = S} {Z = T} {W = U} = - inv-associative-comp-hom-Cyclic-Ring R S T U -left-unit-law-comp-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} {Y = S} = - left-unit-law-comp-hom-Cyclic-Ring R S -right-unit-law-comp-hom-Large-Precategory - Cyclic-Ring-Large-Precategory {X = R} {Y = S} = - right-unit-law-comp-hom-Cyclic-Ring R S +Cyclic-Ring-Large-Precategory : Large-Precategory lsuc (_⊔_) +Cyclic-Ring-Large-Precategory = + large-precategory-Full-Large-Subprecategory + ( Ring-Large-Precategory) + ( Cyclic-Ring-Full-Large-Subprecategory) ``` ### The large category of cyclic rings @@ -76,17 +64,13 @@ right-unit-law-comp-hom-Large-Precategory abstract is-large-category-Cyclic-Ring-Large-Category : is-large-category-Large-Precategory Cyclic-Ring-Large-Precategory - is-large-category-Cyclic-Ring-Large-Category R = - fundamental-theorem-id - ( is-torsorial-Eq-subtype - ( is-torsorial-iso-Ring (ring-Cyclic-Ring R)) - ( is-prop-is-cyclic-Ring) - ( ring-Cyclic-Ring R) - ( id-iso-Ring (ring-Cyclic-Ring R)) - ( is-cyclic-Cyclic-Ring R)) - ( iso-eq-Large-Precategory Cyclic-Ring-Large-Precategory R) - -Cyclic-Ring-Large-Category : Large-Category lsuc _⊔_ + is-large-category-Cyclic-Ring-Large-Category = + is-large-category-large-precategory-is-large-category-Full-Large-Subprecategory + ( Ring-Large-Precategory) + ( Cyclic-Ring-Full-Large-Subprecategory) + ( is-large-category-Ring-Large-Category) + +Cyclic-Ring-Large-Category : Large-Category lsuc (_⊔_) large-precategory-Large-Category Cyclic-Ring-Large-Category = Cyclic-Ring-Large-Precategory diff --git a/src/ring-theory/category-of-rings.lagda.md b/src/ring-theory/category-of-rings.lagda.md index 864f8110f8..bd3bfa299d 100644 --- a/src/ring-theory/category-of-rings.lagda.md +++ b/src/ring-theory/category-of-rings.lagda.md @@ -34,7 +34,7 @@ is-large-category-Ring-Large-Category : is-large-category-Ring-Large-Category = is-equiv-iso-eq-Ring -Ring-Large-Category : Large-Category lsuc _⊔_ +Ring-Large-Category : Large-Category lsuc (_⊔_) large-precategory-Large-Category Ring-Large-Category = Ring-Large-Precategory is-large-category-Large-Category Ring-Large-Category = diff --git a/src/ring-theory/groups-of-units-rings.lagda.md b/src/ring-theory/groups-of-units-rings.lagda.md index da0967105b..16e293804e 100644 --- a/src/ring-theory/groups-of-units-rings.lagda.md +++ b/src/ring-theory/groups-of-units-rings.lagda.md @@ -117,11 +117,14 @@ module _ right-inverse-law-mul-core-Monoid (multiplicative-monoid-Ring R) is-group-group-of-units-Ring' : - is-group' semigroup-group-of-units-Ring is-unital-group-of-units-Ring + is-group-is-unital-Semigroup + ( semigroup-group-of-units-Ring) + ( is-unital-group-of-units-Ring) is-group-group-of-units-Ring' = is-group-core-Monoid' (multiplicative-monoid-Ring R) - is-group-group-of-units-Ring : is-group semigroup-group-of-units-Ring + is-group-group-of-units-Ring : + is-group-Semigroup semigroup-group-of-units-Ring is-group-group-of-units-Ring = is-group-core-Monoid (multiplicative-monoid-Ring R) diff --git a/src/ring-theory/homomorphisms-cyclic-rings.lagda.md b/src/ring-theory/homomorphisms-cyclic-rings.lagda.md index 37cdae96bf..8bdb6d76cf 100644 --- a/src/ring-theory/homomorphisms-cyclic-rings.lagda.md +++ b/src/ring-theory/homomorphisms-cyclic-rings.lagda.md @@ -204,19 +204,6 @@ module _ ( ring-Cyclic-Ring S) ( ring-Cyclic-Ring T) ( ring-Cyclic-Ring U) - - inv-associative-comp-hom-Cyclic-Ring : - (h : hom-Cyclic-Ring T U) - (g : hom-Cyclic-Ring S T) - (f : hom-Cyclic-Ring R S) → - comp-hom-Cyclic-Ring R T U h (comp-hom-Cyclic-Ring R S T g f) = - comp-hom-Cyclic-Ring R S U (comp-hom-Cyclic-Ring S T U h g) f - inv-associative-comp-hom-Cyclic-Ring = - inv-associative-comp-hom-Ring - ( ring-Cyclic-Ring R) - ( ring-Cyclic-Ring S) - ( ring-Cyclic-Ring T) - ( ring-Cyclic-Ring U) ``` ## See also diff --git a/src/ring-theory/homomorphisms-rings.lagda.md b/src/ring-theory/homomorphisms-rings.lagda.md index 9fb1a19db9..95f466ea7c 100644 --- a/src/ring-theory/homomorphisms-rings.lagda.md +++ b/src/ring-theory/homomorphisms-rings.lagda.md @@ -355,15 +355,6 @@ module _ ( comp-hom-Ring R S U (comp-hom-Ring S T U h g) f) ( comp-hom-Ring R T U h (comp-hom-Ring R S T g f)) ( refl-htpy) - - inv-associative-comp-hom-Ring : - comp-hom-Ring R T U h (comp-hom-Ring R S T g f) = - comp-hom-Ring R S U (comp-hom-Ring S T U h g) f - inv-associative-comp-hom-Ring = - eq-htpy-hom-Ring R U - ( comp-hom-Ring R T U h (comp-hom-Ring R S T g f)) - ( comp-hom-Ring R S U (comp-hom-Ring S T U h g) f) - ( refl-htpy) ``` ### Unit laws for composition of ring homomorphisms diff --git a/src/ring-theory/homomorphisms-semirings.lagda.md b/src/ring-theory/homomorphisms-semirings.lagda.md index 7f709a2561..9bd4acad47 100644 --- a/src/ring-theory/homomorphisms-semirings.lagda.md +++ b/src/ring-theory/homomorphisms-semirings.lagda.md @@ -335,15 +335,6 @@ module _ ( comp-hom-Semiring R S U (comp-hom-Semiring S T U h g) f) ( comp-hom-Semiring R T U h (comp-hom-Semiring R S T g f)) ( refl-htpy) - - inv-associative-comp-hom-Semiring : - comp-hom-Semiring R T U h (comp-hom-Semiring R S T g f) = - comp-hom-Semiring R S U (comp-hom-Semiring S T U h g) f - inv-associative-comp-hom-Semiring = - eq-htpy-hom-Semiring R U - ( comp-hom-Semiring R T U h (comp-hom-Semiring R S T g f)) - ( comp-hom-Semiring R S U (comp-hom-Semiring S T U h g) f) - ( refl-htpy) ``` ### Unit laws for composition of homomorphisms of semirings diff --git a/src/ring-theory/poset-of-cyclic-rings.lagda.md b/src/ring-theory/poset-of-cyclic-rings.lagda.md index 0ec90ccaeb..ef3023bcd0 100644 --- a/src/ring-theory/poset-of-cyclic-rings.lagda.md +++ b/src/ring-theory/poset-of-cyclic-rings.lagda.md @@ -31,7 +31,7 @@ The large poset of cyclic rings is dual to the large poset of ### The large poset of cyclic rings ```agda -Cyclic-Ring-Large-Poset : Large-Poset lsuc _⊔_ +Cyclic-Ring-Large-Poset : Large-Poset lsuc (_⊔_) Cyclic-Ring-Large-Poset = large-poset-Large-Category ( Cyclic-Ring-Large-Category) diff --git a/src/ring-theory/precategory-of-rings.lagda.md b/src/ring-theory/precategory-of-rings.lagda.md index fceb7d32a2..e4d937c4e3 100644 --- a/src/ring-theory/precategory-of-rings.lagda.md +++ b/src/ring-theory/precategory-of-rings.lagda.md @@ -28,31 +28,16 @@ and [ring homomorphisms](ring-theory.homomorphisms-rings.md). ### The large precategory of rings ```agda -Ring-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Ring-Large-Precategory = - Ring -hom-set-Large-Precategory - Ring-Large-Precategory = - hom-set-Ring -comp-hom-Large-Precategory - Ring-Large-Precategory {X = R} {S} {T} = - comp-hom-Ring R S T -id-hom-Large-Precategory - Ring-Large-Precategory {X = R} = - id-hom-Ring R -associative-comp-hom-Large-Precategory - Ring-Large-Precategory {X = R} {S} {T} {U} = - associative-comp-hom-Ring R S T U -inv-associative-comp-hom-Large-Precategory - Ring-Large-Precategory {X = R} {S} {T} {U} = - inv-associative-comp-hom-Ring R S T U -left-unit-law-comp-hom-Large-Precategory - Ring-Large-Precategory {X = R} {S} = - left-unit-law-comp-hom-Ring R S -right-unit-law-comp-hom-Large-Precategory - Ring-Large-Precategory {X = R} {S} = - right-unit-law-comp-hom-Ring R S +Ring-Large-Precategory : Large-Precategory (lsuc) (_⊔_) +Ring-Large-Precategory = + make-Large-Precategory + ( Ring) + ( hom-set-Ring) + ( λ {l1} {l2} {l3} {R} {S} {T} → comp-hom-Ring R S T) + ( λ {l} {R} → id-hom-Ring R) + ( λ {l1} {l2} {l3} {l4} {R} {S} {T} {U} → associative-comp-hom-Ring R S T U) + ( λ {l1} {l2} {R} {S} → left-unit-law-comp-hom-Ring R S) + ( λ {l1} {l2} {R} {S} → right-unit-law-comp-hom-Ring R S) ``` ### The precategory or rings of universe level `l` diff --git a/src/ring-theory/precategory-of-semirings.lagda.md b/src/ring-theory/precategory-of-semirings.lagda.md index a05398d556..8b84a0d3e0 100644 --- a/src/ring-theory/precategory-of-semirings.lagda.md +++ b/src/ring-theory/precategory-of-semirings.lagda.md @@ -10,7 +10,6 @@ module ring-theory.precategory-of-semirings where open import category-theory.large-precategories open import category-theory.precategories -open import foundation.identity-types open import foundation.universe-levels open import ring-theory.homomorphisms-semirings @@ -21,42 +20,29 @@ open import ring-theory.semirings ## Idea -The **precategory of semirings** consists of semirings and homomorphisms of -semirings. +The {{#concet "precategory of semirings" Agda=Semiring-Large-Precategory}} +consists of [semirings](ring-theory.semirings.md) and +[homomorphisms of semirings](ring-theory.homomorphisms-semirings.md). ## Definitions ### The large precategory of semirings ```agda -Semiring-Large-Precategory : Large-Precategory lsuc _⊔_ -obj-Large-Precategory - Semiring-Large-Precategory = - Semiring -hom-set-Large-Precategory - Semiring-Large-Precategory = - hom-set-Semiring -comp-hom-Large-Precategory - Semiring-Large-Precategory {X = R} {S} {T} = - comp-hom-Semiring R S T -id-hom-Large-Precategory - Semiring-Large-Precategory {X = R} = - id-hom-Semiring R -associative-comp-hom-Large-Precategory - Semiring-Large-Precategory {X = R} {S} {T} {U} = - associative-comp-hom-Semiring R S T U -inv-associative-comp-hom-Large-Precategory - Semiring-Large-Precategory {X = R} {S} {T} {U} = - inv-associative-comp-hom-Semiring R S T U -left-unit-law-comp-hom-Large-Precategory - Semiring-Large-Precategory {X = R} {S} = - left-unit-law-comp-hom-Semiring R S -right-unit-law-comp-hom-Large-Precategory - Semiring-Large-Precategory {X = R} {S} = - right-unit-law-comp-hom-Semiring R S +Semiring-Large-Precategory : Large-Precategory lsuc (_⊔_) +Semiring-Large-Precategory = + make-Large-Precategory + ( Semiring) + ( hom-set-Semiring) + ( λ {l1} {l2} {l3} {R} {S} {T} → comp-hom-Semiring R S T) + ( λ {l} {R} → id-hom-Semiring R) + ( λ {l1} {l2} {l3} {l4} {R} {S} {T} {U} → + associative-comp-hom-Semiring R S T U) + ( λ {l1} {l2} {R} {S} → left-unit-law-comp-hom-Semiring R S) + ( λ {l1} {l2} {R} {S} → right-unit-law-comp-hom-Semiring R S) ``` -### The precategory of semirings of universe level `l` +### The precategory of small semirings ```agda Semiring-Precategory : (l : Level) → Precategory (lsuc l) l diff --git a/src/ring-theory/rings.lagda.md b/src/ring-theory/rings.lagda.md index 69bdbd6ffa..757f7994ee 100644 --- a/src/ring-theory/rings.lagda.md +++ b/src/ring-theory/rings.lagda.md @@ -123,7 +123,8 @@ module _ Id (add-Ring (add-Ring x y) z) (add-Ring x (add-Ring y z)) associative-add-Ring = associative-add-Ab (ab-Ring R) - is-group-additive-semigroup-Ring : is-group (additive-semigroup-Ring R) + is-group-additive-semigroup-Ring : + is-group-Semigroup (additive-semigroup-Ring R) is-group-additive-semigroup-Ring = is-group-Ab (ab-Ring R) commutative-add-Ring : (x y : type-Ring R) → Id (add-Ring x y) (add-Ring y x) @@ -289,7 +290,8 @@ module _ {l : Level} (R : Ring l) where - has-negatives-Ring : is-group' (additive-semigroup-Ring R) (has-zero-Ring R) + has-negatives-Ring : + is-group-is-unital-Semigroup (additive-semigroup-Ring R) (has-zero-Ring R) has-negatives-Ring = has-negatives-Ab (ab-Ring R) neg-Ring : type-Ring R → type-Ring R diff --git a/src/ring-theory/semirings.lagda.md b/src/ring-theory/semirings.lagda.md index 66c1cbe91c..982869d8d3 100644 --- a/src/ring-theory/semirings.lagda.md +++ b/src/ring-theory/semirings.lagda.md @@ -30,11 +30,13 @@ open import group-theory.semigroups ## Idea -The concept of semiring vastly generalizes the arithmetical structure on the -natural numbers. A semiring consists of a set equipped with addition and -multiplication, where the addition operation gives the ring the structure of a -commutative monoid, and the multiplication is associative, unital, and -distributive over addition. +The concept of a _semiring_ vastly generalizes the arithmetical structure on the +[natural numbers](elementary-number-theory.natural-numbers.md). A +{{#concept "semiring" Agda=Semiring}} consists of a +[set](foundation-core.sets.md) equipped with addition and multiplication, where +the addition operation gives the semiring the structure of a +[commutative monoid](group-theory.commutative-monoids.md), and the +multiplication is associative, unital, and distributive over addition. ## Definitions diff --git a/src/species/morphisms-finite-species.lagda.md b/src/species/morphisms-finite-species.lagda.md index bfb389c0c0..6feb38556a 100644 --- a/src/species/morphisms-finite-species.lagda.md +++ b/src/species/morphisms-finite-species.lagda.md @@ -91,12 +91,6 @@ module _ comp-hom-species-𝔽 F G K (comp-hom-species-𝔽 G H K h g) f = comp-hom-species-𝔽 F H K h (comp-hom-species-𝔽 F G H g f) associative-comp-hom-species-𝔽 h g f = refl - - inv-associative-comp-hom-species-𝔽 : - (h : hom-species-𝔽 H K) (g : hom-species-𝔽 G H) (f : hom-species-𝔽 F G) → - comp-hom-species-𝔽 F H K h (comp-hom-species-𝔽 F G H g f) = - comp-hom-species-𝔽 F G K (comp-hom-species-𝔽 G H K h g) f - inv-associative-comp-hom-species-𝔽 h g f = refl ``` ### The unit laws for composition of homomorphisms of finite species diff --git a/src/species/morphisms-species-of-types.lagda.md b/src/species/morphisms-species-of-types.lagda.md index 5773cfc7c3..713b51777c 100644 --- a/src/species/morphisms-species-of-types.lagda.md +++ b/src/species/morphisms-species-of-types.lagda.md @@ -114,11 +114,6 @@ module _ comp-hom-species-types (comp-hom-species-types h g) f = comp-hom-species-types h (comp-hom-species-types g f) associative-comp-hom-species-types = refl - - inv-associative-comp-hom-species-types : - comp-hom-species-types h (comp-hom-species-types g f) = - comp-hom-species-types (comp-hom-species-types h g) f - inv-associative-comp-hom-species-types = refl ``` ### Unit laws of composition diff --git a/src/species/precategory-of-finite-species.lagda.md b/src/species/precategory-of-finite-species.lagda.md index 6f78d29f80..a5cc4ed1e4 100644 --- a/src/species/precategory-of-finite-species.lagda.md +++ b/src/species/precategory-of-finite-species.lagda.md @@ -19,31 +19,25 @@ open import species.species-of-finite-types ## Idea -The **precategory of finite species** consists of finite species and -homomorphisms of finite species. +The +{{#concept "precategory of finite species" Agda=species-𝔽-Large-Precategory}} +consists of [finite species](species.species-of-finite-types.md) and +[homomorphisms of finite species](species.morphisms-finite-species.md). ## Definition ```agda species-𝔽-Large-Precategory : - (l1 : Level) → - Large-Precategory (λ l → lsuc l1 ⊔ lsuc l) (λ l2 l3 → lsuc l1 ⊔ l2 ⊔ l3) -obj-Large-Precategory (species-𝔽-Large-Precategory l1) = species-𝔽 l1 -hom-set-Large-Precategory (species-𝔽-Large-Precategory l1) = hom-set-species-𝔽 -comp-hom-Large-Precategory (species-𝔽-Large-Precategory l1) {X = F} {G} {H} = - comp-hom-species-𝔽 F G H -id-hom-Large-Precategory (species-𝔽-Large-Precategory l1) {X = F} = - id-hom-species-𝔽 F -associative-comp-hom-Large-Precategory - ( species-𝔽-Large-Precategory l1) {X = F} {G} {H} {K} h g f = - associative-comp-hom-species-𝔽 F G H K h g f -inv-associative-comp-hom-Large-Precategory - ( species-𝔽-Large-Precategory l1) {X = F} {G} {H} {K} h g f = - inv-associative-comp-hom-species-𝔽 F G H K h g f -left-unit-law-comp-hom-Large-Precategory - ( species-𝔽-Large-Precategory l1) {X = F} {G} f = - left-unit-law-comp-hom-species-𝔽 F G f -right-unit-law-comp-hom-Large-Precategory - ( species-𝔽-Large-Precategory l1) {X = F} {G} f = - right-unit-law-comp-hom-species-𝔽 F G f + (l : Level) → + Large-Precategory (λ l1 → lsuc l ⊔ lsuc l1) (λ l2 l3 → lsuc l ⊔ l2 ⊔ l3) +species-𝔽-Large-Precategory l = + make-Large-Precategory + ( species-𝔽 l) + ( hom-set-species-𝔽) + ( λ {l1} {l2} {l3} {F} {G} {H} → comp-hom-species-𝔽 F G H) + ( λ {l1} {F} → id-hom-species-𝔽 F) + ( λ {l1} {l2} {l3} {l4} {F} {G} {H} {K} → + associative-comp-hom-species-𝔽 F G H K) + ( λ {l1} {l2} {F} {G} → left-unit-law-comp-hom-species-𝔽 F G) + ( λ {l1} {l2} {F} {G} → right-unit-law-comp-hom-species-𝔽 F G) ``` diff --git a/src/trees/undirected-trees.lagda.md b/src/trees/undirected-trees.lagda.md index f11286e826..f60cce11cf 100644 --- a/src/trees/undirected-trees.lagda.md +++ b/src/trees/undirected-trees.lagda.md @@ -1,4 +1,4 @@ -# Undirected rees +# Undirected trees ```agda module trees.undirected-trees where diff --git a/src/universal-algebra/algebraic-theory-of-groups.lagda.md b/src/universal-algebra/algebraic-theory-of-groups.lagda.md index 5645a87ba0..719d008255 100644 --- a/src/universal-algebra/algebraic-theory-of-groups.lagda.md +++ b/src/universal-algebra/algebraic-theory-of-groups.lagda.md @@ -146,7 +146,8 @@ abstract pr1 equiv-group-Algebra-Group = group-Algebra-Group pr1 (pr1 (pr2 equiv-group-Algebra-Group)) = Group-group-Algebra pr2 (pr1 (pr2 equiv-group-Algebra-Group)) G = - eq-pair-eq-fiber (eq-is-prop (is-prop-is-group (semigroup-Group G))) + eq-pair-eq-fiber + ( eq-is-prop (is-prop-is-group-Semigroup (semigroup-Group G))) pr1 (pr2 (pr2 equiv-group-Algebra-Group)) = Group-group-Algebra pr2 (pr2 (pr2 equiv-group-Algebra-Group)) A = eq-pair-Σ