#абстрактная алгебра #cs #zero knowledge

В главе про cosets мы увидели, что подгруппа N разбивает группу G на left cosets:

aN = {an | n ∈ N}

и right cosets:

Na = {na | n ∈ N}

В Abelian group left и right cosets совпадают по простой причине: для любых a ∈ G и n ∈ N:

an = na

Поэтому:

aN = Na

В non-Abelian group отдельные элементы обычно не коммутируют:

an != na

Но иногда множества aN и Na всё равно совпадают. При этом необязательно, чтобы:

an = na

для одного и того же n. Достаточно, чтобы для каждого n ∈ N нашёлся некоторый n' ∈ N, такой что:

an = n'a

Если:

aN = Na

для каждого a ∈ G, то N называется normal subgroup / нормальными подгруппами.

Определение normal subgroup

Пусть:

N ≤ G

То есть N — подгруппа группы G.

Подгруппа N называется normal in G, если для любого:

a ∈ G

выполняется:

aN = Na

Обозначение:

N ◁ G

Читается:

N is normal in G

Что именно означает aN = Na

Важно не перепутать условие:

aN = Na

с более сильным условием:

an = na

Normality не требует, чтобы каждый элемент n ∈ N коммутировал с каждым элементом a ∈ G.

Речь идёт о равенстве двух множеств:

aN = {an | n ∈ N}

и:

Na = {na | n ∈ N}

То есть для каждого:

n ∈ N

существует, возможно, другой элемент:

n' ∈ N

такой что:

an = n'a

Элемент n' не обязан совпадать с исходным n.

Normality не означает коммутативность

Условие normal subgroup:

aN = Na

означает равенство двух множеств:

aN = {an | n ∈ N}
Na = {na | n ∈ N}

То есть мы умножаем каждый элемент N сначала слева на a, а потом отдельно — справа на a, и сравниваем получившиеся наборы.

Важно: равенство множеств не требует, чтобы элементы совпадали попарно в одном и том же порядке.

Необязательно:

an = na

для каждого конкретного n ∈ N.

Может получиться так, что:

an = n'a

где:

n' ∈ N

и n' — другой элемент подгруппы.

Например, если:

N = {e, u, v}

то:

aN = {a, au, av}

а:

Na = {a, ua, va}

При этом вполне может быть:

au = va
av = ua

Тогда:

aN = {a, va, ua}

и:

Na = {a, ua, va}

Это одно и то же множество, хотя:

au != ua

и:

av != va

Элементы просто поменялись местами внутри набора.

Поэтому:

normality означает, что умножение слева и справа даёт один и тот же coset как множество, а не то, что каждый элемент N коммутирует с a. Normal не означает Abelian! Normal subgroup не обязана состоять из элементов, которые коммутируют со всей группой. Normality означает только, что при переносе элементов подгруппы через элементы G мы остаёмся внутри той же подгруппы.

То есть подгруппа может внутренне “перемешиваться”, но не разваливается и не превращается в другое множество.

Пример в Abelian group

Рассмотрим:

G = Z12

и подгруппу:

N = {0, 4, 8}

Операция в Z12 — addition modulo 12.

Для любого a ∈ Z12:

a + N = N + a

потому что сложение коммутативно:

a + n = n + a

Следовательно:

N ◁ Z12

Вообще в любой Abelian group каждая подгруппа является normal.

Все подгруппы Abelian group нормальны

Если G Abelian, то для любых:

a ∈ G
n ∈ N

выполняется:

an = na

Поэтому:

aN = Na

для любого a ∈ G.

Следовательно:

every subgroup of an Abelian group is normal.

Normality становится отдельной проблемой только в non-Abelian groups.

Non-example: подгруппа одного отражения в D4 не normal

Рассмотрим группу симметрий квадрата D4.

Обозначим:

r

— поворот на 90°, а:

V

— отражение относительно вертикальной оси.

Возьмём подгруппу:

K = {e, V}

Это действительно подгруппа, потому что:

V^2 = e

Теперь проверим, совпадают ли left и right cosets для элемента r.

Left coset

rK = {re, rV}

Right coset

Kr = {er, Vr}

В D4 поворот и отражение не коммутируют:

rV != Vr

Более того, rV и Vr — два разных диагональных отражения квадрата.

Поэтому:

rK != Kr

Значит существует элемент r ∈ D4, для которого left и right cosets не совпадают.

Следовательно:

K is not normal in D4

Главная мысль:

чтобы подгруппа была normal, равенство aK = Ka должно выполняться для каждого a ∈ G. Достаточно найти один элемент, для которого cosets различаются, чтобы доказать, что подгруппа не normal.

Conjugation / сопряжение

Проверять равенство:

aN = Na

напрямую не всегда удобно. Поэтому normality обычно проверяют через conjugation / сопряжение.

Для элемента:

x ∈ G

и подгруппы N определим:

xNx^-1 = {xnx^-1 | n ∈ N}

То есть каждый элемент n ∈ N заменяется на:

xnx^-1

Интуиция conjugation

Выражение:

xnx^-1

можно понимать как тот же group action, рассмотренный после внутренней смены “контекста”.

Conjugation может переставить элементы группы, но сохраняет их group-theoretic properties:

  • порядок элемента;
  • отношения между элементами;
  • структуру сгенерированных подгрупп.

Normal subgroup — это подгруппа, которая остаётся той же самой после любого такого внутреннего преобразования.

Normal Subgroup Test

Подгруппа N ≤ G является normal тогда и только тогда, когда для каждого:

x ∈ G

выполняется:

xNx^-1 ⊆ N

В elementwise form это означает:

xnx^-1 ∈ N

для любых:

x ∈ G
n ∈ N

Часто это условие записывают сразу как равенство:

xNx^-1 = N

Почему из inclusion получается equality

Пусть для каждого:

x ∈ G

выполняется:

xNx^-1 ⊆ N

Нужно показать и обратное inclusion:

N ⊆ xNx^-1

Так как условие верно для любого элемента группы, оно верно и для x^-1:

x^-1N(x^-1)^-1 ⊆ N

Но:

(x^-1)^-1 = x

поэтому:

x^-1Nx ⊆ N

