Submonoids of commutative monoids
module group-theory.submonoids-commutative-monoids where
Imports
open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.identity-types open import foundation.propositions open import foundation.sets open import foundation.subtypes open import foundation.universe-levels open import group-theory.commutative-monoids open import group-theory.homomorphisms-commutative-monoids open import group-theory.monoids open import group-theory.semigroups open import group-theory.submonoids open import group-theory.subsets-commutative-monoids
Idea
A submonoid of a commutative monoid M
is a subset of M
that contains the
unit of M
and is closed under multiplication.
Definitions
Submonoids of commutative monoids
is-submonoid-commutative-monoid-Prop : {l1 l2 : Level} (M : Commutative-Monoid l1) (P : subset-Commutative-Monoid l2 M) → Prop (l1 ⊔ l2) is-submonoid-commutative-monoid-Prop M = is-submonoid-monoid-Prop (monoid-Commutative-Monoid M) is-submonoid-Commutative-Monoid : {l1 l2 : Level} (M : Commutative-Monoid l1) (P : subset-Commutative-Monoid l2 M) → UU (l1 ⊔ l2) is-submonoid-Commutative-Monoid M = is-submonoid-Monoid (monoid-Commutative-Monoid M) Commutative-Submonoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) → UU (l1 ⊔ lsuc l2) Commutative-Submonoid l2 M = Submonoid l2 (monoid-Commutative-Monoid M) module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (P : Commutative-Submonoid l2 M) where subset-Commutative-Submonoid : subtype l2 (type-Commutative-Monoid M) subset-Commutative-Submonoid = subset-Submonoid (monoid-Commutative-Monoid M) P is-submonoid-Commutative-Submonoid : is-submonoid-Commutative-Monoid M subset-Commutative-Submonoid is-submonoid-Commutative-Submonoid = is-submonoid-Submonoid (monoid-Commutative-Monoid M) P is-in-Commutative-Submonoid : type-Commutative-Monoid M → UU l2 is-in-Commutative-Submonoid = is-in-Submonoid (monoid-Commutative-Monoid M) P is-prop-is-in-Commutative-Submonoid : (x : type-Commutative-Monoid M) → is-prop (is-in-Commutative-Submonoid x) is-prop-is-in-Commutative-Submonoid = is-prop-is-in-Submonoid (monoid-Commutative-Monoid M) P is-closed-under-eq-Commutative-Submonoid : {x y : type-Commutative-Monoid M} → is-in-Commutative-Submonoid x → (x = y) → is-in-Commutative-Submonoid y is-closed-under-eq-Commutative-Submonoid = is-closed-under-eq-Submonoid (monoid-Commutative-Monoid M) P is-closed-under-eq-Commutative-Submonoid' : {x y : type-Commutative-Monoid M} → is-in-Commutative-Submonoid y → (x = y) → is-in-Commutative-Submonoid x is-closed-under-eq-Commutative-Submonoid' = is-closed-under-eq-Submonoid' (monoid-Commutative-Monoid M) P type-Commutative-Submonoid : UU (l1 ⊔ l2) type-Commutative-Submonoid = type-Submonoid (monoid-Commutative-Monoid M) P is-set-type-Commutative-Submonoid : is-set type-Commutative-Submonoid is-set-type-Commutative-Submonoid = is-set-type-Submonoid (monoid-Commutative-Monoid M) P set-Commutative-Submonoid : Set (l1 ⊔ l2) set-Commutative-Submonoid = set-Submonoid (monoid-Commutative-Monoid M) P inclusion-Commutative-Submonoid : type-Commutative-Submonoid → type-Commutative-Monoid M inclusion-Commutative-Submonoid = inclusion-Submonoid (monoid-Commutative-Monoid M) P ap-inclusion-Commutative-Submonoid : (x y : type-Commutative-Submonoid) → x = y → inclusion-Commutative-Submonoid x = inclusion-Commutative-Submonoid y ap-inclusion-Commutative-Submonoid = ap-inclusion-Submonoid (monoid-Commutative-Monoid M) P is-in-submonoid-inclusion-Commutative-Submonoid : (x : type-Commutative-Submonoid) → is-in-Commutative-Submonoid (inclusion-Commutative-Submonoid x) is-in-submonoid-inclusion-Commutative-Submonoid = is-in-submonoid-inclusion-Submonoid (monoid-Commutative-Monoid M) P contains-unit-Commutative-Submonoid : is-in-Commutative-Submonoid (unit-Commutative-Monoid M) contains-unit-Commutative-Submonoid = contains-unit-Submonoid (monoid-Commutative-Monoid M) P unit-Commutative-Submonoid : type-Commutative-Submonoid unit-Commutative-Submonoid = unit-Submonoid (monoid-Commutative-Monoid M) P is-closed-under-mul-Commutative-Submonoid : {x y : type-Commutative-Monoid M} → is-in-Commutative-Submonoid x → is-in-Commutative-Submonoid y → is-in-Commutative-Submonoid (mul-Commutative-Monoid M x y) is-closed-under-mul-Commutative-Submonoid = is-closed-under-mul-Submonoid (monoid-Commutative-Monoid M) P mul-Commutative-Submonoid : (x y : type-Commutative-Submonoid) → type-Commutative-Submonoid mul-Commutative-Submonoid = mul-Submonoid (monoid-Commutative-Monoid M) P associative-mul-Commutative-Submonoid : (x y z : type-Commutative-Submonoid) → (mul-Commutative-Submonoid (mul-Commutative-Submonoid x y) z) = (mul-Commutative-Submonoid x (mul-Commutative-Submonoid y z)) associative-mul-Commutative-Submonoid = associative-mul-Submonoid (monoid-Commutative-Monoid M) P semigroup-Commutative-Submonoid : Semigroup (l1 ⊔ l2) semigroup-Commutative-Submonoid = semigroup-Submonoid (monoid-Commutative-Monoid M) P left-unit-law-mul-Commutative-Submonoid : (x : type-Commutative-Submonoid) → mul-Commutative-Submonoid unit-Commutative-Submonoid x = x left-unit-law-mul-Commutative-Submonoid = left-unit-law-mul-Submonoid (monoid-Commutative-Monoid M) P right-unit-law-mul-Commutative-Submonoid : (x : type-Commutative-Submonoid) → mul-Commutative-Submonoid x unit-Commutative-Submonoid = x right-unit-law-mul-Commutative-Submonoid = right-unit-law-mul-Submonoid (monoid-Commutative-Monoid M) P commutative-mul-Commutative-Submonoid : (x y : type-Commutative-Submonoid) → mul-Commutative-Submonoid x y = mul-Commutative-Submonoid y x commutative-mul-Commutative-Submonoid x y = eq-type-subtype ( subset-Commutative-Submonoid) ( commutative-mul-Commutative-Monoid M ( inclusion-Commutative-Submonoid x) ( inclusion-Commutative-Submonoid y)) monoid-Commutative-Submonoid : Monoid (l1 ⊔ l2) monoid-Commutative-Submonoid = monoid-Submonoid (monoid-Commutative-Monoid M) P commutative-monoid-Commutative-Submonoid : Commutative-Monoid (l1 ⊔ l2) pr1 commutative-monoid-Commutative-Submonoid = monoid-Commutative-Submonoid pr2 commutative-monoid-Commutative-Submonoid = commutative-mul-Commutative-Submonoid preserves-unit-inclusion-Commutative-Submonoid : inclusion-Commutative-Submonoid unit-Commutative-Submonoid = unit-Commutative-Monoid M preserves-unit-inclusion-Commutative-Submonoid = preserves-unit-inclusion-Submonoid (monoid-Commutative-Monoid M) P preserves-mul-inclusion-Commutative-Submonoid : (x y : type-Commutative-Submonoid) → inclusion-Commutative-Submonoid (mul-Commutative-Submonoid x y) = mul-Commutative-Monoid M ( inclusion-Commutative-Submonoid x) ( inclusion-Commutative-Submonoid y) preserves-mul-inclusion-Commutative-Submonoid = preserves-mul-inclusion-Submonoid (monoid-Commutative-Monoid M) P hom-inclusion-Commutative-Submonoid : type-hom-Commutative-Monoid commutative-monoid-Commutative-Submonoid M hom-inclusion-Commutative-Submonoid = hom-inclusion-Submonoid (monoid-Commutative-Monoid M) P
Properties
Extensionality of the type of all submonoids
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Commutative-Submonoid l2 M) where has-same-elements-Commutative-Submonoid : {l3 : Level} → Commutative-Submonoid l3 M → UU (l1 ⊔ l2 ⊔ l3) has-same-elements-Commutative-Submonoid = has-same-elements-Submonoid (monoid-Commutative-Monoid M) N extensionality-Commutative-Submonoid : (K : Commutative-Submonoid l2 M) → (N = K) ≃ has-same-elements-Commutative-Submonoid K extensionality-Commutative-Submonoid = extensionality-Submonoid (monoid-Commutative-Monoid M) N