Complete first-order reasoning for functional programs

📅 2026-05-21
📈 Citations: 0
Influential: 0
📄 PDF

career value

169K/year
🤖 AI Summary
Existing automated verification tools for functional programs rely on heuristic recursive unfolding combined with quantifier-free SMT reasoning, lacking theoretical completeness guarantees. This work formalizes such heuristics as a first-order inference procedure tailored to the combination of algebraic data types and decidable background theories—such as linear arithmetic—and establishes, for the first time, its completeness under specific theory combinations. The study delineates the precise boundaries of the method’s effectiveness and clarifies when user intervention remains necessary. By constructing a formal framework that integrates algebraic data types, background theories, and SMT solving, this research not only accounts for the empirical behavior of tools like Liquid Haskell and Leon but also provides a rigorous theoretical foundation and practical guidance for more reliable program verification.
📝 Abstract
Several practical tools for automatically verifying functional programs (e.g., Liquid Haskell and Leon for Scala programs) rely on a heuristic based on unrolling recursive function definitions followed by quantifier-free reasoning using SMT solvers. We uncover foundational theoretical properties of this heuristic, revealing that it can be generalized and formalized as a technique that is in fact complete for reasoning with combined First-Order theories of algebraic datatypes and background theories, where background theories support decidable quantifier-free reasoning. The theory developed in this paper explains the efficacy of these heuristics when they succeed, explains why they fail when they fail, and the precise role that user help plays in making proofs succeed.
Problem

Research questions and friction points this paper is trying to address.

functional programs
first-order reasoning
SMT solvers
algebraic datatypes
verification
Innovation

Methods, ideas, or system contributions that make the work stand out.

first-order reasoning
functional programs
algebraic datatypes
SMT solvers
completeness
🔎 Similar Papers