Теперь применим к обеим сторонам отображение:

y -> xyx^-1

То есть каждый элемент обоих множеств умножим слева на x, а справа на x^-1.

Если одно множество содержится в другом, то после применения одной и той же функции inclusion сохраняется:

x(x^-1Nx)x^-1 ⊆ xNx^-1

Левая сторона упрощается:

x(x^-1Nx)x^-1
=
(xx^-1)N(xx^-1)
=
eNe
=
N

Поэтому:

N ⊆ xNx^-1

Но изначально у нас уже было:

xNx^-1 ⊆ N

Получили inclusions в обе стороны:

xNx^-1 ⊆ N

и:

N ⊆ xNx^-1

Следовательно:

xNx^-1 = N

Важно: мы не умножаем левую и правую части на разные случайные элементы. Мы применяем к обеим сторонам одно и то же conjugation:

y -> xyx^-1

Почему conjugation test связан с cosets

Начнём с normality:

xN = Nx

Умножим обе части справа на x^-1:

xNx^-1 = Nxx^-1

Так как:

xx^-1 = e

получаем:

xNx^-1 = N

Поэтому условия:

xN = Nx

и:

xNx^-1 = N

описывают одну и ту же идею.

Пример: rotations в D4

Рассмотрим группу симметрий квадрата D4. Обозначим: r — rotation на 90°, а s — некоторое reflection.

Тогда:

r^4 = e
s^2 = e

и:

srs = r^-1

Возьмём подгруппу всех rotations:

R = {e, r, r^2, r^3}

Покажем, что:

R ◁ D4

Conjugation rotation элементом

Если conjugate rotation другим rotation:

r^i r^k r^-i

то rotations коммутируют между собой, поэтому:

r^i r^k r^-i = r^k

Результат снова лежит в R.

Conjugation reflection элементом

Используя:

srs = r^-1

получаем:

sr^k s = r^-k

Но:

r^-k

тоже rotation и также лежит в R.

Следовательно, conjugation любым элементом D4 не выводит нас за пределы R.

Значит:

R ◁ D4

Но rotations не коммутируют со всеми reflections

Например:

sr = r^-1s

Generally:

sr != rs

Поэтому подгруппа rotations normal, но её элементы не обязаны коммутировать со всеми элементами D4.

Это хороший пример того, что:

normal != central

Пример ненормальной подгруппы в D4

Теперь возьмём подгруппу, состоящую из identity и одного reflection:

K = {e, s}

Сравним left и right cosets для элемента r.

Left coset:

rK = {r, rs}

Right coset:

Kr = {r, sr}

Но:

sr = r^-1s = r^3s

Поэтому:

Kr = {r, r^3s}

Generally:

rs != r^3s

Следовательно:

rK != Kr

Поэтому:

K

не является normal subgroup of D4.

Пример Normal Subgroup Test в U(30)

Рассмотрим multiplicative group:

U(30) = {1, 7, 11, 13, 17, 19, 23, 29}

Операция — multiplication modulo 30.

Возьмём подгруппу:

H = {1, 11}

Это действительно подгруппа, потому что 1 — identity, а:

11 · 11 = 121 ≡ 1 (mod 30)

То есть:

11^-1 = 11

Находим cosets

Первый coset:

1H = {1 · 1, 1 · 11} = {1, 11}

Далее:

7H = {7 · 1, 7 · 11}

Так как:

7 · 11 = 77 ≡ 17 (mod 30)

получаем:

7H = {7, 17}

Аналогично:

13H = {13, 13 · 11}
13 · 11 = 143 ≡ 23 (mod 30)

поэтому:

13H = {13, 23}

И:

19H = {19, 19 · 11}
19 · 11 = 209 ≡ 29 (mod 30)

поэтому:

19H = {19, 29}

Итого distinct cosets:

H   = {1, 11}
7H  = {7, 17}
13H = {13, 23}
19H = {19, 29}

Они разбивают всю группу U(30).

Проверяем normality через conjugation

Normal Subgroup Test говорит:

H ◁ U(30)

тогда и только тогда, когда для любого:

x ∈ U(30)

выполняется:

xHx^-1 = H

То есть нужно взять каждый элемент h ∈ H и проверить:

xhx^-1 ∈ H

Проверка для x = 7

Inverse элемента 7 modulo 30:

7^-1 = 13

потому что:

7 · 13 = 91 ≡ 1 (mod 30)

Теперь:

7H7^-1
=
{7 · 1 · 13, 7 · 11 · 13}

Первый элемент:

7 · 1 · 13 = 91 ≡ 1 (mod 30)

Второй:

7 · 11 · 13 = 1001 ≡ 11 (mod 30)

Поэтому:

7H7^-1 = {1, 11} = H

Проверка для x = 13

Здесь:

13^-1 = 7

Тогда:

13H13^-1
=
{13 · 1 · 7, 13 · 11 · 7}

Получаем:

13 · 1 · 7 ≡ 1 (mod 30)

и:

13 · 11 · 7 ≡ 11 (mod 30)

Значит:

13H13^-1 = H

Проверка для x = 19

Элемент 19 является обратным самому себе:

19^-1 = 19

потому что:

19 · 19 = 361 ≡ 1 (mod 30)

Тогда:

19H19^-1
=
{19 · 1 · 19, 19 · 11 · 19}

Получаем:

19 · 1 · 19 ≡ 1 (mod 30)

и:

19 · 11 · 19 ≡ 11 (mod 30)

Поэтому:

19H19^-1 = H

Почему результат был ожидаем

Группа U(30) Abelian, потому что multiplication modulo 30 коммутативно.

Поэтому для любых:

x ∈ U(30)
h ∈ H

выполняется:

xhx^-1 = hxx^-1 = h

Следовательно:

xHx^-1 = H

для любого x ∈ U(30).

Значит:

H ◁ U(30)

Center группы всегда normal

Center группы обозначается:

Z(G)

и состоит из элементов, которые коммутируют со всеми элементами G:

Z(G) = {z ∈ G | zg = gz for all g ∈ G}

Если:

z ∈ Z(G)

то для любого x ∈ G:

xzx^-1 = zxx^-1 = z

