You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The constraint is identical because whatever the value of C or D (or A and B for that matter), the state will be propagated across them all eventually, regardless. And at the end of it C == D in any case.
We should be able to detect these constraints, add a hidden mapping from D to C. This way we can eliminate the second constraint AND the second anonymous variable D from the system.
Note that this same scrubbing should be done for any constraint, especially those with more than two vars or those where the constraint is commutative (a @bergie b == b @ a). In those cases sort the var index, if commutative, and drop the result vars to detect equivalent constraints. Use a string on an object (or Trie, if that turns out to be slow) to "color" them.
Another case to check is whether vars are already solved since any constraint that uses the same variables but different constants can also be considered the same. This case should not happen very frequent since it's most likely that they result in a reject. But for all intentions and purposes, any "solved" var as well as any constant should be considered "the same variable" in this context.
The text was updated successfully, but these errors were encountered:
The constraint is identical because whatever the value of
C
orD
(orA
andB
for that matter), the state will be propagated across them all eventually, regardless. And at the end of itC == D
in any case.We should be able to detect these constraints, add a hidden mapping from
D
toC
. This way we can eliminate the second constraint AND the second anonymous variableD
from the system.Note that this same scrubbing should be done for any constraint, especially those with more than two vars or those where the constraint is commutative (
a @bergie b == b @ a
). In those cases sort the var index, if commutative, and drop the result vars to detect equivalent constraints. Use a string on an object (or Trie, if that turns out to be slow) to "color" them.Another case to check is whether vars are already solved since any constraint that uses the same variables but different constants can also be considered the same. This case should not happen very frequent since it's most likely that they result in a reject. But for all intentions and purposes, any "solved" var as well as any constant should be considered "the same variable" in this context.
The text was updated successfully, but these errors were encountered: