Cartesian products of higher groups
module higher-group-theory.cartesian-products-higher-groups where
Imports
open import foundation.0-connected-types open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.equality-cartesian-product-types open import foundation.equivalences open import foundation.identity-types open import foundation.mere-equality open import foundation.propositions open import foundation.universe-levels open import higher-group-theory.higher-groups open import structured-types.pointed-cartesian-product-types open import structured-types.pointed-types open import synthetic-homotopy-theory.loop-spaces
Idea
The Cartesian product of higher groups is also a higher group.
Definition
module _ {l1 l2 : Level} (G : ∞-Group l1) (H : ∞-Group l2) where product-∞-Group : ∞-Group (l1 ⊔ l2) pr1 product-∞-Group = prod-Pointed-Type ( classifying-pointed-type-∞-Group G) ( classifying-pointed-type-∞-Group H) pr2 product-∞-Group = is-0-connected-product ( classifying-type-∞-Group G) ( classifying-type-∞-Group H) ( is-0-connected-classifying-type-∞-Group G) ( is-0-connected-classifying-type-∞-Group H) classifying-pointed-type-product-∞-Group : Pointed-Type (l1 ⊔ l2) classifying-pointed-type-product-∞-Group = pr1 product-∞-Group classifying-type-product-∞-Group : UU (l1 ⊔ l2) classifying-type-product-∞-Group = type-Pointed-Type classifying-pointed-type-product-∞-Group shape-product-∞-Group : classifying-type-product-∞-Group shape-product-∞-Group = point-Pointed-Type classifying-pointed-type-product-∞-Group is-0-connected-classifying-type-product-∞-Group : is-0-connected classifying-type-product-∞-Group is-0-connected-classifying-type-product-∞-Group = pr2 product-∞-Group mere-eq-classifying-type-product-∞-Group : (X Y : classifying-type-product-∞-Group) → mere-eq X Y mere-eq-classifying-type-product-∞-Group = mere-eq-is-0-connected is-0-connected-classifying-type-product-∞-Group elim-prop-classifying-type-product-∞-Group : {l2 : Level} (P : classifying-type-product-∞-Group → Prop l2) → type-Prop (P shape-product-∞-Group) → ((X : classifying-type-product-∞-Group) → type-Prop (P X)) elim-prop-classifying-type-product-∞-Group = apply-dependent-universal-property-is-0-connected shape-product-∞-Group is-0-connected-classifying-type-product-∞-Group type-product-∞-Group : UU (l1 ⊔ l2) type-product-∞-Group = type-Ω classifying-pointed-type-product-∞-Group unit-product-∞-Group : type-product-∞-Group unit-product-∞-Group = refl-Ω classifying-pointed-type-product-∞-Group mul-product-∞-Group : (x y : type-product-∞-Group) → type-product-∞-Group mul-product-∞-Group = mul-Ω classifying-pointed-type-product-∞-Group assoc-mul-product-∞-Group : (x y z : type-product-∞-Group) → Id ( mul-product-∞-Group (mul-product-∞-Group x y) z) ( mul-product-∞-Group x (mul-product-∞-Group y z)) assoc-mul-product-∞-Group = associative-mul-Ω classifying-pointed-type-product-∞-Group left-unit-law-mul-product-∞-Group : (x : type-product-∞-Group) → Id (mul-product-∞-Group unit-product-∞-Group x) x left-unit-law-mul-product-∞-Group = left-unit-law-mul-Ω classifying-pointed-type-product-∞-Group right-unit-law-mul-product-∞-Group : (y : type-product-∞-Group) → Id (mul-product-∞-Group y unit-product-∞-Group) y right-unit-law-mul-product-∞-Group = right-unit-law-mul-Ω classifying-pointed-type-product-∞-Group coherence-unit-laws-mul-product-∞-Group : Id ( left-unit-law-mul-product-∞-Group unit-product-∞-Group) ( right-unit-law-mul-product-∞-Group unit-product-∞-Group) coherence-unit-laws-mul-product-∞-Group = refl inv-product-∞-Group : type-product-∞-Group → type-product-∞-Group inv-product-∞-Group = inv-Ω classifying-pointed-type-product-∞-Group left-inverse-law-mul-product-∞-Group : (x : type-product-∞-Group) → Id (mul-product-∞-Group (inv-product-∞-Group x) x) unit-product-∞-Group left-inverse-law-mul-product-∞-Group = left-inverse-law-mul-Ω classifying-pointed-type-product-∞-Group right-inverse-law-mul-product-∞-Group : (x : type-product-∞-Group) → Id (mul-product-∞-Group x (inv-product-∞-Group x)) unit-product-∞-Group right-inverse-law-mul-product-∞-Group = right-inverse-law-mul-Ω classifying-pointed-type-product-∞-Group
Properties
The underlying type of a product of higher groups is the product of their underlying types
equiv-type-∞-Group-product-∞-Group : type-product-∞-Group ≃ ( type-∞-Group G × type-∞-Group H) equiv-type-∞-Group-product-∞-Group = equiv-pair-eq shape-product-∞-Group shape-product-∞-Group