Lesson 6 of 15

Group Homomorphisms

Group Homomorphisms

A group homomorphism is a function ϕ:GH\phi: G \to H between groups that preserves the group operation:

ϕ(aGb)=ϕ(a)Hϕ(b)\phi(a *_G b) = \phi(a) *_H \phi(b)

Properties of Homomorphisms

If ϕ:GH\phi: G \to H is a homomorphism, then:

  • ϕ(eG)=eH\phi(e_G) = e_H (identity maps to identity)
  • ϕ(a1)=ϕ(a)1\phi(a^{-1}) = \phi(a)^{-1} (inverses map to inverses)

Important Types

  • Isomorphism: bijective homomorphism (groups are "the same" structurally)
  • Automorphism: isomorphism from a group to itself
  • Kernel: ker(ϕ)={aG:ϕ(a)=eH}\ker(\phi) = \{a \in G : \phi(a) = e_H\} — always a subgroup of GG

Example: ϕ:Z6Z3\phi: \mathbb{Z}_6 \to \mathbb{Z}_3

Define ϕ(a)=amod3\phi(a) = a \bmod 3. This is a homomorphism because: (a+b)mod3=((amod3)+(bmod3))mod3(a + b) \bmod 3 = ((a \bmod 3) + (b \bmod 3)) \bmod 3

The kernel is ker(ϕ)={0,3}\ker(\phi) = \{0, 3\} — elements that map to 00 in Z3\mathbb{Z}_3.

Checking Homomorphism Computationally

Given groups Zm\mathbb{Z}_m and Zn\mathbb{Z}_n and a function ϕ\phi, verify:

def is_homomorphism(phi, m, n):
    for a in range(m):
        for b in range(m):
            if phi((a + b) % m) != (phi(a) + phi(b)) % n:
                return False
    return True

Your Task

Implement is_homomorphism(phi, m, n) that checks if function phi (a list where phi[a] gives ϕ(a)\phi(a)) is a homomorphism from ZmZn\mathbb{Z}_m \to \mathbb{Z}_n under addition, and kernel(phi, m) that returns the sorted kernel of ϕ\phi.

Pyodide loading...
Loading...
Click "Run" to execute your code.