自由群

天崩發表於2021-11-27

前言

果然,堅持寫部落格是一件非常困難的事。按照計劃,這篇部落格一年前就該寫出來了,那個時候我還在堅持學抽象代數——結果中間不知道發生了什麼
總而言之一直耽擱到現在。

本文內容

本文內容有:

  1. 自由群的引入和定義
  2. 自由群的構造
  3. 自由群的部分性質及證明。

沒有:

  1. 更高階的觀點
  2. 與其它知識點的連結

宣告

我假定讀者是一年前的自己,也就是學過一點群論,但是對概念懵懵懂懂。能看得懂證明,但看不懂命題。

希望這篇文章能給各位看官一點消遣(如果最後能寫完的話)。

自由群

自由群是一種特殊的代數結構

引入

在代數裡面我們常常會想要用一些已有的元件去生成一個代數結構,時髦一點說是求一個閉包。一個經典的例子是各種歸納構造:

經典命題邏輯

假設我們有一個命題變數的集合\(V=\{p,q,r,s,t,...\}\),以及命題連結詞的集合\(C=\{\rightarrow,\neg \}\),我們歸納地定義命題集合\(P\)

  1. 對於任何\(p \in V\)\(p\)是一個命題。
  2. 對於任何兩個命題\(\varphi ,\psi\),(\(\varphi \rightarrow \psi;)\)也是一個命題。
  3. 對於任何命題\(\varphi\)\(\neg\varphi\)也是一個命題。

按照對應的規則,我們有一些例子

  1. \(p, q, r, s, t, ...\)
  2. \(p \rightarrow q, (p \rightarrow q) \rightarrow r,...\)
  3. \(\neg p, \neg (p \rightarrow q)\)

你應該相當熟悉這樣的定義。它有很多種看待的方法,我們這裡只用最簡單的觀點(也許吧)。基本的命題變數相當於我們的基礎元件,而規則2,3則是兩種操作\(\neg\)代表一個單目操作,給它一個元件,返回一個(新的)元件;\(\rightarrow\)代表一個二元操作,給它兩個元件,返回一個(新的)元件。而我們最終得到的結構是從基礎元件出發所有有限步操作構成的閉包。(一般的邏輯學教材會在這裡證明,歸納定義的結果是所有有限構造的命題。)

這種定義的好處在哪裡呢?當我們拿到一個命題時,我們同時知道了它是如何被構造出來的。只要知道

  1. 如何解釋每個變數
  2. 如何解釋連線符的真值

我們就可以直接匯出整個命題的真值。

命題變數 蘊含 取反
P \(\{p,q,..,\}\) \(\varphi, \psi \Rightarrow \phi \rightarrow \psi\) \(\phi \Rightarrow \neg \phi\)
\(\{0,1\}\) \(\mathbb{Z}/2\mathbb{Z}\) \(m,n \Rightarrow (m \times (n + 1) + 1) mod 2\) \(m \Rightarrow (m + 1) mod 2\)

這裡,只要我們有一個從命題變數到真值的對映\(f:V \rightarrow\mathbb{Z}/2\mathbb{Z}\),給我們一個命題我們就能知道命題的真值。

比如,假設我們有\(\{ p \mapsto 0, q \mapsto 1, r \mapsto 0\}\),那麼對於命題\(p \rightarrow q\),我們知道這裡是\(p\)\(q\)的值進行一次蘊含操作,那麼命題的真值就是\((0+1) mod 2 = 1\)\((p \rightarrow q) \rightarrow r\)則是1再和\(r\)的值\(0\)做一次蘊含操作,結果是\((1 \times (0 + 1) + 1) mod 2 = 0\)

如果我們把1解釋為真而把0解釋為假,我們就證明了兩個命題的真值。當然這裡我們省略了很多工作:比如操作的良定義性,命題的唯一可讀性等等。不過你應該能大概領會到這種匯出的意義:對於任何一個有相同signature(也就是有一個一元操作和一個二元操作)的代數結構\(N\),我們只需要把每個基礎元件解釋成\(N\)的元素,那麼這個解釋就會自動擴充套件成對整個自由代數的解釋\(V\)

  1. 每個\(P\)中的元素都解釋成\(N\)的一個元素,即\(\forall p \in P, p \in dom(V)\)
  2. 這種解釋是保留操作的(即一個同態),比如,\(V(A \rightarrow B)\)一定會解釋成\((V(A) \times (V(B) + 1) +1) mod 2\)
  3. 這種擴充套件是唯一的,比如每個命題只有一個真值。

