src/Pure/Isar/obtain.ML
changeset 11816 545aab7410ac
parent 11764 fd780dd6e0b4
child 11890 28e42a90bea8
     1.1 --- a/src/Pure/Isar/obtain.ML	Tue Oct 16 23:00:21 2001 +0200
     1.2 +++ b/src/Pure/Isar/obtain.ML	Tue Oct 16 23:02:14 2001 +0200
     1.3 @@ -32,18 +32,18 @@
     1.4  struct
     1.5  
     1.6  
     1.7 -(** disch_obtained **)
     1.8 +(** export_obtain **)
     1.9  
    1.10 -fun disch_obtained state parms rule cprops thm =
    1.11 +fun export_obtain state parms rule _ cprops thm =
    1.12    let
    1.13      val {sign, prop, maxidx, ...} = Thm.rep_thm thm;
    1.14      val cparms = map (Thm.cterm_of sign) parms;
    1.15  
    1.16      val thm' = thm
    1.17 -      |> Drule.implies_intr_list cprops
    1.18 +      |> Drule.implies_intr_goals cprops
    1.19        |> Drule.forall_intr_list cparms
    1.20        |> Drule.forall_elim_vars (maxidx + 1);
    1.21 -    val elim_tacs = replicate (length cprops) Proof.hard_asm_tac;
    1.22 +    val elim_tacs = replicate (length cprops) (Tactic.etac Drule.triv_goal);
    1.23  
    1.24      val concl = Logic.strip_assums_concl prop;
    1.25      val bads = parms inter (Term.term_frees concl);
    1.26 @@ -100,14 +100,11 @@
    1.27        Term.list_all_free (map #1 parm_names, Logic.list_implies (asm_props, bound_thesis))
    1.28        |> Library.curry Logic.list_rename_params (map #2 parm_names);
    1.29  
    1.30 -    fun export_obtained rule =
    1.31 -      (disch_obtained state parms rule, fn _ => fn _ => []);
    1.32 -
    1.33      fun after_qed st = st
    1.34        |> Proof.end_block
    1.35        |> Seq.map (fn st' => st'
    1.36          |> Proof.fix_i vars
    1.37 -        |> Proof.assm_i (export_obtained (Proof.the_fact st')) asms);
    1.38 +        |> Proof.assm_i (export_obtain state parms (Proof.the_fact st')) asms);
    1.39    in
    1.40      state
    1.41      |> Proof.enter_forward