SupposeNot / RAMP

Research Assistant for Maps and Polytopes
4 stars 0 forks source link

Make subgroups of subgroups work better #181

Closed CunningGabe closed 1 year ago

CunningGabe commented 1 year ago

Consider the following: g := UniversalSggi([4,4]); Subgroup(g, [g.1]); (This works fine).

But: h := Subgroup(g, [g.1,g.2]); k := Subgroup(h, [h.1]); (This hangs on a coset enumeration)

At the very least, VertexFigureSubgroup and FacetSubgroup should be written so that we can apply them iteratively if we want. This should be possible using Parent(g), which keeps track of the enclosing group. That is, Parent(h) is g, so we could make FacetSubgroup etc see if there is a Parent and if so, use that to help prevent the coset enumeration.

CunningGabe commented 1 year ago

First stab at this in dfc9f302af34e24a1648438a83713b1688f574b3. I also want to have some special case code that makes subgroups of UniversalSggis (i.e. CoxeterGroups) be Coxeter groups themselves. Though I guess I'll have to be a bit careful, because VertexFigureSubgroup (for example) doesn't reindex the generators (this is intentional) so I'll have to make sure to preserve that behavior for this special case.

CunningGabe commented 1 year ago

Now maximal parabolic subgroups of String C-groups know that they are string C-groups in 51768374e7bab32b5800f10422d7f3bc1ed14dad.

CunningGabe commented 1 year ago

One more optimization in eda78d53af74685c4851f2c2545a825f46f05a31. We'll call that better enough for now.