Solving Constrained Horn Clauses over Algebraic Data Types
summary
Implements a solver called AdtChc that synthesizes recursive functions from CHCs over algebraic data types using equality propagation and a new-fun transform, then checks validity with structural-induction backends (AdtInd or Vampire). The pipeline extracts recurrence relations, filters and proves lemmas (lemma filtering and SMT-backed refutation), and requires occasional user Eureka lemmas. Evaluated on 71 benchmarks, the toolset yields the best aggregate coverage (Vampire with structural induction) while AdtInd is substantially faster but less complete.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:26Linked list example
- 3:38ADTs formal encoding
- 5:27CHCs systems explained
- 7:16ADTs solving challenges
- 9:02Recursive invariant algorithm
- 12:40Algorithm step-by-step
- 16:14Append function walkthrough
- 17:38Implementation details
- 18:20ADT IND solver
- 20:30Lemma filtering
- 21:33Evaluation results
- 22:36Conclusion
