module algebra.monoid.mset where
open import level
open import algebra.monoid.core
open import algebra.monoid.morphism
open import algebra.semigroup
open import equality.core
open import hott.level
module _ {i}(M : Set i) ⦃ mM : IsMonoid M ⦄ where
open IsMonoid ⦃ ... ⦄
record IsMSet {j} (X : Set j) : Set (i ⊔ j) where
constructor mk-is-mset
field
_◂_ : M → X → X
◂-hom : (m₁ m₂ : M)(x : X) → (m₁ * m₂) ◂ x ≡ m₁ ◂ (m₂ ◂ x)
◂-id : (x : X) → e ◂ x ≡ x
mset-level : h 2 X
open IsMSet ⦃ ... ⦄
module _ {j k}
{X : Set j} ⦃ xM : IsMSet X ⦄
{Y : Set k} ⦃ yM : IsMSet Y ⦄ where
IsMSetMorphism : (X → Y) → Set (i ⊔ j ⊔ k)
IsMSetMorphism f = (m : M)(x : X) → f (m ◂ x) ≡ m ◂ f x
is-mset-morphism-level : h 2 Y → (f : X → Y)
→ h 1 (IsMSetMorphism f)
is-mset-morphism-level hY f = Π-level λ m → Π-level λ x → hY _ _