Conjectures, Tests and Proofs: An Overview of Theory Exploration
This addresses the challenge of formulating conjectures in mathematical reasoning and automated theorem proving, though it appears incremental as an overview of an existing system.
The paper tackles the problem of automatically discovering interesting conjectures in mathematical reasoning by presenting QuickSpec, a theory exploration system that interleaves term generation with random testing to generate candidate conjectures, which has been successfully applied to generate lemmas for automated inductive theorem proving and specifications of functional programs.
A key component of mathematical reasoning is the ability to formulate interesting conjectures about a problem domain at hand. In this paper, we give a brief overview of a theory exploration system called QuickSpec, which is able to automatically discover interesting conjectures about a given set of functions. QuickSpec works by interleaving term generation with random testing to form candidate conjectures. This is made tractable by starting from small sizes and ensuring that only terms that are irreducible with respect to already discovered conjectures are considered. QuickSpec has been successfully applied to generate lemmas for automated inductive theorem proving as well as to generate specifications of functional programs. We give an overview of typical use-cases of QuickSpec, as well as demonstrating how to easily connect it to a theorem prover of the user's choice.