UMC4M: A Verification Tool via Program Execution

Most of the software model checkers available for code level verification can only verify safety properties since desired properties are specified by assertions. However, other temporal properties such as liveness cannot be verified with these tools. To tackle this problem, we develop a verification tool called UMC4M to verify full regular temporal properties of programs. UMC4M takes a modeling, simulation and verification language (MSVL) program M and a desired property specified by a propositional projection temporal logic (PPTL) formula P as its input. \(\lnot P\) is then translated to an MSVL program M. Thus, the property can be verified by checking whether there is an acceptable execution of “\(M~and~M'\)”, which can be solved with MSVL compiler MC. Further, UMC4M is used to verify the dining cryptographers protocol.

[1]  Bin Gu,et al.  Verifying safety critical task scheduling systems in PPTL axiom system , 2016, J. Comb. Optim..

[2]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[3]  Carsten Sinz,et al.  LLBMC: Bounded Model Checking of C and C++ Programs Using a Compiler IR , 2012, VSTTE.

[4]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

[5]  Kai Yang,et al.  A compiler for MSVL and its applications , 2017, Theor. Comput. Sci..

[6]  Meng Wang,et al.  Verifying Full Regular Temporal Properties of Programs via Dynamic Program Execution , 2019, IEEE Transactions on Reliability.

[7]  Maciej Koutny,et al.  A framed temporal logic programming language , 2004, Journal of Computer Science and Technology.

[8]  Zhenhua Duan,et al.  Operational semantics of Framed Tempura , 2008, J. Log. Algebraic Methods Program..

[9]  Daniel Kroening,et al.  CBMC - C Bounded Model Checker - (Competition Contribution) , 2014, TACAS.

[10]  Marc Brockschmidt,et al.  T2: Temporal Property Verification , 2016, TACAS.

[11]  Cong Tian,et al.  A canonical form based decision procedure and model checking approach for propositional projection temporal logic , 2016, Theor. Comput. Sci..

[12]  Andreas Podelski,et al.  Termination proofs for systems code , 2006, PLDI '06.

[13]  Zhenhua Duan,et al.  A mechanism of function calls in MSVL , 2016, Theor. Comput. Sci..

[14]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[15]  Alessandro Armando,et al.  Bounded model checking of software using SMT solvers instead of SAT solvers , 2006, International Journal on Software Tools for Technology Transfer.

[16]  Zhenhua Duan,et al.  Verifying temporal properties of programs: A parallel approach , 2017, J. Parallel Distributed Comput..

[17]  Li Zhang,et al.  A decision procedure for propositional projection temporal logic with infinite models , 2008, Acta Informatica.

[18]  Haiyang Wang,et al.  Model Checking Multi-agent Systems with APTL , 2017, Ad Hoc Sens. Wirel. Networks.

[19]  Cong Tian,et al.  A practical decision procedure for Propositional Projection Temporal Logic with infinite models , 2014, Theor. Comput. Sci..

[20]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[21]  David Chaum,et al.  The dining cryptographers problem: Unconditional sender and recipient untraceability , 1988, Journal of Cryptology.

[22]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[23]  Sebastian Fischmeister,et al.  RiTHM: a tool for enabling time-triggered runtime verification for C programs , 2013, ESEC/FSE 2013.

[24]  Maciej Koutny,et al.  Framed temporal logic programming , 2008, Sci. Comput. Program..

[25]  George Candea,et al.  Parallel symbolic execution for automated real-world software testing , 2011, EuroSys '11.

[26]  Dirk Beyer,et al.  CPAchecker: A Tool for Configurable Software Verification , 2009, CAV.

[27]  Zhenhua Duan,et al.  An extended interval temporal logic and a framing technique for temporal logic programming , 1996 .

[28]  Zhenhua Duan,et al.  Model checking concurrent systems with MSVL , 2016, Science China Information Sciences.

[29]  Zhenhua Duan,et al.  Making CEGAR More Efficient in Software Model Checking , 2014, IEEE Transactions on Software Engineering.

[30]  Andreas Podelski,et al.  Fairness Modulo Theory: A New Approach to LTL Software Model Checking , 2015, CAV.

[31]  C.-H. Luke Ong,et al.  More effective interpolations in software model checking , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).