Course detail
Formal Analysis and Verification
FIT-FAVAcad. year: 2012/2013
Formal analysis and verification as a modern complement and/or
alternative to validating properties of systems by
means of simulation or testing. Selected formalisms for specifying properties to be checked. Model checking: formal verification
based on a systematic state space exploration. Various approaches to state space reductions, especially the partial order reduction. Methods of
automated abstraction of systems being examined, especially predicate
abstraction. Modern
methods of SAT and SMT solving and their aplications in formal analysis
and verification. Static analysis based on looking for error patterns,
data flow analysis, and abstract interpretation. A brief description of
several advanced computer-aided tools for formal
analysis and verification:
SMV, Spin, Slam, Blast,
Java
PathFinder, ARMC, FindBugs, etc.
(according to the current state of the art).
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Acquired knowledge about the significance and possibilities of using formal methods within the development of various kinds of systems and about their growing use in practice.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
- The meaning of the terms ``formal analysis and verification''. Capabilities and advantages of methods of formal analysis and verification. Various approaches to formal analysis and verification: model checking, static analysis, and theorem proving.
- State spaces, state space paths, abstractions of states and transitions. Interleaving and true concurrency. Linear and branching time. Safety, liveness, and fairness.
- Temporal logics CTL and CTL*, model checking systems whose properties are specified in CTL or CTL* using explicitly represented state spaces.
- Binary decision diagrams for a compact, symbolic representation of state spaces and their implementation.
- Lattices, fix points, and the Knaster-Tarski theorem as a formal basis for symbolic model checking.
- Symbolic model checking for CTL and CTL*.
- The temporal logic LTL, the correspondence between Büchi automata and LTL formulae, model checking systems whose properties are specified in LTL using Büchi automata.
- The partial order state space reduction. The symmetry state space reduction. An overview of other state space reduction methods. Compositional verification.
- Methods of automated abstraction of systems, the predicate abstraction, the counter-example guided abstraction refinement loop, Craig interpolation.
- Decision procedures and modern methods of SAT and SMT solving and their use in formal verification (e.g., in the predicate abstraction).
- Classical dataflow analyses (such as live variables, available expressions, etc.) as well as some selected, more advanced dataflow analyses (like some pointer analyses), their description via flow equations, and iterative methods of solving these methods.
- A brief note on abstract interpretation and its use for defining static analyses.
- Static analyses based on searching for bug patterns, a note on selected dynamic analyses, esp. those for detecting concurrency-related errors.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- An evaluated project for 30 points.
- A final examination for 70 points.
- To be allowed to sit for the written examination, a student is to earn at least 15 points during the semester.
- The passing boundary w.r.t. the ECTS assessment: 50 points.
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- The meaning of the terms ``formal analysis and verification''. Capabilities and advantages of methods of formal analysis and verification. Various approaches to formal analysis and verification: model checking, static analysis, and theorem proving.
- State spaces, state space paths, abstractions of states and transitions. Interleaving and true concurrency. Linear and branching time. Safety, liveness, and fairness.
- Temporal logics CTL and CTL*, model checking systems whose properties are specified in CTL or CTL* using explicitly represented state spaces.
- Binary decision diagrams for a compact, symbolic representation of state spaces and their implementation.
- Lattices, fix points, and the Knaster-Tarski theorem as a formal basis for symbolic model checking.
- Symbolic model checking for CTL and CTL*.
- The temporal logic LTL, the correspondence between Büchi automata and LTL formulae, model checking systems whose properties are specified in LTL using Büchi automata.
- The partial order state space reduction. The symmetry state space reduction. An overview of other state space reduction methods. Compositional verification.
- Methods of automated abstraction of systems, the predicate abstraction, the counter-example guided abstraction refinement loop, Craig interpolation.
- Decision procedures and modern methods of SAT and SMT solving and their use in formal verification (e.g., in the predicate abstraction).
- Classical dataflow analyses (such as live variables, available expressions, etc.) as well as some selected, more advanced dataflow analyses (like some pointer analyses), their description via flow equations, and iterative methods of solving these methods.
- A brief note on abstract interpretation and its use for defining static analyses.
- Static analyses based on searching for bug patterns, a note on selected dynamic analyses, esp. those for detecting concurrency-related errors.