Computer Aided Verification
Professor: Natasha Sharygina
Assistant: Simone Fulvio Rollini
Course type: Lecture
Value in ECTS: 6
Bibliographic references available on the University Library website
Academic year 2012/2013 - Spring semester – not offered
Contents
As the complexity of computer systems grows, their reliability and security can
no longer be sufficiently controlled by the traditional approaches of test-ing
and simulation. Model checking and related computer aided verification techniques
are practical alternatives to simulation for debugging complex systems.
These methods allow the designer to verify that a mathematical model of
a system satisfies the system’s formalised requirements, or to systematically
seek for cases where it fails to do so. This approach has been most effective
in the analysis of hardware designs, and is an integral part of the design
cycle in companies like Intel, IBM, and Cadence. Much recent research has
focused on applying similar techniques to improve the reliability of systems
software. The course introduces the theory and practice of formal methods for
the design and analysis of concurrent and embedded systems. The emphasis
is on the underlying logical and automata-theoretic concepts, the algorithmic
solutions, and heuristics to cope with the high computational complexity.
Topics include: Models and semantics of reactive systems: formal models
for concurrent systems with software and hardware components; Verification
algorithms: temporal logic by model checking, theory of omega automata,
equivalences and refinement; Verification techniques: symbolic model checking,
on-the-fly model checking, state space reduction methods, compositional
reasoning, and automatic abstraction. Students will experiment with checking the system correctness by writing formal proofs manually and by applying fully
automated verification tools.