--- a/src/HOL/Tools/rewrite_hol_proof.ML Sat Nov 15 21:31:19 2008 +0100
+++ b/src/HOL/Tools/rewrite_hol_proof.ML Sat Nov 15 21:31:20 2008 +0100
@@ -16,7 +16,7 @@
open Proofterm;
-val rews = map (pairself (ProofSyntax.proof_of_term (the_context ()) Symtab.empty true) o
+val rews = map (pairself (ProofSyntax.proof_of_term (the_context ()) true) o
Logic.dest_equals o Logic.varify o ProofSyntax.read_term (the_context ()) propT)
(** eliminate meta-equality rules **)
@@ -286,13 +286,13 @@
(** Replace congruence rules by substitution rules **)
-fun strip_cong ps (PThm ("HOL.cong", _, _, _) % _ % _ % SOME x % SOME y %%
+fun strip_cong ps (PThm (_, (("HOL.cong", _, _), _)) % _ % _ % SOME x % SOME y %%
prf1 %% prf2) = strip_cong (((x, y), prf2) :: ps) prf1
- | strip_cong ps (PThm ("HOL.refl", _, _, _) % SOME f) = SOME (f, ps)
+ | strip_cong ps (PThm (_, (("HOL.refl", _, _), _)) % SOME f) = SOME (f, ps)
| strip_cong _ _ = NONE;
-val subst_prf = fst (strip_combt (Thm.proof_of subst));
-val sym_prf = fst (strip_combt (Thm.proof_of sym));
+val subst_prf = fst (strip_combt (Proofterm.proof_of (Thm.proof_of subst)));
+val sym_prf = fst (strip_combt (Proofterm.proof_of (Thm.proof_of sym)));
fun make_subst Ts prf xs (_, []) = prf
| make_subst Ts prf xs (f, ((x, y), prf') :: ps) =
@@ -310,15 +310,15 @@
fun mk_AbsP P t = AbsP ("H", Option.map HOLogic.mk_Trueprop P, t);
-fun elim_cong Ts (PThm ("HOL.iffD1", _, _, _) % _ % _ %% prf1 %% prf2) =
+fun elim_cong Ts (PThm (_, (("HOL.iffD1", _, _), _)) % _ % _ %% prf1 %% prf2) =
Option.map (make_subst Ts prf2 []) (strip_cong [] prf1)
- | elim_cong Ts (PThm ("HOL.iffD1", _, _, _) % P % _ %% prf) =
+ | elim_cong Ts (PThm (_, (("HOL.iffD1", _, _), _)) % P % _ %% prf) =
Option.map (mk_AbsP P o make_subst Ts (PBound 0) [])
(strip_cong [] (incr_pboundvars 1 0 prf))
- | elim_cong Ts (PThm ("HOL.iffD2", _, _, _) % _ % _ %% prf1 %% prf2) =
+ | elim_cong Ts (PThm (_, (("HOL.iffD2", _, _), _)) % _ % _ %% prf1 %% prf2) =
Option.map (make_subst Ts prf2 [] o
apsnd (map (make_sym Ts))) (strip_cong [] prf1)
- | elim_cong Ts (PThm ("HOL.iffD2", _, _, _) % _ % P %% prf) =
+ | elim_cong Ts (PThm (_, (("HOL.iffD2", _, _), _)) % _ % P %% prf) =
Option.map (mk_AbsP P o make_subst Ts (PBound 0) [] o
apsnd (map (make_sym Ts))) (strip_cong [] (incr_pboundvars 1 0 prf))
| elim_cong _ _ = NONE;