A Novel Symbolic Approach to Verifying Epistemic Properties of Programs

We introduce a framework for the symbolic verification of epistemic properties of programs expressed in a class of general-purpose programming languages. To this end, we reduce the verification problem to that of satisfiability of first-order formulae in appropriate theories. We prove the correctness of our reduction and we validate our proposal by applying it to two examples: the dining cryptographers problem and the ThreeBallot voting protocol. We put forward an implementation using existing solvers, and report experimental results showing that the approach can perform better than state-of-the-art symbolic model checkers for temporal-epistemic logic.

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

[2]  Christoph Haase,et al.  Subclasses of presburger arithmetic and the weak EXP hierarchy , 2014, CSL-LICS.

[3]  Wojciech Penczek,et al.  VerICS 2007 - a Model Checker for Knowledge and Real-Time , 2008, Fundam. Informaticae.

[4]  Wojciech Penczek,et al.  Comparing BDD and SAT Based Techniques for Model Checking Chaum's Dining Cryptographers Protocol , 2006, Fundam. Informaticae.

[5]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[6]  Warren D. Smith Three Voting Protocols: ThreeBallot, VAV, and Twin , 2007, EVT.

[7]  Jan A. Plaza,et al.  Logics of public communications , 2007, Synthese.

[8]  James Brotherston,et al.  A Generic Cyclic Theorem Prover , 2012, APLAS.

[9]  Leslie Pack Kaelbling,et al.  The Synthesis of Digital Machines With Provable Epistemic Properties , 1986, TARK.

[10]  Alessandro Cimatti,et al.  A Lazy Approach to Temporal Epistemic Logic Model Checking , 2016, AAMAS.

[11]  Yan Zhang Computational Properties of Epistemic Logic Programs , 2006, KR.

[12]  Alessio Lomuscio,et al.  MCMAS: an open-source model checker for the verification of multi-agent systems , 2017, International Journal on Software Tools for Technology Transfer.

[13]  Ron van der Meyden,et al.  A Knowledge Based Analysis of Cache Coherence , 2004, ICFEM.

[14]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[15]  Panagiotis Kouvaros,et al.  Parameterised verification for multi-agent systems , 2016, Artif. Intell..

[16]  Moshe Y. Vardi,et al.  Temporal property verification as a program analysis task , 2012, Formal Methods Syst. Des..

[17]  Mads Dam,et al.  ENCoVer: Symbolic Exploration for Information Flow Security , 2012, 2012 IEEE 25th Computer Security Foundations Symposium.

[18]  Alessandro Armando,et al.  SATMC: A SAT-Based Model Checker for Security-Critical Systems , 2014, TACAS.

[19]  Alessio Lomuscio,et al.  Agent-Based Refinement for Predicate Abstraction of Multi-Agent Systems , 2016, ECAI.

[20]  Ronald Fagin,et al.  Reasoning about knowledge , 1995 .

[21]  Alessio Lomuscio,et al.  Verifying Fault Tolerance and Self-Diagnosability of an Autonomous Underwater Vehicle , 2011, IJCAI.

[22]  Ron van der Meyden,et al.  MCK: Model Checking the Logic of Knowledge , 2004, CAV.

[23]  Alessio Lomuscio,et al.  Automatic verification of temporal-epistemic properties of cryptographic protocols , 2009, J. Appl. Non Class. Logics.

[24]  Corina S. Pasareanu,et al.  Symbolic PathFinder: symbolic execution of Java bytecode , 2010, ASE.

[25]  Andrzej Zbrzezny,et al.  Efficient Model Checking Timed and Weighted Interpreted Systems Using SMT and SAT Solvers , 2016, KES-AMSTA.

[26]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[27]  Larry J. Stockmeyer,et al.  The Polynomial-Time Hierarchy , 1976, Theor. Comput. Sci..

[28]  Michael Gelfond,et al.  Logic programming and reasoning with incomplete information , 1994, Annals of Mathematics and Artificial Intelligence.