An SMT-Based Approach to the Verification of Knowledge-Based Programs

  • Francesco Belardinelli
  • , Ioana Boureanu
  • , Vadim Malvone
  • , Fortunat Rajaona

Research output: Contribution to journalArticlepeer-review

Abstract

We give a general-purpose programming language in which programs can reason about their own knowledge. To specify what these intelligent programs know, we define a "program epistemic"logic, akin to a dynamic epistemic logic for programs. Our logic properties are complex, including programs introspecting into future state of affairs, i.e., reasoning now about facts that hold only after they and other threads will execute. To model aspects anchored in privacy, our logic is interpreted over partial observability of variables, thus capturing that each thread can "see"only a part of the global space of variables. We verify program-epistemic properties on such AI-centred programs. To this end, we give a sound translation of the validity of our program-epistemic logic into first-order validity, using a new weakest-precondition semantics and a book-keeping of variable assignment. We implement our translation and fully automate our verification method for well-established examples using SMT solvers.

Original languageEnglish
Article number3
JournalFormal Aspects of Computing
Volume37
Issue number1
DOIs
Publication statusPublished - 27 Dec 2024

Keywords

  • Epistemic Logic
  • Epistemic Predicate Transformers
  • Model Checking
  • Program Semantics

Fingerprint

Dive into the research topics of 'An SMT-Based Approach to the Verification of Knowledge-Based Programs'. Together they form a unique fingerprint.

Cite this