Skip to content

Conversation

@gauravpartha
Copy link
Contributor

The following PR implements a new function axiomatization approach (developed with @marcoeilers), where function axioms are guarded by an uninterpreted function instead of the concrete function precondition. The goal of this PR is to solve the issues with the current function axiomatization as discussed in #272.

Among things not yet covered:
* QPs in function preconditions (might need to change guard framing axiom)
* function calls appear within quantifiers (need to change free assumption to get the preconditions of the functions)
@gauravpartha
Copy link
Contributor Author

gauravpartha commented Oct 3, 2022

Still to be resolved:

  • in cases where something is inhaled or exhaled without definedness checks, because assertions have been checked to be self-framing elsewhere (specifications in method call and in verification of method itself, predicate bodies when folding and unfolding) , need to get the guard assumptions explicitly
  • Function calls within quantifiers --> need to assume guard inside a universal quantifier
  • Maybe functions with QPs in their preconditions (not sure)

@gauravpartha gauravpartha marked this pull request as draft November 11, 2022 19:29
@gauravpartha
Copy link
Contributor Author

Possible optimization that has not yet been done: If precondition does not contain permissions, then do not need an uninterpreted guard function and instead can use the same approach as before.

…me free function call assumptions during exhale of self-framing conditions (where no well-definedness check happens)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants