equal
deleted
inserted
replaced
318 | goal_concl _ _ _ = NONE; |
318 | goal_concl _ _ _ = NONE; |
319 in |
319 in |
320 (case goal_concl n [] goal of |
320 (case goal_concl n [] goal of |
321 SOME concl => |
321 SOME concl => |
322 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
322 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
323 | NONE => (warning ("Induction: no variable " ^ quote (ProofContext.string_of_term ctxt v) ^ |
323 | NONE => all_tac) |
324 " to be fixed -- ignored"); all_tac)) |
|
325 end); |
324 end); |
326 |
325 |
327 fun miniscope_tac p i = PRIMITIVE (Drule.fconv_rule |
326 fun miniscope_tac p i = PRIMITIVE (Drule.fconv_rule |
328 (Drule.goals_conv (Library.equal i) |
327 (Drule.goals_conv (Library.equal i) |
329 (Drule.forall_conv p (Tactic.rewrite true [Thm.symmetric Drule.norm_hhf_eq])))); |
328 (Drule.forall_conv p (Tactic.rewrite true [Thm.symmetric Drule.norm_hhf_eq])))); |