Automating Induction for Solving Horn Clauses
Hiroshi Unno, Sho Torii

TL;DR
This paper introduces a new method for solving Horn clause constraints using inductive theorem proving, enabling automated verification of complex relational properties across various programming paradigms.
Contribution
It presents a novel Horn constraint solving approach based on inductive theorem proving, with a tailored proof system and SMT integration, applicable to diverse program specifications.
Findings
Successfully verified relational properties like functional equivalence and non-interference.
Implemented a tool for OCaml that shows promising preliminary results.
Enables reasoning about non-terminating, non-deterministic, and higher-order recursive functions.
Abstract
Verification problems of programs written in various paradigms (such as imperative, logic, concurrent, functional, and object-oriented ones) can be reduced to problems of solving Horn clause constraints on predicate variables that represent unknown inductive invariants. This paper presents a novel Horn constraint solving method based on inductive theorem proving: the method reduces Horn constraint solving to validity checking of first-order formulas with inductively defined predicates, which are then checked by induction on the derivation of the predicates. To automate inductive proofs, we introduce a novel proof system tailored to Horn constraint solving and use an SMT solver to discharge proof obligations arising in the proof search. The main advantage of the proposed method is that it can verify relational specifications across programs in various paradigms where multiple function…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
