Function monoids
Content created by Fredrik Bakke and Egbert Rijke.
Created on 2023-03-13.
Last modified on 2023-09-13.
module group-theory.function-monoids where
Imports
open import foundation.identity-types open import foundation.sets open import foundation.universe-levels open import group-theory.dependent-products-monoids open import group-theory.monoids open import group-theory.semigroups
Idea
Given a monoid M
and a type X
, the function
monoid M^X
consists of functions from X
to the underlying type of M
. The
multiplicative operation and the unit are given pointwise.
Definition
module _ {l1 l2 : Level} (M : Monoid l1) (X : UU l2) where function-Monoid : Monoid (l1 ⊔ l2) function-Monoid = Π-Monoid X (λ _ → M) semigroup-function-Monoid : Semigroup (l1 ⊔ l2) semigroup-function-Monoid = semigroup-Π-Monoid X (λ _ → M) set-function-Monoid : Set (l1 ⊔ l2) set-function-Monoid = set-Π-Monoid X (λ _ → M) type-function-Monoid : UU (l1 ⊔ l2) type-function-Monoid = type-Π-Monoid X (λ _ → M) mul-function-Monoid : (f g : type-function-Monoid) → type-function-Monoid mul-function-Monoid = mul-Π-Monoid X (λ _ → M) associative-mul-function-Monoid : (f g h : type-function-Monoid) → mul-function-Monoid (mul-function-Monoid f g) h = mul-function-Monoid f (mul-function-Monoid g h) associative-mul-function-Monoid = associative-mul-Π-Monoid X (λ _ → M) unit-function-Monoid : type-function-Monoid unit-function-Monoid = unit-Π-Monoid X (λ _ → M) left-unit-law-mul-function-Monoid : (f : type-function-Monoid) → mul-function-Monoid unit-function-Monoid f = f left-unit-law-mul-function-Monoid = left-unit-law-mul-Π-Monoid X (λ _ → M) right-unit-law-mul-function-Monoid : (f : type-function-Monoid) → mul-function-Monoid f unit-function-Monoid = f right-unit-law-mul-function-Monoid = right-unit-law-mul-Π-Monoid X (λ _ → M) is-unital-function-Monoid : is-unital-Semigroup semigroup-function-Monoid is-unital-function-Monoid = is-unital-Π-Monoid X (λ _ → M)
Recent changes
- 2023-09-13. Fredrik Bakke and Egbert Rijke. Refactor structured monoids (#761).
- 2023-03-21. Fredrik Bakke. Formatting fixes (#530).
- 2023-03-19. Fredrik Bakke. Make
unused_imports_remover
faster and safer (#512). - 2023-03-13. Egbert Rijke. Products of semigroups, monoids, commutative monoids, groups, abelian groups, semirings, rings, commutative semirings, and commutative rings (#505).