Subsets of monoids
module group-theory.subsets-monoids where
Imports
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.monoids
Idea
A subset of a monoid M
is a subset of the underlying type of M
.
Definitions
Subsets of monoids
subset-Monoid : {l1 : Level} (l2 : Level) (M : Monoid l1) → UU (l1 ⊔ lsuc l2) subset-Monoid l2 M = subtype l2 (type-Monoid M) module _ {l1 l2 : Level} (M : Monoid l1) (P : subset-Monoid l2 M) where is-in-subset-Monoid : type-Monoid M → UU l2 is-in-subset-Monoid = is-in-subtype P is-prop-is-in-subset-Monoid : (x : type-Monoid M) → is-prop (is-in-subset-Monoid x) is-prop-is-in-subset-Monoid = is-prop-is-in-subtype P type-subset-Monoid : UU (l1 ⊔ l2) type-subset-Monoid = type-subtype P is-set-type-subset-Monoid : is-set type-subset-Monoid is-set-type-subset-Monoid = is-set-type-subtype P (is-set-type-Monoid M) set-subset-Monoid : Set (l1 ⊔ l2) set-subset-Monoid = set-subset (set-Monoid M) P inclusion-subset-Monoid : type-subset-Monoid → type-Monoid M inclusion-subset-Monoid = inclusion-subtype P ap-inclusion-subset-Monoid : (x y : type-subset-Monoid) → x = y → (inclusion-subset-Monoid x = inclusion-subset-Monoid y) ap-inclusion-subset-Monoid = ap-inclusion-subtype P is-in-subset-inclusion-subset-Monoid : (x : type-subset-Monoid) → is-in-subset-Monoid (inclusion-subset-Monoid x) is-in-subset-inclusion-subset-Monoid = is-in-subtype-inclusion-subtype P
The condition that a subset contains the unit
contains-unit-subset-monoid-Prop : Prop l2 contains-unit-subset-monoid-Prop = P (unit-Monoid M) contains-unit-subset-Monoid : UU l2 contains-unit-subset-Monoid = type-Prop contains-unit-subset-monoid-Prop
The condition that a subset is closed under multiplication
is-closed-under-multiplication-subset-monoid-Prop : Prop (l1 ⊔ l2) is-closed-under-multiplication-subset-monoid-Prop = Π-Prop ( type-Monoid M) ( λ x → Π-Prop ( type-Monoid M) ( λ y → hom-Prop (P x) (hom-Prop (P y) (P (mul-Monoid M x y))))) is-closed-under-multiplication-subset-Monoid : UU (l1 ⊔ l2) is-closed-under-multiplication-subset-Monoid = type-Prop is-closed-under-multiplication-subset-monoid-Prop