TFL/rules.ML
changeset 17985 d5d576b72371
parent 17959 8db36a108213
child 18184 43c4589a9a78
equal deleted inserted replaced
17984:bdac047db2a5 17985:d5d576b72371
   812  (th2, List.filter (not o restricted) (!tc_list))
   812  (th2, List.filter (not o restricted) (!tc_list))
   813  end;
   813  end;
   814 
   814 
   815 
   815 
   816 fun prove strict (ptm, tac) =
   816 fun prove strict (ptm, tac) =
   817   let val result =
   817   let
   818     if strict then OldGoals.prove_goalw_cterm [] ptm (fn _ => [tac])
   818     val {thy, t, ...} = Thm.rep_cterm ptm;
   819     else
   819     val result =
   820       transform_error (fn () =>
   820       if strict then Goal.prove thy [] [] t (K tac)
   821         OldGoals.prove_goalw_cterm [] ptm (fn _ => [tac])) ()
   821       else Goal.prove thy [] [] t (K tac)
   822       handle ERROR_MESSAGE msg => (warning msg; raise RULES_ERR "prove" msg);
   822         handle ERROR_MESSAGE msg => (warning msg; raise RULES_ERR "prove" msg);
   823   in #1 (freeze_thaw result) end;
   823   in #1 (freeze_thaw (standard result)) end;
   824 
       
   825 
   824 
   826 end;
   825 end;