equal
deleted
inserted
replaced
85 _ $ (_ $ Abs (_, _, body)) => |
85 _ $ (_ $ Abs (_, _, body)) => |
86 (case dest_case (ProofContext.theory_of ctxt) body of |
86 (case dest_case (ProofContext.theory_of ctxt) body of |
87 NONE => no_tac |
87 NONE => no_tac |
88 | SOME (arg, conv) => |
88 | SOME (arg, conv) => |
89 let open Conv in |
89 let open Conv in |
90 if not (null (loose_bnos arg)) then no_tac |
90 if Term.is_open arg then no_tac |
91 else ((DETERM o strip_cases o Induct.cases_tac ctxt false [[SOME arg]] NONE []) |
91 else ((DETERM o strip_cases o Induct.cases_tac ctxt false [[SOME arg]] NONE []) |
92 THEN_ALL_NEW (rewrite_with_asm_tac ctxt 0) |
92 THEN_ALL_NEW (rewrite_with_asm_tac ctxt 0) |
93 THEN_ALL_NEW etac @{thm thin_rl} |
93 THEN_ALL_NEW etac @{thm thin_rl} |
94 THEN_ALL_NEW (CONVERSION |
94 THEN_ALL_NEW (CONVERSION |
95 (params_conv ~1 (fn ctxt' => |
95 (params_conv ~1 (fn ctxt' => |