Logical Characterization of Coherent Uninterpreted Programs

07/26/2021
by   Hari Govind V K, et al.
0

An uninterpreted program (UP) is a program whose semantics is defined over the theory of uninterpreted functions. This is a common abstraction used in equivalence checking, compiler optimization, and program verification. While simple, the model is sufficiently powerful to encode counter automata, and, hence, undecidable. Recently, a class of UP programs, called coherent, has been proposed and shown to be decidable. We provide an alternative, logical characterization, of this result. Specifically, we show that every coherent program is bisimilar to a finite state system. Moreover, an inductive invariant of a coherent program is representable by a formula whose terms are of depth at most 1. We also show that the original proof, via automata, only applies to programs over unary uninterpreted functions. While this work is purely theoretical, it suggests a novel abstraction that is complete for coherent programs but can be soundly used on arbitrary uninterpreted (and partially interpreted) programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/01/2018

Decidable Verification of Uninterpreted Programs

verifying uninterpreted programs---programs that work over arbitrary da...
research
10/24/2019

What's Decidable About Program Verification Modulo Axioms?

We consider the decidability of the verification problem of programs mod...
research
03/02/2021

Dynamic Verification of C/C++11 Concurrency over Multi Copy Atomics

We investigate the problem of runtime analysis of C11 programs under Mul...
research
05/10/2022

Strong Equivalence of Logic Programs with Ordered Disjunction: a Logical Perspective

Logic Programs with Ordered Disjunction (LPODs) extend classical logic p...
research
10/29/2018

Trace Abstraction Modulo Probability

We propose trace abstraction modulo probability, a proof technique for v...
research
01/23/2013

Hybrid Probabilistic Programs: Algorithms and Complexity

Hybrid Probabilistic Programs (HPPs) are logic programs that allow the p...
research
10/16/2020

Logical Relations as Types: Proof-Relevant Parametricity for Program Modules

The theory of program modules is of interest to language designers not o...

Please sign up or login with your details

Forgot password? Click here to reset