Closed CunningGabe closed 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.
Now maximal parabolic subgroups of String C-groups know that they are string C-groups in 51768374e7bab32b5800f10422d7f3bc1ed14dad.
One more optimization in eda78d53af74685c4851f2c2545a825f46f05a31. We'll call that better enough for now.
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.