Skip to content

Limitations

Arsalan Cheema edited this page Jul 2, 2021 · 5 revisions

dafny-of-python has some notable limitations, primarily due to relying on Dafny as the sole underlying verifier.

Translation Accuracy

There is no formal validation that the semantics of the program are preserved during translation. Inaccurate translations may occur and require manual modification of the output Dafny program.

Debugging

Debugging support is limited. In the case of a verification error, the user’s only option is to iteratively modify and invoke the verifier. While there is support for obtaining a counterexample through Dafny's VS Code extension, this is not available through its commandline interface. Ideally, dafny-of-python would also enable the user to understand the root cause of errors and provide example scenarios leading to the errors.

Language

As of Dafny v3.0.0, the following constructs are not supported:

  • for loops
  • continue statements
  • non-call expressions as statements
  • tuples with a single element

Expressiveness of Specifications

The specification constructs provided by Dafny may not be expressive enough in practice in order to capture the requirements of a program. For example, a program may verify without errors when implementing quicksort even though mergesort is required.

Concurrency

Dafny does not support verification of concurrent programs.

Clone this wiki locally