src/Provers/induct_method.ML
changeset 18631 ca56111fe69c
parent 18602 8f25a0f7f446
child 18678 dd0c569fa43d
equal deleted inserted replaced
18630:69fe387b3b6e 18631:ca56111fe69c
   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]))));