diff options
author | Ulli Kehrle <ulli.kehrle@rwth-aachen.de> | 2018-11-07 15:34:36 +0100 |
---|---|---|
committer | Ulli Kehrle <ulli.kehrle@rwth-aachen.de> | 2018-11-07 15:34:36 +0100 |
commit | b945ae022a84a812bd7bdce86fd9b4a7020225b3 (patch) | |
tree | dd0a7b4e079c75475a2675cb98669916c0107063 | |
parent | 20e35a046acd858bbf9472058e47008fc52207f6 (diff) | |
download | subgroup-ladders-b945ae022a84a812bd7bdce86fd9b4a7020225b3.tar.gz subgroup-ladders-b945ae022a84a812bd7bdce86fd9b4a7020225b3.tar.xz |
Added command to create a young subgroup from a given partition
-rw-r--r-- | subgroupladder.g | 44 |
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; |