Effective Automated Software Verification: A Multilayered Approach
Efektivní automatická verifikace software: Vícevrstvý přístup
dissertation thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/180032Identifiers
Study Information System: 177534
Collections
- Kvalifikační práce [11993]
Author
Advisor
Referee
Rümmer, Philipp
Bjørner, Nikolaj
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science - Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
21. 3. 2023
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Pass
Keywords (Czech)
automatická verifikace software|formální verifikace|model checking|Hornovy klauzule s omezujícími podmínkami|Craigova interpolace|SMTKeywords (English)
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...
