-
Notifications
You must be signed in to change notification settings - Fork 182
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
Coinduction handling for recursive solver #698
Coinduction handling for recursive solver #698
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks close, but I think it can get simpler still! See comments below.
26f7874
to
40a5014
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks great! Here are some nits on the write-up. I might like to read it over one more time, or maybe @jackh726 can read it and see if he understands it.
add new tests for coinduction handling
add solution0 document solution0 and remove unecessary test cases simplify according to review
40a5014
to
e98a14f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bravo. Reading through this, I realize I have so little knowledge about the recursive solver and how it works. But the documentation here is splendid. I'm not sure I can fully grok the code changes and their implications, but nothing sticks out as wrong to me.
r=me once tests are done! Nice work @firefighterduck! |
@bors r+ |
📌 Commit 9ce2cef has been approved by |
Forgot we use bors now |
☀️ Test successful - checks-actions |
This PR is meant to address the issue of invalid result in coinductive cycles as described in #399 . It also fixes the two coinduction tests related to that issue (i.e. coinductive_unsound1 and coinductive_multicycle4). As such it is an improved version of #683 as it uses "solution0" described here and discussed here to handle more complicated coinductive cycles.