equal
deleted
inserted
replaced
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 |