# Synthesizing Lemmas for Inductive Reasoning

Recursively defined structures and properties about them are naturally expressed in first-order logic with least fixpoint definitions (FO+lfp), but automated reasoning for such logics has not seen much progress. Such logics, unlike pure FOL, do not even admit complete procedures, let alone decidable ones. In this paper, we undertake a foundational study of finding proofs that use induction to reason with these logics. By treating proofs as purely FO proofs punctuated by declarations of induction lemmas, we separate proofs into deductively reasoned components that can be automated and statements of lemmas that need to be divined, respectively. While humans divine such lemmas with intuition, we propose a counterexample driven technique that guides the synthesis of such lemmas, where counterexamples are finite models that witness inability of proving the theorem as well as other proposed lemmas. We develop relatively complete procedures for synthesizing such lemmas using techniques and tools from program/expression synthesis, for powerful FO+lfp logics that have background sorts constrained by natural theories such as arithmetic and set theory. We evaluate our procedures and show that over a class of theorems that require finding inductive proofs, our automatic synthesis procedure is effective in proving them.

READ FULL TEXT