-
Notifications
You must be signed in to change notification settings - Fork 123
Entanglement
The nominal logic work currently needs far too much access to implementation details in order to integrate well with the finite domain portion of the library. Moreover the finite domain functionality is just one instance of an extension that needs to deal with logic vars that may take a domain of values - CLP(Set) for example, or more ambitiously CLP(EDN).
The issue is that nominal logic needs to create a var that will be swapped with original - but this var must retain all the properties and constraints of the original.
One way to eliminate any knowledge of other constraint domains from the nominal support would be some notion of var "entanglement". That is any domain or constraint that is applied to one var must be applied to another.
Currently in the nominal work there is a bit of quick fix to ensure that if
a domain exists on one or the other term, a domain constraint is
applied to one, the other term, or both terms. the -suspc
constraint
watches both terms to see if one the terms is ground or if the finite
domains between the two terms are no longer equal.