This naturally leads to the idea of the kernel of a homomorphism. Generally, when a group G acts on a set S, the kernel of the action is defined as {g ∈ G | g ⬝ s = s ∀ s ∈ S}. For a homomorphism φ : G → G', the kernel of φ (kerφ) is defined by {g ∈ G | φ (g) = 𝕖}. Try proving that the kernel of a homomorphism is a subgroup of G.
Equations
- AlgebraInLean.Kernel φ h = { carrier := {g : G | φ g = AlgebraInLean.𝕖}, has_id := ⋯, mul_closure := ⋯, inv_closure := ⋯ }
Instances For
The image of a homomorphism φ is a subgroup of G' (not G as the kernel was) that contains all elements which φ maps to. That is, all elements g' ∈ G' such that there is some element g ∈ G where φ(g) = g'.
Try proving that the image of a homomorphism is a subgroup of G'.
Equations
- AlgebraInLean.Image φ h = { carrier := {x : G' | ∃ (g : G), φ g = x}, has_id := ⋯, mul_closure := ⋯, inv_closure := ⋯ }
Instances For
Secondly, conjugating 𝕖 by any element yields the identity. This uses the op_inv
property.
Thirdly, the conjugate of a · b
is just conjugate of a
composed with conjugate of b
.
Can you figure out how g · (a · b) · g⁻¹ = (g · a · g⁻¹) · (g · b · g⁻¹)?
We'll use capital Conjugate
to define conjugating a set by an element g. This notation is
equivalent to the set {g · s · g⁻¹ | s ∈ S}, that is {conjugate s | s : S}.
Equations
Instances For
We define a subgroup to be normal
if the subgroup is closed under conjugation with any element of
G.
Equations
- AlgebraInLean.normal H = ∀ (g h : G), h ∈ H → AlgebraInLean.conjugate g h ∈ H
Instances For
The normalizer of a set S (of a group G) is the set of all elements in G that when conjugated with S return S. The normalizer will never be empty since 𝕖 conjugates in such a way. Now show that this subset of G is a subgroup of G.
Equations
- AlgebraInLean.Normalizer S = { carrier := {g : G | ∀ s ∈ S, AlgebraInLean.Conjugate g S = S}, has_id := ⋯, mul_closure := ⋯, inv_closure := ⋯ }
Instances For
The centralizer of a set S (of a group G) is the set of all elements in G that commute with all elements of S. This can be thought of a measure of how close a group is to being abelian.
Equations
- AlgebraInLean.Centralizer S = { carrier := {g : G | ∀ s ∈ S, AlgebraInLean.μ g s = AlgebraInLean.μ s g}, has_id := ⋯, mul_closure := ⋯, inv_closure := ⋯ }
Instances For
Equations
- AlgebraInLean.Center = AlgebraInLean.Centralizer Set.univ
Instances For
We have the AbelianGroup
type class that we defined in chapter 1, but here we codify a subgroup
being abelian into a Prop
. This lends itself to nice proofs like the one below.
Equations
- AlgebraInLean.Abelian H = ∀ (x y : G), x ∈ H → y ∈ H → AlgebraInLean.μ x y = AlgebraInLean.μ y x