Large commutative monoids
Content created by Louis Wasserman.
Created on 2025-10-17.
Last modified on 2025-10-17.
module group-theory.large-commutative-monoids where
Imports
open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.embeddings open import foundation.identity-types open import foundation.large-binary-relations open import foundation.large-similarity-relations open import foundation.logical-equivalences open import foundation.propositional-maps 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.large-monoids open import group-theory.monoids open import group-theory.semigroups
Idea
A large commutative monoid¶ is a large monoid whose binary operation is commutative.
Definition
record Large-Commutative-Monoid (α : Level → Level) (β : Level → Level → Level) : UUω where constructor make-Large-Commutative-Monoid field large-monoid-Large-Commutative-Monoid : Large-Monoid α β type-Large-Commutative-Monoid : (l : Level) → UU (α l) type-Large-Commutative-Monoid = type-Large-Monoid large-monoid-Large-Commutative-Monoid set-Large-Commutative-Monoid : (l : Level) → Set (α l) set-Large-Commutative-Monoid = set-Large-Monoid large-monoid-Large-Commutative-Monoid mul-Large-Commutative-Monoid : {l1 l2 : Level} → type-Large-Commutative-Monoid l1 → type-Large-Commutative-Monoid l2 → type-Large-Commutative-Monoid (l1 ⊔ l2) mul-Large-Commutative-Monoid = mul-Large-Monoid large-monoid-Large-Commutative-Monoid unit-Large-Commutative-Monoid : type-Large-Commutative-Monoid lzero unit-Large-Commutative-Monoid = unit-Large-Monoid large-monoid-Large-Commutative-Monoid field commutative-mul-Large-Commutative-Monoid : {l1 l2 : Level} → (x : type-Large-Commutative-Monoid l1) → (y : type-Large-Commutative-Monoid l2) → mul-Large-Commutative-Monoid x y = mul-Large-Commutative-Monoid y x open Large-Commutative-Monoid public
Properties
The similarity relation of a large commutative monoid
module _ {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where sim-prop-Large-Commutative-Monoid : Large-Relation-Prop β (type-Large-Commutative-Monoid M) sim-prop-Large-Commutative-Monoid = sim-prop-Large-Monoid (large-monoid-Large-Commutative-Monoid M) sim-Large-Commutative-Monoid : Large-Relation β (type-Large-Commutative-Monoid M) sim-Large-Commutative-Monoid = sim-Large-Monoid (large-monoid-Large-Commutative-Monoid M) refl-sim-Large-Commutative-Monoid : {l : Level} (x : type-Large-Commutative-Monoid M l) → sim-Large-Commutative-Monoid x x refl-sim-Large-Commutative-Monoid = refl-sim-Large-Monoid (large-monoid-Large-Commutative-Monoid M) symmetric-sim-Large-Commutative-Monoid : {l1 l2 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → sim-Large-Commutative-Monoid x y → sim-Large-Commutative-Monoid y x symmetric-sim-Large-Commutative-Monoid = symmetric-sim-Large-Monoid (large-monoid-Large-Commutative-Monoid M) transitive-sim-Large-Commutative-Monoid : {l1 l2 l3 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → (z : type-Large-Commutative-Monoid M l3) → sim-Large-Commutative-Monoid y z → sim-Large-Commutative-Monoid x y → sim-Large-Commutative-Monoid x z transitive-sim-Large-Commutative-Monoid = transitive-sim-Large-Monoid (large-monoid-Large-Commutative-Monoid M)
Raising universe levels
module _ {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where raise-Large-Commutative-Monoid : {l1 : Level} (l2 : Level) (x : type-Large-Commutative-Monoid M l1) → type-Large-Commutative-Monoid M (l1 ⊔ l2) raise-Large-Commutative-Monoid = raise-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-unit-Large-Commutative-Monoid : (l : Level) → type-Large-Commutative-Monoid M l raise-unit-Large-Commutative-Monoid = raise-unit-Large-Monoid (large-monoid-Large-Commutative-Monoid M) sim-raise-Large-Commutative-Monoid : {l1 : Level} (l2 : Level) (x : type-Large-Commutative-Monoid M l1) → sim-Large-Commutative-Monoid M x (raise-Large-Commutative-Monoid l2 x) sim-raise-Large-Commutative-Monoid = sim-raise-Large-Monoid (large-monoid-Large-Commutative-Monoid M) sim-raise-Large-Commutative-Monoid' : {l1 : Level} (l2 : Level) (x : type-Large-Commutative-Monoid M l1) → sim-Large-Commutative-Monoid M (raise-Large-Commutative-Monoid l2 x) x sim-raise-Large-Commutative-Monoid' = sim-raise-Large-Monoid' (large-monoid-Large-Commutative-Monoid M) eq-raise-Large-Commutative-Monoid : (l1 : Level) {l2 : Level} (x : type-Large-Commutative-Monoid M (l1 ⊔ l2)) → raise-Large-Commutative-Monoid l2 x = x eq-raise-Large-Commutative-Monoid = eq-raise-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-raise-Large-Commutative-Monoid : {l1 l2 l3 : Level} → (x : type-Large-Commutative-Monoid M l1) → raise-Large-Commutative-Monoid l2 (raise-Large-Commutative-Monoid l3 x) = raise-Large-Commutative-Monoid (l2 ⊔ l3) x raise-raise-Large-Commutative-Monoid = raise-raise-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-left-mul-Large-Commutative-Monoid : {l1 l2 l3 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → mul-Large-Commutative-Monoid M (raise-Large-Commutative-Monoid l3 x) y = raise-Large-Commutative-Monoid l3 (mul-Large-Commutative-Monoid M x y) raise-left-mul-Large-Commutative-Monoid = raise-left-mul-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-right-mul-Large-Commutative-Monoid : {l1 l2 l3 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → mul-Large-Commutative-Monoid M x (raise-Large-Commutative-Monoid l3 y) = raise-Large-Commutative-Monoid l3 (mul-Large-Commutative-Monoid M x y) raise-right-mul-Large-Commutative-Monoid = raise-right-mul-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-left-unit-law-Large-Commutative-Monoid : {l1 l2 : Level} (x : type-Large-Commutative-Monoid M l1) → mul-Large-Commutative-Monoid M (raise-unit-Large-Commutative-Monoid l2) x = raise-Large-Commutative-Monoid l2 x raise-left-unit-law-Large-Commutative-Monoid = raise-left-unit-law-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-right-unit-law-Large-Commutative-Monoid : {l1 l2 : Level} (x : type-Large-Commutative-Monoid M l1) → mul-Large-Commutative-Monoid M x (raise-unit-Large-Commutative-Monoid l2) = raise-Large-Commutative-Monoid l2 x raise-right-unit-law-Large-Commutative-Monoid = raise-right-unit-law-Large-Monoid (large-monoid-Large-Commutative-Monoid M) raise-unit-lzero-Large-Commutative-Monoid : raise-unit-Large-Commutative-Monoid lzero = unit-Large-Commutative-Monoid M raise-unit-lzero-Large-Commutative-Monoid = raise-unit-lzero-Large-Monoid (large-monoid-Large-Commutative-Monoid M)
Monoid properties of large commutative monoids
module _ {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where associative-mul-Large-Commutative-Monoid : {l1 l2 l3 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → (z : type-Large-Commutative-Monoid M l3) → mul-Large-Commutative-Monoid M (mul-Large-Commutative-Monoid M x y) z = mul-Large-Commutative-Monoid M x (mul-Large-Commutative-Monoid M y z) associative-mul-Large-Commutative-Monoid = associative-mul-Large-Monoid (large-monoid-Large-Commutative-Monoid M) left-unit-law-mul-Large-Commutative-Monoid : {l : Level} → (x : type-Large-Commutative-Monoid M l) → mul-Large-Commutative-Monoid M (unit-Large-Commutative-Monoid M) x = x left-unit-law-mul-Large-Commutative-Monoid = left-unit-law-mul-Large-Monoid (large-monoid-Large-Commutative-Monoid M) right-unit-law-mul-Large-Commutative-Monoid : {l : Level} → (x : type-Large-Commutative-Monoid M l) → mul-Large-Commutative-Monoid M x (unit-Large-Commutative-Monoid M) = x right-unit-law-mul-Large-Commutative-Monoid = right-unit-law-mul-Large-Monoid (large-monoid-Large-Commutative-Monoid M)
Similarity reasoning in large commutative monoids
module similarity-reasoning-Large-Commutative-Monoid {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where open similarity-reasoning-Large-Monoid ( large-monoid-Large-Commutative-Monoid M) public
The raise operation characterizes the similarity relation
module _ {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where sim-iff-eq-raise-Large-Commutative-Monoid : {l1 l2 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → ( sim-Large-Commutative-Monoid M x y) ↔ ( raise-Large-Commutative-Monoid M l2 x = raise-Large-Commutative-Monoid M l1 y) sim-iff-eq-raise-Large-Commutative-Monoid = sim-iff-eq-raise-Large-Monoid (large-monoid-Large-Commutative-Monoid M) sim-eq-raise-Large-Commutative-Monoid : {l1 l2 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → ( raise-Large-Commutative-Monoid M l2 x = raise-Large-Commutative-Monoid M l1 y) → sim-Large-Commutative-Monoid M x y sim-eq-raise-Large-Commutative-Monoid x y = backward-implication (sim-iff-eq-raise-Large-Commutative-Monoid x y) eq-raise-sim-Large-Commutative-Monoid : {l1 l2 : Level} → (x : type-Large-Commutative-Monoid M l1) → (y : type-Large-Commutative-Monoid M l2) → sim-Large-Commutative-Monoid M x y → raise-Large-Commutative-Monoid M l2 x = raise-Large-Commutative-Monoid M l1 y eq-raise-sim-Large-Commutative-Monoid x y = forward-implication (sim-iff-eq-raise-Large-Commutative-Monoid x y)
Small commutative monoids from large commutative monoids
module _ {α : Level → Level} {β : Level → Level → Level} (M : Large-Commutative-Monoid α β) where monoid-Large-Commutative-Monoid : (l : Level) → Monoid (α l) monoid-Large-Commutative-Monoid = monoid-Large-Monoid (large-monoid-Large-Commutative-Monoid M) commutative-monoid-Large-Commutative-Monoid : (l : Level) → Commutative-Monoid (α l) commutative-monoid-Large-Commutative-Monoid l = ( monoid-Large-Commutative-Monoid l , commutative-mul-Large-Commutative-Monoid M)
Recent changes
- 2025-10-17. Louis Wasserman. Large abelian groups and commutative monoids (#1602).