TFL/thms.sml
changeset 9867 bf8300fa4238
parent 6498 1ebbe18fe236
child 9971 e0164f01d55a
--- a/TFL/thms.sml	Tue Sep 05 18:53:21 2000 +0200
+++ b/TFL/thms.sml	Tue Sep 05 18:53:42 2000 +0200
@@ -1,37 +1,32 @@
-(*  Title:      TFL/thms
+(*  Title:      TFL/thms.sml
     ID:         $Id$
     Author:     Konrad Slind, Cambridge University Computer Laboratory
     Copyright   1997  University of Cambridge
 *)
 
-structure Thms : Thms_sig =
-struct
-   val WFREC_COROLLARY = get_thm WF.thy "tfl_wfrec"
-   val WF_INDUCTION_THM = get_thm WF.thy "tfl_wf_induct"
-   val CUT_DEF = cut_def
+signature Thms_sig =
+sig
+   val WF_INDUCTION_THM: thm
+   val WFREC_COROLLARY: thm
+   val CUT_DEF: thm
+   val SELECT_AX: thm
+   val eqT: thm
+   val rev_eq_mp: thm
+   val simp_thm: thm
+end;
 
-   local val _ = goal HOL.thy "!P x. P x --> P (Eps P)"
-         val _ = by (strip_tac 1)
-         val _ = by (rtac selectI 1)
-         val _ = by (assume_tac 1)
-   in val SELECT_AX = result()
-   end;
+structure Thms: Thms_sig =
+struct
+   val WFREC_COROLLARY = get_thm WF.thy "tfl_wfrec";
+   val WF_INDUCTION_THM = get_thm WF.thy "tfl_wf_induct";
+   val CUT_DEF = get_thm WF.thy "cut_def";
 
-  (*-------------------------------------------------------------------------
-   *  Congruence rule needed for TFL, but not for general simplification
-   *-------------------------------------------------------------------------*)
-   local val [p1,p2] = goal HOL.thy "(M = N) ==> \
-                          \ (!!x. ((x = N) ==> (f x = g x))) ==> \
-                          \ (Let M f = Let N g)";
-         val _ = by (simp_tac (HOL_ss addsimps[Let_def,p1]) 1);
-         val _ = by (rtac p2 1);
-         val _ = by (rtac refl 1);
-   in val LET_CONG = result() end;
+   val SELECT_AX = prove_goal HOL.thy "!P x. P x --> P (Eps P)"
+     (fn _ => [strip_tac 1, rtac selectI 1, assume_tac 1]);
 
    fun prove s = prove_goal HOL.thy s (fn _ => [fast_tac HOL_cs 1]);
 
-   val eqT       = prove"(x = True) --> x"
-   val rev_eq_mp = prove"(x = y) --> y --> x"
-   val simp_thm  = prove"(x-->y) --> (x = x') --> (x' --> y)"
-
+   val eqT = prove"(x = True) --> x";
+   val rev_eq_mp = prove"(x = y) --> y --> x";
+   val simp_thm = prove"(x-->y) --> (x = x') --> (x' --> y)";
 end;