src/ZF/Tools/induct_tacs.ML
changeset 59780 23b67731f4f0
parent 59763 56d2c357e6b5
child 59788 6f7b6adac439
equal deleted inserted replaced
59778:fe5b796d6b2a 59780:23b67731f4f0
    99     val (Const(@{const_name mem},_) $ Var(ixn,_) $ _) =
    99     val (Const(@{const_name mem},_) $ Var(ixn,_) $ _) =
   100         (case Thm.prems_of rule of
   100         (case Thm.prems_of rule of
   101              [] => error "induction is not available for this datatype"
   101              [] => error "induction is not available for this datatype"
   102            | major::_ => FOLogic.dest_Trueprop major)
   102            | major::_ => FOLogic.dest_Trueprop major)
   103   in
   103   in
   104     Rule_Insts.eres_inst_tac ctxt [((ixn, Position.none), var)] rule i
   104     Rule_Insts.eres_inst_tac ctxt [((ixn, Position.none), var)] [] rule i
   105   end
   105   end
   106   handle Find_tname msg =>
   106   handle Find_tname msg =>
   107             if exh then (*try boolean case analysis instead*)
   107             if exh then (*try boolean case analysis instead*)
   108                 case_tac ctxt var i
   108                 case_tac ctxt var [] i
   109             else error msg) i state;
   109             else error msg) i state;
   110 
   110 
   111 val exhaust_tac = exhaust_induct_tac true;
   111 val exhaust_tac = exhaust_induct_tac true;
   112 val induct_tac = exhaust_induct_tac false;
   112 val induct_tac = exhaust_induct_tac false;
   113 
   113