diff --git a/src/group-theory.lagda.md b/src/group-theory.lagda.md
index 962a96a816..3c4fb0e591 100644
--- a/src/group-theory.lagda.md
+++ b/src/group-theory.lagda.md
@@ -116,6 +116,9 @@ open import group-theory.large-semigroups public
open import group-theory.loop-groups-sets public
open import group-theory.mere-equivalences-concrete-group-actions public
open import group-theory.mere-equivalences-group-actions public
+open import group-theory.minkowski-multiplication-commutative-monoids public
+open import group-theory.minkowski-multiplication-monoids public
+open import group-theory.minkowski-multiplication-semigroups public
open import group-theory.monoid-actions public
open import group-theory.monoids public
open import group-theory.monomorphisms-concrete-groups public
diff --git a/src/group-theory/minkowski-multiplication-commutative-monoids.lagda.md b/src/group-theory/minkowski-multiplication-commutative-monoids.lagda.md
new file mode 100644
index 0000000000..5ad656d151
--- /dev/null
+++ b/src/group-theory/minkowski-multiplication-commutative-monoids.lagda.md
@@ -0,0 +1,290 @@
+# Minkowski multiplication of subsets of a commutative monoid
+
+```agda
+module group-theory.minkowski-multiplication-commutative-monoids where
+```
+
+Imports
+
+```agda
+open import foundation.cartesian-product-types
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.identity-types
+open import foundation.inhabited-subtypes
+open import foundation.powersets
+open import foundation.subtypes
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import group-theory.commutative-monoids
+open import group-theory.minkowski-multiplication-monoids
+open import group-theory.monoids
+open import group-theory.subsets-commutative-monoids
+
+open import logic.functoriality-existential-quantification
+```
+
+
+
+## Idea
+
+Given two [subsets](group-theory.subsets-commutative-monoids.md) `A` and `B` of
+a [commutative monoid](group-theory.commutative-monoids.md) `M`, the
+{{#concept "Minkowski multiplication" Disambiguation="on subsets of a commutative monoid" WD="Minkowski addition" WDID=Q1322294 Agda=minkowski-mul-Commutative-Monoid}}
+of `A` and `B` is the [set](foundation-core.sets.md) of elements that can be
+formed by multiplying an element of `A` and an element of `B`. This binary
+operation defines a commutative monoid structure on the
+[powerset](foundation.powersets.md) of `M`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ (B : subset-Commutative-Monoid l3 M)
+ where
+
+ minkowski-mul-Commutative-Monoid :
+ subset-Commutative-Monoid (l1 ⊔ l2 ⊔ l3) M
+ minkowski-mul-Commutative-Monoid =
+ minkowski-mul-Monoid (monoid-Commutative-Monoid M) A B
+```
+
+## Properties
+
+### Minkowski multiplication on subsets of a commutative monoid is associative
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ (B : subset-Commutative-Monoid l3 M)
+ (C : subset-Commutative-Monoid l4 M)
+ where
+
+ associative-minkowski-mul-Commutative-Monoid :
+ minkowski-mul-Commutative-Monoid
+ ( M)
+ ( minkowski-mul-Commutative-Monoid M A B)
+ ( C) =
+ minkowski-mul-Commutative-Monoid
+ ( M)
+ ( A)
+ ( minkowski-mul-Commutative-Monoid M B C)
+ associative-minkowski-mul-Commutative-Monoid =
+ associative-minkowski-mul-Monoid (monoid-Commutative-Monoid M) A B C
+```
+
+### Minkowski multiplication on subsets of a commutative monoid is unital
+
+```agda
+module _
+ {l1 l2 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ where
+
+ left-unit-law-minkowski-mul-Commutative-Monoid :
+ sim-subtype
+ ( minkowski-mul-Commutative-Monoid
+ ( M)
+ ( is-unit-prop-Commutative-Monoid M)
+ ( A))
+ ( A)
+ left-unit-law-minkowski-mul-Commutative-Monoid =
+ left-unit-law-minkowski-mul-Monoid (monoid-Commutative-Monoid M) A
+
+ right-unit-law-minkowski-mul-Commutative-Monoid :
+ sim-subtype
+ ( minkowski-mul-Commutative-Monoid
+ ( M)
+ ( A)
+ ( is-unit-prop-Commutative-Monoid M))
+ ( A)
+ right-unit-law-minkowski-mul-Commutative-Monoid =
+ right-unit-law-minkowski-mul-Monoid (monoid-Commutative-Monoid M) A
+```
+
+### Minkowski multiplication on a commutative monoid is unital
+
+```agda
+module _
+ {l : Level}
+ (M : Commutative-Monoid l)
+ where
+
+ is-unital-minkowski-mul-Commutative-Monoid :
+ is-unital (minkowski-mul-Commutative-Monoid {l} {l} {l} M)
+ is-unital-minkowski-mul-Commutative-Monoid =
+ is-unital-minkowski-mul-Monoid (monoid-Commutative-Monoid M)
+```
+
+### Minkowski multiplication on subsets of a commutative monoid is commutative
+
+```agda
+module _
+ {l1 l2 l3 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ (B : subset-Commutative-Monoid l3 M)
+ where
+
+ commutative-minkowski-mul-leq-Commutative-Monoid :
+ minkowski-mul-Commutative-Monoid M A B ⊆
+ minkowski-mul-Commutative-Monoid M B A
+ commutative-minkowski-mul-leq-Commutative-Monoid x =
+ elim-exists
+ ( minkowski-mul-Commutative-Monoid M B A x)
+ ( λ (a , b) (a∈A , b∈B , x=ab) →
+ intro-exists
+ ( b , a)
+ ( b∈B , a∈A , x=ab ∙ commutative-mul-Commutative-Monoid M a b))
+
+module _
+ {l1 l2 l3 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ (B : subset-Commutative-Monoid l3 M)
+ where
+
+ commutative-minkowski-mul-Commutative-Monoid :
+ minkowski-mul-Commutative-Monoid M A B =
+ minkowski-mul-Commutative-Monoid M B A
+ commutative-minkowski-mul-Commutative-Monoid =
+ antisymmetric-sim-subtype
+ ( minkowski-mul-Commutative-Monoid M A B)
+ ( minkowski-mul-Commutative-Monoid M B A)
+ ( commutative-minkowski-mul-leq-Commutative-Monoid M A B ,
+ commutative-minkowski-mul-leq-Commutative-Monoid M B A)
+```
+
+### Minkowski multiplication on subsets of a commutative monoid is a commutative monoid
+
+```agda
+module _
+ {l : Level}
+ (M : Commutative-Monoid l)
+ where
+
+ commutative-monoid-minkowski-mul-Commutative-Monoid :
+ Commutative-Monoid (lsuc l)
+ pr1 commutative-monoid-minkowski-mul-Commutative-Monoid =
+ monoid-minkowski-mul-Monoid (monoid-Commutative-Monoid M)
+ pr2 commutative-monoid-minkowski-mul-Commutative-Monoid =
+ commutative-minkowski-mul-Commutative-Monoid M
+```
+
+### The Minkowski multiplication of two inhabited subsets is inhabited
+
+```agda
+module _
+ {l1 : Level}
+ (M : Commutative-Monoid l1)
+ where
+
+ minkowski-mul-inhabited-is-inhabited-Commutative-Monoid :
+ {l2 l3 : Level} →
+ (A : subset-Commutative-Monoid l2 M) →
+ (B : subset-Commutative-Monoid l3 M) →
+ is-inhabited-subtype A →
+ is-inhabited-subtype B →
+ is-inhabited-subtype (minkowski-mul-Commutative-Monoid M A B)
+ minkowski-mul-inhabited-is-inhabited-Commutative-Monoid =
+ minkowski-mul-inhabited-is-inhabited-Monoid (monoid-Commutative-Monoid M)
+```
+
+### Containment of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Commutative-Monoid l1)
+ (B : subset-Commutative-Monoid l2 M)
+ (A : subset-Commutative-Monoid l3 M)
+ (A' : subset-Commutative-Monoid l4 M)
+ where
+
+ preserves-leq-left-minkowski-mul-Commutative-Monoid :
+ A ⊆ A' →
+ minkowski-mul-Commutative-Monoid M A B ⊆
+ minkowski-mul-Commutative-Monoid M A' B
+ preserves-leq-left-minkowski-mul-Commutative-Monoid =
+ preserves-leq-left-minkowski-mul-Monoid (monoid-Commutative-Monoid M) B A A'
+
+ preserves-leq-right-minkowski-mul-Commutative-Monoid :
+ A ⊆ A' →
+ minkowski-mul-Commutative-Monoid M B A ⊆
+ minkowski-mul-Commutative-Monoid M B A'
+ preserves-leq-right-minkowski-mul-Commutative-Monoid =
+ preserves-leq-right-minkowski-mul-Monoid
+ ( monoid-Commutative-Monoid M)
+ ( B)
+ ( A)
+ ( A')
+```
+
+### Similarity of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Commutative-Monoid l1)
+ (B : subset-Commutative-Monoid l2 M)
+ (A : subset-Commutative-Monoid l3 M)
+ (A' : subset-Commutative-Monoid l4 M)
+ where
+
+ preserves-sim-left-minkowski-mul-Commutative-Monoid :
+ sim-subtype A A' →
+ sim-subtype
+ ( minkowski-mul-Commutative-Monoid M A B)
+ ( minkowski-mul-Commutative-Monoid M A' B)
+ preserves-sim-left-minkowski-mul-Commutative-Monoid =
+ preserves-sim-left-minkowski-mul-Monoid (monoid-Commutative-Monoid M) B A A'
+
+ preserves-sim-right-minkowski-mul-Commutative-Monoid :
+ sim-subtype A A' →
+ sim-subtype
+ ( minkowski-mul-Commutative-Monoid M B A)
+ ( minkowski-mul-Commutative-Monoid M B A')
+ preserves-sim-right-minkowski-mul-Commutative-Monoid =
+ preserves-sim-right-minkowski-mul-Monoid
+ ( monoid-Commutative-Monoid M)
+ ( B)
+ ( A)
+ ( A')
+
+module _
+ {l1 l2 l3 l4 l5 : Level}
+ (M : Commutative-Monoid l1)
+ (A : subset-Commutative-Monoid l2 M)
+ (A' : subset-Commutative-Monoid l3 M)
+ (B : subset-Commutative-Monoid l4 M)
+ (B' : subset-Commutative-Monoid l5 M)
+ where
+
+ preserves-sim-minkowski-mul-Commutative-Monoid :
+ sim-subtype A A' →
+ sim-subtype B B' →
+ sim-subtype
+ ( minkowski-mul-Commutative-Monoid M A B)
+ ( minkowski-mul-Commutative-Monoid M A' B')
+ preserves-sim-minkowski-mul-Commutative-Monoid =
+ preserves-sim-minkowski-mul-Monoid (monoid-Commutative-Monoid M) A A' B B'
+```
+
+## See also
+
+- Minkowski multiplication on semigroups is defined in
+ [`group-theory.minkowski-multiplication-semigroups`](group-theory.minkowski-multiplication-semigroups.md).
+- Minkowski multiplication on monoids is defined in
+ [`group-theory.minkowski-multiplication-monoids`](group-theory.minkowski-multiplication-monoids.md).
+
+## External links
+
+- [Minkowski addition](https://en.wikipedia.org/wiki/Minkowski_addition) at
+ Wikipedia
diff --git a/src/group-theory/minkowski-multiplication-monoids.lagda.md b/src/group-theory/minkowski-multiplication-monoids.lagda.md
new file mode 100644
index 0000000000..185f47cbda
--- /dev/null
+++ b/src/group-theory/minkowski-multiplication-monoids.lagda.md
@@ -0,0 +1,244 @@
+# Minkowski multiplication on subsets of a monoid
+
+```agda
+module group-theory.minkowski-multiplication-monoids where
+```
+
+Imports
+
+```agda
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.identity-types
+open import foundation.inhabited-subtypes
+open import foundation.powersets
+open import foundation.subtypes
+open import foundation.transport-along-identifications
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import group-theory.minkowski-multiplication-semigroups
+open import group-theory.monoids
+open import group-theory.semigroups
+open import group-theory.subsets-monoids
+```
+
+
+
+## Idea
+
+Given two [subsets](group-theory.subsets-monoids.md) `A` and `B` of a
+[monoid](group-theory.monoids.md) `M`, the
+{{#concept "Minkowski multiplication" Disambiguation="on subsets of a monoid" WD="Minkowski addition" WDID=Q1322294 Agda=minkowski-mul-Monoid}}
+of `A` and `B` is the [set](foundation-core.sets.md) of elements that can be
+formed by multiplying an element of `A` and an element of `B`. This binary
+operation defines a monoid structure on the [powerset](foundation.powersets.md)
+of `M`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 : Level}
+ (M : Monoid l1)
+ (A : subset-Monoid l2 M)
+ (B : subset-Monoid l3 M)
+ where
+
+ minkowski-mul-Monoid : subset-Monoid (l1 ⊔ l2 ⊔ l3) M
+ minkowski-mul-Monoid = minkowski-mul-Semigroup (semigroup-Monoid M) A B
+```
+
+## Properties
+
+### Minkowski multiplication on subsets of a monoid is associative
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Monoid l1)
+ (A : subset-Monoid l2 M)
+ (B : subset-Monoid l3 M)
+ (C : subset-Monoid l4 M)
+ where
+
+ associative-minkowski-mul-Monoid :
+ minkowski-mul-Monoid M (minkowski-mul-Monoid M A B) C =
+ minkowski-mul-Monoid M A (minkowski-mul-Monoid M B C)
+ associative-minkowski-mul-Monoid =
+ associative-minkowski-mul-Semigroup (semigroup-Monoid M) A B C
+```
+
+### Unit laws for Minkowski multiplication on subsets of a monoid
+
+```agda
+module _
+ {l1 l2 : Level}
+ (M : Monoid l1)
+ (A : subset-Monoid l2 M)
+ where
+
+ left-unit-law-minkowski-mul-Monoid :
+ sim-subtype (minkowski-mul-Monoid M (is-unit-Monoid-Prop M) A) A
+ pr1 left-unit-law-minkowski-mul-Monoid a =
+ elim-exists
+ ( A a)
+ ( λ (z , a') (z=1 , a'∈A , a=za') →
+ tr
+ ( is-in-subtype A)
+ ( inv
+ ( equational-reasoning
+ a
+ = mul-Monoid M z a' by a=za'
+ = mul-Monoid M (unit-Monoid M) a' by ap (mul-Monoid' M a') z=1
+ = a' by left-unit-law-mul-Monoid M a'))
+ ( a'∈A))
+ pr2 left-unit-law-minkowski-mul-Monoid a a∈A =
+ intro-exists
+ ( unit-Monoid M , a)
+ ( refl , a∈A , inv (left-unit-law-mul-Monoid M a))
+
+ right-unit-law-minkowski-mul-Monoid :
+ sim-subtype (minkowski-mul-Monoid M A (is-unit-Monoid-Prop M)) A
+ pr1 right-unit-law-minkowski-mul-Monoid a =
+ elim-exists
+ ( A a)
+ ( λ (a' , z) (a'∈A , z=1 , a=a'z) →
+ tr
+ ( is-in-subtype A)
+ ( inv
+ ( equational-reasoning
+ a
+ = mul-Monoid M a' z by a=a'z
+ = mul-Monoid M a' (unit-Monoid M) by ap (mul-Monoid M a') z=1
+ = a' by right-unit-law-mul-Monoid M a'))
+ ( a'∈A))
+ pr2 right-unit-law-minkowski-mul-Monoid a a∈A =
+ intro-exists
+ ( a , unit-Monoid M)
+ ( a∈A , refl , inv (right-unit-law-mul-Monoid M a))
+```
+
+### Minkowski multiplication on subsets of a monoid forms a monoid
+
+```agda
+module _
+ {l : Level}
+ (M : Monoid l)
+ where
+
+ is-unital-minkowski-mul-Monoid :
+ is-unital (minkowski-mul-Monoid {l} {l} {l} M)
+ pr1 is-unital-minkowski-mul-Monoid = is-unit-Monoid-Prop M
+ pr1 (pr2 is-unital-minkowski-mul-Monoid) A =
+ antisymmetric-sim-subtype
+ ( minkowski-mul-Monoid M (is-unit-Monoid-Prop M) A)
+ ( A)
+ ( left-unit-law-minkowski-mul-Monoid M A)
+ pr2 (pr2 is-unital-minkowski-mul-Monoid) A =
+ antisymmetric-sim-subtype
+ ( minkowski-mul-Monoid M A (is-unit-Monoid-Prop M))
+ ( A)
+ ( right-unit-law-minkowski-mul-Monoid M A)
+
+ monoid-minkowski-mul-Monoid : Monoid (lsuc l)
+ pr1 monoid-minkowski-mul-Monoid =
+ semigroup-minkowski-mul-Semigroup (semigroup-Monoid M)
+ pr2 monoid-minkowski-mul-Monoid = is-unital-minkowski-mul-Monoid
+```
+
+### The Minkowski multiplication of two inhabited subsets of a monoid is inhabited
+
+```agda
+module _
+ {l1 : Level}
+ (M : Monoid l1)
+ where
+
+ minkowski-mul-inhabited-is-inhabited-Monoid :
+ {l2 l3 : Level} →
+ (A : subset-Monoid l2 M) →
+ (B : subset-Monoid l3 M) →
+ is-inhabited-subtype A →
+ is-inhabited-subtype B →
+ is-inhabited-subtype (minkowski-mul-Monoid M A B)
+ minkowski-mul-inhabited-is-inhabited-Monoid =
+ minkowski-mul-inhabited-is-inhabited-Semigroup (semigroup-Monoid M)
+```
+
+### Containment of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Monoid l1)
+ (B : subset-Monoid l2 M)
+ (A : subset-Monoid l3 M)
+ (A' : subset-Monoid l4 M)
+ where
+
+ preserves-leq-left-minkowski-mul-Monoid :
+ A ⊆ A' → minkowski-mul-Monoid M A B ⊆ minkowski-mul-Monoid M A' B
+ preserves-leq-left-minkowski-mul-Monoid =
+ preserves-leq-left-minkowski-mul-Semigroup (semigroup-Monoid M) B A A'
+
+ preserves-leq-right-minkowski-mul-Monoid :
+ A ⊆ A' → minkowski-mul-Monoid M B A ⊆ minkowski-mul-Monoid M B A'
+ preserves-leq-right-minkowski-mul-Monoid =
+ preserves-leq-right-minkowski-mul-Semigroup (semigroup-Monoid M) B A A'
+```
+
+### Similarity of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (M : Monoid l1)
+ (B : subset-Monoid l2 M)
+ (A : subset-Monoid l3 M)
+ (A' : subset-Monoid l4 M)
+ where
+
+ preserves-sim-left-minkowski-mul-Monoid :
+ sim-subtype A A' →
+ sim-subtype (minkowski-mul-Monoid M A B) (minkowski-mul-Monoid M A' B)
+ preserves-sim-left-minkowski-mul-Monoid =
+ preserves-sim-left-minkowski-mul-Semigroup (semigroup-Monoid M) B A A'
+
+ preserves-sim-right-minkowski-mul-Monoid :
+ sim-subtype A A' →
+ sim-subtype (minkowski-mul-Monoid M B A) (minkowski-mul-Monoid M B A')
+ preserves-sim-right-minkowski-mul-Monoid =
+ preserves-sim-right-minkowski-mul-Semigroup (semigroup-Monoid M) B A A'
+
+module _
+ {l1 l2 l3 l4 l5 : Level}
+ (M : Monoid l1)
+ (A : subset-Monoid l2 M)
+ (A' : subset-Monoid l3 M)
+ (B : subset-Monoid l4 M)
+ (B' : subset-Monoid l5 M)
+ where
+
+ preserves-sim-minkowski-mul-Monoid :
+ sim-subtype A A' →
+ sim-subtype B B' →
+ sim-subtype
+ ( minkowski-mul-Monoid M A B)
+ ( minkowski-mul-Monoid M A' B')
+ preserves-sim-minkowski-mul-Monoid =
+ preserves-sim-minkowski-mul-Semigroup (semigroup-Monoid M) A A' B B'
+```
+
+## See also
+
+- Minkowski multiplication on semigroups is defined in
+ [`group-theory.minkowski-multiplication-semigroups`](group-theory.minkowski-multiplication-semigroups.md).
+- Minkowski multiplication on commutative monoids is defined in
+ [`group-theory.minkowski-multiplication-commutative-monoids`](group-theory.minkowski-multiplication-commutative-monoids.md).
+
+## External links
+
+- [Minkowski addition](https://en.wikipedia.org/wiki/Minkowski_addition) at
+ Wikipedia
diff --git a/src/group-theory/minkowski-multiplication-semigroups.lagda.md b/src/group-theory/minkowski-multiplication-semigroups.lagda.md
new file mode 100644
index 0000000000..4fd75c3fff
--- /dev/null
+++ b/src/group-theory/minkowski-multiplication-semigroups.lagda.md
@@ -0,0 +1,244 @@
+# Minkowski multiplication on subsets of a semigroup
+
+```agda
+module group-theory.minkowski-multiplication-semigroups where
+```
+
+Imports
+
+```agda
+open import foundation.action-on-identifications-functions
+open import foundation.cartesian-product-types
+open import foundation.conjunction
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.function-types
+open import foundation.functoriality-cartesian-product-types
+open import foundation.identity-types
+open import foundation.inhabited-subtypes
+open import foundation.powersets
+open import foundation.propositions
+open import foundation.sets
+open import foundation.subtypes
+open import foundation.universe-levels
+
+open import group-theory.semigroups
+open import group-theory.subsets-semigroups
+
+open import logic.functoriality-existential-quantification
+```
+
+
+
+## Idea
+
+Given two [subsets](group-theory.subsets-semigroups.md) `A` and `B` of a
+[semigroup](group-theory.semigroups.md) `S`, the
+{{#concept "Minkowski multiplication" Disambiguation="on subsets of a semigroup" WD="Minkowski addition" WDID=Q1322294 Agda=minkowski-mul-Semigroup}}
+of `A` and `B` is the [set](foundation-core.sets.md) of elements that can be
+formed by multiplying an element of `A` and an element of `B`. This binary
+operation defines a semigroup structure on the
+[powerset](foundation.powersets.md) of `S`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 : Level}
+ (G : Semigroup l1)
+ (A : subset-Semigroup l2 G)
+ (B : subset-Semigroup l3 G)
+ where
+
+ minkowski-mul-Semigroup : subset-Semigroup (l1 ⊔ l2 ⊔ l3) G
+ minkowski-mul-Semigroup c = ∃
+ ( type-Semigroup G × type-Semigroup G)
+ ( λ (a , b) →
+ A a ∧ B b ∧ Id-Prop (set-Semigroup G) c (mul-Semigroup G a b))
+```
+
+## Properties
+
+### Minkowski multiplication on subsets of a semigroup is associative
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (G : Semigroup l1)
+ (A : subset-Semigroup l2 G)
+ (B : subset-Semigroup l3 G)
+ (C : subset-Semigroup l4 G)
+ where
+
+ sim-associative-minkowski-mul-Semigroup :
+ sim-subtype
+ ( minkowski-mul-Semigroup G (minkowski-mul-Semigroup G A B) C)
+ ( minkowski-mul-Semigroup G A (minkowski-mul-Semigroup G B C))
+ pr1 sim-associative-minkowski-mul-Semigroup x =
+ elim-exists
+ ( claim)
+ ( λ (ab , c) (ab∈AB , c∈C , x=ab*c) →
+ elim-exists
+ ( claim)
+ ( λ (a , b) (a∈A , b∈B , ab=a*b) →
+ intro-exists
+ ( a , mul-Semigroup G b c)
+ ( a∈A ,
+ intro-exists (b , c) (b∈B , c∈C , refl) ,
+ ( equational-reasoning
+ x
+ = mul-Semigroup G ab c by x=ab*c
+ = mul-Semigroup G (mul-Semigroup G a b) c
+ by ap (mul-Semigroup' G c) ab=a*b
+ = mul-Semigroup G a (mul-Semigroup G b c)
+ by associative-mul-Semigroup G a b c)))
+ ( ab∈AB))
+ where
+ claim =
+ minkowski-mul-Semigroup G A (minkowski-mul-Semigroup G B C) x
+ pr2 sim-associative-minkowski-mul-Semigroup x =
+ elim-exists
+ ( claim)
+ ( λ (a , bc) (a∈A , bc∈BC , x=a*bc) →
+ elim-exists
+ ( claim)
+ ( λ (b , c) (b∈B , c∈C , bc=b*c) →
+ intro-exists
+ ( mul-Semigroup G a b , c)
+ ( intro-exists (a , b) (a∈A , b∈B , refl) ,
+ c∈C ,
+ ( equational-reasoning
+ x
+ = mul-Semigroup G a bc by x=a*bc
+ = mul-Semigroup G a (mul-Semigroup G b c)
+ by ap (mul-Semigroup G a) bc=b*c
+ = mul-Semigroup G (mul-Semigroup G a b) c
+ by inv (associative-mul-Semigroup G a b c))))
+ ( bc∈BC))
+ where
+ claim =
+ minkowski-mul-Semigroup G (minkowski-mul-Semigroup G A B) C x
+
+ associative-minkowski-mul-Semigroup :
+ minkowski-mul-Semigroup G (minkowski-mul-Semigroup G A B) C =
+ minkowski-mul-Semigroup G A (minkowski-mul-Semigroup G B C)
+ associative-minkowski-mul-Semigroup =
+ antisymmetric-sim-subtype
+ ( minkowski-mul-Semigroup G (minkowski-mul-Semigroup G A B) C)
+ ( minkowski-mul-Semigroup G A (minkowski-mul-Semigroup G B C))
+ ( sim-associative-minkowski-mul-Semigroup)
+```
+
+### Minkowski multiplication on subsets of a semigroup forms a semigroup
+
+```agda
+module _
+ {l : Level}
+ (G : Semigroup l)
+ where
+
+ semigroup-minkowski-mul-Semigroup : Semigroup (lsuc l)
+ pr1 semigroup-minkowski-mul-Semigroup = subtype-Set l (type-Semigroup G)
+ pr1 (pr2 semigroup-minkowski-mul-Semigroup) = minkowski-mul-Semigroup G
+ pr2 (pr2 semigroup-minkowski-mul-Semigroup) =
+ associative-minkowski-mul-Semigroup G
+```
+
+### The Minkowski multiplication of two inhabited subsets of a semigroup is inhabited
+
+```agda
+module _
+ {l1 l2 l3 : Level}
+ (G : Semigroup l1)
+ (A : subset-Semigroup l2 G)
+ (B : subset-Semigroup l3 G)
+ where
+
+ minkowski-mul-inhabited-is-inhabited-Semigroup :
+ is-inhabited-subtype A →
+ is-inhabited-subtype B →
+ is-inhabited-subtype (minkowski-mul-Semigroup G A B)
+ minkowski-mul-inhabited-is-inhabited-Semigroup =
+ map-binary-exists
+ ( is-in-subtype (minkowski-mul-Semigroup G A B))
+ ( mul-Semigroup G)
+ ( λ a b a∈A b∈B → intro-exists (a , b) (a∈A , b∈B , refl))
+```
+
+### Containment of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (G : Semigroup l1)
+ (B : subset-Semigroup l2 G)
+ (A : subset-Semigroup l3 G)
+ (A' : subset-Semigroup l4 G)
+ where
+
+ preserves-leq-left-minkowski-mul-Semigroup :
+ A ⊆ A' → minkowski-mul-Semigroup G A B ⊆ minkowski-mul-Semigroup G A' B
+ preserves-leq-left-minkowski-mul-Semigroup A⊆A' x =
+ map-tot-exists (λ (a , b) → map-product (A⊆A' a) id)
+
+ preserves-leq-right-minkowski-mul-Semigroup :
+ A ⊆ A' → minkowski-mul-Semigroup G B A ⊆ minkowski-mul-Semigroup G B A'
+ preserves-leq-right-minkowski-mul-Semigroup A⊆A' x =
+ map-tot-exists (λ (b , a) → map-product id (map-product (A⊆A' a) id))
+```
+
+### Similarity of subsets is preserved by Minkowski multiplication
+
+```agda
+module _
+ {l1 l2 l3 l4 : Level}
+ (G : Semigroup l1)
+ (B : subset-Semigroup l2 G)
+ (A : subset-Semigroup l3 G)
+ (A' : subset-Semigroup l4 G)
+ where
+
+ preserves-sim-left-minkowski-mul-Semigroup :
+ sim-subtype A A' →
+ sim-subtype (minkowski-mul-Semigroup G A B) (minkowski-mul-Semigroup G A' B)
+ pr1 (preserves-sim-left-minkowski-mul-Semigroup (A⊆A' , _)) =
+ preserves-leq-left-minkowski-mul-Semigroup G B A A' A⊆A'
+ pr2 (preserves-sim-left-minkowski-mul-Semigroup (_ , A'⊆A)) =
+ preserves-leq-left-minkowski-mul-Semigroup G B A' A A'⊆A
+
+ preserves-sim-right-minkowski-mul-Semigroup :
+ sim-subtype A A' →
+ sim-subtype (minkowski-mul-Semigroup G B A) (minkowski-mul-Semigroup G B A')
+ pr1 (preserves-sim-right-minkowski-mul-Semigroup (A⊆A' , _)) =
+ preserves-leq-right-minkowski-mul-Semigroup G B A A' A⊆A'
+ pr2 (preserves-sim-right-minkowski-mul-Semigroup (_ , A'⊆A)) =
+ preserves-leq-right-minkowski-mul-Semigroup G B A' A A'⊆A
+
+module _
+ {l1 l2 l3 l4 l5 : Level}
+ (G : Semigroup l1)
+ (A : subset-Semigroup l2 G)
+ (A' : subset-Semigroup l3 G)
+ (B : subset-Semigroup l4 G)
+ (B' : subset-Semigroup l5 G)
+ where
+
+ preserves-sim-minkowski-mul-Semigroup :
+ sim-subtype A A' →
+ sim-subtype B B' →
+ sim-subtype
+ ( minkowski-mul-Semigroup G A B)
+ ( minkowski-mul-Semigroup G A' B')
+ preserves-sim-minkowski-mul-Semigroup A≈A' B≈B' =
+ transitive-sim-subtype
+ ( minkowski-mul-Semigroup G A B)
+ ( minkowski-mul-Semigroup G A B')
+ ( minkowski-mul-Semigroup G A' B')
+ ( preserves-sim-left-minkowski-mul-Semigroup G B' A A' A≈A')
+ ( preserves-sim-right-minkowski-mul-Semigroup G A B B' B≈B')
+```
+
+## External links
+
+- [Minkowski addition](https://en.wikipedia.org/wiki/Minkowski_addition) at
+ Wikipedia
diff --git a/src/group-theory/monoids.lagda.md b/src/group-theory/monoids.lagda.md
index 1e76dbc225..6a0c542cfc 100644
--- a/src/group-theory/monoids.lagda.md
+++ b/src/group-theory/monoids.lagda.md
@@ -82,6 +82,12 @@ module _
unit-Monoid : type-Monoid
unit-Monoid = pr1 has-unit-Monoid
+ is-unit-Monoid-Prop : type-Monoid → Prop l
+ is-unit-Monoid-Prop x = Id-Prop set-Monoid x unit-Monoid
+
+ is-unit-Monoid : type-Monoid → UU l
+ is-unit-Monoid x = x = unit-Monoid
+
left-unit-law-mul-Monoid : (x : type-Monoid) → mul-Monoid unit-Monoid x = x
left-unit-law-mul-Monoid = pr1 (pr2 has-unit-Monoid)