Program Verification via Predicate Constraint Satisfiability Modulo Theories

07/07/2020
by   Hiroshi Unno, et al.
0

This paper presents a verification framework based on a new class of predicate Constraint Satisfaction Problems called pCSP where constraints are represented as clauses modulo first-order theories over function variables and predicate variables that may represent well-founded predicates. The verification framework generalizes an existing one based on Constrained Horn Clauses (CHCs) to arbitrary clauses, function variables, and well-foundedness constraints. While it is known that the satisfiability of CHCs and the validity of queries for Constrained Logic Programs (CLP) are inter-reducible, we show that, thanks to the added expressiveness, pCSP is expressive enough to express muCLP queries. muCLP itself is a new extension of CLP that we propose in this paper. It extends CLP with arbitrarily nested inductive and co-inductive predicates and is equi-expressive as first-order fixpoint logic. We show that muCLP can naturally encode a wide variety of verification problems including but not limited to termination/non-termination verification and even full modal mu-calculus model checking of programs written in various languages. To establish our verification framework, we present (1) a sound and complete reduction algorithm from muCLP to pCSP and (2) a constraint solving method for pCSP based on stratified CounterExample-Guided Inductive Synthesis (CEGIS) of (co-)inductive invariants, ranking functions, and Skolem functions witnessing existential quantifiers. Stratified CEGIS combines CEGIS with stratified families of templates to achieve relative completeness and faster and stable convergence of CEGIS by avoiding the overfitting problem. We have implemented the proposed framework and obtained promising results on diverse verification problems that are beyond the scope of the previous verification frameworks based on CHCs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/04/2021

Constraint-based Relational Verification

In recent years they have been numerous works that aim to automate relat...
research
12/15/2017

Invariant Synthesis for Incomplete Verification Engines

We propose a framework for synthesizing inductive invariants for incompl...
research
04/25/2023

Hyperproperty Verification as CHC Satisfiability

Hyperproperties govern the behavior of a system or systems across multip...
research
01/15/2023

Quantitative Verification With Neural Networks For Probabilistic Programs and Stochastic Systems

We present a machine learning approach to quantitative verification. We ...
research
02/07/2021

Neural Termination Analysis

We introduce a novel approach to the automated termination analysis of c...
research
08/04/2020

Trace Logic for Inductive Loop Reasoning

We propose trace logic, an instance of many-sorted first-order logic, to...
research
08/07/2022

UCLID5: Multi-Modal Formal Modeling, Verification, and Synthesis

UCLID5 is a tool for the multi-modal formal modeling, verification, and ...

Please sign up or login with your details

Forgot password? Click here to reset