Interface Building for Software by Modular Three-Valued Abstraction Refinement
Pritam Roy

TL;DR
This paper presents a new algorithm for generating safe, permissive interface graphs for C functions using three-valued abstraction, improving modular software verification and testing.
Contribution
It introduces a novel algorithm for interface graph computation with three-valued abstraction, implemented in the TICC tool, enhancing modular verification and testing.
Findings
The algorithm produces safe, permissive interface graphs.
Implementation in TICC demonstrates effectiveness.
Application as offline test-suite improves testing process.
Abstract
Verification of software systems is a very hard problem due to the large size of program state-space. The traditional techniques (like model checking) do not scale; since they include the whole state-space by inlining the library function codes. Current research avoids these problem by creating a lightweight representation of the library in form of an "interface graph" (call sequence graph). In this paper we introduce a new algorithm to compute a safe, permissive interface graph for C-type functions. In this modular analysis, each function transition is summarized following three-valued abstraction semantics. There are two kinds of abstraction used here. The global abstraction contains predicates over global variables only; however the local abstraction inside each function may also contain the local variables. The abstract summary needs refinement to guarantee safety and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