Поэтому conjugation вообще не меняет элементы center.

Следовательно:

Z(G) ◁ G

Все подгруппы cyclic group нормальны

Любая cyclic group является Abelian.

Если:

G = <a>

то любые её элементы имеют вид:

a^i
a^j

и коммутируют:

a^i a^j = a^(i+j) = a^(j+i) = a^j a^i

А в любой Abelian group каждая подгруппа является normal.

Поэтому, если:

H ≤ G

и G cyclic, то:

H ◁ G

Главная причина:

cyclic => Abelian => every subgroup is normal

Unique subgroup данного порядка является normal

Пусть в группе G есть ровно одна подгруппа N порядка m.

Тогда:

N ◁ G

Почему?

Для любого:

x ∈ G

множество:

xNx^-1

также является подгруппой G.

Кроме того, conjugation является bijection, поэтому:

|xNx^-1| = |N| = m

Но по условию в G существует только одна подгруппа порядка m.

Следовательно:

xNx^-1 = N

для любого x ∈ G.

Значит:

N ◁ G

Произведение normal subgroup и другой подгруппы

Пусть:

N ◁ G

а:

K ≤ G

Тогда множество:

NK = {nk | n ∈ N, k ∈ K}

является подгруппой G.

Это важно, потому что произведение двух произвольных подгрупп не обязано быть подгруппой. Normality N позволяет переставлять элементы N и K с небольшой корректировкой внутри N.

Почему normality помогает доказать, что NK — подгруппа

Пусть:

N ◁ G

и:

K ≤ G

Определим:

NK = {nk | n ∈ N, k ∈ K}

То есть каждый элемент NK должен иметь форму:

элемент из N · элемент из K

Нужно доказать, что NK само является подгруппой.

В чём возникает проблема

Возьмём два элемента из NK:

x = n1k1
y = n2k2

где:

n1, n2 ∈ N
k1, k2 ∈ K

По subgroup test нужно проверить, что:

xy^-1 ∈ NK

Сначала найдём inverse:

y^-1 = (n2k2)^-1 = k2^-1n2^-1

Порядок поменялся, потому что:

(ab)^-1 = b^-1a^-1

Теперь:

xy^-1
=
(n1k1)(k2^-1n2^-1)

Объединим элементы из K:

xy^-1
=
n1(k1k2^-1)n2^-1

Здесь проблема: выражение имеет форму:

N K N

а нам нужно привести его к форме:

N K

Где используется normality

Обозначим:

k = k1k2^-1

Так как K — подгруппа:

k ∈ K

Теперь внутри выражения стоит:

kn2^-1

Нужно перенести n2^-1 влево от k.

Так как N normal:

kn2^-1k^-1 ∈ N

Обозначим этот элемент через:

n' = kn2^-1k^-1

Тогда:

n' ∈ N

Из определения n' получаем:

n'k
=
(kn2^-1k^-1)k
=
kn2^-1

То есть:

kn2^-1 = n'k

Normality позволила заменить неудобный порядок:

K N

на порядок:

N K

Завершаем проверку

Теперь:

xy^-1
=
n1kn2^-1
=
n1n'k

Причём:

n1n' ∈ N

потому что N — подгруппа, и:

k ∈ K

Значит результат имеет форму:

элемент из N · элемент из K

то есть:

xy^-1 ∈ NK

Следовательно:

NK ≤ G

Главная идея

Без normality при перемножении элементов возникают выражения вида:

N K N K

и их не всегда можно собрать обратно в форму NK.

Normality позволяет переставлять блоки:

K N -> N K

при этом элемент из N может измениться, но всё равно останется внутри N.

Поэтому:

N K N K -> N N K K -> N K

Именно это делает NK подгруппой.

Зачем вообще нужны normal subgroups

Главная причина появляется в следующей части. Cosets normal subgroup можно рассматривать как отдельные элементы новой группы.

Эта новая группа называется:

factor group

или:

quotient group

и обозначается:

G / N

Её элементы — не отдельные элементы G, а целые cosets:

aN

Как хочется перемножать cosets

Естественно определить:

(aN)(bN) = abN

Но здесь возникает проблема.

Один и тот же coset можно записать через разных representatives:

aN = a'N

и:

bN = b'N

Нужно, чтобы результат не зависел от того, какие representatives мы выбрали:

abN = a'b'N

Именно normality гарантирует, что такое умножение корректно определено.

Без normality операция над cosets может зависеть от выбора representative, и группы не получится.

Главная мысль normal subgroup

Normal subgroup — это подгруппа, которая не меняется при conjugation элементами всей группы:

xNx^-1 = N

Эквивалентно:

xN = Nx

для любого:

x ∈ G

Normality не означает, что все элементы коммутируют. Она означает, что при внутреннем “перемешивании” элементы подгруппы остаются внутри неё.

Именно normal subgroups позволяют построить factor groups:

G / N

Поэтому они являются одним из центральных объектов group theory.

Factor Groups: как превратить cosets в новую группу

В предыдущей части мы ввели normal subgroups.

Пусть:

N ◁ G

Это означает, что для любого:

a ∈ G

left и right cosets совпадают:

aN = Na

Теперь становится понятно, зачем вообще понадобилось это условие.

Если N normal in G, то cosets подгруппы N сами образуют новую группу.

Эта группа называется:

factor group

или:

quotient group

По-русски обычно говорят фактор-группа или группа частных.

Обозначение:

G / N

Главная идея factor group

Обычные элементы G объединяются в cosets:

aN

После этого каждый coset рассматривается как один элемент новой группы.

То есть вместо отдельных элементов:

a, an1, an2, ...

мы видим один большой объект:

aN

Все элементы одного coset становятся неразличимыми на уровне quotient group.

Можно представлять это как систематическое сжатие группы:

отдельные элементы G
блоки одинакового размера
элементы новой группы G/N

Определение factor group

Пусть:

N ◁ G

Тогда factor group определяется как множество всех cosets подгруппы N:

G / N = {aN | a ∈ G}

Операция задаётся так:

(aN)(bN) = abN

То есть:

  1. берём representatives a и b;
  2. перемножаем их в исходной группе и получаем ab;
  3. находим coset подгруппы N, содержащий ab, то есть abN.

