defer_recdef (lazyR_def) now looks for theorem Hilbert_Choice.tfl_some
authorpaulson
Wed, 25 Jul 2001 18:21:01 +0200
changeset 11455 e07927b980ec
parent 11454 7514e5e21cb8
child 11456 7eb63f63e6c6
defer_recdef (lazyR_def) now looks for theorem Hilbert_Choice.tfl_some dynamically, so recdef no longer needs to import Hilbert_Choice.
TFL/tfl.ML
TFL/thms.ML
--- a/TFL/tfl.ML	Wed Jul 25 17:58:26 2001 +0200
+++ b/TFL/tfl.ML	Wed Jul 25 18:21:01 2001 +0200
@@ -571,8 +571,12 @@
                 RS meta_eq_to_obj_eq
      val def' = R.MP (R.SPEC (tych R') (R.GEN (tych R1) baz)) def0
      val body_th = R.LIST_CONJ (map R.ASSUME full_rqt_prop)
-     val bar = R.MP (R.ISPECL[tych R'abs, tych R1] Thms.SELECT_AX)
-                    body_th
+     val SELECT_AX = (*in this way we hope to avoid a STATIC dependence upon
+                       theory Hilbert_Choice*)
+         thm "Hilbert_Choice.tfl_some" 
+         handle ERROR => error
+    "defer_recdef requires theory Main or at least Hilbert_Choice as parent"
+     val bar = R.MP (R.ISPECL[tych R'abs, tych R1] SELECT_AX) body_th
  in {theory = theory, R=R1, SV=SV,
      rules = U.rev_itlist (U.C R.MP) (R.CONJUNCTS bar) def',
      full_pats_TCs = merge (map pat_of pats) (ListPair.zip (givens pats, TCl)),
--- a/TFL/thms.ML	Wed Jul 25 17:58:26 2001 +0200
+++ b/TFL/thms.ML	Wed Jul 25 18:21:01 2001 +0200
@@ -9,7 +9,6 @@
   val WFREC_COROLLARY = thm "tfl_wfrec";
   val WF_INDUCTION_THM = thm "tfl_wf_induct";
   val CUT_DEF = thm "cut_def";
-  val SELECT_AX = thm "tfl_some";
   val eqT = thm "tfl_eq_True";
   val rev_eq_mp = thm "tfl_rev_eq_mp";
   val simp_thm = thm "tfl_simp_thm";