Several functions take two or more groups as arguments; typically a group and a (candidate) subgroup thereof. We should try to establish rules (as simple as possible) for this to ensure consistency and make it possible for users to understand code without having to always double check these orders.
In GAP, the rule is rather simple indeed: arguments are ordered by "size", where "size" is meant figuratively, not literally: First the "big" group, then the "subgroup" (resp. candidate for being a subgroup). So it is index(grp, sub), quo(grp, sub), issubgroup(grp, sub), isnormal(grp, sub), ...
However, in Julia, this is problematic: there, functions like issubset use the reverse order: issubset(subset, full) -- we discussed this further at oscar-system/Oscar.jl#163
Several functions take two or more groups as arguments; typically a group and a (candidate) subgroup thereof. We should try to establish rules (as simple as possible) for this to ensure consistency and make it possible for users to understand code without having to always double check these orders.
In GAP, the rule is rather simple indeed: arguments are ordered by "size", where "size" is meant figuratively, not literally: First the "big" group, then the "subgroup" (resp. candidate for being a subgroup). So it is
index(grp, sub),quo(grp, sub),issubgroup(grp, sub),isnormal(grp, sub), ...However, in Julia, this is problematic: there, functions like
issubsetuse the reverse order:issubset(subset, full)-- we discussed this further at oscar-system/Oscar.jl#163