Course detail
Formal Program Analysis
FIT-FADAcad. year: 2018/2019
An overview of various methods of analysis and verification of programs with formal roots. Model checking of finite-state systems: the basic principles, specification of properties to be verified, temporal logics, the state explosion problem and existing approaches to solving it, efficient storage of state spaces, state space reductions, modular verification, automated abstraction (with a stress on predicate abstraction that plays a key role in software model checking). Model checking of infinite-state systems: cut-offs, symbolic model checking, abstraction, automated induction. Theorem proving, SAT solving, SMT solving. Various ways of static analysis, dataflow analysis, constraint-based analysis, type analysis, metacompilation, abstract interpretation. Dynamic analysis with a formal basis, algorithms like Eraser or Daikon, applications automated inference methods in dynamic analysis.
Language of instruction
Mode of study
Guarantor
Department
Learning outcomes of the course unit
A deeper ability to read and create formal texts.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Recommended reading
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking, MIT Press, 2000. ISBN 0-262-03270-8
Monin, J.F., Hinchey, M.G.: Understanding Formal Methods, Springer-Verlag, 2003. ISBN 1-852-33247-6
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, Springer-Verlag, 2005. ISBN 3-540-65410-0
Schwartzbach, M.I.: Lecture Notes on Static Analysis, BRICS, Department of Computer Science, University of Aarhus, Denmark, 2006.
Valmari, A.: The State Explosion Problem. In Reisig, W., Rozenberg, G.: Lectures on Petri Nets I: Basic Models, Lecture Notes in Computer Science, č.1491, s. 429-528. Springer-Verlag, 1998. ISBN 3-540-65306-6
Classification of course in study plans
- Programme CSE-PHD-4 Doctoral
branch DVI4 , 0 year of study, winter semester, elective
- Programme CSE-PHD-4 Doctoral
branch DVI4 , 0 year of study, winter semester, elective
- Programme CSE-PHD-4 Doctoral
branch DVI4 , 0 year of study, winter semester, elective
- Programme CSE-PHD-4 Doctoral
branch DVI4 , 0 year of study, winter semester, elective
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- An overview of the existing methods of formal analysis and verification of programs, their possibilities, advantages and disadvantages.
- Model checking of finite-state systems: the basic principle, specification of properties to be checked, temporal logics.
- The state explosion problem and possibilities of fighting it, efficient state space storage, state space reduction.
- Modular verification, automated abstraction with a stress on predicate abstraction, Craig interpolants.
- Model checking of infinite-state systems: cut-offs, symbolic verification, abstraction, automated induction.
- Theorem proving.
- SAT solving, SMT solving.
- Static analysis based on dataflow analysis.
- Constraint-based static analysis.
- Type analysis.
- Metacompilation.
- Abstract interpretation.
- Dynamic analysis on a formal basis, algorithms like Eraser and Daikon, using automated inference methods in dynamic analysis.
Guided consultation in combined form of studies
Teacher / Lecturer