Tags:fixpoint logic, program verification and temporal properties
Abstract:
This paper presents a novel program verification method based on Mu-Arithmetic, a first-order logic with integer arithmetic and predicate-level least/greatest fixpoints. We first show that linear-time temporal property verification of first-order recursive programs can be reduced to the validity checking of a Mu-Arithmetic formula. We also propose a method for checking the validity of Mu-Arithmetic formulas. The method generalizes a reduction from termination verification to safety property verification and reduces validity of a Mu-Arithmetic formula to satisfiability of CHCs, which can then be solved by using off-the-shelf CHC solvers. We have implemented an automated prover for Mu-Arithmetic based on the proposed method. By combining the automated prover with a known reduction and the reduction from first-order recursive programs above, we obtain: (i) for while-programs, an automated verification method for arbitrary properties expressible in the modal mu-calculus, and (ii) for first-order recursive programs, an automated verification method for arbitrary linear-time properties expressible in Buchi automata. We have applied our Mu-Arithmetic prover to formulas obtained from various verification problems, and obtained promising experimental results.
Temporal Verification of Programs via First-Order Fixpoint Logic