caten2 / Tripods2021UA

MIT License
3 stars 5 forks source link

Make the neighbor function work for polymorphisms of higher-arity relations #19

Open caten2 opened 10 months ago

caten2 commented 10 months ago

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.

  1. Already the BlankingEndomorphism, SwappingAutomorphism, and IndicatorPolymorphism polymorphisms work for relations of any arity, so it remains address the hyperoctahedral automorphisms.
  2. 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.)