CUT TO:
INT. PROJECT ARCHIVE — STORYBOARD ROOM
The USER opens Program Specification & Verification with Dafny.
DIVAKAR DESSAI
CUT TO:
The USER opens Program Specification & Verification with Dafny.
DIVAKAR DESSAI
CASE FILE / SENG2011 / Formal Methods
Used Dafny predicates, contracts and quantifiers to formally specify and verify program properties across all valid inputs.
01–02 / OPENING SEQUENCE
01 / Establishing Shot
Traditional tests demonstrate behaviour for selected inputs, while the assignment required expressing properties strongly enough for a verifier to prove them for every permitted input.
02 / Wide Shot
The project introduced formal specification and verification using Dafny.
03 / CHARACTER NOTE
Subject
Divakar Dessai
Production
Program Specification & Verification with Dafny
Take
03 / Role
Role notes
DIVAKAR DESSAI
04 / CLOSE-UP
Requirements expressed informally in English had to be translated into precise mathematical statements without accidentally weakening or over-constraining them.
05 / TRACKING SHOT
A plan emerges.
I represented requirements using predicates, quantifiers, preconditions and postconditions and iteratively refined them until Dafny could establish the required proofs.
06 / INSERT SHOTS
The system takes shape.
07 / DIRECTOR'S NOTES
Things we decided along the way
01
Specified desired behaviour independently from implementation details.
02
Used quantified expressions to describe whole-array properties.
03
Included circular boundary relationships explicitly in specifications.
design decisions
somewhere mid-build
08 / RETAKES
Naturally, not everything cooperates.
09 / FINAL SHOT
Developed practical experience with formal verification.
Learned to distinguish tests from mathematical correctness arguments.
Improved precision when specifying software behaviour.
10 / PRODUCTION NOTES
The tools behind the scenes.
11 / BEHIND THE SCENES
FADE OUT.
USER closes the file.
One project down. A few more stories left.
DIVAKAR DESSAI