Affiliation:
1. University of California at Los Angeles, USA
2. University of Massachusetts at Amherst, USA
3. University of California at San Diego, USA
Abstract
Interactive proofs of theorems often require auxiliary helper lemmas to prove the desired theorem. Existing approaches for automatically synthesizing helper lemmas fall into two broad categories. Some approaches are goal-directed, producing lemmas specifically to help a user make progress from a given proof state, but they have limited expressiveness in terms of the lemmas that can be produced. Other approaches are highly expressive, able to generate arbitrary lemmas from a given grammar, but they are completely undirected and hence not amenable to interactive usage.
In this paper, we develop an approach to lemma synthesis that is both goal-directed and expressive.
The key novelty is a technique for reducing lemma synthesis to a data-driven program synthesis problem, whereby examples for synthesis are generated from the current proof state. We also describe a technique to systematically introduce new variables for lemma synthesis, as well as techniques for filtering and ranking candidate lemmas for presentation to the user. We implement these ideas in a tool called lfind, which can be run as a Coq tactic. In an evaluation on four benchmark suites, lfind produces useful lemmas in 68% of the cases where a human prover used a lemma to make progress. In these cases lfind synthesizes a lemma that either enables a fully automated proof of the original goal or that matches the human-provided lemma.
Funder
National Science Foundation
Defense Advanced Research Projects Agency
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference59 articles.
1. 1995. Circuits. https://github.com/coq-contribs/circuits 1995. Circuits. https://github.com/coq-contribs/circuits
2. 2003. Coq-of-Ocaml. https://github.com/foobar-land/coq-of-ocaml 2003. Coq-of-Ocaml. https://github.com/foobar-land/coq-of-ocaml
3. Recursive Program Synthesis
4. Learning stateful preconditions modulo a test generator
5. R Aubin. 1976. Mechanising Structural Induction. R Aubin. 1976. Mechanising Structural Induction.
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CCLemma: E-Graph Guided Lemma Discovery for Inductive Equational Proofs;Proceedings of the ACM on Programming Languages;2024-08-15
2. Leveraging Large Language Models to Boost Dafny’s Developers Productivity;Proceedings of the 2024 IEEE/ACM 12th International Conference on Formal Methods in Software Engineering (FormaliSE);2024-04-14
3. Complete First-Order Reasoning for Properties of Functional Programs;Proceedings of the ACM on Programming Languages;2023-10-16