Cartesian products of semigroups
module group-theory.cartesian-products-semigroups where
Imports
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 open import group-theory.semigroups
Idea
The cartesian product of two semigroups A
and B
consists of the cartesian
product of its underlying sets and the componentwise multiplication
Definition
module _ {l1 l2 : Level} (A : Semigroup l1) (B : Semigroup l2) where set-prod-Semigroup : Set (l1 ⊔ l2) set-prod-Semigroup = prod-Set (set-Semigroup A) (set-Semigroup B) type-prod-Semigroup : UU (l1 ⊔ l2) type-prod-Semigroup = type-Set set-prod-Semigroup is-set-type-prod-Semigroup : is-set type-prod-Semigroup is-set-type-prod-Semigroup = is-set-type-Set set-prod-Semigroup mul-prod-Semigroup : type-prod-Semigroup → type-prod-Semigroup → type-prod-Semigroup pr1 (mul-prod-Semigroup (pair x1 y1) (pair x2 y2)) = mul-Semigroup A x1 x2 pr2 (mul-prod-Semigroup (pair x1 y1) (pair x2 y2)) = mul-Semigroup B y1 y2 associative-mul-prod-Semigroup : (x y z : type-prod-Semigroup) → Id ( mul-prod-Semigroup (mul-prod-Semigroup x y) z) ( mul-prod-Semigroup x (mul-prod-Semigroup y z)) associative-mul-prod-Semigroup (pair x1 y1) (pair x2 y2) (pair x3 y3) = eq-pair ( associative-mul-Semigroup A x1 x2 x3) ( associative-mul-Semigroup B y1 y2 y3) prod-Semigroup : Semigroup (l1 ⊔ l2) pr1 prod-Semigroup = set-prod-Semigroup pr1 (pr2 prod-Semigroup) = mul-prod-Semigroup pr2 (pr2 prod-Semigroup) = associative-mul-prod-Semigroup