DeepAI AI Chat
Log In Sign Up

Combining Forward and Backward Abstract Interpretation of Horn Clauses

by   Alexey Bakhirkin, et al.

Alternation of forward and backward analyses is a standard technique in abstract interpretation of programs, which is in particular useful when we wish to prove unreachability of some undesired program states. The current state-of-the-art technique for combining forward (bottom-up, in logic programming terms) and backward (top-down) abstract interpretation of Horn clauses is query-answer transformation. It transforms a system of Horn clauses, such that standard forward analysis can propagate constraints both forward, and backward from a goal. Query-answer transformation is effective, but has issues that we wish to address. For that, we introduce a new backward collecting semantics, which is suitable for alternating forward and backward abstract interpretation of Horn clauses. We show how the alternation can be used to prove unreachability of the goal and how every subsequent run of an analysis yields a refined model of the system. Experimentally, we observe that combining forward and backward analyses is important for analysing systems that encode questions about reachability in C programs. In particular, the combination that follows our new semantics improves the precision of our own abstract interpreter, including when compared to a forward analysis of a query-answer-transformed system.


page 1

page 2

page 3

page 4


Inductive Program Synthesis via Iterative Forward-Backward Abstract Interpretation

A key challenge in example-based program synthesis is the gigantic searc...

Probabilistic Output Analyses for Deterministic Programs — Reusing Existing Non-probabilistic Analyses

We consider reusing established non-probabilistic output analyses (eithe...

Backwards State-space Reduction for Planning in Dynamic Knowledge Bases

In this paper we address the problem of planning in rich domains, where ...

Forward and Backward Feature Selection for Query Performance Prediction

The goal of query performance prediction (QPP) is to automatically estim...

Verified Self-Explaining Computation

Common programming tools, like compilers, debuggers, and IDEs, crucially...

Empirical Policy Evaluation with Supergraphs

We devise and analyze algorithms for the empirical policy evaluation pro...

Neural Nets via Forward State Transformation and Backward Loss Transformation

This article studies (multilayer perceptron) neural networks with an emp...