As the title says, it will be helpful to have the neighbor function polymorphism_neighbor_func in src/polymorphisms.py defined for polymorphisms of higher-arity relations. The higher-arity case may have to have the dominion polymorphisms disallowed, unless those have been generalized to the higher-arity case already.
Already the BlankingEndomorphism, SwappingAutomorphism, and IndicatorPolymorphism polymorphisms work for relations of any arity, so it remains address the hyperoctahedral automorphisms.
It needs to be decided whether to implement hyperoctahedral automorphisms by always just choosing a random signed permutation, only allowing a (minimal) generating set, or to have an option to toggle between these behaviors. (This last one would be ideal if we want to test which approach seems faster.)
As the title says, it will be helpful to have the neighbor function
polymorphism_neighbor_func
insrc/polymorphisms.py
defined for polymorphisms of higher-arity relations. The higher-arity case may have to have the dominion polymorphisms disallowed, unless those have been generalized to the higher-arity case already.BlankingEndomorphism
,SwappingAutomorphism
, andIndicatorPolymorphism
polymorphisms work for relations of any arity, so it remains address the hyperoctahedral automorphisms.