Bagian 11.6 Sage
Sage dapat membuat homomorfisma (dan sebagai perluasannya, isomorfisma serta automorfisme) antara grup permutasi berhingga. Perintah yang tersedia untuk memanipulasi fungsi-fungsi ini memang terbatas, tetapi kita tetap dapat memperagakan banyak gagasan dalam bab ini.
Subbagian 11.6.1 Homomorfisma
Cara utama untuk membuat homomorfisma adalah menentukan secara khusus citra himpunan pembangkit dari domainnya. Perhatikan grup siklik berorde \(12\) dan \(20\text{:}\)
\begin{align*}
G &= \{a^i\vert a^{12}=e\} & H &= \{x^i\vert x^{20}=e\}
\end{align*}
dan definisikan homomorfisma hanya dengan menentukan citra pembangkit \(G\text{,}\) lalu tentukan bagian pemetaan lainnya dengan memperluasnya melalui sifat homomorfisma yang mempertahankan operasi.
\begin{align*}
\phi: G\rightarrow H, &\quad\phi(a)=x^5\\
\Rightarrow &\quad\phi(a^i) = \phi(a)^i = (x^5)^i = x ^{5i}
\end{align*}
Konstruktor
PermutationGroupMorphism memerlukan kedua grup, kemudian senarai citra untuk setiap pembangkit (sesuai urutan!), lalu membuat homomorfismanya. Perhatikan bahwa hasilnya kemudian dapat kita gunakan sebagai fungsi. Dalam contoh berikut, mula-mula kita verifikasi bahwa C12 memiliki satu pembangkit (tentu saja), yang kemudian dipetakan ke elemen tertentu berorde \(4\) dalam kodomain. Sage lalu menyusun satu-satunya homomorfisma yang konsisten dengan syarat ini.Kode Sage (cadangan statis)
C12 = CyclicPermutationGroup(12) C20 = CyclicPermutationGroup(20) domain_gens = C12.gens() [g.order() for g in domain_gens]
Keluaran referensi (cadangan statis)
[12]
Kode Sage (cadangan statis)
x = C20.gen(0) y = x^5 y.order()
Keluaran referensi (cadangan statis)
4
Kode Sage (cadangan statis)
phi = PermutationGroupMorphism(C12, C20, [y]) phi
Keluaran referensi (cadangan statis)
Permutation group morphism:
From: Cyclic group of order 12 as a permutation group
To: Cyclic group of order 20 as a permutation group
Defn: [(1,2,3,4,5,6,7,8,9,10,11,12)] ->
[(1,6,11,16)(2,7,12,17)(3,8,13,18)(4,9,14,19)(5,10,15,20)]
Kode Sage (cadangan statis)
a = C12("(1,6,11,4,9,2,7,12,5,10,3,8)")
phi(a)
Keluaran referensi (cadangan statis)
(1,6,11,16)(2,7,12,17)(3,8,13,18)(4,9,14,19)(5,10,15,20)
Kode Sage (cadangan statis)
b = C12("(1,3,5,7,9,11)(2,4,6,8,10,12)")
phi(b)
Keluaran referensi (cadangan statis)
(1,11)(2,12)(3,13)(4,14)(5,15)(6,16)(7,17)(8,18)(9,19)(10,20)
Kode Sage (cadangan statis)
c = C12("(1,9,5)(2,10,6)(3,11,7)(4,12,8)")
phi(c)
Keluaran referensi (cadangan statis)
()
Perhatikan bahwa elemen
c dengan demikian harus berada dalam kernel phi.
Selanjutnya, kita dapat menghitung subgrup dari domain yang menjadi kernel, yang dalam kasus ini merupakan grup siklik berorde \(3\) di dalam grup siklik berorde \(12\text{.}\) Kita dapat menghitung citra dari sembarang subgrup, tetapi di sini kita akan membangun seluruh citra homomorfik dengan memberikan seluruh domain kepada metode
.image(). Di sini, citranya merupakan subgrup siklik berorde \(4\) di dalam grup siklik berorde \(20\text{.}\) Kemudian kita dapat memverifikasi Teorema Isomorfisma Pertama.
Kode Sage (cadangan statis)
K = phi.kernel(); K
Keluaran referensi (cadangan statis)
Subgroup generated by [(1,5,9)(2,6,10)(3,7,11)(4,8,12)] of (Cyclic group of order 12 as a permutation group)
Kode Sage (cadangan statis)
Im = phi.image(C12); Im
Keluaran referensi (cadangan statis)
Subgroup generated by [(1,6,11,16)(2,7,12,17)(3,8,13,18)(4,9,14,19)(5,10,15,20)] of (Cyclic group of order 20 as a permutation group)
Kode Sage (cadangan statis)
Im.is_isomorphic(C12.quotient(K))
Keluaran referensi (cadangan statis)
True
Berikut adalah contoh yang sedikit lebih rumit. Grup dihedral \(D_{20}\) merupakan grup simetri segi-\(20\text{.}\) Di dalam grup ini terdapat subgrup yang isomorfik dengan grup simetri segi-\(5\) (pentagon). Apakah hal ini mengejutkan, atau justru sudah jelas? Berikut salah satu cara untuk mempertegas pernyataan “\(D_{20}\) memuat sebuah salinan dari \(D_{5}\text{.}\)”
Kita membangun domain dan mencari pembangkit-pembangkitnya, sehingga diketahui berapa banyak citra yang harus diberikan dalam definisi homomorfisma. Kemudian kita menyusun kodomain yang akan menjadi tempat kita memilih citra. Di sini kita memilih untuk memetakan refleksi ke refleksi, dan rotasi ke rotasi. Namun, kedua rotasi akan berorde \(5\text{,}\) dan keduanya merupakan rotasi sebesar \(72\) derajat.
Kode Sage (cadangan statis)
G = DihedralGroup(5) H = DihedralGroup(20) G.gens()
Keluaran referensi (cadangan statis)
((1,2,3,4,5), (1,5)(2,4))
Kode Sage (cadangan statis)
H.gens()
Keluaran referensi (cadangan statis)
((1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20), (1,20)(2,19)(3,18)(4,17)(5,16)(6,15)(7,14)(8,13)(9,12)(10,11))
Kode Sage (cadangan statis)
x = H.gen(0)^4 y = H.gen(1) rho = PermutationGroupMorphism(G, H, [x, y]) rho.kernel()
Keluaran referensi (cadangan statis)
Subgroup generated by [()] of (Dihedral group of order 10 as a permutation group)
Karena kernelnya trivial,
rho merupakan fungsi injektif (lihat Latihan 11.4.18). Namun yang lebih penting, berdasarkan Teorema Isomorfisma Pertama, G isomorfik dengan citra homomorfisma tersebut. Kita hitung citranya dan periksa pernyataan ini.
Kode Sage (cadangan statis)
Im = rho.image(G); Im
Keluaran referensi (cadangan statis)
Subgroup generated by [(1,5,9,13,17)(2,6,10,14,18)(3,7,11,15,19)(4,8,12,16,20), (1,20)(2,19)(3,18)(4,17)(5,16)(6,15)(7,14)(8,13)(9,12)(10,11)] of (Dihedral group of order 40 as a permutation group)
Kode Sage (cadangan statis)
Im.is_subgroup(H)
Keluaran referensi (cadangan statis)
True
Kode Sage (cadangan statis)
Im.is_isomorphic(G)
Keluaran referensi (cadangan statis)
True
Memberikan senarai citra bagi pembangkit domain saja tidak menjamin bahwa fungsi tersebut dapat diperluas menjadi homomorfisma. Sebagai syarat awal, orde setiap citra harus membagi orde pracitra yang bersesuaian. (Dapatkah Anda membuktikannya?) Demikian pula, jika domainnya abelian, citranya juga harus abelian, sehingga dalam kasus ini senarai citra tidak boleh membangkitkan subgrup nonabelian. Berikut sebuah contoh. Tidak ada homomorfisma dari grup siklik berorde \(7\) ke grup siklik berorde \(4\) (selain fungsi trivial yang memetakan setiap elemen ke identitas). Untuk melihatnya, perhatikan kemungkinan orde kernel, dan dari kedua kemungkinan tersebut, lihat bahwa satu mustahil dan satu lagi muncul pada homomorfisma trivial. Sayangnya, Sage bertindak seolah-olah tidak ada masalah ketika membuat homomorfisma antara kedua grup ini, tetapi objek yang dibangun Sage tidak berguna dan memunculkan galat ketika digunakan.
Kode Sage (cadangan statis)
G = CyclicPermutationGroup(7) H = CyclicPermutationGroup(4) tau = PermutationGroupMorphism_im_gens(G, H, H.gens()) tau
Keluaran referensi (cadangan statis)
Permutation group morphism: From: Cyclic group of order 7 as a permutation group To: Cyclic group of order 4 as a permutation group Defn: [(1,2,3,4,5,6,7)] -> [(1,2,3,4)]
Kode Sage (cadangan statis)
tau.kernel()
Keluaran referensi (cadangan statis)
Traceback (most recent call last): ... sage.libs.gap.util.GAPError: Error, no method found! Error, no 1st choice method found for `Kernel' on 1 arguments ...
Alih-alih membuat homomorfisma sendiri, pada situasi tertentu Sage mengetahui keberadaan homomorfisma alami dan akan membuatnya untuk Anda. Salah satu situasi tersebut adalah konstruksi hasil kali langsung. Diberikan grup
G, metode .direct_product(H) akan membuat hasil kali langsung \(G\times H\text{.}\) (Perintah ini berbeda dari fungsi direct_product_permgroups() yang digunakan sebelumnya.) Perintah ini tidak hanya membuat hasil kali langsung, tetapi juga membangun empat homomorfisma: satu dengan domain \(G\text{,}\) satu dengan domain \(H\text{,}\) dan dua dengan domain \(G\times H\text{.}\) Jadi, keluarannya terdiri atas lima objek, dengan objek pertama berupa grup sebenarnya, dan sisanya berupa homomorfisma. Kita akan memperagakan pemanggilannya di sini, sedangkan penyelidikan yang lebih menyeluruh diserahkan kepada latihan.
Kode Sage (cadangan statis)
G = CyclicPermutationGroup(3) H = DihedralGroup(4) results = G.direct_product(H) results[0]
Keluaran referensi (cadangan statis)
Permutation Group with generators [(1,2,3), (4,5,6,7), (4,7)(5,6)]
Kode Sage (cadangan statis)
results[1]
Keluaran referensi (cadangan statis)
Permutation group morphism:
From: Cyclic group of order 3 as a permutation group
To: Permutation Group with generators
[(1,2,3), (4,5,6,7), (4,7)(5,6)]
Defn: Embedding( Group( [ (1,2,3), (4,5,6,7), (4,7)(5,6) ] ), 1 )
Kode Sage (cadangan statis)
results[2]
Keluaran referensi (cadangan statis)
Permutation group morphism:
From: Dihedral group of order 8 as a permutation group
To: Permutation Group with generators
[(1,2,3), (4,5,6,7), (4,7)(5,6)]
Defn: Embedding( Group( [ (1,2,3), (4,5,6,7), (4,7)(5,6) ] ), 2 )
Kode Sage (cadangan statis)
results[3]
Keluaran referensi (cadangan statis)
Permutation group morphism:
From: Permutation Group with generators
[(1,2,3), (4,5,6,7), (4,7)(5,6)]
To: Cyclic group of order 3 as a permutation group
Defn: Projection( Group( [ (1,2,3), (4,5,6,7), (4,7)(5,6) ] ), 1 )
Kode Sage (cadangan statis)
results[4]
Keluaran referensi (cadangan statis)
Permutation group morphism:
From: Permutation Group with generators
[(1,2,3), (4,5,6,7), (4,7)(5,6)]
To: Dihedral group of order 8 as a permutation group
Defn: Projection( Group( [ (1,2,3), (4,5,6,7), (4,7)(5,6) ] ), 2 )

