Else simplification pass#214
Conversation
…d many else relations into conjunctions.
9c182a9 to
925694c
Compare
…ers that only appear in premises and not on conclusion.
rossberg
left a comment
There was a problem hiding this comment.
Generally looks good to me. I defer to @zilinc for details. :)
One meta comment, though: I see you writing all these excellent and helpful descriptions of passes in respective PRs. But those all go into oblivion after merging! I think it would make sense to have some version of these as documentation in the code, e.g., the MLI files.
Ah yeah, you are right! I for some reason stop putting the description in the actual code itself. I used to put at the top of the ML file instead of the MLI file, do you think I should do the latter instead? I'll add it now for the newer passes (and modify some of the existing descriptions). |
|
I think the MLI files would be more fitting, since they're describing the "contract". |
I see! Makes sense, I'll only change it for else-simp for now, and will make a PR to change the description of the other passes. |
This pass is towards a better representation of otherwise when the only concern are boolean premises. This simply takes the original premises of the generated relations and negates them.
The pass performs the following steps:
Some restrictions of this pass:
Example:
From else pass (omitting wf premises):
From else simplification pass: