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"
}