src/Tools/induct.ML
changeset 58002 0ed1e999a0fb
parent 56334 6b3739fee456
child 58826 2ed2eaabe3df
     1.1 --- a/src/Tools/induct.ML	Mon Aug 18 15:46:27 2014 +0200
     1.2 +++ b/src/Tools/induct.ML	Tue Aug 19 12:05:11 2014 +0200
     1.3 @@ -932,15 +932,13 @@
     1.4            (cases_tac ctxt (not no_simp) insts opt_rule facts)))))
     1.5      "case analysis on types or predicates/sets";
     1.6  
     1.7 -fun gen_induct_setup binding itac =
     1.8 +fun gen_induct_setup binding tac =
     1.9    Method.setup binding
    1.10      (Scan.lift (Args.mode no_simpN) --
    1.11        (Parse.and_list' (Scan.repeat (unless_more_args def_inst)) --
    1.12          (arbitrary -- taking -- Scan.option induct_rule)) >>
    1.13 -      (fn (no_simp, (insts, ((arbitrary, taking), opt_rule))) => fn ctxt =>
    1.14 -        RAW_METHOD_CASES (fn facts =>
    1.15 -          Seq.DETERM
    1.16 -            (HEADGOAL (itac ctxt (not no_simp) insts arbitrary taking opt_rule facts)))))
    1.17 +      (fn (no_simp, (insts, ((arbitrary, taking), opt_rule))) => fn ctxt => fn facts =>
    1.18 +        Seq.DETERM (HEADGOAL (tac ctxt (not no_simp) insts arbitrary taking opt_rule facts))))
    1.19      "induction on types or predicates/sets";
    1.20  
    1.21  val induct_setup = gen_induct_setup @{binding induct} induct_tac;
    1.22 @@ -948,9 +946,8 @@
    1.23  val coinduct_setup =
    1.24    Method.setup @{binding coinduct}
    1.25      (Scan.repeat (unless_more_args inst) -- taking -- Scan.option coinduct_rule >>
    1.26 -      (fn ((insts, taking), opt_rule) => fn ctxt =>
    1.27 -        RAW_METHOD_CASES (fn facts =>
    1.28 -          Seq.DETERM (HEADGOAL (coinduct_tac ctxt insts taking opt_rule facts)))))
    1.29 +      (fn ((insts, taking), opt_rule) => fn ctxt => fn facts =>
    1.30 +        Seq.DETERM (HEADGOAL (coinduct_tac ctxt insts taking opt_rule facts))))
    1.31      "coinduction on types or predicates/sets";
    1.32  
    1.33  end;