Именно этот coset является результатом операции в factor group.

В additive notation

Если операция в группе — сложение, пишут:

G / N = {a + N | a ∈ G}

А операция выглядит так:

(a + N) + (b + N) = (a + b) + N

Например:

(2 + N) + (5 + N) = 7 + N

Это не обычное деление

Запись:

G / N

не означает, что мы буквально делим одну группу на другую как числа.

Смысл другой:

мы объединяем элементы G в cosets подгруппы N и считаем каждый такой coset одним элементом.

Количество элементов factor group равно количеству distinct cosets:

|G / N| = |G : N|

Если G finite, то по Lagrange’s Theorem:

|G / N| = |G| / |N|

Почему здесь необходима normality

Мы хотим определить:

(aN)(bN) = abN

Но один и тот же coset можно записать через разных representatives.

Например:

aN = a'N

и:

bN = b'N

Значит нужно гарантировать, что результат не изменится:

abN = a'b'N

Иначе операция зависела бы не от самих cosets, а от того, какие случайные representatives мы выбрали. Такая операция была бы not well-defined / некорректно определённой.

Именно normality гарантирует, что:

(aN)(bN)

всегда даёт один и тот же coset независимо от representatives.

Что делает normality внутри вычисления

Возьмём элементы:

an1 ∈ aN
bn2 ∈ bN

где:

n1, n2 ∈ N

Их произведение:

(an1)(bn2)

имеет вид:

an1bn2

Чтобы собрать это в coset abN, нам нужно перенести n1 через b. Так как N normal, conjugation элементом b не выводит нас за пределы N.

Поэтому существует некоторый:

n3 ∈ N

такой что:

n1b = bn3

Тогда:

an1bn2 = abn3n2

А поскольку:

n3n2 ∈ N

получаем:

an1bn2 ∈ abN

Поэтому произведение двух cosets действительно является coset:

(aN)(bN) = abN

Пример: factor group Z / 3Z

Рассмотрим additive group целых чисел Z и её подгруппу:

3Z = {..., -6, -3, 0, 3, 6, 9, ...}

3Z состоит из всех целых чисел, кратных 3.

Так как Z — Abelian group, любая её подгруппа normal:

3Z ◁ Z

Поэтому можно построить factor group:

Z / 3Z

Cosets подгруппы 3Z

Первый coset:

0 + 3Z

содержит все числа, которые при делении на 3 дают остаток 0:

0 + 3Z = {..., -6, -3, 0, 3, 6, ...}

Остатки здесь не вводятся отдельно. Они возникают из определения coset:

x ∈ a + 3Z

означает, что x - a ∈ 3Z, то есть x - a делится на 3. А это ровно условие:

x ≡ a (mod 3)

Поэтому cosets подгруппы 3Z — это классы чисел с одинаковыми остатками modulo 3.

Второй coset:

1 + 3Z

содержит все числа с остатком 1:

1 + 3Z = {..., -5, -2, 1, 4, 7, ...}

Третий coset:

2 + 3Z

содержит все числа с остатком 2:

2 + 3Z = {..., -4, -1, 2, 5, 8, ...}

Других cosets нет. Например:

4 + 3Z = 1 + 3Z

потому что:

4 - 1 = 3 ∈ 3Z

Элементы factor group

Получаем:

Z / 3Z =
{
  0 + 3Z,
  1 + 3Z,
  2 + 3Z
}

Важно: каждый coset здесь считается одним элементом новой группы.

Как работает операция

Операция задаётся так:

(a + 3Z) + (b + 3Z) = (a + b) + 3Z

Например:

(1 + 3Z) + (2 + 3Z)

Сначала складываем representatives:

1 + 2 = 3

Теперь берём coset, содержащий результат 3:

3 + 3Z

Но 3 лежит в 3Z, поэтому:

3 + 3Z = 0 + 3Z

Следовательно:

(1 + 3Z) + (2 + 3Z) = 0 + 3Z

Ещё пример:

(2 + 3Z) + (2 + 3Z)
=
4 + 3Z

Но:

4 + 3Z = 1 + 3Z

поэтому:

(2 + 3Z) + (2 + 3Z)
=
1 + 3Z

Identity и inverses

Identity element factor group:

0 + 3Z = 3Z

Inverse элемента:

1 + 3Z

равен:

2 + 3Z

потому что:

(1 + 3Z) + (2 + 3Z)
=
0 + 3Z

Связь с Z3

Операции в Z / 3Z работают точно так же, как addition modulo 3.

Соответствие:

0 + 3Z -> 0
1 + 3Z -> 1
2 + 3Z -> 2

Поэтому:

Z / 3Z ≅ Z3

Главная идея:

factor group Z / 3Z объединяет все целые числа с одинаковым остатком при делении на 3 в один элемент.

Теорема: Factor Groups

Если:

N ◁ G

то множество:

G / N = {aN | a ∈ G}

является группой относительно операции:

(aN)(bN) = abN

Group properties в G/N

Identity

Identity element quotient group — это сама подгруппа N:

N = eN

Почему?

(aN)(N) = (aN)(eN) = aeN = aN

То есть:

identity of G/N = N

Inverse

Inverse элемента:

aN

равен:

a^-1N

Потому что:

(aN)(a^-1N)
=
aa^-1N
=
eN
=
N

Associativity

Associativity наследуется от исходной группы:

((aN)(bN))(cN)
=
(ab)cN

и:

(aN)((bN)(cN))
=
a(bc)N

Так как в G:

(ab)c = a(bc)

результаты совпадают.

Когда два cosets считаются одним элементом

Для normal subgroup N:

aN = bN

тогда и только тогда, когда:

a^-1b ∈ N

В additive notation:

a + N = b + N

тогда и только тогда, когда:

b - a ∈ N

То есть два элемента G становятся одним элементом quotient group, если они отличаются на элемент из N.

Пример: Z / 4Z

Рассмотрим additive group всех целых чисел Z и её подгруппу:

4Z = {..., -8, -4, 0, 4, 8, ...}

Это множество всех чисел, кратных 4.

Так как Z Abelian:

4Z ◁ Z

Теперь построим:

Z / 4Z

