Dafny 1.9.8
Here are the major changes from version 1.9.7 to version 1.9.8:
Language:
- Binding if-then-else expressions (e.g.,
if x :| P(x) then S else T) - New syntax for module export sets
- Added bitvector types and operations
- Added user-defined subset types and changed
natinto a built-in subset type - Added first-cut design of two-state lemmas
- Changed syntax of type coercions from
int(x)tox as int, etc. - Added
assert ... by { ... }statement - Braces around cases of alternative
if/whilestatements now optional, just like formatchstatements - Allow
readsclauses of lambda expressions to take a comma-delimited list of frame expressions, not just one frame expression - Renamed
real.Truncto the more appropriate namereal.Floor - Multiset of objects allowed in
readsclauses - Enforce that a function is allocated in the state in which it is invoked
- A warning is generated for body-less loops and forall statements
- Warning about shadowed variables can be suppressed with the
:warnShadowing falseattribute - More elaborate
:autocontracts
Type checking:
- Proper handling of subtypes
- Fixed resolution bugs related to modules
Verification:
- New design for
:fuelannotations :opaqueimplemented in terms of:fuel- Fixed a Mono warning in VerificationTask
- Improved translation of set comprehensions
- Fixed missing checks related to multi-dimensional arrays
- Improved encoding of let-such-that expressions
- Improved auto triggers, and make them the default
- Consequence axioms trigger off of any fuel
- Various other improvements and bug fixes
IDEs:
- Tooltips showing any inverter rewrites of forall-statements
- Italicize attributes and highlight recognized attributes in the VS IDE
- Improved syntax highlighting in VS IDE
- Goto definition (F12) in VS IDE
- F5 to toggle start/stop verifier and F11 to toggle start/stop resolver in VS IDE
- Improved pretty printing
Compiler:
- Command-line option
/out:<file>to specify output filename for the generated.cs,.dll, or.exefiles - Added
/deprecatedflag to control which kinds of deprecation messages to bother the user with - Embed Dafny source in compiled assembly
- Various bug fixes