summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlli Kehrle <ulli.kehrle@rwth-aachen.de>2018-11-07 15:34:36 +0100
committerUlli Kehrle <ulli.kehrle@rwth-aachen.de>2018-11-07 15:34:36 +0100
commitb945ae022a84a812bd7bdce86fd9b4a7020225b3 (patch)
treedd0a7b4e079c75475a2675cb98669916c0107063
parent20e35a046acd858bbf9472058e47008fc52207f6 (diff)
downloadsubgroup-ladders-b945ae022a84a812bd7bdce86fd9b4a7020225b3.tar.gz
subgroup-ladders-b945ae022a84a812bd7bdce86fd9b4a7020225b3.tar.xz
Added command to create a young subgroup from a given partition
-rw-r--r--subgroupladder.g44
1 files changed, 40 insertions, 4 deletions
diff --git a/subgroupladder.g b/subgroupladder.g
index 21f4ac4..f767794 100644
--- a/subgroupladder.g
+++ b/subgroupladder.g
@@ -1,3 +1,42 @@
+YoungGroupFromPartition := function(part)
+ local
+ i,
+ P,
+ G,
+ grps,
+ olds,
+ news,
+ perms,
+ info,
+ generators;
+
+ grps := [];
+ olds := [];
+ news := [];
+ perms := [];
+ generators := [];
+
+ for i in part do
+ G := SymmetricGroup(i);
+ Append(generators, GeneratorsOfGroup(G));
+ Add(grps, G);
+ Add(olds, i);
+ Add(news, i);
+ Add(perms, ());
+ od;
+
+ P := Group(generators);
+ info := rec( groups := grps,
+ olds := olds,
+ news := news,
+ perms := perms,
+ embeddings := [],
+ projections := [] );
+ SetDirectProductInfo(P, info);
+
+ return P;
+end;
+
FindPos := function(list, x)
local n, i;
n := Length(list);
@@ -77,10 +116,7 @@ Subgroupladder := function(G)
mapping := pair[2];
directfactors := [];
generators := [];
- for i in [1..k] do
- Append(generators, GeneratorsOfGroup(SymmetricGroup(Filtered([1..n], x -> i = mapping[x]))));
- od;
- Add(output, Group(generators));
+ Add(output, YoungGroupFromPartition(List([1..k], i -> Filtered([1..n], x -> i = mapping[x]))));
od;
return output;