Improving strategies via SMT solving

From MaRDI portal
Publication:3000582

DOI10.1007/978-3-642-19718-5_13zbMATH Open1326.68093arXiv1101.2812OpenAlexW3121218067MaRDI QIDQ3000582FDOQ3000582


Authors: Thomas Martin Gawlitza, David Monniaux Edit this on Wikidata


Publication date: 19 May 2011

Published in: Programming Languages and Systems (Search for Journal in Brave)

Abstract: We consider the problem of computing numerical invariants of programs by abstract interpretation. Our method eschews two traditional sources of imprecision: (i) the use of widening operators for enforcing convergence within a finite number of iterations (ii) the use of merge operations (often, convex hulls) at the merge points of the control flow graph. It instead computes the least inductive invariant expressible in the domain at a restricted set of program points, and analyzes the rest of the code en bloc. We emphasize that we compute this inductive invariant precisely. For that we extend the strategy improvement algorithm of [Gawlitza and Seidl, 2007]. If we applied their method directly, we would have to solve an exponentially sized system of abstract semantic equations, resulting in memory exhaustion. Instead, we keep the system implicit and discover strategy improvements using SAT modulo real linear arithmetic (SMT). For evaluating strategies we use linear programming. Our algorithm has low polynomial space complexity and performs for contrived examples in the worst case exponentially many strategy improvement steps; this is unsurprising, since we show that the associated abstract reachability problem is Pi-p-2-complete.


Full work available at URL: https://arxiv.org/abs/1101.2812




Recommendations



Cites Work


Cited In (7)

Uses Software





This page was built for publication: Improving strategies via SMT solving

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q3000582)