From b945ae022a84a812bd7bdce86fd9b4a7020225b3 Mon Sep 17 00:00:00 2001 From: Ulli Kehrle Date: Wed, 7 Nov 2018 15:34:36 +0100 Subject: Added command to create a young subgroup from a given partition --- subgroupladder.g | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file 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; -- cgit v1.2.3-24-g4f1b