Book contents
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 An introduction to rippling
- 2 Varieties of rippling
- 3 Productive use of failure
- 4 A formal account of rippling
- 5 The scope and limitations of rippling
- 6 From rippling to a general methodology
- 7 Conclusions
- Appendix 1 An annotated calculus and a unification algorithm
- Appendix 2 Definitions of functions used in this book
- References
- Index
Preface
Published online by Cambridge University Press: 13 August 2009
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 An introduction to rippling
- 2 Varieties of rippling
- 3 Productive use of failure
- 4 A formal account of rippling
- 5 The scope and limitations of rippling
- 6 From rippling to a general methodology
- 7 Conclusions
- Appendix 1 An annotated calculus and a unification algorithm
- Appendix 2 Definitions of functions used in this book
- References
- Index
Summary
Automated theorem proving has been an active research area since the 1950s when researchers began to tackle the problem of automating human-like reasoning. Different techniques were developed early on to automate the use of deduction to show that a goal follows from givens. Deduction could be used to solve problems, play games, or to construct formal, mathematical proofs. In the 1960s and 1970s, interest in automated theorem proving grew, driven by theoretical advances like the development of resolution as well as the growing interest in program verification.
Verification, and more generally, the practical use of formal methods, has raised a number of challenges for the theorem-proving community. One of the major challenges is induction. Induction is required to reason about repetition. In programs, this arises when reasoning about loops and recursion. In hardware, this arises when reasoning about parameterized circuits built from subcomponents in a uniform way, or alternatively when reasoning about the time-dependent behavior of sequential systems.
Carrying out proofs by induction is difficult. Unlike standard proofs in first-order theories, inductive proofs often require the speculation of auxiliary lemmas. This includes both generalizing the conjecture to be proven and speculating and proving additional lemmas about recursively defined functions used in the proof. When induction is not structural induction over data types, then proof search is also complicated by the need to provide a well-founded order over which the induction is performed. As a consequence of these complications, inductive proofs are often carried out interactively rather than fully automatically.
- Type
- Chapter
- Information
- Rippling: Meta-Level Guidance for Mathematical Reasoning , pp. xi - xiiiPublisher: Cambridge University PressPrint publication year: 2005