Detail předmětu
Formální analýza programů
FIT-FADAk. rok: 2021/2022
Přehled různých metod analýzy a verifikace programů s formálními základy. Model checking: základní principy, specifikace ověřovaných vlastností, temporální logiky, problém stavové exploze a jeho řešení, binární rozhodovací diagramy, automatizovaná abstrakce (a to zejména predikátová abstrakce klíčová v analýze programů). Různé přístupy ke statické analýze: analýza toku dat, ukazatelové analýzy, analýza s využitím omezení, typová analýza, abstraktní interpretace. Deduktivní verifikace, řešení SAT a SMT problémů, symbolická exekuce. Dynamická analýza s formálními základy, algoritmy jako FastTrack či dynamická redukce založená na částečném uspořádání.
Okruhy otázek k SDZ:
1. Temporální logiky LTL, CTL a CTL*.
2. Büchiho automaty a model checking LTL s jejich využitím.
3. CTL model checking.
4. Binární rozhodovací diagramy.
5. Predikátová abstrakce.
6. Abstraktní interpretace.
7. Analýza toku dat.
8. Řešení SAT a SMT problémů.
9. Symbolická exekuce.
10. Deduktivní verifikace.
Jazyk výuky
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prohloubení schopnosti číst a vytvářet formální zápisy.
Prerekvizity
Způsob a kritéria hodnocení
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
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
Doporučená literatura
Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, 2008.
Ben-Ari, M.: Principles of the Spin Model Checker, Springer, 2008.
Bertot Y., Castéran, P.: Interactive Theorem Proving and Program Development: Coq'Art: The Calculus of Inductive Constructions, Springer, 2010.
Bradley, A.R., Manna, Z.: The Calculus of Computation: Decision Procedures with Applications to Verification, Springer, 2007.
Clarke, E.M., Henzinger, Th.A., Veith, H., Bloem, R. (Eds.): Handbook of Model Checking, Springer International Publishing, 2018.
Edmund, M.C., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, 2000.
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual, Addison-Wesley Professional, 2003.
Chess, B., West,J.: Secure Programming with Static Analysis. Addison-Wesley Professional, 2007.
Khedker, U., Sanyal, A., Sathe, B.: Data Flow Analysis: Theory and Practice, CRC Press, 2009.
Kroening, D., Strichman, O.: Decision Procedures: An Algorithmic Point of View, Springer, 2008.
Materiály aktuálně volně dostupné na Internetu, a to zejména články a dokumentace týkající se počítačových nástrojů pro formální analýzu a verifikaci.
Moller, A., Schwartzbach, M.I.: Static Program Analysis, Department of Computer Science, Aarhus University, Denmark, 2018.
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, Springer-Verlag, 2005.
Rival, X., Yi, K.: Introduction to Static Analysis. An Abstract Interpretation Perspective. MIT Press, 2020.
Soubor materiálů prezentovaných na přednáškách a zveřejněných přes WWW.
Valmari, A.: The State Explosion Problem. In Reisig, W., Rozenberg, G.: Lectures on Petri Nets I: Basic Models, volume 1491 of Lecture Notes in Computer Science, pages 429-528. Springer-Verlag, 1998.
Zařazení předmětu ve studijních plánech
- Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný
- Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
- Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný
- Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Přehled existujících metod analýzy a verifikace programů s formálními základy, jejich možnosti, výhody a nevýhody.
- Model checking: základní principy, specifikace ověřovaných vlastností, temporální logiky.
- LTL model checking s využitím automatů.
- Problém stavové exploze a jeho řešení, efektivní ukládání stavových prostorů, binární rozhodovací diagramy.
- Redukce stavových prostorů, zejména redukce na základě částečného uspořádání akcí.
- Automatizovaná abstrakce, a to zejména predikátová abstrakce, Craigovy interpolanty.
- Symbolická exekuce.
- Deduktivní verifikace.
- Řešení SAT a SMT problémů.
- Statická analýza založená na analýze toku dat, ukazatelové analýzy.
- Statická analýza založená na omezeních, typová analýza.
- Abstraktní interpretace.
- Dynamická analýza s formálními základy, algoritmy jako FastTrack, dynamická redukce na základě částečného uspořádání.