diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-13 18:35:24 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-13 18:35:24 +0000 |
commit | 9b4f17521bb8a7d96c09d540880679298ce6f08e (patch) | |
tree | d5fd69bdc32f5b95a8d31d94effe5ba0ed6e16b5 | |
parent | a40a18fc0181b2b0c59a20dcd89bee7b38d63e40 (diff) |
When binding two variables to eachother, always bind to the one with the lowest clause number
-rw-r--r-- | eval.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -194,6 +194,11 @@ unify(Term *a, Term *b, Binding **bindings) left = right; right = tmp; } + if(left->tag == VariableTerm && right->tag == VariableTerm && right->clausenr > left->clausenr){ + Term *tmp = left; + left = right; + right = tmp; + } if(runestrcmp(left->text, L"_") == 0) continue; /* _ doesn't introduce a new binding */ |