從這個例子中我們大概可以猜測 自由 的意義。

事實上這種定義可以用一個交換圖來表示。
img
(如果你能忍受一些陌生的詞語),我們把命題定義為了一個自由代數。只不過我們這裡沒有證明匯出的函式\(P \rightarrow \mathbb{Z}/2\mathbb{Z}\)是良定義的(並且唯一)的。

在這裡我們總結一下:

  1. 這是一種對基礎元件和操作的解釋
  2. 每個元素都是 有限步 內構造完成的
  3. 每個操作滿足單射與正交
    1. \(\varphi \rightarrow \psi=\varphi' \rightarrow \psi'\), 則\(\varphi = \varphi'\)\(\psi = \psi'\)
    2. \(\neg\varphi=\neg\psi\),則\(\varphi=\psi\)
    3. \(\varphi \rightarrow \psi \not= \neg \chi\)

這很重要。

自由群的引入

接下來我們要談談自由群。同樣的,我們有一些基礎元件,想要構造一個群。
稍微形式一點,我們有一個集合\(A\),想要在A的基礎上構造一個足夠一般的群\(F(A)\),首先它要是一個群,其次需要編碼基礎元件的所有有限次操作。

與命題邏輯不同的是,群裡面有三種操作(命題邏輯有兩種,蘊含和否定),分別是單位元\(e: G\), 求逆\(\iota: G \rightarrow G\)以及最重要的組合\(m: G \times G \rightarrow G\)
注意到單位元是一個沒有引數的操作,也就是一個常量。(簡化,理解萬歲)

接下來要做的就是照著命題邏輯畫瓢,我們給幾個經典的例子。

  1. 空集

    假如\(A = \emptyset\)\(F(A)\)應該是什麼?當然不可能是\(A\)自己——群至少要有一個元素。

    1. 首先要有一個常量e,不妨假設叫nil。
    2. 因為基礎元件是空集,所以跳過這一步
    3. 對於求逆,它一定滿足nil的逆是nil
    4. 對於組合,nil和nil組合必定還是nil

    注意到3 和 4中沒有提到\(F(A)\)中除nil之外的定義,因為我們看到:

    命題\(F(\emptyset)\) 中只有nil

  2. singleton

    假如\(a = \{ a\}\),那麼\(F(A)\)應該是什麼?

    1. 首先要有一個常量nil
    2. 其次要有一個常量a
    3. 求逆\(\iota\)\(a\)對映到\(\iota(a)\)
      1. 一定會有\(\iota(\iota(a)) = a\)
    4. 組合\(m\)\(a,b\)對映到\(m(a,b)\)
      1. 一定會有\(m(a,\iota(a))=m(\iota(a),a)=nil\)

    如果我們把\(\iota(a)\)寫成\(a^{-1}\),把\(m(a,a)\)寫成\(a^2\),類似的定義
    \(m^z, z\in \mathbb{Z}\)。那麼,\(F(\{ a\})\) 就是

    \[ \{..., a^{-2} , a^{-1}, nil , a^{1}, a^{2}, ...\} \]

    換言之,除了最基本的性質外,我們不對操作做任何要求。這也是自由群的另外一個說明: define a group from a set by the most efficient way

    (這裡說個題外話,群有許多等價定義,在這裡使用的是最簡單的三個操作以及封閉語義。原因是操作越少,定義中的公理就越多,操作需要滿足的性質就越多。)

定義

如果你看到這裡的話,上文全是扯淡

這裡我們用泛性質定義自由群,然後給出一個具體的構造及其證明。

泛性質

對於集合\(A\),它的自由群是一個二元組\((j,F(A))\),其中:

  1. \(j\)是一個從\(A\)\(F(A)\)對映
  2. \(F(A)\)是一個群,並且滿足以下性質

對所有的群\(G\)以及對映\(k: A \rightarrow G\),一定存在唯一一個 群同態 \(\varphi : F(A) \rightarrow G\)
使得

\[\forall a \in A, \varphi( j (a)) = k(a) \]

也就是圖
img
滿足交換性。

泛性質的意義

直觀上,泛性質的意義滿足我們上面的刻畫。(如果你不認為這是迴圈定義的話)

  1. 注意到\(k: A \rightarrow G\)是一個任選的對映,“我們把基礎元件任意地解釋成某個群\(G\)中的元素”
  2. 泛性質保證存在一個同態,“那麼自由代數中的元素自動地解釋成\(G\)的元素,並且保留操作”
  3. 同態是唯一的,“這種解釋是唯一的”

構造

容易驗證,上面給出的\(F(\{ a\})\)滿足這個性質。現在我們需要一個更一般的構造過程。

字元

我們假定存在一個字元的集合\(\mathcal{A}\),滿足要求:

  1. 對於任意\(a \in A\),都有\(a, a^{-1} \in \mathcal{A}\)
  2. 1 中引入的字元各不相同

字元是一個比較糟糕的概念,注意到\(\mathcal{A}\)中引入的\(a\)\(A\)中的\(a\)是不同的。這裡的逆也僅僅是一種標記,因為我們還沒有定義操作
我們可以把它想象成C裡的char,lisp裡的symbol等等……

不過我個人比較喜歡這樣的定義:
\(\mathcal{A} \subseteq (\mathbb{N} \times A\)是滿足如下定義的最小集合

  1. 對於任意\(a \in A\),都有\((a,0),(a,1)\in \mathcal{A}\) (\(a, a^{-1}\))
    這樣自動保證了字元各不相同。

總之我們只是需要一些各不相同的字元而已

字(word)

令字的集合\(W\)為滿足以下條件的最小集合:

  1. 一個特殊空字元\(() \in W\) 滿足\(()\)\(\mathcal{A}\)中所有的元素各不相同
  2. \(\mathcal{A}\) 上的有限長序列都在\(W\)

(按照上面的第二種定義可以直接把\(()\)定義成自然數0)

例如,對於\(A = {x,y}\),我們有一些這樣的字:

  1. \(()\)
  2. \(xx^{-1}xyyy^{-1}xyxy\)
  3. ...

自然,每個字都是有限長。

規約

(首先還是一段廢話)
我們不能直接在字上定義群操作,一種想法是

  1. \(m(w_1,w_2)=~~w_1 ++ w_2~~\)
  2. \(e = ()\)
  3. 求逆時直接將字逆轉並把每個字元的正負都調轉。

其中\(++\)是簡單的序列拼接操作,特殊字元\(()\)是拼接的單位元。

但是,我們需要\(m(x,x^{-1})=()\)而不是\(m(x,x^{-1})=xx^{-1}\)。所以我們需要在最簡形式的字上面定義群。換言之,不能存在\(xx^{-1}\)或者\(x^{-1}x\)這樣的子序列。

我們定義一次規約操作\(R:W \rightarrow W\)為消去引數最左邊的可消子式,如果沒有子式可以消則保持不變,全部消完則替換成空字元。比如:

  1. \(R(x)=x\)
  2. \(R(xy)=xy\)
  3. \(R(xx^{-1}=()\)
  4. \(R(xx^{-1}yy^{-1})=yy^{-1}\)
  5. \(R(xx^{-1}xyyy^{-1}xyxy)=xyyy^{-1}xyxy\)

注意到一次規約前後字的長度至多減2。因此對於長\(n\)的序列\(w\),我們定義規約\(R':W \rightarrow W\)

\[R'(w) := R^{\lfloor \frac{n}{2} \rfloor}(w) \]

顯然\(R'(w)\)必然是最簡形式。

(自由)群結構

接下來我們就可以在最簡形式的字的集合上構造群\(F(A)\)了,也就是定義三個操作。

集合\(F(A)\)為最簡形式的字構成的集合,操作定義為:

  1. \(m(w_1,w_2) := R'(w_1 ++ w_2 )\)
  2. \(e := ()\)
  3. 對於\(w=x_1x_2,..,x_n\), \(\iota(w) :=\iota(x_n),\iota(x_{n-1}),...,\iota(x_1)\)

其中\(\iota(x) := x^{-1}\)\(\iota(x^{-1})=x\)。換言之,簡簡單單的\(m(xy^{-1},y)=x\)

自由群的定義\(j,F(A)\)的另一部分是\(j:A \rightarrow F(A)\),我們直接定義\(j(a)=a\)就好,注意到右邊是字元\(a\)而不是\(A\)裡面的\(a\)

證明

我們還需要證明這個構造是對的。

  1. 驗證三個操作在\(F(A)\)上滿足群論公理。
  2. 驗證滿足泛性質

對於1我們只證明最難的部分,也就是\(m\)滿足結合律。
為了證明\(m(w_1,m(w_2,w_3))=m(m(w_1,w_2),w_3)\),我們需要證明

\[R'(w_1 ++ R'(w_2 + w_3)) = R'(R'(w_1 ++ w_2) ++ w_3) \]

我們cut一下,只需要(為什麼?)證明對於任意字\(w\),無論我們如何選擇消去的順序,最終的結果都是一樣的。舉幾個例子

  1. 對於\(xx^{-1}x\),任意選擇兩個子式之一,結果都是\(x\)
  2. 對於\(x^{-1}yy^{-1}xx^{-1}\),最終的結果是\(x^{-1}\)

儘管看起來很簡單,但證明並不trivial,如果你有興趣可以先試試簡單的歸納法。

形式化

首先形式化地定義消去與最簡性質。注意到我們已經定義了\(()\)\(++\)的單位元。

  1. 消去關係\(R_1 \subseteq W \times W\)
    1. 對任何字元\(x\)\((x \iota(x),()) \in R_1\)
  2. 合拍關係\(R_2 \subseteq W \times W\)
    1. 對於\((a,()) \in R_1\), 以及任意\(w_1,w_2 \in W\),均有\((w_1 ++ a ++ w_2,w_1 ++ w_2) \in R_2\)
  3. 傳遞關係\(R_3 \subseteq W \times W\)
    1. 對任何\(w \in W\),都有\((w,w) \in R_3\)
    2. 對任何\((a,b) \in R_2\),都有\((a,b) \in R_3\)
    3. \((a,b) \in R_3,(b,c) \in R_3\),則\((a,c) \in R_3\)
  4. 正規化。對於\(w \in W\),如果有\(\forall w' \in W,(w,w') \in R_3 \Rightarrow w'=w\),則稱\(w\)為正規化(normal form)
  5. \(w\)的最簡形式。\(w\)的最簡形式是滿足\((w,w') \in R_3\)正規化\(w'\)

\(R_1\)的定義是基礎(basis),\(R_2\)是一步消去,\(R_3\)是0步或多步消去。

容易證明,對任意字\(w\)\(R'(w)\)都是它的一個最簡形式(為什麼?)。我們要證明的就是,每個字只有一個最簡形式(或者是所有最簡形式都相等)。

diamond property

一種方法是著名的鑽石性質,命題長這個樣子: 對任意字\(w\),如果有\(w\)一步消去到\(w_1\)\(w\)又能一步消去到\(w_2\),那麼一定存在一個字\(w_3\),使得\(w_1\)\(w_2\)都能0步或多步消去到\(w_3\)。它的圖形揭示了它為什麼叫“鑽石”性質。

意識到這一性質之後證明就會變得簡單。我們對\(w\)的長度進行歸納,假定所有長度小於\(w\)的字都只有一種正規化,考慮\(w\),我們證明\(w\)有diamond property。若\(w R_2 w_1\)\(w R_2 w_2\)
那麼要麼二者消去的地方相同,\(w_1 = w_2\),此時命題立即成立,否則我們考慮\(w_1\)\(w_2\)消去的“位置”

  1. 二者不重疊,即\((...xx^{-1}...yy^{-1}...)\),不妨設\(w_1=(...yy^{-1}...)\), \(w_2 = (...xx^{-1}...)\),那麼顯然兩者只需要消去剩下的那個子式就可以了。
  2. 二者重疊,即\(...xx^{-1}x...\),其中\(w_1\)選擇消去\(...(xx^{-1})x...\)\(w_2\)選擇消去\(...x(x^{-1}x)...\)。注意到這種時候立即有\(w_1=w_2\),成立

鑽石性質告訴我們,\(w_1\),\(w_2\)的正規化相同,都等於\(w_3\)的正規化。因為它們的長度都小於\(w\),根據歸納假設它們都只有一個正規化,並且因為\(w_3\)的正規化也是\(w_1(w_2)\)的正規化,所以\(w_1\)\(w_2\)的所有正規化都等於\(w_3\)的那唯一一個正規化。

推而廣之,\(w\)的所有一步消去的正規化都相同,因此\(w\)只有一個正規化,歸納成立。
因此

\[R'(w_1 ++ R'(w_2 + w_3)) = R'(R'(w_1 ++ w_2) ++ w_3) \]

成立,操作\(m\)滿足結合律。

泛性質

驗證了\(F(A)\)是群結構之後,我們再驗證它滿足泛性質,這個證明非常簡單。對於任意群\(G\)以及任意函式\(k:A \rightarrow G\),我們現在來匯出一個群同態出來。

我們定義函式\(\varphi : F(A) \rightarrow G\)為:

  1. \(\forall a \in A, \varphi(j(a)) = k(a), \varphi(\iota(j(a)))=k(a)^{-1}\)
  2. \(\varphi(()) = e_{G}\)
  3. \(\forall w=(x_1,x_2,...,x_n)\in F(A),\varphi(w)=\varphi(x_1)*_{G}\varphi(x_2)...\varphi(x_n)\)

容易驗證這是一個良定義,注意到定義3直接保證了\(\varphi\)是一個群同態,以及1保證了\(\varphi\circ j = k\)

另外假設存在另一個滿足要求的同態\(\psi\),那麼群同態要求強迫\(\psi\)也需要滿足1,2,3,因此\(\varphi = \psi\)
泛性質由此得證。

自由群與“生成”

自由群一個直接的應用是它可以用來方便地表達很多概念。我們這裡只討論關於生成的性質。

生成子群

對於群\(G\),以及集合\(A\subseteq G\),生成子群\(\langle A\rangle\)是A中的元素按照\(G\)的操作擴充套件成的群。比如我們都很熟悉的某個元素\(g \in G\)生成的群

\[\{..., g^{-2} , g^{-1}, e , g^{1}, g^{2}, ...\} \]

(有沒有覺得眼熟?)一般來說它會定義成

\[\langle A\rangle = \bigcap_{A \subseteq H \leq G}{H} \]

也就是包含\(A\)的最小的集合。有了生成子群之後,我們只需要令\(k:A \rightarrow G = id\),就可以直接匯出一個群同態\(\varphi\)滿足\(\varphi\circ j=k\)。於是可以定義

\[\langle A\rangle = img(\varphi) \]

不難驗證這兩種定義等價。
於是我們說群\(G=\langle A\rangle\),當且僅當匯出的同態是滿射。

展示

使用自由群的好處在於,當我們有了同態,我們就有了商群。注意任何一個群\(G\)都有某個自由群到它的滿射(比如\(F(G)\)),那麼對於

\[\varphi : F(A) \twoheadrightarrow G \]

根據第一同構定理

\[G \cong \frac{F(A)}{ker(\varphi)} \]

換言之每個群都能表示成某個自由群的商群,這種表示方法稱為群的展示(presentation)。

為方便,不需要完全地寫出自由群的正規子群,只需要提供一些“關係”。我們把群的表示記作\(\langle A \mid R \rangle\),意為群

\[\frac{F(A)}{N(R)} \]

其中\(R\)\(F(A)\)的子集,\(N(R)\)是包含\(R\)的最小正規子群。由於\(() \in N(R)\), \(w \in R\)實際上表達了\(w \sim e\)
比如\(R=\{x^2,y^3,xyxy\}\)就表示了\(x^2=e,y^3=e,yx=xy^{2}\),於是\(\langle \{x,y\} \mid \{x^2,y^3,xyxy \} \rangle \cong S_3\)

注意到正規子群的要求比子群要高。

草草結尾

雖然寫之前就知道寫的是沒什麼用的東西,但真寫起來長度還是超出我的預計,所以不得不刪減最後的應用部分。

就這樣吧。

相關文章