Cosets подгруппы 4Z

Первый coset:

0 + 4Z
=
{..., -8, -4, 0, 4, 8, ...}

Это все числа с остатком 0 при делении на 4.

Далее:

1 + 4Z
=
{..., -7, -3, 1, 5, 9, ...}

Это все числа с остатком 1.

2 + 4Z
=
{..., -6, -2, 2, 6, 10, ...}

Это все числа с остатком 2.

3 + 4Z
=
{..., -5, -1, 3, 7, 11, ...}

Это все числа с остатком 3.

Других cosets нет.

Например:

5 + 4Z = 1 + 4Z

потому что:

5 - 1 = 4 ∈ 4Z

Элементы quotient group

Получаем:

Z / 4Z
=
{
  0 + 4Z,
  1 + 4Z,
  2 + 4Z,
  3 + 4Z
}

Операция:

(a + 4Z) + (b + 4Z)
=
(a + b) + 4Z

Например:

(2 + 4Z) + (3 + 4Z)
=
5 + 4Z

Но:

5 + 4Z = 1 + 4Z

Поэтому:

(2 + 4Z) + (3 + 4Z)
=
1 + 4Z

Это ровно addition modulo 4.

Следовательно:

Z / 4Z ≅ Z4

Общий результат для Z

Для любого positive integer n:

nZ = {..., -2n, -n, 0, n, 2n, ...}

Тогда:

Z / nZ ≅ Z_n

То есть modular arithmetic можно понимать как factor group целых чисел по подгруппе кратных n.

Запись:

a ≡ b (mod n)

означает именно:

a + nZ = b + nZ

потому что:

a - b ∈ nZ

Пример: Z18 / <6>

Рассмотрим:

G = Z18

и подгруппу:

N = <6> = {0, 6, 12}

Так как Z18 Abelian:

N ◁ Z18

Порядки:

|Z18| = 18
|N| = 3

Поэтому quotient group имеет:

|Z18 / N| = 18 / 3 = 6

элементов.

Находим cosets

0 + N = {0, 6, 12}
1 + N = {1, 7, 13}
2 + N = {2, 8, 14}
3 + N = {3, 9, 15}
4 + N = {4, 10, 16}
5 + N = {5, 11, 17}

Поэтому:

Z18 / N
=
{
  0 + N,
  1 + N,
  2 + N,
  3 + N,
  4 + N,
  5 + N
}

Как складываются cosets

Возьмём:

(5 + N) + (4 + N)

Складываем representatives:

5 + 4 = 9

Значит:

(5 + N) + (4 + N)
=
9 + N

Но:

9 + N = {9, 15, 3}

Это тот же coset, что:

3 + N = {3, 9, 15}

Поэтому:

(5 + N) + (4 + N)
=
3 + N

По структуре эта quotient group работает как Z6. Следовательно:

Z18 / <6> ≅ Z6

Пример: U(32) / U_16(32)

Рассмотрим multiplicative group U(32). Она состоит из всех чисел от 1 до 31, взаимно простых с 32.

Так как 32 — степень двойки, это все нечётные остатки:

U(32) =
{
  1, 3, 5, 7, 9, 11, 13, 15,
  17, 19, 21, 23, 25, 27, 29, 31
}

Операция — multiplication modulo 32.

Специальная подгруппа U_16(32)

По определению:

U_16(32) = {x ∈ U(32) | x ≡ 1 (mod 16)}

То есть нам нужны элементы U(32), которые дают остаток 1 при делении на 16.

Таких элементов два:

1 ≡ 1 (mod 16)
17 ≡ 1 (mod 16)

Поэтому:

H = U_16(32) = {1, 17}

Это действительно подгруппа, потому что:

17 · 17 = 289 ≡ 1 (mod 32)

То есть:

17^-1 = 17

Группа U(32) Abelian, поэтому любая её подгруппа normal:

H ◁ U(32)

Следовательно, можно построить factor group:

U(32) / H

Находим cosets

Первый coset — сама подгруппа:

H = {1, 17}

Теперь:

3H = {3 · 1, 3 · 17}

Так как:

3 · 17 = 51 ≡ 19 (mod 32)

получаем:

3H = {3, 19}

Аналогично:

5H = {5, 21}
7H = {7, 23}
9H = {9, 25}
11H = {11, 27}
13H = {13, 29}
15H = {15, 31}

Итого:

U(32) / H =
{
  H,
  3H,
  5H,
  7H,
  9H,
  11H,
  13H,
  15H
}

Всего получилось:

16 / 2 = 8

cosets (то есть порядок группы поделенный на порядок подгруппы).

Почему элементы склеились именно так

Каждый coset имеет вид:

xH = {x, 17x mod 32}

Так как x нечётное:

17x = x + 16x ≡ x + 16 (mod 32)

Поэтому:

xH = {x, x + 16}

Например:

3H = {3, 19}

А числа 3 и 19 имеют одинаковый остаток modulo 16:

3 ≡ 19 (mod 16)

То же самое происходит в каждом coset:

5 ≡ 21 (mod 16)
7 ≡ 23 (mod 16)
9 ≡ 25 (mod 16)

Factor group склеивает элементы U(32), которые выглядят одинаково modulo 16.

Как работает операция

Возьмём:

3H

и:

5H

По определению:

(3H)(5H) = 15H

потому что:

3 · 5 = 15

Ещё пример:

(7H)(11H) = 77H

Считаем modulo 32:

77 ≡ 13 (mod 32)

Поэтому:

(7H)(11H) = 13H

Связь с U(16)

Группа:

U(16) = {1, 3, 5, 7, 9, 11, 13, 15}

состоит из обратимых элементов modulo 16.

В quotient group:

U(32) / H

где:

H = U_16(32) = {1, 17}

каждый coset содержит два элемента, имеющих одинаковый остаток modulo 16:

H   = {1, 17}
3H  = {3, 19}
5H  = {5, 21}
7H  = {7, 23}
9H  = {9, 25}
11H = {11, 27}
13H = {13, 29}
15H = {15, 31}

Например:

3 ≡ 19 (mod 16)

и:

11 ≡ 27 (mod 16)

Поэтому можно определить mapping:

