Add VC Constraint Simplification - #264
Conversation
|
Why substitute by "true"? I don't think this is a good idea cause true is usually "we don't know anything about this", so I would say either remove it completely or leave the "x > 0". |
|
We substitute by Removing it right away is possible, but it would basically repeat the same logic from the |
0660019 to
3e93fee
Compare
|
You have branch conflicts. I'm still not super sure about this simplification cause the intermediate step has a meaning right that os not really accurate. Couldnt we simply mark this for removal instead of overwriting the refinement so we still remove it next turn but don't make the substitution |
3e93fee to
e8aa3d3
Compare
|
Agreed. I changed it so we remove the binders immediately instead of replacing their refinements with |
CatarinaGamboa
left a comment
There was a problem hiding this comment.
Discussed offline. This is great simplification, just add the example to reduce the freshes into just one
Description
This PR adds VC simplification for redundant antecedent constraints in a
VCImplicationchain. For any two antecedents, excluding the conclusion, if one constraint implies another, the weaker constraint is redundant.The weaker antecedent node is removed when its binder is not used by the remaining VC.
Examples
Related Issue
None.
Type of change
Checklist
./mvnw -pl liquidjava-verifier testpasses locally