Effective Automated Software Verification: A Multilayered Approach
Efektivní automatická verifikace software: Vícevrstvý přístup
dizertační práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/180032/thumbnail.png?sequence=8&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/180032Identifikátory
SIS: 177534
Kolekce
- Kvalifikační práce [11264]
Autor
Vedoucí práce
Oponent práce
Rümmer, Philipp
Bjørner, Nikolaj
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
21. 3. 2023
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Prospěl/a
Klíčová slova (česky)
automatická verifikace software|formální verifikace|model checking|Hornovy klauzule s omezujícími podmínkami|Craigova interpolace|SMTKlíčová slova (anglicky)
automated verification of software|formal verification|model checking|constrained Horn clauses|Craig interpolation|SMTV posledních letech automatická formální verifikace software pokročila z několika výzkumných laboratoří do rozsáhlých aplikací, jako je cloudová infrastruktura a smart kontrakty. Formální verifikační techniky založené na technice model checking poskytují nezbytné záruky úplným a automatickým zkoumáním chování systémů. Navíc poskytují svědky (vysvětlení) pro výsledek své analýzy: chybové chování, pokud nějaké existuje, nebo důkaz o absenci takového chování. Obecný problém, který se automatická verifikace software snaží vyřešit, je však nerozhodnu- telný. Navzdory této teoretické překážce je v mnoha případech, které se v praxi vyskytují, docela efektivní. Tento (možná překvapivý) úspěch připisujeme kombinaci faktorů: neutuchajícímu úsilí výzkumníků, kteří přicházejí s novými verifikačními postupy pro třídy problémů, kde existující techniky narážejí na své možnosti; úžasný pokrok v základních technologiích řešení splnitel- nosti, zvláště v Satisfiability Modulo Theories (SMT); a zvýšení dostupného výpočetního výkonu prostřednictvím paralelních a cloudových výpočtů. Nicméně rostoucí složitost systémů v reálném světě představuje nové výzvy pro formální verifikace,...
In recent years, automated formal verification of software has progressed from a few research labs into large-scale applications, such as cloud infrastructure and smart contracts. Formal verification techniques based on model checking provide the necessary guarantees by exploring systems' behaviour exhaustively and automatically. Moreover, they provide witnesses (explana- tions) for the result of their analysis: a faulty behaviour, if there exists one, or a proof of the absence of such behaviour. However, the general problem that automated software verification is trying to solve is un- decidable. Despite this theoretical barrier, it is quite efficient on many instances that arise in practice. We ascribe this (perhaps surprising) success to a combination of factors: the relentless effort of researchers that come up with new verification procedures to tackle classes of problems where existing techniques struggle; amazing progress in the foundational technologies of satis- fiability solving, especially in Satisfiability Modulo Theories (SMT); and increase of available computational power through parallel and cloud computing. Nevertheless, the growing complex- ity of real-world systems poses new challenges for formal verification, especially for the scalability of the techniques. The task of automated software...