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

Feature: Provide summary of all assumptions in a Dafny program #2236

Closed
atomb opened this issue Jun 10, 2022 · 1 comment
Closed

Feature: Provide summary of all assumptions in a Dafny program #2236

atomb opened this issue Jun 10, 2022 · 1 comment
Assignees
Labels
difficulty: hard Issues that will take more than a week to fix kind: enhancement Enhancements, feature requests, etc. These are NOT bugs, but ways we can improve Dafny part: resolver Resolution and typechecking

Comments

@atomb
Copy link
Member

atomb commented Jun 10, 2022

Dafny programs can depend on assumptions of various forms:

  • Modules that aren't fully instantiated
  • Module members without bodies
  • Lemmas and functions marked {:axiom}
  • Explicit assume statements
  • Contracts on {:extern} functions and methods

This feature would involve a new command-line flag for Dafny that would instruct it to produce a report of all such assumptions, including suggestions for mitigating the risk of each (or indicating that a mitigation has already been applied).

Mitigations could include:

It may also be useful to report on which elements of the program depend on which assumptions (through a simple, static dependency analysis) to indicate the level of certainty attributable to each top-level proof.

@atomb
Copy link
Member Author

atomb commented Sep 27, 2022

This now exists as a plugin written on top of Dafny-in-Dafny as part of the merge of dafny-lang/compiler-bootstrap#11

@atomb atomb closed this as completed Sep 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty: hard Issues that will take more than a week to fix kind: enhancement Enhancements, feature requests, etc. These are NOT bugs, but ways we can improve Dafny part: resolver Resolution and typechecking
Projects
None yet
Development

No branches or pull requests

2 participants