diff --git a/gap/interface.gi b/gap/interface.gi index 4c02428..e7a0d68 100644 --- a/gap/interface.gi +++ b/gap/interface.gi @@ -122,10 +122,8 @@ VoleFind.Canonical := function(G, arguments...) "To restrict the moved points, canonise in a different ", "group;"); - elif ForAny(constraints, c -> IsRefiner(c) and StartsWith(c!.name, "InCoset")) + elif ForAny(constraints, c -> IsRefiner(c) and not IsGroupConstraint(c!.constraint)) or ForAny(constraints, c -> IsRecord(c) and EndsWith(RecNames(c.con)[1], "Transport")) - or ForAny(constraints, c -> IsRefiner(c) and IsBound(c!.check) and not c!.check(())) - or ForAny(constraints, c -> IsRefiner(c) and not IsBound(c!.check) and c!.image(()) <> c!.result) then # Try to check for "coset" refiners/constraints ErrorNoReturn("VoleFind.Canonical: ", diff --git a/gap/internal/comms.gi b/gap/internal/comms.gi index 63c2220..95d0e6f 100644 --- a/gap/internal/comms.gi +++ b/gap/internal/comms.gi @@ -62,10 +62,10 @@ function(savedvals, state, type, args) Info(InfoVole, 2, "Generating image", args[1]); Assert(2, args[1] in ["Left", "Right"]); if args[1] = "Left" then - val := state!.conlist[1]!.image(PermList(List(args[2].values, x -> x+1))); + val := ImageFunc(state!.conlist[1]!.constraint)(PermList(List(args[2].values, x -> x+1))); else Assert(2, args[2].values = []); - val := state!.conlist[1]!.result(); + val := ResultObject(state!.conlist[1]!.constraint); fi; savedvals.map[savedvals.count] := val; Info(InfoVole, 2, "Saving: ", val , " as ", savedvals.count); @@ -464,4 +464,4 @@ _Vole.CosetSingleSolve := _Vole.CanonicalSolve := {points, group, constraints} -> _Vole.Solve(points, false, false, true, constraints, group, false); -_Vole.RootSolve := {points, constraints} -> _Vole.Solve(points, false, false, false, constraints, false, true); \ No newline at end of file +_Vole.RootSolve := {points, constraints} -> _Vole.Solve(points, false, false, false, constraints, false, true); diff --git a/gap/internal/util.g b/gap/internal/util.g index abbc884..ae8f970 100644 --- a/gap/internal/util.g +++ b/gap/internal/util.g @@ -49,8 +49,8 @@ _Vole.getBounds := function(constraints, initial_max, allow_max_inf) fi; elif IsRefiner(c) then this_min := c!.largest_required_point; - if IsBound(c!.largest_moved_point) then - this_max := c!.largest_moved_point; + if HasLargestMovedPoint(c!.constraint) then + this_max := LargestMovedPoint(c!.constraint); fi; fi; min := Maximum(min, this_min);