equal
deleted
inserted
replaced
491 (*instantiate the variable to a tuple, if it is non-trivial, in order to |
491 (*instantiate the variable to a tuple, if it is non-trivial, in order to |
492 allow the predicate to be "opened up". |
492 allow the predicate to be "opened up". |
493 The name "x.1" comes from the "RS spec" !*) |
493 The name "x.1" comes from the "RS spec" !*) |
494 val inst = |
494 val inst = |
495 case elem_frees of [_] => I |
495 case elem_frees of [_] => I |
496 | _ => instantiate ([], [(cterm_of thy1 (Var(("x",1), Ind_Syntax.iT)), |
496 | _ => Drule.instantiate_normalize ([], [(cterm_of thy1 (Var(("x",1), Ind_Syntax.iT)), |
497 cterm_of thy1 elem_tuple)]); |
497 cterm_of thy1 elem_tuple)]); |
498 |
498 |
499 (*strip quantifier and the implication*) |
499 (*strip quantifier and the implication*) |
500 val induct0 = inst (quant_induct RS @{thm spec} RSN (2, @{thm rev_mp})); |
500 val induct0 = inst (quant_induct RS @{thm spec} RSN (2, @{thm rev_mp})); |
501 |
501 |