peal / vole

A GAP package for backtrack search in permutation groups with graphs
https://peal.github.io/vole
Mozilla Public License 2.0
8 stars 2 forks source link

Add `VoleRefiner.TupleSetTransporter` and `VoleRefiner.TupleSetStab` #16

Closed wilfwilson closed 3 years ago

wilfwilson commented 3 years ago

I think this is missing but it would be great to have (it lets us do ordered partitions, for example).

ChrisJefferson commented 3 years ago

This could be implemented by turning it into a list of SetStabs and SetTransporters -- it might need a call to "Flat" adding somewhere where we handle the constraints, if there isn't already one there, and a "fail" constraint (can't remember if we have one?) if TupleSetTransporter is called with different length tuples.

wilfwilson commented 3 years ago

Ah yes of course, you're thinking in the Vole way 😉. I don't think we have a fail constraint.

wilfwilson commented 3 years ago

For now I'm going to consider this closed. I implemented OnTuplesSets and OnTuplesTuples for VoleCon.Stabilise and VoleCon.Transport, the way that you suggested. Explicitly, that means you can now do, for example,

VoleCon.Stabilise(x, OnTuplesTuples)

and

VoleCon.Transport(x, y, OnTuplesSets)

I don't think there's a need to implement corresponding refiner objects as well (at least, not at this point). I might document why they're not (yet) implement - although someone who is advanced enough to want to use refiners as opposed to constraints probably is doing their own fancy stuff anyway, and would know how to do TupleSetTransporter etc.