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

Lemmas functions should become a specification construct + be removed from programs when completely statically verified #63

Open
jennalwise opened this issue Jun 9, 2024 · 0 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@jennalwise
Copy link
Member

jennalwise commented Jun 9, 2024

Consider making lemma functions a specific construct in the specification language.
They should not be executed at run time when completely statically verified. But, should be executed at run time when they need run-time checked. It is okay to allow ? to appear in lemma functions, but then they will need to appear at run-time like normal functions for run-time checking purposes.

We should make our lemma functions similar to those in VeriFast:

They are just like regular C functions, except that they may not perform field assignments or call regular functions, and they must always terminate

VeriFast also has other restrictions on lemma functions that we should consider.

Viper has pure functions and magic wand, so they do not need or have lemma functions; so, there is a question on whether or not we should go this route instead.

@jennalwise jennalwise added enhancement New feature or request question Further information is requested labels Jun 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant