Finite Commutative monoids
Content created by Fredrik Bakke.
Created on 2024-02-07.
Last modified on 2025-02-11.
module finite-group-theory.finite-commutative-monoids where
Imports
open import finite-group-theory.finite-monoids open import foundation.identity-types open import foundation.sets open import foundation.unital-binary-operations open import foundation.universe-levels open import group-theory.commutative-monoids open import group-theory.monoids open import group-theory.semigroups open import univalent-combinatorics.dependent-function-types open import univalent-combinatorics.dependent-pair-types open import univalent-combinatorics.equality-finite-types open import univalent-combinatorics.finite-types
Idea
A finite commutative monoid is a finite monoid M
in which xy = yx
holds for
all x y : M
.
Definition
Finite commutative monoids
is-commutative-Finite-Monoid : {l : Level} (M : Finite-Monoid l) → UU l is-commutative-Finite-Monoid M = is-commutative-Monoid (monoid-Finite-Monoid M) Finite-Commutative-Monoid : (l : Level) → UU (lsuc l) Finite-Commutative-Monoid l = Σ (Finite-Monoid l) is-commutative-Finite-Monoid module _ {l : Level} (M : Finite-Commutative-Monoid l) where finite-monoid-Finite-Commutative-Monoid : Finite-Monoid l finite-monoid-Finite-Commutative-Monoid = pr1 M monoid-Finite-Commutative-Monoid : Monoid l monoid-Finite-Commutative-Monoid = monoid-Finite-Monoid finite-monoid-Finite-Commutative-Monoid finite-type-Finite-Commutative-Monoid : Finite-Type l finite-type-Finite-Commutative-Monoid = finite-type-Finite-Monoid finite-monoid-Finite-Commutative-Monoid type-Finite-Commutative-Monoid : UU l type-Finite-Commutative-Monoid = type-Finite-Monoid finite-monoid-Finite-Commutative-Monoid is-finite-type-Finite-Commutative-Monoid : is-finite type-Finite-Commutative-Monoid is-finite-type-Finite-Commutative-Monoid = is-finite-type-Finite-Monoid finite-monoid-Finite-Commutative-Monoid semigroup-Finite-Commutative-Monoid : Semigroup l semigroup-Finite-Commutative-Monoid = semigroup-Finite-Monoid finite-monoid-Finite-Commutative-Monoid set-Finite-Commutative-Monoid : Set l set-Finite-Commutative-Monoid = set-Finite-Monoid finite-monoid-Finite-Commutative-Monoid is-set-type-Finite-Commutative-Monoid : is-set type-Finite-Commutative-Monoid is-set-type-Finite-Commutative-Monoid = is-set-type-Finite-Monoid finite-monoid-Finite-Commutative-Monoid
The multiplicative operation of a commutative monoid
has-associative-mul-Finite-Commutative-Monoid : has-associative-mul-Set set-Finite-Commutative-Monoid has-associative-mul-Finite-Commutative-Monoid = has-associative-mul-Semigroup semigroup-Finite-Commutative-Monoid mul-Finite-Commutative-Monoid : (x y : type-Finite-Commutative-Monoid) → type-Finite-Commutative-Monoid mul-Finite-Commutative-Monoid = mul-Finite-Monoid finite-monoid-Finite-Commutative-Monoid mul-Finite-Commutative-Monoid' : (x y : type-Finite-Commutative-Monoid) → type-Finite-Commutative-Monoid mul-Finite-Commutative-Monoid' = mul-Finite-Monoid' finite-monoid-Finite-Commutative-Monoid ap-mul-Finite-Commutative-Monoid : {x x' y y' : type-Finite-Commutative-Monoid} → x = x' → y = y' → mul-Finite-Commutative-Monoid x y = mul-Finite-Commutative-Monoid x' y' ap-mul-Finite-Commutative-Monoid = ap-mul-Finite-Monoid finite-monoid-Finite-Commutative-Monoid associative-mul-Finite-Commutative-Monoid : (x y z : type-Finite-Commutative-Monoid) → ( mul-Finite-Commutative-Monoid (mul-Finite-Commutative-Monoid x y) z) = ( mul-Finite-Commutative-Monoid x (mul-Finite-Commutative-Monoid y z)) associative-mul-Finite-Commutative-Monoid = associative-mul-Finite-Monoid finite-monoid-Finite-Commutative-Monoid commutative-mul-Finite-Commutative-Monoid : (x y : type-Finite-Commutative-Monoid) → mul-Finite-Commutative-Monoid x y = mul-Finite-Commutative-Monoid y x commutative-mul-Finite-Commutative-Monoid = pr2 M commutative-monoid-Finite-Commutative-Monoid : Commutative-Monoid l pr1 commutative-monoid-Finite-Commutative-Monoid = monoid-Finite-Commutative-Monoid pr2 commutative-monoid-Finite-Commutative-Monoid = commutative-mul-Finite-Commutative-Monoid interchange-mul-mul-Finite-Commutative-Monoid : (x y x' y' : type-Finite-Commutative-Monoid) → ( mul-Finite-Commutative-Monoid ( mul-Finite-Commutative-Monoid x y) ( mul-Finite-Commutative-Monoid x' y')) = ( mul-Finite-Commutative-Monoid ( mul-Finite-Commutative-Monoid x x') ( mul-Finite-Commutative-Monoid y y')) interchange-mul-mul-Finite-Commutative-Monoid = interchange-mul-mul-Commutative-Monoid commutative-monoid-Finite-Commutative-Monoid right-swap-mul-Finite-Commutative-Monoid : (x y z : type-Finite-Commutative-Monoid) → mul-Finite-Commutative-Monoid (mul-Finite-Commutative-Monoid x y) z = mul-Finite-Commutative-Monoid (mul-Finite-Commutative-Monoid x z) y right-swap-mul-Finite-Commutative-Monoid = right-swap-mul-Commutative-Monoid commutative-monoid-Finite-Commutative-Monoid left-swap-mul-Finite-Commutative-Monoid : (x y z : type-Finite-Commutative-Monoid) → mul-Finite-Commutative-Monoid x (mul-Finite-Commutative-Monoid y z) = mul-Finite-Commutative-Monoid y (mul-Finite-Commutative-Monoid x z) left-swap-mul-Finite-Commutative-Monoid = left-swap-mul-Commutative-Monoid commutative-monoid-Finite-Commutative-Monoid
The unit element of a commutative monoid
module _ {l : Level} (M : Finite-Commutative-Monoid l) where has-unit-Finite-Commutative-Monoid : is-unital (mul-Finite-Commutative-Monoid M) has-unit-Finite-Commutative-Monoid = has-unit-Monoid (monoid-Finite-Commutative-Monoid M) unit-Finite-Commutative-Monoid : type-Finite-Commutative-Monoid M unit-Finite-Commutative-Monoid = unit-Monoid (monoid-Finite-Commutative-Monoid M) left-unit-law-mul-Finite-Commutative-Monoid : (x : type-Finite-Commutative-Monoid M) → mul-Finite-Commutative-Monoid M unit-Finite-Commutative-Monoid x = x left-unit-law-mul-Finite-Commutative-Monoid = left-unit-law-mul-Monoid (monoid-Finite-Commutative-Monoid M) right-unit-law-mul-Finite-Commutative-Monoid : (x : type-Finite-Commutative-Monoid M) → mul-Finite-Commutative-Monoid M x unit-Finite-Commutative-Monoid = x right-unit-law-mul-Finite-Commutative-Monoid = right-unit-law-mul-Monoid (monoid-Finite-Commutative-Monoid M)
Properties
There is a finite number of ways to equip a finite type with the structure of a finite commutative monoid
module _ {l : Level} (X : Finite-Type l) where structure-commutative-monoid-Finite-Type : UU l structure-commutative-monoid-Finite-Type = Σ ( structure-monoid-Finite-Type X) ( λ m → is-commutative-Finite-Monoid ( finite-monoid-structure-monoid-Finite-Type X m)) finite-commutative-monoid-structure-commutative-monoid-Finite-Type : structure-commutative-monoid-Finite-Type → Finite-Commutative-Monoid l finite-commutative-monoid-structure-commutative-monoid-Finite-Type (m , c) = finite-monoid-structure-monoid-Finite-Type X m , c is-finite-structure-commutative-monoid-Finite-Type : is-finite structure-commutative-monoid-Finite-Type is-finite-structure-commutative-monoid-Finite-Type = is-finite-Σ ( is-finite-structure-monoid-Finite-Type X) ( λ m → is-finite-Π ( is-finite-type-Finite-Type X) ( λ x → is-finite-Π ( is-finite-type-Finite-Type X) ( λ y → is-finite-eq-Finite-Type X)))
Recent changes
- 2025-02-11. Fredrik Bakke. Switch from
𝔽
toFinite-*
(#1312). - 2024-02-07. Fredrik Bakke. Deduplicate definitions (#1022).