A magma is the simplest algebraic structure. It is a set along with a binary operation with no additional properties imposed
- op : α → α → α
Instances
A semigroup is a magma where the operation is associative
- op : α → α → α
- op_assoc : ∀ (a b c : α), AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
Instances
theorem
AlgebraInLean.Semigroup.op_assoc
{α : Type u_2}
[self : AlgebraInLean.Semigroup α]
(a : α)
(b : α)
(c : α)
:
AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
theorem
AlgebraInLean.op_assoc
{α : Type u_1}
[AlgebraInLean.Semigroup α]
(a : α)
(b : α)
(c : α)
:
AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
(a ⬝ b) ⬝ c = a ⬝ (b ⬝ c)
A monoid is a semigroup with an identity element
- op : α → α → α
- op_assoc : ∀ (a b c : α), AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
- id : α
- op_id : ∀ (a : α), AlgebraInLean.μ a AlgebraInLean.Monoid.id = a
- id_op : ∀ (a : α), AlgebraInLean.μ AlgebraInLean.Monoid.id a = a
Instances
theorem
AlgebraInLean.Monoid.op_id
{α : Type u_2}
[self : AlgebraInLean.Monoid α]
(a : α)
:
AlgebraInLean.μ a AlgebraInLean.Monoid.id = a
theorem
AlgebraInLean.Monoid.id_op
{α : Type u_2}
[self : AlgebraInLean.Monoid α]
(a : α)
:
AlgebraInLean.μ AlgebraInLean.Monoid.id a = a
The identity element of a monoid or derived structure
Equations
- AlgebraInLean.𝕖 = AlgebraInLean.Monoid.id
Instances For
theorem
AlgebraInLean.op_id
{α : Type u_1}
[AlgebraInLean.Monoid α]
(a : α)
:
AlgebraInLean.μ a AlgebraInLean.𝕖 = a
a ⬝ 𝕖 = a
theorem
AlgebraInLean.id_op
{α : Type u_1}
[AlgebraInLean.Monoid α]
(a : α)
:
AlgebraInLean.μ AlgebraInLean.𝕖 a = a
𝕖 ⬝ a = a
Commutative monoids have the additional property that the operation is commutative
- op : α → α → α
- op_assoc : ∀ (a b c : α), AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
- id : α
- op_id : ∀ (a : α), AlgebraInLean.μ a AlgebraInLean.Monoid.id = a
- id_op : ∀ (a : α), AlgebraInLean.μ AlgebraInLean.Monoid.id a = a
- op_comm : ∀ (a b : α), AlgebraInLean.μ a b = AlgebraInLean.μ b a
Instances
theorem
AlgebraInLean.CommMonoid.op_comm
{α : Type u_2}
[self : AlgebraInLean.CommMonoid α]
(a : α)
(b : α)
:
AlgebraInLean.μ a b = AlgebraInLean.μ b a
theorem
AlgebraInLean.op_comm
{α : Type u_1}
[AlgebraInLean.CommMonoid α]
(a : α)
(b : α)
:
AlgebraInLean.μ a b = AlgebraInLean.μ b a
a ⬝ b = b ⬝ a
A group is a monoid with inverses
- op : α → α → α
- op_assoc : ∀ (a b c : α), AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
- id : α
- op_id : ∀ (a : α), AlgebraInLean.μ a AlgebraInLean.Monoid.id = a
- id_op : ∀ (a : α), AlgebraInLean.μ AlgebraInLean.Monoid.id a = a
- inv : α → α
- inv_op : ∀ (a : α), AlgebraInLean.μ (AlgebraInLean.Group.inv a) a = AlgebraInLean.𝕖
Instances
theorem
AlgebraInLean.Group.inv_op
{α : Type u_2}
[self : AlgebraInLean.Group α]
(a : α)
:
AlgebraInLean.μ (AlgebraInLean.Group.inv a) a = AlgebraInLean.𝕖
The inverse map of a group or derived structure
Equations
- AlgebraInLean.ι = AlgebraInLean.Group.inv
Instances For
theorem
AlgebraInLean.inv_op
{α : Type u_1}
[AlgebraInLean.Group α]
(a : α)
:
AlgebraInLean.μ (AlgebraInLean.ι a) a = AlgebraInLean.𝕖
a⁻¹ ⬝ a = 𝕖
An abelian group is a group with commutativity
- op : G → G → G
- op_assoc : ∀ (a b c : G), AlgebraInLean.μ (AlgebraInLean.μ a b) c = AlgebraInLean.μ a (AlgebraInLean.μ b c)
- id : G
- op_id : ∀ (a : G), AlgebraInLean.μ a AlgebraInLean.Monoid.id = a
- id_op : ∀ (a : G), AlgebraInLean.μ AlgebraInLean.Monoid.id a = a
- inv : G → G
- inv_op : ∀ (a : G), AlgebraInLean.μ (AlgebraInLean.Group.inv a) a = AlgebraInLean.𝕖
- op_comm : ∀ (a b : G), AlgebraInLean.μ a b = AlgebraInLean.μ b a
Instances
Equations
- AlgebraInLean.instCommMonoidOfAbelianGroup = AlgebraInLean.CommMonoid.mk ⋯
theorem
AlgebraInLean.op_inv
{α : Type u_1}
[AlgebraInLean.Group α]
(a : α)
:
AlgebraInLean.μ a (AlgebraInLean.ι a) = AlgebraInLean.𝕖
a ⬝ a⁻¹ = 𝕖
theorem
AlgebraInLean.op_left_cancel
{α : Type u_1}
[AlgebraInLean.Group α]
(a : α)
(b : α)
(c : α)
(h : AlgebraInLean.μ a b = AlgebraInLean.μ a c)
:
b = c
a ⬝ b = a ⬝ c ⇒ b = c
theorem
AlgebraInLean.op_right_cancel
{α : Type u_1}
[AlgebraInLean.Group α]
(a : α)
(b : α)
(c : α)
(h : AlgebraInLean.μ b a = AlgebraInLean.μ c a)
:
b = c
b ⬝ a = c ⬝ a ⇒ b = c