-
Network protocols
-
Security protocols
-
Cache consistency
-
Hardware designs
-
Software specifications
-
Graphical user interfaces
This is an exercise in modeling, verification and abstraction rather
than in learning another formal method. The problem can come from
your favourite domain, or be one of the challenge problems given at various
workshops on formal methods. Consistency checking is a problem
in a lot of domains. So, formalizing something and putting it into
one of the model-checkers or theorem-provers we learned in this semester
and checking some essential properties is a perfect project. Again,
a statement of experience is important. How long did the verification
take? What problems did you encounter? What tricks did you
use to solve these problems?
The "deliverable" of this project is a project report. In a
survey-style paper, this is the entire deliverable. Explain who does
what, what are the basic ideas, illustrate with examples, compare and contrast.
In a "learn a method"-style paper, explain enough about the method so the
readers can follow the example, then include the description of the example,
followed by model of the example and the properties you verified; finally,
discuss the experience. In a verification-style paper, include
the description of the system you verified, the model, the properties,
the results of the verification, and the experience.