Eckmann-Hilton argument #
The Eckmann-Hilton argument says that if a type carries two monoid structures that distribute
over one another, then they are equal, and in addition commutative.
The main application lies in proving that higher homotopy groups (πₙ
for n ≥ 2
) are commutative.
Main declarations #
EckmannHilton.commMonoid
: If a type carries a unital magma structure that distributes over a unital binary operation, then the magma is a commutative monoid.EckmannHilton.commGroup
: If a type carries a group structure that distributes over a unital binary operation, then the group is commutative.
IsUnital m e
expresses that e : X
is a left and right unit
for the binary operation m : X → X → X
.
Instances For
If a type carries two unital binary operations that distribute over each other, then they have the same unit elements.
In fact, the two operations are the same, and give a commutative monoid structure,
see eckmann_hilton.CommMonoid
.
If a type carries two unital binary operations that distribute over each other, then these operations are equal.
In fact, they give a commutative monoid structure, see eckmann_hilton.CommMonoid
.
If a type carries two unital binary operations that distribute over each other, then these operations are commutative.
In fact, they give a commutative monoid structure, see eckmann_hilton.CommMonoid
.
If a type carries two unital binary operations that distribute over each other, then these operations are associative.
In fact, they give a commutative monoid structure, see eckmann_hilton.CommMonoid
.
If a type carries a unital additive magma structure that distributes over a unital binary operation, then the additive magma structure is a commutative additive monoid.
Equations
- EckmannHilton.addCommMonoid h₁ distrib = AddCommMonoid.mk (_ : ∀ (a b : X), a + b = b + a)
Instances For
If a type carries a unital magma structure that distributes over a unital binary operation, then the magma structure is a commutative monoid.
Equations
- EckmannHilton.commMonoid h₁ distrib = CommMonoid.mk (_ : ∀ (a b : X), a * b = b * a)
Instances For
If a type carries an additive group structure that distributes over a unital binary operation, then the additive group is commutative.
Equations
- EckmannHilton.addCommGroup h₁ distrib = let src := EckmannHilton.addCommMonoid h₁ distrib; AddCommGroup.mk (_ : ∀ (a b : X), a + b = b + a)
Instances For
If a type carries a group structure that distributes over a unital binary operation, then the group is commutative.
Equations
- EckmannHilton.commGroup h₁ distrib = let src := EckmannHilton.commMonoid h₁ distrib; CommGroup.mk (_ : ∀ (a b : X), a * b = b * a)