Skip to content
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

Auto-including well-foundedness functions and axioms when they are used #710

Merged
merged 9 commits into from
Jul 20, 2023

Conversation

marcoeilers
Copy link
Contributor

This is an extension of the termination plugin that auto-includes the relevant functions and axioms used by the generated proof obligations if the program does not already include them. This is to address the problem that writing decreases e without having the relevant input currently leads to a rather cryptic error message that informs the user that the functions "bounded" and "decreasing" were not found in the program, without any hint that an import is missing (and what the imported file should be).

That is,

  • it collects all decreases clauses in the program
  • for a decreases term of type T, it checks if the domain TWellFoundedOrder is already in the program
  • if not, it adds it to the program (by generating a second program containing only the relevant input and adding it to the program being verified)

For programs that contain all relevant definitions, nothing changes. For programs that already contain some but not all required imports, only the missing ones are added.

Instead of adding new tests, this PR removes (some of) the existing imports for some termination tests.

@marcoeilers
Copy link
Contributor Author

I'm not sure who to ask to review this. Who's worked on the termination plugin before? @ArquintL maybe?

@ArquintL ArquintL self-requested a review June 8, 2023 14:03
@marcoeilers marcoeilers merged commit 7f1385b into master Jul 20, 2023
5 checks passed
@marcoeilers marcoeilers deleted the meilers_decreases_autoimport branch July 20, 2023 19:10
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