Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Theory of linear and integer programming
Theory of linear and integer programming
On the axiomatization of “if-then-else”
SIAM Journal on Computing
Equational bases for if-then-else
SIAM Journal on Computing
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Techniques for verifying superscalar microprocessors
DAC '96 Proceedings of the 33rd annual Design Automation Conference
Term rewriting and all that
Advanced compiler design and implementation
Advanced compiler design and implementation
Conditional Expressions with Equality Tests
Journal of the ACM (JACM)
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic execution and program testing
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Efficient weakest preconditions
Information Processing Letters
E-generalization using grammars
Artificial Intelligence
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
Calysto: scalable and precise extended static checking
Proceedings of the 30th international conference on Software engineering
Efficient symbolic simulation of low level software
Proceedings of the conference on Design, automation and test in Europe
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Associative-commutative rewriting on large terms
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
JPF-SE: a symbolic execution extension to Java PathFinder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Equational binary decision diagrams
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Structural abstraction of software verification conditions
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Demand-driven compositional symbolic execution
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Quantified invariant generation using an interpolating saturation prover
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A fast linear-arithmetic solver for DPLL(T)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
F-SOFT: software verification platform
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
LLBMC: bounded model checking of C and C++ programs using a compiler IR
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Alternate and learn: finding witnesses without looking all over
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Enhancing symbolic execution with built-in term rewriting and constrained lazy initialization
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Under-Approximating loops in c programs for fast counterexample detection
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
Symbolic execution [28] is a popular program verification technique, where the program inputs are initialized to unknown symbolic values, and then propagated along program paths with the help of decision procedures. This technique has two main bottlenecks: (a) the number of program execution paths to be explored may be exponential, and, (b) the state representation (map from variables to terms) may blow-up. We propose a new program verification technique that addresses the problems by (a) performing a work list based analysis that handles join points, and (b) simplifying the intermediate state representation by using term rewriting. In addition, our technique tries to compact expressions generated during analysis of program loops by using a term generalization technique based on anti-unification [40], [42]. We have implemented the proposed method in the F-Soft verification framework using the Maude term rewriting engine. Preliminary experiments show that the proposed method is effective in improving verification times on real-life benchmarks.