Mechanizing Structural Induction Part II: Strategies

Abstract A theorem-proving system has been programmed for automating mildly complex proofs by structural induction. 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 relevant hypotheses. Other strategies include a fast simplification algorithm. The prover can cope with situations as complex as the defination and correctness proof of a simple compiling algorithm for expressions.