Φ : U(32) / H -> U(16)

по правилу:

Φ(xH) = x mod 16

То есть каждому coset сопоставляем общий остаток его элементов modulo 16:

H   -> 1
3H  -> 3
5H  -> 5
7H  -> 7
9H  -> 9
11H -> 11
13H -> 13
15H -> 15

Почему mapping корректно задан

Один coset можно записать через любого его элемента. Например:

3H = 19H

Поэтому нужно убедиться, что выбор representative не влияет на результат.

Но:

3 ≡ 19 (mod 16)

Следовательно:

Φ(3H) = 3

и:

Φ(19H) = 3

дают один и тот же элемент U(16). Это верно для каждого coset, потому что его два элемента отличаются на 16.

One-to-one и onto

Разные cosets имеют разные остатки modulo 16, поэтому они не склеиваются.

Значит mapping one-to-one.

Кроме того, каждый элемент:

1, 3, 5, 7, 9, 11, 13, 15

из U(16) соответствует одному coset.

Значит mapping onto.

Сохранение операции

Операция в quotient group — multiplication of cosets:

(xH)(yH) = xyH

А в U(16) — multiplication modulo 16.

Например:

(7H)(11H) = 77H

В U(32):

77 ≡ 13 (mod 32)

поэтому:

(7H)(11H) = 13H

Применяем mapping:

Φ(13H) = 13

Теперь посчитаем напрямую в U(16):

7 · 11 = 77 ≡ 13 (mod 16)

Получили тот же результат.

То есть:

Φ((7H)(11H)) = Φ(7H)Φ(11H)

Операция сохраняется.

Следовательно:

U(32) / U_16(32) ≅ U(16)

А так как:

U(16) ≅ Z4 ⊕ Z2

получаем:

U(32) / U_16(32) ≅ Z4 ⊕ Z2

Главная идея:

quotient group склеивает два элемента U(32), которые имеют одинаковый остаток modulo 16, поэтому после склеивания остаётся именно структура U(16).

Главная мысль

Подгруппа:

U_16(32) = {1, 17}

содержит элементы, которые выглядят как identity modulo 16.

При переходе к factor group эти элементы становятся identity, а числа, отличающиеся на 16, склеиваются:

1  ~ 17
3  ~ 19
5  ~ 21
...
15 ~ 31

В результате арифметика modulo 32 сжимается до арифметики units modulo 16:

U(32) / U_16(32) ≅ U(16)

Размер coset и порядок coset — разные вещи

Здесь легко запутаться, потому что запись:

|a + N|

может использоваться в двух смыслах.

Размер coset как множества

В предыдущем примере:

3 + N = {3, 9, 15}

Поэтому coset содержит 3 элемента. То есть его размер как множества:

|3 + N| = 3

Порядок coset как элемента quotient group

Но теперь рассмотрим:

3 + N

как один элемент группы:

Z18 / N

Складываем его с самим собой:

(3 + N) + (3 + N)
=
6 + N

Но:

6 ∈ N

поэтому:

6 + N = N = 0 + N

Значит элемент:

3 + N

возвращается в identity после двух сложений.

Его порядок в quotient group равен 2.

Итак:

3 + N

имеет:

  • размер 3 как множество;
  • порядок 2 как элемент quotient group.

Смысл всегда определяется контекстом.

Как находить порядок элемента aN

В multiplicative notation порядок coset aN — это наименьшее positive integer k, для которого:

a^k ∈ N

Потому что:

(aN)^k = a^kN

А identity quotient group — это N. Следовательно:

a^kN = N

ровно тогда, когда:

a^k ∈ N

В additive notation

Порядок:

a + N

— это наименьшее positive integer k, для которого:

ka ∈ N

В примере выше:

a = 3

и:

2 · 3 = 6 ∈ N

Поэтому:

|3 + N| = 2

как элемента quotient group.

Non-Abelian пример: D4 / K

Рассмотрим группу симметрий квадрата D4. В ней есть восемь элементов:

R0, R90, R180, R270,
H_ref, V_ref, D, D'

Чтобы не путать horizontal reflection с названием подгруппы, обозначим подгруппу буквой K:

K = {R0, R180}

Эта подгруппа normal in D4.

Построим quotient group:

D4 / K

Cosets

Первый coset:

K = {R0, R180}

Далее:

