Skip to content

Instantly share code, notes, and snippets.

@bellbind
Last active August 29, 2015 14:17
Show Gist options
  • Save bellbind/d6ad0989df700ef086c8 to your computer and use it in GitHub Desktop.
Save bellbind/d6ad0989df700ef086c8 to your computer and use it in GitHub Desktop.
[iojs][python][sympy]Alternating Group(A4, A5) multiplication table (generator)
"use strict";
var A4 = {
E: [0,1,2,3], I: [1,0,3,2], J: [2,3,0,1], K: [3,2,1,0],
S: [2,0,1,3], T: [],U: [],V: [],
W: [1,2,0,3], X: [],Y: [],Z: [],
};
var mul = function(a, b) {
return [a[b[0]], a[b[1]], a[b[2]], a[b[3]]];
};
A4.T = mul(A4.S, A4.I);A4.U = mul(A4.S, A4.J);A4.V = mul(A4.S, A4.K);
A4.X = mul(A4.W, A4.I);A4.Y = mul(A4.W, A4.J);A4.Z = mul(A4.W, A4.K);
var name = function (g) {
for (let k of Object.keys(A4)) {
let h = A4[k];
if (g[0] === h[0] && g[1] === h[1] && g[2] === h[2] && g[3] === h[3])
return k;
}
throw Error("not found: " + g);
};
var keys = Object.keys(A4);
var table = keys.map(function (a) {
return keys.map(function (b) {
return name(mul(A4[a], A4[b]));
});
});
var sym = ["α", "β", "γ", "δ"];
keys.forEach(function (k) {
let syms = A4[k].map(function (i) {return sym[i];});
console.log(k + "=(" + syms.join(",") + ")");
});
console.log(" |" + keys.join("|") + "|");
table.forEach(function (line, i) {
console.log(keys[i] + "|" + line.join("|") + "|");
});
import sympy
import sympy.combinatorics as symg
a4e = symg.Permutation(3) # identity of (0,1,2,3) permutation
a4i = symg.Permutation(0,1)(2,3) # 2-swap 0=>1, 1=>0, 2=>3, 3=>2
a4s = symg.Permutation(3)(0,1,2) # rot-3 as 0=>1, 1=>2, 2=>0, 3=>3
a4 = symg.PermutationGroup(a4i, a4s) # == AlternatingGrpup(4)
assert a4.order() == 12
#print(list(a4.generate())) # list of 12 permutations
assert list(a4.generate())[0] == a4e
h4 = a4.derived_subgroup() # == DihedralGroup(2)
i4 = h4.derived_subgroup() # == trivial 4
assert h4.order() == 4
assert h4.is_normal(a4)
assert i4.is_trivial
# example of props of group
a3 = symg.AlternatingGroup(3)
a5 = symg.AlternatingGroup(5)
assert a3.is_primitive()
assert not a4.is_primitive()
assert a5.is_primitive()
assert a3.is_solvable
assert a4.is_solvable
assert not a5.is_solvable
# print permutations in a4
h4l = list(h4.generate())
assert h4l[0] == a4e
from collections import OrderedDict
names = OrderedDict(sorted({
a4e: "E",
h4l[1]: "I",
h4l[2]: "J",
h4l[3]: "K",
a4s: "S",
a4s * h4l[1]: "T",
a4s * h4l[2]: "U",
a4s * h4l[3]: "V",
a4s * a4s: "W",
a4s * a4s * h4l[1]: "X",
a4s * a4s * h4l[2]: "Y",
a4s * a4s * h4l[3]: "Z",
}.items(), key=lambda t: t[1]))
assert len(names) == 12
#print(names)
for p, n in names.items():
print("{0}=({1})".format(n, ",".join("αβγδ"[i] for i in p.array_form)))
pass
print()
def chunk(n, it):
return list(zip(*([iter(it)] * n))) # trick from grouper() in itertools doc
fmt = "{}||" + (("{}" * 4) + "|") * 3
print(fmt.format("*", *names.values()))
print(fmt.format("=", *(["="] * len(names))))
for ch in chunk(4, names.items()):
for p, n in ch:
print(fmt.format(n, *(names[p * q] for q in names.keys())))
pass
print(fmt.format("-", *(["-"] * len(names))))
pass
E=(α,β,γ,δ)
I=(β,α,δ,γ)
J=(γ,δ,α,β)
K=(δ,γ,β,α)
S=(γ,α,β,δ)
T=(α,γ,δ,β)
U=(β,δ,γ,α)
V=(δ,β,α,γ)
W=(β,γ,α,δ)
X=(γ,β,δ,α)
Y=(α,δ,β,γ)
Z=(δ,α,γ,β)
|E|I|J|K|S|T|U|V|W|X|Y|Z|
E|E|I|J|K|S|T|U|V|W|X|Y|Z|
I|I|E|K|J|V|U|T|S|Y|Z|W|X|
J|J|K|E|I|T|S|V|U|Z|Y|X|W|
K|K|J|I|E|U|V|S|T|X|W|Z|Y|
S|S|T|U|V|W|X|Y|Z|E|I|J|K|
T|T|S|V|U|Z|Y|X|W|J|K|E|I|
U|U|V|S|T|X|W|Z|Y|K|J|I|E|
V|V|U|T|S|Y|Z|W|X|I|E|K|J|
W|W|X|Y|Z|E|I|J|K|S|T|U|V|
X|X|W|Z|Y|K|J|I|E|U|V|S|T|
Y|Y|Z|W|X|I|E|K|J|V|U|T|S|
Z|Z|Y|X|W|J|K|E|I|T|S|V|U|
E=(α,β,γ,δ)
I=(β,α,δ,γ)
J=(γ,δ,α,β)
K=(δ,γ,β,α)
S=(β,γ,α,δ)
T=(α,δ,β,γ)
U=(δ,α,γ,β)
V=(γ,β,δ,α)
W=(γ,α,β,δ)
X=(δ,β,α,γ)
Y=(α,γ,δ,β)
Z=(β,δ,γ,α)
*||EIJK|STUV|WXYZ|
=||====|====|====|
E||EIJK|STUV|WXYZ|
I||IEKJ|VUTS|YZWX|
J||JKEI|TSVU|ZYXW|
K||KJIE|UVST|XWZY|
-||----|----|----|
S||STUV|WXYZ|EIJK|
T||TSVU|ZYXW|JKEI|
U||UVST|XWZY|KJIE|
V||VUTS|YZWX|IEKJ|
-||----|----|----|
W||WXYZ|EIJK|STUV|
X||XWZY|KJIE|UVST|
Y||YZWX|IEKJ|VUTS|
Z||ZYXW|JKEI|TSVU|
-||----|----|----|
"use strict";
var permutations = function (l) {
if (l.length === 1) return [l.slice(0, 1)];
let ps = permutations(l.slice(1));
let r = [];
ps.forEach(function (p) {
for (let i = 0; i < l.length; i++) {
r.push(p.slice(0, i).concat(l.slice(0, 1)).concat(p.slice(i)));
}
});
return r;
};
var even = function (g) {
let n = 0;
for (let i = 0; i < g.length - 1; i++) {
for (let j = i + 1; j < g.length; j++) {
if (g[i] > g[j]) n++;
}
}
return n % 2 === 0;
};
var s5 = permutations([0,1,2,3,4]);
var a5 = s5.filter(even);
var mul = function (a, b) {
return b.map(function (k) {return a[k];});
};
//console.log(a5);
var a5names = "0123456789" + "ABCDEFGHIJ" + "KLMNOPQRST" + "UVWXYabcde" +
"fghijklmno" + "pqrstuvwxy";
var name = function (g) {
for (let i = 0; i < a5.length; i++) {
let h = a5[i];
if (g.every(function (k, j) {return k === h[j];})) return a5names[i];
}
};
//a5.forEach(function (g) {console.log(name(g));});
var table = a5.map(function (g) {
return a5.map(function (h) {
return name(mul(g, h));
});
});
var sym = ["α", "β", "γ", "δ", "ε"];
a5.forEach(function (g, i) {
let syms = g.map(function (i) {return sym[i];});
console.log(a5names[i] + "=(" + syms.join(",") + ")");
});
console.log();
console.log(" |" + a5names + "|");
console.log("-|" + "-".repeat(a5.length) + "|");
table.forEach(function (line, i) {
console.log(a5names[i] + "|" + line.join("") + "|");
});
console.log("-|" + "-".repeat(a5.length) + "|");
// cultering with conjugacy class
var a5inv = a5.map(function (g) {
for (var i = 0; i < a5.length; i++) {
if (name(mul(g, a5[i])) === "0") return a5[i];
}
});
var conj = function (h) {
var gen = a5.map(function (g, i) {
var gm = a5inv[i];
return name(mul(g, mul(h, gm)));
});
return gen.filter(function (n, i) {
return gen.indexOf(n) === i;
}).sort();
};
var classes = function (names) {
return names.map(function (n) {
return a5[a5names.indexOf(n)];
});
};
console.log();
console.log("<<conjugacy classes>>");
console.log("unit:", conj(a5[0]).join("")); // 1 elem
console.log("3-rots:", conj(a5[1]).join("")); // 20 elems
console.log("2-swaps:", conj(a5[6]).join("")); // 15 elems
console.log("5-rots by 12340:", conj(a5[2]).join("")); // 12 elems
console.log("5-rots by 23140:", conj(a5[7]).join("")); // 12 elems
console.log();
console.log("<<reorderd elements with conjugacy classes>>");
//console.log("5-rots by 12340:", classes(conj(a5[2]))); // 12 elems
//console.log("5-rots by 23140:", classes(conj(a5[7]))); // 12 elems
var u = classes(conj(a5[0]));
var r3 = classes(conj(a5[1]));
var s2 = classes(conj(a5[6]));
var r5a = classes(conj(a5[2]));
var r5b = classes(conj(a5[7]));
var cls = [u, r3, s2, r5a, r5b];
var clstable = cls.map(function (cla) {
return cla.map(function (a) {
return cls.map(function (clb) {
return clb.map(function (b) {
return mul(a, b);
});
});
});
});
console.log();
var i = 0;
var clsa5 = [];
cls.forEach(function (cl) {
console.log("-".repeat(20));
cl.forEach(function (g) {
clsa5.push(g);
let syms = g.map(function (i) {return sym[i];});
console.log(a5names[i] + "=(" + syms.join(",") + ")");
i++;
});
});
var cname = function (g) {
for (var i = 0; i < clsa5.length; i++) {
let h = clsa5[i];
if (g.every(function (k, j) {return k === h[j];})) return a5names[i];
}
};
console.log();
console.log(" |" + cls.map(function (cl) {
return cl.map(cname).join("");
}).join("|") + "|");
var i = 0;
clstable.forEach(function (cla) {
console.log("-+" + cls.map(function (cl) {
return cl.map(function () {return "-"}).join("");
}).join("+") + "+");
cla.forEach(function (mcl) {
console.log(a5names[i] + "|" + mcl.map(function (ms) {
return ms.map(cname).join("");
}).join("|") + "|");
i++;
});
});
console.log("-+" + cls.map(function (cl) {
return cl.map(function () {return "-"}).join("");
}).join("+") + "+");
0=(α,β,γ,δ,ε)
1=(β,γ,α,δ,ε)
2=(β,γ,δ,ε,α)
3=(γ,α,β,δ,ε)
4=(γ,β,δ,α,ε)
5=(α,γ,δ,β,ε)
6=(γ,δ,α,β,ε)
7=(γ,δ,β,ε,α)
8=(γ,α,δ,ε,β)
9=(γ,δ,ε,α,β)
A=(β,α,δ,γ,ε)
B=(β,δ,γ,α,ε)
C=(α,δ,β,γ,ε)
D=(δ,β,α,γ,ε)
E=(δ,β,γ,ε,α)
F=(δ,α,γ,β,ε)
G=(δ,γ,β,α,ε)
H=(α,δ,γ,ε,β)
I=(δ,γ,α,ε,β)
J=(δ,γ,ε,β,α)
K=(α,β,δ,ε,γ)
L=(β,δ,α,ε,γ)
M=(β,δ,ε,γ,α)
N=(δ,α,β,ε,γ)
O=(δ,β,ε,α,γ)
P=(α,δ,ε,β,γ)
Q=(δ,ε,α,β,γ)
R=(δ,ε,β,γ,α)
S=(δ,α,ε,γ,β)
T=(δ,ε,γ,α,β)
U=(β,α,γ,ε,δ)
V=(β,γ,ε,α,δ)
W=(α,γ,β,ε,δ)
X=(γ,β,α,ε,δ)
Y=(γ,β,ε,δ,α)
a=(γ,α,ε,β,δ)
b=(γ,ε,β,α,δ)
c=(α,γ,ε,δ,β)
d=(γ,ε,α,δ,β)
e=(γ,ε,δ,β,α)
f=(α,β,ε,γ,δ)
g=(β,ε,α,γ,δ)
h=(β,ε,γ,δ,α)
i=(ε,α,β,γ,δ)
j=(ε,β,γ,α,δ)
k=(α,ε,γ,β,δ)
l=(ε,γ,α,β,δ)
m=(ε,γ,β,δ,α)
n=(ε,α,γ,δ,β)
o=(ε,γ,δ,α,β)
p=(β,α,ε,δ,γ)
q=(β,ε,δ,α,γ)
r=(α,ε,β,δ,γ)
s=(ε,β,α,δ,γ)
t=(ε,β,δ,γ,α)
u=(ε,α,δ,β,γ)
v=(ε,δ,β,α,γ)
w=(α,ε,δ,γ,β)
x=(ε,δ,α,γ,β)
y=(ε,δ,γ,β,α)
|0123456789ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy|
-|------------------------------------------------------------|
0|0123456789ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy|
1|13805ACHKP46BGIDFLNS279EJMRTOQXaUWcfkprwVbdjlginsuYehmotyqvx|
2|279EJMRTOQYehmotyqvxVbdjlginsu46BGIDFLNS13805ACHKPXaUWcfkprw|
3|30K1A4BL2M5C6FNGD7EO8HPIS9TQJRWfXUpVgYhqakrlibjsmtcwdnuoxeyv|
4|4BLGD6FNIS1A30K5C8HPXUpWfakrcw2M7EOJR9TQYhqmteyvoxVgbjslidnu|
5|567FGCDENO34012ABKLMWXYUVfghpq89HIJSTPQRcdenowxyuvabklmijrst|
6|6FN5C30KWfGD4BL1AXUp7EO2MYhqVgIS8HPcwakr9TQoxdnuliJReyvmtbjs|
7|7EO2MYhqVgJReyvmtbjs9TQoxdnuliGD4BL1AXUp6FN5C30KWfIS8HPcwakr|
8|8HPIS9TQJRcwdnuoxeyvakrlibjsmt5C6FNGD7EO30K1A4BL2MWfXUpVgYhq|
9|9TQoxdnuliIS8HPcwakr6FN5C30KWfJReyvmtbjs7EO2MYhqVgGD4BL1AXUp|
A|ACHDFBGIEJ0513846279UWcXaVbdYeKPLNSOQMRTprwsuqvxtyfkginjlhmo|
B|BGI46138XaDFACH05UWcLNSKPprwfkEJ279YeVbdMRTtyhmojlOQqvxsugin|
C|CDEAB012UVFG56734WXYHIJ89cdeabNOKLMpqfghPQRuvrstijSTwxynoklm|
D|DAUC0F5WHcB1G4X63I8aE2V7YJeb9dLpNKfPrSwkOqgvsQuixnMhRtjymTol|
E|E2V7YJeb9dMhRtjymTolOqgvsQuixnB1G4X63I8aDAUC0F5WHcLpNKfPrSwk|
F|F5W63G4X7YC0DAUB1E2VNKfLpOqgMhHcI8a9dJebSwkxnTolymPrQuivsRtj|
G|G4XB1DAULp63F5WC0NKfI8aHcSwkPr7YE2VMhOqgJebymRtjvs9dTolxnQui|
H|HIJ89cdeabSTwxynoklmPQRuvrstijFG56734WXYCDEAB012UVNOKLMpqfgh|
I|I8aHcSwkPr9dTolxnQuiJebymRtjvs63F5WC0NKfG4XB1DAULp7YE2VMhOqg|
J|JebymRtjvs7YE2VMhOqgG4XB1DAULp9dTolxnQuiI8aHcSwkPr63F5WC0NKf|
K|KLMNOPQRSTpqrstuvwxyfghijklmnoABCDEFGHIJ0123456789UVWXYabcde|
L|LNSKPprwfkOQqvxsuginMRTtyhmojlDFACH05UWcBGI46138XaEJ279YeVbd|
M|MRTtyhmojlEJ279YeVbdBGI46138XaOQqvxsuginLNSKPprwfkDFACH05UWc|
N|NKfLpOqgMhPrQuivsRtjSwkxnTolymC0DAUB1E2VF5W63G4X7YHcI8a9dJeb|
O|OqgvsQuixnLpNKfPrSwkDAUC0F5WHcMhRtjymTolE2V7YJeb9dB1G4X63I8a|
P|PQRuvrstijNOKLMpqfghCDEAB012UVSTwxynoklmHIJ89cdeabFG56734WXY|
Q|QuiPrNKfC0vsOqgLpDAURtjMhE2VB1xnSwkHcF5WTol9dI8a63ymJeb7YG4X|
R|RtjMhE2VB1ymJeb7YG4XTol9dI8a63vsOqgLpDAUQuiPrNKfC0xnSwkHcF5W|
S|SwkxnTolymHcI8a9dJebF5W63G4X7YPrQuivsRtjNKfLpOqgMhC0DAUB1E2V|
T|Tol9dI8a63xnSwkHcF5WQuiPrNKfC0ymJeb7YG4XRtjMhE2VB1vsOqgLpDAU|
U|UWcXaVbdYefkginjlhmoprwsuqvxty0513846279ACHDFBGIEJKPLNSOQMRT|
V|VbdjlginsuXaUWcfkprw13805ACHKPYehmotyqvx279EJMRTOQ46BGIDFLNS|
W|WXYUVfghpqabklmijrstcdenowxyuv34012ABKLM567FGCDENO89HIJSTPQR|
X|XUpWfakrcwVgbjslidnuYhqmteyvox1A30K5C8HP4BLGD6FNIS2M7EOJR9TQ|
Y|Yhqmteyvox2M7EOJR9TQ4BLGD6FNISVgbjslidnuXUpWfakrcw1A30K5C8HP|
a|akrlibjsmtWfXUpVgYhq30K1A4BL2Mcwdnuoxeyv8HPIS9TQJR5C6FNGD7EO|
b|bjsVgXUp1AliakrWf30Kdnucw8HP5CmtYhq2M4BLeyvJR7EOGDox9TQIS6FN|
c|cdenowxyuv89HIJSTPQR567FGCDENOabklmijrstWXYUVfghpq34012ABKLM|
d|dnucw8HP5Cox9TQIS6FNeyvJR7EOGDliakrWf30KbjsVgXUp1AmtYhq2M4BL|
e|eyvJR7EOGDmtYhq2M4BLbjsVgXUp1Aox9TQIS6FNdnucw8HP5CliakrWf30K|
f|fghijklmnoUVWXYabcde0123456789pqrstuvwxyKLMNOPQRSTABCDEFGHIJ|
g|ginfkUWc05jlVbdXa138hmoYe27946suprwKPACHqvxOQLNSDFtyMRTEJBGI|
h|hmoYe27946tyMRTEJBGIqvxOQLNSDFjlVbdXa138ginfkUWc05suprwKPACH|
i|if0gUjV1h2kWla3bXmY4nc5d8o96e7rKspAqLtMBuPCQNvODREwHxSFTIyJG|
j|jV1bXla3d8gUif0kWnc5spArKuPCwHh2mY4e7o96tMBREyJGTIqLvODQNxSF|
k|klmabWXY34ijfghUV012rstpqKLMABnocde89567wxySTHIJFGuvPQRNOCDE|
l|la3kWif0rKbXjV1gUspAmY4h2tMBqLd8nc5wHuPCo96TIxSFQNe7yJGREvOD|
m|mY4h2tMBqLe7yJGREvODo96TIxSFQNbXjV1gUspAla3kWif0rKd8nc5wHuPC|
n|nc5d8o96e7wHxSFTIyJGuPCQNvODREkWla3bXmY4if0gUjV1h2rKspAqLtMB|
o|o96TIxSFQNd8nc5wHuPCla3kWif0rKe7yJGREvODmY4h2tMBqLbXjV1gUspA|
p|prwsuqvxtyKPLNSOQMRTACHDFBGIEJfkginjlhmoUWcXaVbdYe0513846279|
q|qvxOQLNSDFsuprwKPACHginfkUWc05tyMRTEJBGIhmoYe27946jlVbdXa138|
r|rstpqKLMABuvPQRNOCDEwxySTHIJFGijfghUV012klmabWXY34nocde89567|
s|spArKuPCwHqLvODQNxSFtMBREyJGTIgUif0kWnc5jV1bXla3d8h2mY4e7o96|
t|tMBREyJGTIh2mY4e7o96jV1bXla3d8qLvODQNxSFspArKuPCwHgUif0kWnc5|
u|uPCQNvODRErKspAqLtMBif0gUjV1h2wHxSFTIyJGnc5d8o96e7kWla3bXmY4|
v|vODqLspAgUQNuPCrKif0xSFwHnc5kWREtMBh2jV1yJGe7mY4bXTIo96d8la3|
w|wxySTHIJFGnocde89567klmabWXY34uvPQRNOCDErstpqKLMABijfghUV012|
x|xSFwHnc5kWTIo96d8la3yJGe7mY4bXQNuPCrKif0vODqLspAgUREtMBh2jV1|
y|yJGe7mY4bXREtMBh2jV1vODqLspAgUTIo96d8la3xSFwHnc5kWQNuPCrKif0|
-|------------------------------------------------------------|
<<conjugacy classes>>
unit: 0
3-rots: 1345BCDEFHKYcfhjknrs
2-swaps: 6AGOPTUWXdmptwy
5-rots by 12340: 2IJLSabeiqvx
5-rots by 23140: 789MNQRVglou
<<reorderd elements with conjugacy classes>>
--------------------
0=(α,β,γ,δ,ε)
--------------------
1=(β,γ,α,δ,ε)
2=(γ,α,β,δ,ε)
3=(γ,β,δ,α,ε)
4=(α,γ,δ,β,ε)
5=(β,δ,γ,α,ε)
6=(α,δ,β,γ,ε)
7=(δ,β,α,γ,ε)
8=(δ,β,γ,ε,α)
9=(δ,α,γ,β,ε)
A=(α,δ,γ,ε,β)
B=(α,β,δ,ε,γ)
C=(γ,β,ε,δ,α)
D=(α,γ,ε,δ,β)
E=(α,β,ε,γ,δ)
F=(β,ε,γ,δ,α)
G=(ε,β,γ,α,δ)
H=(α,ε,γ,β,δ)
I=(ε,α,γ,δ,β)
J=(α,ε,β,δ,γ)
K=(ε,β,α,δ,γ)
--------------------
L=(γ,δ,α,β,ε)
M=(β,α,δ,γ,ε)
N=(δ,γ,β,α,ε)
O=(δ,β,ε,α,γ)
P=(α,δ,ε,β,γ)
Q=(δ,ε,γ,α,β)
R=(β,α,γ,ε,δ)
S=(α,γ,β,ε,δ)
T=(γ,β,α,ε,δ)
U=(γ,ε,α,δ,β)
V=(ε,γ,β,δ,α)
W=(β,α,ε,δ,γ)
X=(ε,β,δ,γ,α)
Y=(α,ε,δ,γ,β)
a=(ε,δ,γ,β,α)
--------------------
b=(β,γ,δ,ε,α)
c=(δ,γ,α,ε,β)
d=(δ,γ,ε,β,α)
e=(β,δ,α,ε,γ)
f=(δ,α,ε,γ,β)
g=(γ,α,ε,β,δ)
h=(γ,ε,β,α,δ)
i=(γ,ε,δ,β,α)
j=(ε,α,β,γ,δ)
k=(β,ε,δ,α,γ)
l=(ε,δ,β,α,γ)
m=(ε,δ,α,γ,β)
--------------------
n=(γ,δ,β,ε,α)
o=(γ,α,δ,ε,β)
p=(γ,δ,ε,α,β)
q=(β,δ,ε,γ,α)
r=(δ,α,β,ε,γ)
s=(δ,ε,α,β,γ)
t=(δ,ε,β,γ,α)
u=(β,γ,ε,α,δ)
v=(β,ε,α,γ,δ)
w=(ε,γ,α,β,δ)
x=(ε,γ,δ,α,β)
y=(ε,α,δ,β,γ)
|0|123456789ABCDEFGHIJK|LMNOPQRSTUVWXYa|bcdefghijklm|nopqrstuvwxy|
-+-+--------------------+---------------+------------+------------+
0|0|123456789ABCDEFGHIJK|LMNOPQRSTUVWXYa|bcdefghijklm|nopqrstuvwxy|
-+-+--------------------+---------------+------------+------------+
1|1|204ML5Nc7ebDWuUwvKFV|639dqsTRSJICxkm|orfnOEHYGial|ABPp8tQghjyX|
2|2|01M36L9rNnoWCgJjhVUI|547fptSTRFKDyil|B8OAduvkwYma|ebqPcQsEHGXx|
3|3|5N7LM20B4oTOpCkXixhG|916EgYbn8QluKUy|eAPRDdtsVvjI|rcfWSHJqFamw|
4|4|L9N6301bMBSdPDixYyHw|725uEkoAcsagVJX|neqTWfQtIhGK|8rOCRvFpUmlj|
5|5|N3L19M6A0RepuqQaFGkl|274PWH8bnhxOmvI|cSDrECiUXsyj|oTgfBJYdtVwK|
6|6|7M50N4Ln2SAqEPtlJjYm|193pDhrBevXfaHV|8TCcgWkFyQxw|bRudoUiOsKGI|
7|7|M6091N3TLc8EfOvKsmtX|452CdUerBYjqGQw|RogbpPJHlFVx|SADunihWkyIa|
8|8|bnCdFtXGaQOTc7R09ArB|iqVKsI5N3oSeEfH|uxwkmL2g6WJY|hpUvlyj1M4DP|
9|9|4L2N07MR58rgdfHIQasy|361WOFAcoiwPjtG|SbuBqpUhmJKX|TnCEekvDYxVl|
A|A|copDQYmaIHPnS6850RBe|UfxlJG94LTbrqEF|dwVsj23CMOkv|ightyKXN71uW|
B|B|erOPkJKXyYE8A0b34oST|sWlGHxM67cnRCDi|qmavI9Nd2uhU|tfQFjwV51Lpg|
C|C|FVXiqn8Odp3KUTWEgD20|abt7LfuhGIJ1BoP|kQs5cwjySM6A|lxmeN9rvRHY4|
D|D|UIxYpAcdfP4VJSCuEW01|moQN6OgHwKF2bBq|istLrjGXR35e|ayln978hTvkM|
E|E|vjGHuSTCgD0XYBqOPf67|wRh34pWJKmtM8Ad|FUi1oylar5Nc|VIxb2LnkesQ9|
F|F|VCibaqtQ85kU1vIHR0WJ|nXdse9Guh2DKYMA|xNcl7TgoEyP6|p3LmOrfwjS4B|
G|G|uhTwRjE0HIK3xX58aQlO|gvSByAFVCpNk7m9|1D4WYinLterf|2UoMJP6bqdcs|
H|H|wghSGEvFR0Ji4YaQA9Ps|TjukB5IDULdyt68|V1bKMopnflO7|C23XWeqxmcNr|
I|I|DUoxAmf9Qay2Vj0RGFKW|pYcrl8HwgC1JMX5|4dNPthT3vBeq|Lin6sO7SEubk|
J|J|KWkBlPstr6YF0HVhS2DU|eyOQANjEv1CIi4n|X78m9RubgxpL|qM5afcdGwT3o|
K|K|WJByelO7smX0IG1TwUVC|Pkr8acvjED2F3xL|Mf9qQHS4hbnp|6YA5tdNRugoi|
-+-+--------------------+---------------+------------+------------+
L|L|9462735e1TnPgpsmUwia|0NMqCvcoAHydlhK|rRW8uDYJxtXG|BSEObFkfQIjV|
M|M|6795412o3bRfqWYykXvj|N0LguiBertmEIFx|AnpSCOsQKHwV|c8dDThUPJlaG|
N|N|3517294S6rcuOdhVtlQx|ML0DfJn8bkGpwsj|TBEoPqFvaUIy|ReWgAYHCiXKm|
O|O|klKsWrBEPf7GQ8uCdpN3|yeJ09DqtXxh5Tcg|vYHMAaVwn12o|jmIR64SFbiUL|
P|P|sylJOBeqWE6aHAdpDg4L|Krk50ufYmwi9nSC|tvF7RIxVoN3T|XjG8M1bQcUh2|
Q|Q|xpUcIfYHA9shNtGF85Ok|omDJr0adi3ulv7R|w4Sy6nCTqKWM|gL2jPBEVXb1e|
R|R|STguHvjIGFWobMA958er|hEwyka012ncBfqQ|DVxJX3Lp7Pst|UCiYKlm46NdO|
S|S|TRuEhHwVjJDbB4nN6rAc|vgGxYl201e8odPt|CKXUyM5q9pQs|FWkiIma3L7Of|
T|T|RSEgvhGKwUCBo3e7Lcn8|HujXim120ArbOps|WIyFx46PNqtQ|JDYkValM59fd|
U|U|IDYompQscLiJ2hKvT1CF|Axftn7wgH0WVk3e|y9raNSEBuXq5|P46ld8OjGRMb|
V|V|CFbXnadNtlx1Kw2SjJID|qi8cmrhGuW0U4y6|3O7psvRMHoAP|5keLQf9TgEBY|
W|W|JKykPerfOqMIFRDguC12|lBs95dEvjVU0obp|YtQ68GwxT4Ln|mXaA7NcHShi3|
X|X|qt8abVC3ixG7mKMByYjE|dFnTwoklOf6v0I4|5pLuUsr9JRSD|NQc1hg2eWPAH|
Y|Y|mfQAxDUio4Ht6JXkBMEv|cIphS3yPs7qjF0b|aLnw2rO8WGu1|d9NVgTClKe5R|
a|a|dinV8Xq5FGlLwm9AIHyP|CtbeKRQxpg4s6j0|Nu1OvUo2YrBE|3hT7kWMcfDSJ|
-+-+--------------------+---------------+------------+------------+
b|b|n8dqiFVxXkuce1o4MBRS|tCawvy35NrATDWY|plmhK79f0gHJ|QOsUGjIL26PE|
c|c|oADfUQxwmsdSrNT17e8b|YpIVtKL94BRnuOv|gyjil60E5CFk|HPJhaXG23MWq|
d|d|iaVtC8buqONwscgDfP94|XnF17WpQxyHLSrE|hkv3emIjA20B|GlKT5MRUoYJ6|
e|e|rBPWsklmKvqAR5cL1Tbn|JOyaFw7M6So8puU|fjItG04D3dih|YEHQXVx9N2gC|
f|f|YmIQDcogpd9jtrEWOq7M|xAU2NCPsyXv6R8u|Hih4nlKGe01b|waVSL3TJBkF5|
g|g|HwjhETRWuC2yioPfpdL9|GSvM3qDUIas4rnO|JFk0bxmlc678|KVXB15eYAQtN|
h|h|GuvTjgHJS2Uk3iltnNpQ|RwEYo6VCF5OxsLr|K0BI4bqedmf9|W1MyDAPXa87c|
i|i|adtnXCFkb3hsLUyYo4gH|8VqvTMxpQ9PwJ2B|l5eG1cfrDjE0|ON7KuRWmIA6S|
j|j|EvRGSwg2hVIMXy6rltmf|uHToxnJKWq7Y9aN|0C3Dike5sAcd|1Fb4UpLBPO8Q|
k|k|lOseyWJYBMvQ5Fxib3uh|rKPHR4XqtNpGU1o|m6Aj08dcCwg2|f79IESDaVnLT|
l|l|OkeKryP6Jjm5GaNnVhxp|WsBAIStXqu3QLw2|7E0fHFb1icog|MvR9YD48dCTU|
m|m|fYAIcxpLUwa6jl7eKvXq|DQonVTsyPEMt5G1|9g2dhJB0k8bu|4HSNiC3rOWRF|
-+-+--------------------+---------------+------------+------------+
n|n|8bqCtialVhpeTLr62SoA|FdXmUjN35RBcPgJ|OGKQw1MW4fYH|kuvsxIy790ED|
o|o|AcfpYUIyxigrn2BM3bTR|QDmjhX4L98eSWCk|PalHVN7O1EvF|sdtJwGK605qu|
p|p|QxmUfoAPDgLlhnOqCu35|IcY62EdiaGkNeTW|sHJ9SVXKb7MR|ywjr40Bt8Fv1|
q|q|tXaFdbnpCu5mvefPWEM6|V8iL1gOkljY7ARD|QhUNTKyIB94S|xGwc32osrJH0|
r|r|BeWOJsyjltfR89S2Nnco|kPKIQV67MbTAgdh|EXGYa51uLDUi|vqFHmxw043Cp|
s|s|yPJrKOkve7tH9QwUcLdi|BlWF81mfY4gahNT|jMRX5ADSpVC3|E60GqbuIxo2n|
t|t|XqF8VdihnNQv7sjJr6fY|baCUc2lOkMEmH9S|G3TxLeWRPID4|u51wpogKyB0A|
u|u|hGwvgRSDEW1xkbpdqO5N|jTH4MPCFVlQ3cef|UJY2BXam8L9r|IKyo06Aints7|
v|v|jEHRwuhUT1FYMkmse7qt|SGgibLKWJ6fXQ5c|I2oV3BPAOadN|D04xCnpylr98|
w|w|gHSjTGu1vKV4yxLcmsad|EhRbXeUIDP9iNl7|2WMCkYA6Qn8O|0JB3Fq5opfrt|
x|x|pQcmoID4YywNlV3bXkGu|fUASjBiadO5h1KM|LP6gJt87FTRW|9sr2HE0nCqev|
y|y|PsrlBKWMkXj9aI4oxiwg|OJeRGbYmfdLH2V3|6q5EFQcNUSTC|7t80vu1ADpnh|
-+-+--------------------+---------------+------------+------------+
@bellbind
Copy link
Author

