-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix constraint eq #164
Fix constraint eq #164
Conversation
Yeah this issue has to be fixed again in the new term encoding anyway. The issue itself is a bit tricky though-- Kevin and I had several back and forth before getting it right. So maybe let's keep this PR open until we can verify the merged term encoding does not have this issue (and have all the tests here ported)? |
Could you add tests/constraint-eq.egg in my PR to your fork? |
Yep! |
Added to my PR and fixed! Thanks for great tests! |
So this should be closed, since the fixes are coming in another branch? |
Fixed by #158 |
ok I will close it. |
As far as I know this was fixed by #176 |
Ah great, I didn't know that! The test from this PR seems to be passing in @oflatt: It seems your #176 also subsumes #146, which was originally blocked by this PR. I will check if this is the case, and if so, we can close #146 as well. |
I think I also added the tests in this one to #176 but double check |
This PR fix #143 by adding a transformation on rules that substitute all x to y in both head and body when meeting (= x y) in the body. For example,
(rule ((= x 1) (= y x) (= z y)) ((set (f z) 1))
is transferred to(rule ((= x 1) (= x x) (= z x)) ((set (f z) 1))
and then(rule ((= x 1) (= x x) (= x x)) ((set (f x) 1))
. It also adds a new Type error similar to LocalAlreadyBound but with less information to deal with letting binding conflict in transformation.After solving #143, PR #146 for seminaive should be able to go.