R90K = {R90, R270}
H_refK = {H_ref, V_ref}
DK = {D, D'}

Поэтому:

D4 / K
=
{
  K,
  R90K,
  H_refK,
  DK
}

Вместо восьми отдельных симметрий теперь осталось четыре блока.

Пример операции

Возьмём:

(R90K)(R90K)

По определению:

(R90K)(R90K)
=
R180K

Но:

R180 ∈ K

поэтому:

R180K = K

Следовательно:

(R90K)^2 = K

То есть coset R90K имеет порядок 2.

Аналогично:

(H_refK)^2 = K

и:

(DK)^2 = K

Все три non-identity elements имеют порядок 2.

Поэтому:

D4 / K ≅ Z2 ⊕ Z2

Quotient group как сжатая версия исходной группы

При переходе:

G → G/N

все элементы одного coset сжимаются в один элемент.

Например, в D4 / K: R0 и R180 становятся одним элементом K.

R90 и R270 становятся одним элементом:

R90K

Factor group “забывает” различия между элементами, которые отличаются на элемент из N.

Что значит “сделать N identity”

В quotient group сама подгруппа N становится identity element.

Все элементы N оказываются внутри identity coset:

N = eN

Поэтому можно сказать:

при переходе к G/N мы объявляем все элементы N эквивалентными identity.

Например, в:

Z / 4Z

все числа, кратные 4, становятся нулём:

... = -8 + 4Z = -4 + 4Z = 0 + 4Z = 4 + 4Z = 8 + 4Z = ...

А в:

Z18 / {0,6,12}

элементы:

0, 6, 12

становятся одним identity element N.

“Killing” a subgroup

Иногда говорят, что при создании quotient group мы:

kill N

то есть “убиваем подгруппу N”.

Это не означает, что её просто удаляют. На самом деле все её элементы отождествляются с identity.

n ∈ N

становится:

nN = N

для любого n ∈ N.

А элементы, отличающиеся на элемент из N, становятся одинаковыми:

aN = anN

Зачем нужны factor groups

Factor group позволяет намеренно забыть часть структуры группы. Мы выбираем normal subgroup N, объявляем её элементы identity и смотрим, какая структура останется.

Это полезно, когда:

  • исходная группа слишком большая;
  • нас не интересуют различия внутри cosets;
  • нужно изучить структуру группы по слоям;
  • нужно понять kernel of a homomorphism;
  • нужно применить First Isomorphism Theorem.

Дальше окажется, что kernels homomorphisms всегда являются normal subgroups, а quotient groups естественно описывают результат homomorphism.

Главная мысль

Factor group:

G / N

состоит не из элементов исходной группы, а из cosets:

aN

Операция задаётся так:

(aN)(bN) = abN

Normality гарантирует, что результат не зависит от выбора representatives.

При переходе к quotient group:

  • все элементы N становятся identity;
  • элементы одного coset становятся одним элементом;
  • группа G сжимается до более простой структуры.

Factor group — это группа, полученная после того, как все элементы normal subgroup объявлены identity, а элементы каждого coset склеены в один новый элемент.

Internal Direct Products: как разложить группу на внутренние компоненты

Ранее мы рассматривали external direct product / внешнее прямое произведение:

H ⊕ K

Мы брали две группы H и K и строили из них новую группу, элементы которой имеют вид:

(h, k)

Операция выполняется componentwise:

(h1, k1)(h2, k2) = (h1h2, k1k2)

Это способ двигаться от меньших групп к большей:

H и K
H ⊕ K

Теперь мы хотим обратить процесс.

Пусть большая группа G уже существует. Можно ли найти внутри неё подгруппы H и K, которые работают как независимые компоненты G?

Если можно, то G называется internal direct product / внутренним прямым произведением этих подгрупп.

External и internal direct product

External direct product

При external direct product группы H и K изначально могут вообще не иметь отношения друг к другу.

Мы создаём новое множество:

H ⊕ K = {(h, k) | h ∈ H, k ∈ K}

Его элементы — ordered pairs:

(h, k)

Internal direct product

При internal direct product мы начинаем с уже существующей группы G и ищем внутри неё две подгруппы:

H ≤ G
K ≤ G

такие, что каждый элемент G можно однозначно собрать из элемента H и элемента K.

Здесь мы не создаём ordered pairs как новые объекты. Мы используем обычную операцию самой группы G:

hk

где:

h ∈ H
k ∈ K

Главная идея:

external direct product собирает новую группу из отдельных групп, а internal direct product разбирает уже существующую группу на подгруппы-компоненты.

Определение internal direct product

Группа G является internal direct product подгрупп H и K, если выполняются три условия.

Первое:

H ◁ G
K ◁ G

Второе:

G = HK

Третье:

H ∩ K = {e}

В используемой здесь notation можно написать:

G = H × K

Важно: обозначения в разных книгах отличаются. Некоторые авторы используют × и для external, и для internal direct product.

Что означают три условия

1. Обе подгруппы normal

H ◁ G
K ◁ G

Normality позволяет элементам H и K корректно взаимодействовать внутри G.

Более того, при остальных условиях она приводит к тому, что элементы двух компонентов коммутируют:

hk = kh

для любых:

h ∈ H
k ∈ K

Ниже мы увидим, откуда это берётся.

2. Подгруппы вместе покрывают всю группу

G = HK

Здесь:

HK = {hk | h ∈ H, k ∈ K}

Это означает, что каждый элемент:

g ∈ G

можно представить в виде:

g = hk

То есть H и K вместе действительно собирают всю группу, а не только какую-то её часть.

3. Подгруппы пересекаются только в identity

H ∩ K = {e}

Единственный элемент, принадлежащий одновременно обеим подгруппам, — identity. Это условие не позволяет компонентам дублировать друг друга.

Если бы в пересечении находились другие элементы, один и тот же элемент G мог бы иметь несколько разных разложений:

g = hk

Почему разложение g = hk единственно

Пусть один элемент g ∈ G удалось записать двумя способами:

g = h1k1

и:

g = h2k2

Тогда:

h1k1 = h2k2

Перенесём элементы:

h2^-1h1 = k2k1^-1

Левая часть лежит в H:

h2^-1h1 ∈ H

Правая часть лежит в K:

k2k1^-1 ∈ K

Но это один и тот же элемент. Значит он лежит в пересечении:

h2^-1h1 ∈ H ∩ K

Так как:

H ∩ K = {e}

получаем:

h2^-1h1 = e

и:

k2k1^-1 = e

Следовательно:

h1 = h2
k1 = k2

Поэтому каждый элемент G имеет ровно одно представление:

g = hk

Почему элементы H и K коммутируют

Возьмём:

h ∈ H
k ∈ K

Рассмотрим commutator:

hkh^-1k^-1

Так как K normal:

hkh^-1 ∈ K

а значит:

hkh^-1k^-1 ∈ K

С другой стороны, так как H normal:

kh^-1k^-1 ∈ H

и поэтому:

hkh^-1k^-1 ∈ H

Получается, commutator лежит одновременно в H и в K:

hkh^-1k^-1 ∈ H ∩ K

Но:

H ∩ K = {e}

Следовательно:

hkh^-1k^-1 = e

Отсюда:

hk = kh

То есть компоненты internal direct product не мешают друг другу: элементы H коммутируют с элементами K.

Важно:

это не означает, что сама H обязана быть Abelian или сама K обязана быть Abelian. Речь только о том, что элементы разных компонентов коммутируют друг с другом.

Почему internal и external direct products изоморфны

Пусть:

G = H × K

как internal direct product.

Определим mapping:

Φ : H ⊕ K -> G

по правилу:

Φ(h, k) = hk

То есть ordered pair из external direct product отправляется в произведение этих элементов внутри G.

Mapping onto

Так как:

G = HK

каждый элемент g ∈ G имеет вид:

g = hk

Поэтому каждый элемент G является образом некоторой пары:

(h, k)

Значит Φ onto.

Mapping one-to-one

Мы уже показали, что разложение:

g = hk

единственно.

Поэтому разные пары не могут перейти в один и тот же элемент.

Значит Φ one-to-one.

Операция сохраняется

Во внешнем произведении:

(h1, k1)(h2, k2)
=
(h1h2, k1k2)

Применяем Φ:

Φ(h1h2, k1k2)
=
h1h2k1k2

Но элементы H коммутируют с элементами K, поэтому:

h2k1 = k1h2

Следовательно:

h1h2k1k2
=
h1k1h2k2

А это:

Φ(h1, k1)Φ(h2, k2)

Значит операция сохраняется.

Получаем:

G ≅ H ⊕ K

Это и есть главный смысл internal direct product:

если группа внутри себя распадается на независимые normal subgroups H и K, то по структуре она совпадает с их external direct product.

Конкретный пример: Z6

Рассмотрим additive group:

G = Z6 = {0, 1, 2, 3, 4, 5}

Возьмём две подгруппы:

H = <3> = {0, 3}

и:

K = <2> = {0, 2, 4}

Так как Z6 Abelian, обе подгруппы normal:

H ◁ Z6
K ◁ Z6

Проверяем пересечение

H = {0, 3}
K = {0, 2, 4}

Единственный общий элемент:

H ∩ K = {0}

В additive notation identity — это 0.

Проверяем, что они собирают всю Z6

Здесь произведение подгрупп записывается как сумма:

H + K = {h + k mod 6 | h ∈ H, k ∈ K}

Возможные суммы:

0 + 0 = 0
0 + 2 = 2
0 + 4 = 4

3 + 0 = 3
3 + 2 = 5
3 + 4 = 7 ≡ 1 (mod 6)

Получили:

H + K = {0, 1, 2, 3, 4, 5} = Z6

Значит Z6 является internal direct product подгрупп H и K.

Связь с external direct product

Подгруппа:

H = {0, 3}

имеет порядок 2, поэтому:

H ≅ Z2

Подгруппа:

K = {0, 2, 4}

имеет порядок 3, поэтому:

K ≅ Z3

Следовательно:

Z6 ≅ H ⊕ K ≅ Z2 ⊕ Z3

Это тот же результат, который мы раньше получили через external direct products, но теперь компоненты были найдены внутри самой Z6.

Пример с U(15)

Рассмотрим:

U(15) = {1, 2, 4, 7, 8, 11, 13, 14}

Операция — multiplication modulo 15.

Возьмём специальные подгруппы:

H = U_3(15)

и:

K = U_5(15)

По определению:

U_3(15) = {x ∈ U(15) | x ≡ 1 (mod 3)}

Поэтому:

H = {1, 4, 7, 13}

А:

U_5(15) = {x ∈ U(15) | x ≡ 1 (mod 5)}

поэтому:

K = {1, 11}

Normality

Группа U(15) Abelian, поэтому:

H ◁ U(15)
K ◁ U(15)

Пересечение

Единственный элемент, лежащий в обеих подгруппах:

H ∩ K = {1}

Здесь identity — это 1, потому что операция multiplicative.

Произведение подгрупп

Умножение элементов H на 1 даёт:

{1, 4, 7, 13}

Умножение элементов H на 11 modulo 15 даёт:

1 · 11  ≡ 11
4 · 11  ≡ 14
7 · 11  ≡ 2
13 · 11 ≡ 8

Поэтому:

HK =
{1, 4, 7, 13, 11, 14, 2, 8}

То есть:

HK = U(15)

Следовательно, U(15) является internal direct product:

U(15) = H × K

А по структуре:

H ≅ U(5) ≅ Z4

и:

K ≅ U(3) ≅ Z2

Поэтому:

U(15) ≅ Z4 ⊕ Z2

Почему нужны все условия

Недостаточно только потребовать:

G = HK

и:

H ∩ K = {e}

Если одна из подгрупп не normal, структура может получиться не direct product.

Normality нужна, чтобы компоненты взаимодействовали независимо и элементы H коммутировали с элементами K. Без этого mapping:

(h, k) -> hk

может не сохранять операцию.

Поэтому все три условия существенны:

H ◁ G
K ◁ G
G = HK
H ∩ K = {e}

Internal direct product нескольких подгрупп

Группу можно разложить не только на два компонента.

Пусть:

H1, H2, ..., Hn

— normal subgroups группы G.

Группа G является internal direct product этих подгрупп, если:

G = H1H2...Hn

и при добавлении каждого нового компонента он пересекается с произведением предыдущих только в identity:

(H1H2...Hi) ∩ H_(i+1) = {e}

для:

i = 1, 2, ..., n - 1

Тогда:

G ≅ H1 ⊕ H2 ⊕ ... ⊕ Hn

И каждый элемент G однозначно записывается как:

g = h1h2...hn

где:

hi ∈ Hi

Группы порядка

Одно из важных применений internal direct products — классификация групп порядка:

где p — prime number.

Любая такая группа изоморфна одной из двух групп:

Z_(p²)

или:

Z_p ⊕ Z_p

Первый вариант cyclic: в группе есть элемент порядка .

Во втором варианте все non-identity elements имеют порядок p, и группа раскладывается на два компонента порядка p.

Следовательно:

каждая группа порядка является Abelian.

Например, при:

p = 2

получаем две возможные группы порядка 4:

Z4

и:

Z2 ⊕ Z2

Аналогия с разложением чисел

External direct product похож на обычное умножение чисел:

3 · 5 = 15

Мы берём отдельные объекты и собираем из них больший.

Internal direct product похож на factorization уже существующего числа:

15 = 3 · 5

Мы начинаем с готового объекта и ищем его независимые компоненты.

Для групп:

external:
H и K -> H ⊕ K
internal:
G -> найти H и K внутри G

Главная мысль

Internal direct product показывает, что большая группа уже содержит внутри себя меньшие независимые компоненты.

Если:

H ◁ G
K ◁ G
G = HK
H ∩ K = {e}

то:

G ≅ H ⊕ K

Каждый элемент G при этом имеет единственное представление:

g = hk

где:

h ∈ H
k ∈ K
  • External direct product строит группу из компонентов.
  • Internal direct product обнаруживает эти компоненты внутри уже существующей группы.