summaryrefslogtreecommitdiffstats log msg author committer range
path: root/divers
diff options
 context: 12345678910152025303540 space: includeignore mode: unifiedssdiffstat only
author committer David A. Madore 2011-12-14 21:08:03 +0100 David A. Madore 2011-12-14 21:08:03 +0100 12e2fb62bbebba2196722858a9e8af62abbcbc60 (patch) fe36808970d4e6cc1bd3cab7cc549054afbb4e38 /divers 83e08e0392cb6055f8a11b7bd06937f80e3bdc23 (diff) galois-12e2fb62bbebba2196722858a9e8af62abbcbc60.tar.gzgalois-12e2fb62bbebba2196722858a9e8af62abbcbc60.tar.bz2galois-12e2fb62bbebba2196722858a9e8af62abbcbc60.zip
sageries: Polynômes plus systématiques pour les sous-groupes de 𝔖_6
Diffstat (limited to 'divers')
-rw-r--r--divers/sageries/sous-groupes-s656
1 files changed, 48 insertions, 8 deletions
 diff --git a/divers/sageries/sous-groupes-s6 b/divers/sageries/sous-groupes-s6index 7cafa74..4a17c8f 100644--- a/divers/sageries/sous-groupes-s6+++ b/divers/sageries/sous-groupes-s6@@ -1,8 +1,8 @@ s6 = SymmetricGroup(6) tuplegens = [[[(1, 5, 3), (4, 2, 6)], [(1, 4), (5, 6), (3, 2)]], [[(1, 5, 3), (4, 2, 6)], [(1, 4), (5, 2), (3, 6)]], [[(5, 4), (3, 2)], [(1, 5, 3), (4, 2, 6)], [(1, 6), (3, 2)]], [[(5, 3), (2, 6)], [(1, 5, 3), (4, 2, 6)], [(1, 4), (5, 2), (3, 6)]], [[(4, 2, 6)], [(1, 5, 3)], [(1, 4), (5, 2), (3, 6)]], [[(3, 2)], [(5, 4)], [(1, 5, 3), (4, 2, 6)], [(1, 6)]], [[(5, 3), (4, 2)], [(5, 4), (3, 2)], [(1, 5, 3), (4, 2, 6)], [(1, 6), (3, 2)]], [[(5, 3, 4, 2)], [(5, 4), (3, 2)], [(1, 5, 3), (4, 2, 6)], [(1, 6), (3, 2)]], [[(4, 2, 6)], [(5, 3), (2, 6)], [(1, 5, 3)], [(1, 4), (5, 2), (3, 6)]], [[(4, 2, 6)], [(5, 3), (2, 6)], [(1, 5, 3)], [(1, 4), (5, 2, 3, 6)]], [[(3, 2)], [(5, 3), (4, 2)], [(5, 4)], [(1, 4, 3), (5, 2, 6)], [(1, 6)]], [[(1, 5, 3, 4, 6)], [(1, 4), (2, 6)]], [[(4, 2, 6)], [(4, 6)], [(5, 3)], [(1, 5, 3)], [(1, 4), (5, 2), (3, 6)]], [[(3, 4, 6, 2)], [(1, 2, 3, 6, 4)], [(1, 6), (5, 4)]], [[(4, 2, 6)], [(1, 5, 3, 4, 2)]], [[(1, 5)], [(1, 5, 3, 4, 2, 6)]]]-reps = [s6.subgroup(l) for l in tuplegens]+groups = [s6.subgroup(l) for l in tuplegens] alsocontains = [(4, 0), (5, 1), (10, 1), (10, 3)]-strictcontains = [(i,j) for i in range(16) for j in range(16) if reps[j].is_subgroup(reps[i])]+strictcontains = [(i,j) for i in range(16) for j in range(16) if groups[j].is_subgroup(groups[i])] contains = [(i,j) for i in range(16) for j in range(16) if (i,j) in strictcontains or (i,j) in alsocontains] def subgroup_up_to_conjugacy(g,h): for x in gap.ConjugateSubgroups(s6,g):@@ -10,20 +10,60 @@ def subgroup_up_to_conjugacy(g,h): return True return False -# contains == [(i,j) for i in range(16) for j in range(16) if subgroup_up_to_conjugacy(reps[i],reps[j])]+# contains == [(i,j) for i in range(16) for j in range(16) if subgroup_up_to_conjugacy(groups[i],groups[j])] R. = PowerSeriesRing(QQ,'t',default_prec=30)-hilbertnum = [(sum([1/((1-x.matrix()*t).determinant()) for x in reps[j]]))*prod([1-t^i for i in range(1,7)])/reps[j].order() for j in range(16)]-+hilbertnum = [(sum([1/((1-x.matrix()*t).determinant()) for x in groups[j]]))*prod([1-t^i for i in range(1,7)])/groups[j].order() for j in range(16)]+minover = [[i for i in range(16) if (i,j) in contains and len([k for k in range(16) if (i,k) in contains and (k,j) in contains])==2] for j in range(16)] S. = QQ['z1','z2','z3','z4','z5','z6']+def monomials(deg):+ mons = [z1^(deg-i2-i3-i4-i5-i6)*z2^i2*z3^i3*z4^i4*z5^i5*z6^i6 for i6 in range(deg+1) for i5 in range(deg+1-i6) for i4 in range(deg+1-i5-i6) for i3 in range(deg+1-i4-i5-i6) for i2 in range(deg+1-i3-i4-i5-i6)]+ return mons++def find_friendly_polynomial(grpnum,deg):+ grp = groups[grpnum]+ grpord = grp.order()+ cand = [sum([mon*sig for sig in grp]) for mon in monomials(deg)]+ cand.sort(key = lambda pol: len(pol.coefficients()))+ zappers = [None for i in range(len(minover[grpnum]))]+ for i in range(len(minover[grpnum])):+ while True:+ zap = groups[minover[grpnum][i]].random_element()+ if not zap in grp:+ zappers[i] = zap+ break+ for pol in cand:+ happy = True+ for zap in zappers:+ if pol*zap == pol:+ happy = False+ break+ if happy:+ if len([None for sig in s6 if pol*sig==pol]) == grpord:+ return pol++def find_friendly_polynomial_alldegrees(grpnum):+ deg = 1+ while True:+ pol = find_friendly_polynomial(grpnum, deg)+ if pol != None:+ return pol+ deg = deg+1+ pols = [None for j in range(16)] pols[15] = S(1) pols[14] = prod([S.gens()[i]-S.gens()[j] for j in range(6) for i in range(j)]) pols[13] = z1^2*z2^2*z3*z4 + z1*z2*z3^2*z4^2 + z1^2*z2*z3^2*z5 + z2^2*z3^2*z4*z5 + z1*z2^2*z4^2*z5 + z1^2*z3*z4^2*z5 + z1*z2^2*z3*z5^2 + z1^2*z2*z4*z5^2 + z1*z3^2*z4*z5^2 + z2*z3*z4^2*z5^2 + z1*z2^2*z3^2*z6 + z1^2*z3^2*z4*z6 + z1^2*z2*z4^2*z6 + z2^2*z3*z4^2*z6 + z1^2*z2^2*z5*z6 + z3^2*z4^2*z5*z6 + z1^2*z3*z5^2*z6 + z2*z3^2*z5^2*z6 + z2^2*z4*z5^2*z6 + z1*z4^2*z5^2*z6 + z1^2*z2*z3*z6^2 + z1*z2^2*z4*z6^2 + z2*z3^2*z4*z6^2 + z1*z3*z4^2*z6^2 + z2^2*z3*z5*z6^2 + z1*z3^2*z5*z6^2 + z1^2*z4*z5*z6^2 + z2*z4^2*z5*z6^2 + z1*z2*z5^2*z6^2 + z3*z4*z5^2*z6^2 pols[12] = z1*z3 + z2*z4 + z1*z5 + z3*z5 + z2*z6 + z4*z6-pols[11] = z1*z3*z4 + z2*z3*z4 + z1*z2*z5 + z2*z3*z5 + z1*z4*z5 + z1*z2*z6 + z1*z3*z6 + z2*z4*z6 + z3*z5*z6 + z4*z5*z6+pols[11] = z1*z2*z3 + z1*z2*z4 + z1*z3*z5 + z2*z4*z5 + z3*z4*z5 + z2*z3*z6 + z1*z4*z6 + z3*z4*z6 + z1*z5*z6 + z2*z5*z6 pols[10] = z2*z3 + z4*z5 + z1*z6-pols[9] = z1^2*z2^3*z3*z4 + z1*z2^2*z3^3*z4 + z1^3*z2*z3*z4^2 + z1*z2*z3^2*z4^3 + z1^3*z2^2*z4*z5 + z2^3*z3^2*z4*z5 + z2*z3^3*z4^2*z5 + z1^2*z2*z4^3*z5 + z1*z2^3*z4*z5^2 + z2*z3*z4^3*z5^2 + z2^2*z3*z4*z5^3 + z1*z2*z4^2*z5^3 + z1^3*z2^2*z3*z6 + z1*z2^3*z3^2*z6 + z1*z3^3*z4^2*z6 + z1^2*z3*z4^3*z6 + z1^2*z2^3*z5*z6 + z2^2*z3^3*z5*z6 + z1^3*z4^2*z5*z6 + z3^2*z4^3*z5*z6 + z2^3*z3*z5^2*z6 + z1*z4^3*z5^2*z6 + z1*z2^2*z5^3*z6 + z3*z4^2*z5^3*z6 + z1*z2*z3^3*z6^2 + z1^3*z3*z4*z6^2 + z1^3*z2*z5*z6^2 + z3^3*z4*z5*z6^2 + z2*z3*z5^3*z6^2 + z1*z4*z5^3*z6^2 + z1^2*z2*z3*z6^3 + z1*z3^2*z4*z6^3 + z2*z3^2*z5*z6^3 + z1^2*z4*z5*z6^3 + z1*z2*z5^2*z6^3 + z3*z4*z5^2*z6^3+pols[9] = z1^3*z2^2*z3*z4 + z1*z2^3*z3^2*z4 + z1*z2*z3^3*z4^2 + z1^2*z2*z3*z4^3 + z1^2*z2^3*z4*z5 + z2^2*z3^3*z4*z5 + z1^3*z2*z4^2*z5 + z2*z3^2*z4^3*z5 + z2^3*z3*z4*z5^2 + z1*z2*z4^3*z5^2 + z1*z2^2*z4*z5^3 + z2*z3*z4^2*z5^3 + z1^2*z2^3*z3*z6 + z1*z2^2*z3^3*z6 + z1^3*z3*z4^2*z6 + z1*z3^2*z4^3*z6 + z1^3*z2^2*z5*z6 + z2^3*z3^2*z5*z6 + z3^3*z4^2*z5*z6 + z1^2*z4^3*z5*z6 + z1*z2^3*z5^2*z6 + z3*z4^3*z5^2*z6 + z2^2*z3*z5^3*z6 + z1*z4^2*z5^3*z6 + z1^3*z2*z3*z6^2 + z1*z3^3*z4*z6^2 + z2*z3^3*z5*z6^2 + z1^3*z4*z5*z6^2 + z1*z2*z5^3*z6^2 + z3*z4*z5^3*z6^2 + z1*z2*z3^2*z6^3 + z1^2*z3*z4*z6^3 + z1^2*z2*z5*z6^3 + z3^2*z4*z5*z6^3 + z2*z3*z5^2*z6^3 + z1*z4*z5^2*z6^3 pols[8] = z1^2*z2^2*z3*z4 + z1*z2*z3^2*z4^2 + z2^2*z3^2*z4*z5 + z1^2*z2*z4^2*z5 + z1*z2^2*z4*z5^2 + z2*z3*z4^2*z5^2 + z1*z2^2*z3^2*z6 + z1^2*z3*z4^2*z6 + z1^2*z2^2*z5*z6 + z3^2*z4^2*z5*z6 + z2^2*z3*z5^2*z6 + z1*z4^2*z5^2*z6 + z1^2*z2*z3*z6^2 + z1*z3^2*z4*z6^2 + z2*z3^2*z5*z6^2 + z1^2*z4*z5*z6^2 + z1*z2*z5^2*z6^2 + z3*z4*z5^2*z6^2 pols[7] = z1^3*z2^2*z4 + z1^2*z3^3*z4 + z1*z2^3*z4^2 + z1^3*z3*z4^2 + z1^2*z2*z4^3 + z1*z3^2*z4^3 + z1^2*z2^3*z5 + z1^3*z3^2*z5 + z1^3*z2*z5^2 + z1*z3^3*z5^2 + z1*z2^2*z5^3 + z1^2*z3*z5^3 + z3^3*z4^2*z6 + z2^2*z4^3*z6 + z2^3*z5^2*z6 + z3^2*z5^3*z6 + z2^3*z4*z6^2 + z3*z4^3*z6^2 + z3^3*z5*z6^2 + z2*z5^3*z6^2 + z3^2*z4*z6^3 + z2*z4^2*z6^3 + z2^2*z5*z6^3 + z3*z5^2*z6^3-pols[6] = z1*z3*z4 + z1*z2*z5 + z2*z4*z6 + z3*z5*z6+pols[6] = z1*z2*z4 + z1*z3*z5 + z3*z4*z6 + z2*z5*z6+pols[5] = z1*z2*z3 + z2*z4*z5 + z3*z4*z5 + z2*z3*z6 + z1*z4*z6 + z1*z5*z6+pols[4] = z1^2*z3 + z2^2*z4 + z3^2*z5 + z1*z5^2 + z4^2*z6 + z2*z6^2+pols[3] = z1*z2 + z2*z3 + z3*z4 + z4*z5 + z1*z6 + z5*z6+pols[2] = z1^3*z2^2*z4 + z1*z2^3*z4^2 + z1^2*z2*z4^3 + z1^3*z3^2*z5 + z1*z3^3*z5^2 + z1^2*z3*z5^3 + z3^3*z4^2*z6 + z2^3*z5^2*z6 + z3*z4^3*z6^2 + z2*z5^3*z6^2 + z3^2*z4*z6^3 + z2^2*z5*z6^3+pols[1] = z1^2*z2 + z2^2*z3 + z3^2*z4 + z4^2*z5 + z5^2*z6 + z1*z6^2+pols[0] = z1^2*z2*z3 + z2*z3*z4^2 + z3^2*z4*z5 + z1*z2^2*z6 + z1*z5^2*z6 + z4*z5*z6^2