@bellbind
Copy link
Author

60 members of A5

E=(0,1,2,3,4)
X0I=(0,2,1,4,3), X0J, X0K, ... X4I, X4J,X4K   -- (5x3 elems two distinct exchange)
T01R=(0,1,3,4,2), T01L=(0,1,4,2,3), T02R, T02L,  ...., T34L   -- (10 x 2 elems, rot 3)
Fabcd=(1,2,3,4,0), Facbd, ... Fdcba --  (4! elems, 4times-swap all)

@bellbind
Copy link
Author

By the conjugacy class of A5, all 3-rotations included to the same single class.
(A4 is not, 3-rots split two classes: STUV and WXYZ).

All other elements of A5(unit, 2-swaps, 5-rotation) is generated from a multiplication of some of two 3-rotations.

So, Normal Subgroup of A5 becomes A5 itself (or only unit). -- A5 is a Simple Group.

@bellbind
Copy link
Author

Generic Solution Formula includes a Discriminant (deepest sqrt part).

Discriminant splits each solutions of a polynomial equation(if the discriminant is 0, some solutions become same value -- multiple roots).
So the "Generic" Solution Formula should keep the discriminant at least.

Discriminant of Quintic Equation(5-th degree polynomial) D = (α-β)(α-γ)(α-δ)(α-ε)(β-γ)(β-δ)(β-ε)(γ-δ)(γ-ε)(δ-ε) from its 5-solutions αβγδε.

The D only keeps even permutations. (odd permutation turn D to -D, means D=0).
The 5 elements of even permutations forms the Alternating Group A5.


Property of discriminant of Quartic Formula(4th degree polynomial) has A4, of Cubic Formula has A3.

A4 has a Normal Sub Group(EIJK). Its factor group forms A3 (-- A3 can expand to A4).
This means any Generic Quartic Equation build from (or break to) some Cubic Equation.
(or Quintic Formula embeds Cubic Formula).

A5 is a simple group which cannot break to smaller (even permutation) groups except unit.
It is a difference between generic Quintic Equation and generic Quartic Equation.


Another property of no generic quintic formula is that A5 is not cyclic group that means open roots simply.

Solutions of open roots (X^n = C) forms cyclic relationship.
All solutions rotate with multiplying n-th root of 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment