CTL+FO Verification as Constraint Solving [article]

Tewodros A. Beyene, Marc Brockschmidt, Andrey Rybalchenko
2014 arXiv   pre-print
Expressing program correctness often requires relating program data throughout (different branches of) an execution. Such properties can be represented using CTL+FO, a logic that allows mixing temporal and first-order quantification. Verifying that a program satisfies a CTL+FO property is a challenging problem that requires both temporal and data reasoning. Temporal quantifiers require discovery of invariants and ranking functions, while first-order quantifiers demand instantiation techniques.
more » ... n this paper, we present a constraint-based method for proving CTL+FO properties automatically. Our method makes the interplay between the temporal and first-order quantification explicit in a constraint encoding that combines recursion and existential quantification. By integrating this constraint encoding with an off-the-shelf solver we obtain an automatic verifier for CTL+FO.
arXiv:1406.3988v3 fatcat:jhzwsqljizcgbmwqrohktsh3rq