Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minkowski multiplication for semigroups, monoids, and commutative monoids #1309

Merged
merged 28 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e84f3ce
Define Minkowski multiplication for semigroups
lowasser Feb 9, 2025
4f547c8
make pre-commit
lowasser Feb 9, 2025
ab87dac
Add monoids and commutative monoids
lowasser Feb 9, 2025
1f8bb30
make pre-commit
lowasser Feb 9, 2025
4581333
Use subset syntax
lowasser Feb 9, 2025
258ec99
Inhabitedness
lowasser Feb 9, 2025
40a9e33
make pre-commit
lowasser Feb 9, 2025
d7f6e2d
Similarity and containment
lowasser Feb 9, 2025
ca7ab8b
Propagate properties
lowasser Feb 9, 2025
07c978c
Merge branch 'master' into minkowski-sum-semigroup
lowasser Feb 10, 2025
93cb3c2
Review suggestions
lowasser Feb 10, 2025
f1dfaf8
Merge remote-tracking branch 'origin/minkowski-sum-semigroup' into mi…
lowasser Feb 10, 2025
2f37626
Apply suggestions from code review
lowasser Feb 10, 2025
32a0951
More progress
lowasser Feb 10, 2025
2c87435
Merge remote-tracking branch 'origin/minkowski-sum-semigroup' into mi…
lowasser Feb 10, 2025
cc06569
Apply suggestions from code review
lowasser Feb 10, 2025
e4527ae
Merge remote-tracking branch 'origin/minkowski-sum-semigroup' into mi…
lowasser Feb 10, 2025
ba39406
Review comments
lowasser Feb 10, 2025
38d7af2
Apply suggestions from code review
lowasser Feb 10, 2025
667bea2
make pre-commit
lowasser Feb 10, 2025
30c6fa7
More fixes
lowasser Feb 10, 2025
a9db016
Apply suggestions from code review
lowasser Feb 10, 2025
eb03e6c
Revert change
lowasser Feb 10, 2025
823ca40
Merge branch 'master' into minkowski-sum-semigroup
lowasser Feb 10, 2025
18af801
make pre-commit formatting
lowasser Feb 10, 2025
e057c55
Update src/group-theory/minkowski-multiplication-commutative-monoids.…
lowasser Feb 10, 2025
31ed0f3
Update src/group-theory/minkowski-multiplication-commutative-monoids.…
lowasser Feb 10, 2025
9a9b288
Update src/group-theory/minkowski-multiplication-monoids.lagda.md
lowasser Feb 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/group-theory.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
290 changes: 290 additions & 0 deletions src/group-theory/minkowski-multiplication-commutative-monoids.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,290 @@
# Minkowski multiplication of subsets of a commutative monoid

```agda
module group-theory.minkowski-multiplication-commutative-monoids where
```

<details><summary>Imports</summary>

```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
```

</details>

## 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 of commutative monoid subsets is associative
lowasser marked this conversation as resolved.
Show resolved Hide resolved

```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 of commutative monoid subsets is unital
lowasser marked this conversation as resolved.
Show resolved Hide resolved

```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
Loading