TacoFlow: optimizing SAT program verification using dataflow analysis

In previous work, we presented TACO, a tool for efficient bounded verification. TACO translates programs annotated with contracts to a SAT problem which is then solved resorting to off-the-shelf SAT-solvers. TACO may deem propositional variables used in the description of a program initial states as...

Descripción completa

Detalles Bibliográficos
Autores: Cuervo Parrino, Bruno, Galeotti, Juan Pablo, Garbervetsky, Diego David, Frias, Marcelo Fabian
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2015
País:Argentina
Institución:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositorio:CONICET Digital (CONICET)
Idioma:inglés
OAI Identifier:oai:ri.conicet.gov.ar:11336/37732
Acceso en línea:http://hdl.handle.net/11336/37732
Access Level:acceso abierto
Palabra clave:Dataflow Analysis
Java-Like Programs Verification
Sat-Based Verification
https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
Descripción
Sumario:In previous work, we presented TACO, a tool for efficient bounded verification. TACO translates programs annotated with contracts to a SAT problem which is then solved resorting to off-the-shelf SAT-solvers. TACO may deem propositional variables used in the description of a program initial states as being unnecessary. Since the worst-case complexity of SAT (a known NP problem) depends on the number of variables, most times this allows us to obtain significant speed ups. In this article, we present TacoFlow, an improvement over TACO that uses dataflow analysis in order to also discard propositional variables that describe intermediate program states. We present an extensive empirical evaluation that considers the effect of removing those variables at different levels of abstraction, and a discussion on the benefits of the proposed approach.