adapted PThm;
authorwenzelm
Sat, 15 Nov 2008 21:31:32 +0100
changeset 28808 7925199a0226
parent 28807 9f3ecb4aaac2
child 28809 7c2e1bbf3c36
adapted PThm;
src/Pure/Proof/proofchecker.ML
src/Pure/Proof/reconstruct.ML
--- a/src/Pure/Proof/proofchecker.ML	Sat Nov 15 21:31:30 2008 +0100
+++ b/src/Pure/Proof/proofchecker.ML	Sat Nov 15 21:31:32 2008 +0100
@@ -45,7 +45,7 @@
         Thm.instantiate (ctye, []) (forall_intr_vars (forall_intr_frees thm'))
       end;
 
-    fun thm_of _ _ (PThm (name, _, prop', SOME Ts)) =
+    fun thm_of _ _ (PThm (_, ((name, prop', SOME Ts), _))) =
           let
             val thm = Drule.implies_intr_hyps (lookup name);
             val {prop, ...} = rep_thm thm;
--- a/src/Pure/Proof/reconstruct.ML	Sat Nov 15 21:31:30 2008 +0100
+++ b/src/Pure/Proof/reconstruct.ML	Sat Nov 15 21:31:32 2008 +0100
@@ -220,7 +220,7 @@
                  add_cnstrt Ts (v $ t) (prf % SOME t) cnstrts env3 vTs'
                    (u, Const ("all", (T --> propT) --> propT) $ v)
                end)
-      | mk_cnstrts env _ _ vTs (prf as PThm (_, _, prop, opTs)) =
+      | mk_cnstrts env _ _ vTs (prf as PThm (_, ((_, prop, opTs), _))) =
           mk_cnstrts_atom env vTs prop opTs prf
       | mk_cnstrts env _ _ vTs (prf as PAxm (_, prop, opTs)) =
           mk_cnstrts_atom env vTs prop opTs prf
@@ -323,7 +323,7 @@
       Const ("==>", _) $ P $ Q => Q
     | _ => error "prop_of: ==> expected")
   | prop_of0 Hs (Hyp t) = t
-  | prop_of0 Hs (PThm (_, _, prop, SOME Ts)) = prop_of_atom prop Ts
+  | prop_of0 Hs (PThm (_, ((_, prop, SOME Ts), _))) = prop_of_atom prop Ts
   | prop_of0 Hs (PAxm (_, prop, SOME Ts)) = prop_of_atom prop Ts
   | prop_of0 Hs (Oracle (_, prop, SOME Ts)) = prop_of_atom prop Ts
   | prop_of0 _ _ = error "prop_of: partial proof object";
@@ -350,7 +350,7 @@
       | expand maxidx prfs (prf % t) =
           let val (maxidx', prfs', prf') = expand maxidx prfs prf
           in (maxidx', prfs', prf' % t) end
-      | expand maxidx prfs (prf as PThm (a, cprf, prop, SOME Ts)) =
+      | expand maxidx prfs (prf as PThm (_, ((a, prop, SOME Ts), body))) =
           if not (exists
             (fn (b, NONE) => a = b
               | (b, SOME prop') => a = b andalso prop = prop') thms)
@@ -365,7 +365,7 @@
                     val _ = message ("Reconstructing proof of " ^ a);
                     val _ = message (Syntax.string_of_term_global thy prop);
                     val prf' = forall_intr_vfs_prf prop
-                      (reconstruct_proof thy prop cprf);
+                      (reconstruct_proof thy prop (force_proof body));
                     val (maxidx', prfs', prf) = expand
                       (maxidx_proof prf' ~1) prfs prf'
                   in (maxidx' + maxidx + 1, inc (maxidx + 1) prf,