## Mechanizing structural induction (1976)

Citations: | 40 - 0 self |

### BibTeX

@TECHREPORT{Aubin76mechanizingstructural,

author = {Raymond Aubin},

title = {Mechanizing structural induction},

institution = {},

year = {1976}

}

### Years of Citing Articles

### OpenURL

### Abstract

A theorem proving system has been programmed for automating mildly complex proofs by structural induction. One purpose was to prove properties of simple functional programs without loops or assignments. One can see the formal system as a generalization of number theory: the formal language is typed and the induction rule is valid for all types. Proofs are generated by working backward from the goal. The induction strategy splits into two parts: (1) the selection of induction variables, which is claimed to be linked to the useful generalization of terms to variables, and (2) the generation of induction subgoals, in particular, the selection and specialization of hypotheses. Other strategies include a fast simplification algorithm. The prover can cope with situations as complex as the definition and correctness proof of a simple compiling algorithm for expressions. Descriptive Terms Program proving, theorem proving, data type, structural induction, generalization, simplification.

### Citations

132 | Ideas and results in proof theory - Prawitz - 1971 |

94 | Proving properties of programs by structural induction
- Burstall
- 1969
(Show Context)
Citation Context ...xpr,sexpr] -► sexpr [nulltree: | tip:nat | node: tree,nat,tree] tree Variables are simply declared. Finally, defined function constants are introduced by stages with the help of definitions by cases (=-=Burstall 1969-=-, Hoare 1976). Here are some concrete examples: a=>b | bool <= cases a [true <= b | false <= true] a&b | bool <- (a=>(bU=>false))=>false They introduce the function constants of implication, conjuncti... |

70 | Notes on data structuring - Hoare - 1972 |

53 | Proving theorems about LISP functions
- Boyer, Moore
- 1975
(Show Context)
Citation Context ...amples is time-consuming, we limit generalization to the cases which have a better chance of success, i.e., when the term occurrences to generalize appear on both sides of an equality or implication (=-=Boyer and Moore 1975-=-, Brotz 1974). In addition, the above method may propose several candidates and the system uses some tie-breaking rules to elect a unique one. Here is an additional example of generalization. The orig... |

24 | Proving compiler correctness in a mechanized logic - Milner, Weyrauch - 1972 |

8 | A lemma driven automatic theorem prover for recursive function theory - Boyer, Moore - 1977 |

8 | Computational Logic: Structure Sharing and Proof of Program Properties - Moore - 1973 |

1 |
Embedding heuristic problem solving methods in a mechanical theorem prover
- Brotz
- 1974
(Show Context)
Citation Context ...ng, we limit generalization to the cases which have a better chance of success, i.e., when the term occurrences to generalize appear on both sides of an equality or implication (Boyer and Moore 1975, =-=Brotz 1974-=-). In addition, the above method may propose several candidates and the system uses some tie-breaking rules to elect a unique one. Here is an additional example of generalization. The original goal is... |

1 | Recherche sur la deduction logique. Trad, et coram. R. Feys et - Gentzen - 1955 |