-
Notifications
You must be signed in to change notification settings - Fork 61
Tactic: add hoare split #888
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
base: main
Are you sure you want to change the base?
Conversation
|
The hoare case can be done outside the TCB using |
|
There is still value in considering a high-level (non-TCB) tactic that infers the split postconditions and internally produces the As an aside, I think we could generalize this to split all program-independent products that sit at the head of the postcondition (including universal quantification, and implications whose LHS does not use program variables). |
|
Ok. Will move it outside the TCB, I should have seen that. But the tactic (that is going to have more complex inference mechanism) allows better proof edition. |
|
Done. As a side note, the internal API for conseq is a non-sense and has to be rewritten. |
|
The docs say that it should be splitting apart conjunctions recursively ("one for each conjunct"), but the implementation doesn't do that. |
@oskgo Why do you think this sentence implies recursion? |
Introduce a new Hoare-only tactic `hoare split` that decomposes goals with conjunctive postconditions into independent Hoare goals. It is intentionally restricted to Hoare logic, where this rule is sound.
|
@strub Suppose the postcondition is If the intention is to just split apart one instance of the binary |
|
@oskgo Ok. What about "top-level conjunction"? |
Introduce a new Hoare-only tactic
hoare splitthat decomposes goals with conjunctive postconditions into independent Hoare goals.It is intentionally restricted to Hoare logic, where this rule is sound.