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

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.

Authors

Institutions

Publication Details

Journal
Formal Aspects of Computing
Published
2024-10-11
DOI
https://doi.org/10.1145/3700150
Citations
1
Primary Topic
Logic, Reasoning, and Knowledge
Type
article
Field-Weighted Citation Impact
0.35
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

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

Vadim Malvone, Ioana Boureanu, Fortunat Rajaona, Francesco Belardinelli
1 citations
Formal Aspects of Computing
Logic, Reasoning, and Knowledge
0.35
article

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

Vadim Malvone, Ioana Boureanu, Fortunat Rajaona, Francesco Belardinelli
article en
1 citations

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.

Formal Aspects of ComputingVol. 37(1)
Télécom Paris (FR), University of Surrey (GB), Institut Polytechnique de Paris (FR), Imperial College London (GB)
Openalex Percentile: Top 33%
Logic, Reasoning, and Knowledge
0.35
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.