Classical.Bundles.CommutativeSemigroup¶
Bundle bridge for commutative semigroups¶
This is the Classical.Bundles.CommutativeSemigroup module of the Agda Universal Algebra Library.
Mirror of the Semigroup bridge with the added comm field; over Sig-Magma.
β¨_β©αΆΛ’α΅ : CommutativeSemigroup Ξ± Ο β stdlib-CommutativeSemigroup Ξ± Ο β¨ πͺ β©αΆΛ’α΅ = record { Carrier = π[ projβ πͺ ] ; _β_ = _β_ ; _β_ = _β_ ; isCommutativeSemigroup = record { isSemigroup = record { isMagma = record { isEquivalence = isEquivalence ; β-cong = β-cong } ; assoc = assoc-law } ; comm = comm-law } } where open CommutativeSemigroup-Op πͺ open Setoid π»[ projβ πͺ ] βͺ_β«αΆΛ’α΅ : stdlib-CommutativeSemigroup Ξ± Ο β CommutativeSemigroup Ξ± Ο βͺ S β«αΆΛ’α΅ = π¨ , Ξ» { assoc Ο β S-assoc (Ο 0F) (Ο 1F) (Ο 2F) ; comm Ο β S-comm (Ο 0F) (Ο 1F) } where open stdlib-CommutativeSemigroup S using ( setoid ; β-cong ) renaming ( _β_ to _Β·_ ; assoc to S-assoc ; comm to S-comm ) π¨ : Algebra _ _ π¨ = record { Domain = setoid ; Interp = interp } where interp : Func (β¨ Sig-Magma β© setoid) setoid interp β¨$β© (β-Op , args) = args 0F Β· args 1F cong interp {β-Op , _} {.β-Op , _} (β‘.refl , argsβ) = β-cong (argsβ 0F) (argsβ 1F) module _ {πͺ : CommutativeSemigroup Ξ± Ο} where open CommutativeSemigroup-Op πͺ open Setoid π»[ projβ πͺ ] open CommutativeSemigroup-Op βͺ β¨ πͺ β©αΆΛ’α΅ β«αΆΛ’α΅ renaming ( _β_ to _β'_ ) roundtrip-cbc-cs : (a b : π[ projβ πͺ ]) β (a β' b) β (a β b) roundtrip-cbc-cs a b = refl module _ {S : stdlib-CommutativeSemigroup Ξ± Ο} where open stdlib-CommutativeSemigroup S using ( _β_ ; _β_ ; refl ) renaming ( Carrier to A ) open stdlib-CommutativeSemigroup β¨ βͺ S β«αΆΛ’α΅ β©αΆΛ’α΅ using () renaming ( _β_ to _β'_ ) roundtrip-bcb-cs : (a b : A) β (a β b) β (a β' b) roundtrip-bcb-cs a b = refl