Induct_on : term -> tactic
Induct_on can be used to specify variables that are buried in the quantifier prefix, i.e., not the leading quantified variable. Induct_on can also perform induction on non-variable terms. If M is a non-variable term that does not occur bound in the goal, then Induct_on equates M to a new variable v (one not occurring in the goal), moves all hypotheses in which free variables of M occur to the conclusion of the goal, adds the antecedent v = M, and quantifies all free variables of M before universally quantifying v and then finally inducting on v.
Induct_on may also be used to apply an induction theorem coming from declaration of a mutually recursive datattype.
!x. LENGTH (REVERSE x) = LENGTH x