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

Module-level options #4598

Draft
wants to merge 63 commits into
base: master
Choose a base branch
from
Draft

Module-level options #4598

wants to merge 63 commits into from

Conversation

zafer-esen
Copy link
Collaborator

(Detailed description to be added.)

This branch adds more module-level attributes (defaults are for 4.3):

  • {:type_encoding "a" | "m" | "p") (default "a")
  • {:prune "1" | "0"} (default "1")
  • {:solver "cvc5" | "z3" | "yices2"} (default "z3")
  • {:native_seq} use the native theory of sequences (default axiomatization)
  • {:no_lit} completely turns off Lit functions for this module.
  • {:isolate_assertions} same as {:vcs_split_on_every_assert} but at module level.
  • {:prover_opt value} where value is any Z3 parameter (not tested with other solvers).
    • For instance: {:prover_opt smt.case_split:2}

Since the idea of this branch was to optionally enable/disable other changes, it includes work from other branches & PRs:

By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.

zafer-esen and others added 30 commits September 8, 2023 10:32
Doesn't cause completeness issues.
The one remaining polymorphic one loses its trigger if it doesn't
quantify over anything.
This removes a trigger, but probably one that’s no longer needed.
Also adds options (currently hardcoded) to enable/disable each
axiomatization. Lastly, includes the native theory support for
sequences (mostly the work of Aaron Tomb).
Currently does not affect System modules.
zafer-esen and others added 29 commits September 12, 2023 22:06
### Changes

- No longer resend the same symbolStatus notification
- No longer migrate verification results from a file that was not
changed

### Testing
- Added two unit tests for the above fixes

<small>By submitting this pull request, I confirm that my contribution
is made under the terms of the [MIT
license](https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt).</small>
### Changes
- Support all option types in the project file by parsing the project
file options in the same way as the CLI parses them

### Testing
- Added a case that uses an enum option to an existing test

<small>By submitting this pull request, I confirm that my contribution
is made under the terms of the [MIT
license](https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt).</small>
### Changes
Enable go to definition on the `X` in `import X`

### Testing
Added two unit tests

<small>By submitting this pull request, I confirm that my contribution
is made under the terms of the [MIT
license](https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt).</small>
@atomb atomb self-assigned this Oct 13, 2023
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.

3 participants