Detail publikace
Template-Based Verification of Array-Manipulating Programs
analýza programů, formální verifikace, odvozování invariantů, invarianty smyček,
abstraktní interpretace, k-indukce, rozbalování smyček, abstraktní doména pro
pole, analýza obsahu polí
Tato práce se zabývá rámcem pro verifikaci programů 2LS, který kombinuje několik
verifikačních technik - konkrétně abstraktní domény, šablonové invarianty,
k-indukci, omezený model checking a řešení SAT/SMT. Charakteristickým rysem
přístupu používaného v 2LS je, že umožňuje bezproblémové kombinace různých
programových abstrakcí. V této práci zavádíme novou abstraktní šablonovou doménu
umožňující 2LS usuzovat o polích, přičemž k popisu hodnot, které jsou uloženy
uvnitř polí (včetně vnořených polí a dynamicky propojených datových struktur),
používáme libovolnou abstraktní doménu a pole jsou případně vnořena uvnitř jiných
struktur. Navržený přístup používá indexy polí k rozdělení každého pole na více
sousedících, nepřekrývajících se segmentů a pro každý z nich počítá jiný
invariant. Přístup ilustrujeme na programu pracujícím se seznamem polí a následně
představíme, jak nová doména umožnila 2LS zlepšit se v mezinárodní soutěži ve
verifikaci softwaru SV-COMP.
@inproceedings{BUT193768,
author="Viktor {Malík} and Tomáš {Vojnar} and Peter {Schrammel}",
title="Template-Based Verification of Array-Manipulating Programs",
booktitle="Taming the Infinities of Concurrency",
year="2024",
series="Lecture Notes in Computer Science",
volume="14660",
pages="206--224",
publisher="Springer Nature Switzerland AG",
address="Cham",
doi="10.1007/978-3-031-56222-8\{_}12",
isbn="978-3-031-56221-1",
url="https://link.springer.com/chapter/10.1007/978-3-031-56222-8_12"
}