reorganized into individual theories;
authorwenzelm
Tue, 20 Jan 1998 18:26:26 +0100
changeset 4583 6d9be46ea566
parent 4582 c5cfd00e4f28
child 4584 3588b8f9613f
reorganized into individual theories;
src/Cube/Base.ML
src/Cube/Base.thy
src/Cube/CC.ML
src/Cube/CC.thy
src/Cube/Cube.ML
src/Cube/Cube.thy
src/Cube/IsaMakefile
src/Cube/L2.ML
src/Cube/L2.thy
src/Cube/LOmega.ML
src/Cube/LOmega.thy
src/Cube/LP.ML
src/Cube/LP.thy
src/Cube/LP2.ML
src/Cube/LP2.thy
src/Cube/LPomega.ML
src/Cube/LPomega.thy
src/Cube/Lomega.ML
src/Cube/Lomega.thy
src/Cube/ex/ROOT.ML
src/Cube/ex/ex.ML
src/Cube/ex/ex.thy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/Base.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val simple = [s_b,strip_s,strip_b,app,lam_ss,pi_ss];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/Base.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,62 @@
+(*  Title:      Cube/Base.thy
+    ID:         $Id$
+    Author:     Tobias Nipkow
+    Copyright   1993  University of Cambridge
+
+Barendregt's Lambda-Cube.
+*)
+
+Base = Pure +
+
+types
+  term  context  typing
+
+arities
+  term :: logic
+
+consts
+  Abs, Prod     :: "[term, term => term] => term"
+  Trueprop      :: "[context, typing] => prop"          ("(_/ |- _)")
+  MT_context    :: "context"                            ("")
+  Context       :: "[typing, context] => context"       ("_ _")
+  star          :: "term"                               ("*")
+  box           :: "term"                               ("[]")
+  "^"           :: "[term, term] => term"               (infixl 20)
+  Has_type      :: "[term, term] => typing"             ("(_:/ _)" [0, 0] 5)
+
+syntax
+  Trueprop1     :: "typing => prop"                     ("(_)")
+  ""            :: "id => context"                      ("_ ")
+  ""            :: "var => context"                     ("_ ")
+  Lam           :: "[idt, term, term] => term"          ("(3Lam _:_./ _)" [0, 0, 0] 10)
+  Pi            :: "[idt, term, term] => term"          ("(3Pi _:_./ _)" [0, 0] 10)
+  "->"          :: "[term, term] => term"               (infixr 10)
+
+translations
+  (prop) "x:X"  == (prop) "|- x:X"
+  "Lam x:A. B"  == "Abs(A, %x. B)"
+  "Pi x:A. B"   => "Prod(A, %x. B)"
+  "A -> B"      => "Prod(A, _K(B))"
+
+rules
+  s_b           "*: []"
+
+  strip_s       "[| A:*;  a:A ==> G |- x:X |] ==> a:A G |- x:X"
+  strip_b       "[| A:[]; a:A ==> G |- x:X |] ==> a:A G |- x:X"
+
+  app           "[| F:Prod(A, B); C:A |] ==> F^C: B(C)"
+
+  pi_ss         "[| A:*; !!x. x:A ==> B(x):* |] ==> Prod(A, B):*"
+
+  lam_ss        "[| A:*; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):* |]
+                   ==> Abs(A, f) : Prod(A, B)"
+
+  beta          "Abs(A, f)^a == f(a)"
+
+end
+
+
+ML
+
+val print_translation = [("Prod", dependent_tr' ("Pi", "op ->"))];
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/CC.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val CC = simple @ [lam_bs,pi_bs,lam_bb,pi_bb,lam_sb,pi_sb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/CC.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,3 @@
+
+CC = L2 + LP + Lomega
+
--- a/src/Cube/Cube.ML	Mon Jan 19 16:26:11 1998 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-(*  Title:      Cube/Cube.ML
-    ID:         $Id$
-    Author:     Tobias Nipkow
-    Copyright   1990  University of Cambridge
-
-For Cube.thy.  The systems of the Lambda-cube that extend simple types
-*)
-
-open Cube;
-
-val simple = [s_b,strip_s,strip_b,app,lam_ss,pi_ss];
-
-val L2_thy =
-  Cube.thy
-  |> PureThy.add_store_axioms
-   [("pi_bs",  "[| A:[]; !!x. x:A ==> B(x):* |] ==> Prod(A,B):*"),
-    ("lam_bs", "[| A:[]; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):* |] \
-     \  ==> Abs(A,f) : Prod(A,B)")]
-  |> Theory.add_name "L2";
-
-val lam_bs = get_axiom L2_thy "lam_bs";
-val pi_bs = get_axiom L2_thy "pi_bs";
-
-val L2 = simple @ [lam_bs,pi_bs];
-
-val Lomega_thy =
-  Cube.thy
-  |> PureThy.add_store_axioms
-   [("pi_bb",  "[| A:[]; !!x. x:A ==> B(x):[] |] ==> Prod(A,B):[]"),
-    ("lam_bb", "[| A:[]; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):[] |] \
-     \  ==> Abs(A,f) : Prod(A,B)")]
-  |> Theory.add_name "Lomega";
-
-val lam_bb = get_axiom Lomega_thy "lam_bb";
-val pi_bb = get_axiom Lomega_thy "pi_bb";
-val Lomega = simple @ [lam_bb,pi_bb];
-
-val LOmega_thy = merge_theories "LOmega" (L2_thy,Lomega_thy);
-val LOmega = simple @ [lam_bs,pi_bs,lam_bb,pi_bb];
-
-val LP_thy =
-  Cube.thy
-  |> PureThy.add_store_axioms
-   [("pi_sb",  "[| A:*; !!x. x:A ==> B(x):[] |] ==> Prod(A,B):[]"),
-    ("lam_sb", "[| A:*; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):[] |] \
-     \  ==> Abs(A,f) : Prod(A,B)")]
-  |> Theory.add_name "LP";
-
-val lam_sb = get_axiom LP_thy "lam_sb";
-val pi_sb = get_axiom LP_thy "pi_sb";
-val LP = simple @ [lam_sb,pi_sb];
-
-val LP2_thy = merge_theories "LP2" (L2_thy,LP_thy);
-val LP2 = simple @ [lam_bs,pi_bs,lam_sb,pi_sb];
-
-val LPomega_thy = merge_theories "LPomega" (LP_thy,Lomega_thy);
-val LPomega = simple @ [lam_bb,pi_bb,lam_sb,pi_sb];
-
-val CC_thy = merge_theories "CC" (L2_thy,LPomega_thy);
-val CC = simple @ [lam_bs,pi_bs,lam_bb,pi_bb,lam_sb,pi_sb];
--- a/src/Cube/Cube.thy	Mon Jan 19 16:26:11 1998 +0100
+++ b/src/Cube/Cube.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -1,62 +1,3 @@
-(*  Title:      Cube/Cube.thy
-    ID:         $Id$
-    Author:     Tobias Nipkow
-    Copyright   1993  University of Cambridge
-
-Barendregt's Lambda-Cube
-*)
-
-Cube = Pure +
-
-types
-  term  context  typing
-
-arities
-  term :: logic
-
-consts
-  Abs, Prod     :: "[term, term => term] => term"
-  Trueprop      :: "[context, typing] => prop"          ("(_/ |- _)")
-  MT_context    :: "context"                            ("")
-  Context       :: "[typing, context] => context"       ("_ _")
-  star          :: "term"                               ("*")
-  box           :: "term"                               ("[]")
-  "^"           :: "[term, term] => term"               (infixl 20)
-  Has_type      :: "[term, term] => typing"             ("(_:/ _)" [0, 0] 5)
 
-syntax
-  Trueprop1     :: "typing => prop"                     ("(_)")
-  ""            :: "id => context"                      ("_ ")
-  ""            :: "var => context"                     ("_ ")
-  Lam           :: "[idt, term, term] => term"          ("(3Lam _:_./ _)" [0, 0, 0] 10)
-  Pi            :: "[idt, term, term] => term"          ("(3Pi _:_./ _)" [0, 0] 10)
-  "->"          :: "[term, term] => term"               (infixr 10)
-
-translations
-  (prop) "x:X"  == (prop) "|- x:X"
-  "Lam x:A. B"  == "Abs(A, %x. B)"
-  "Pi x:A. B"   => "Prod(A, %x. B)"
-  "A -> B"      => "Prod(A, _K(B))"
-
-rules
-  s_b           "*: []"
+Cube = Base + L2 + Lomega + LP + LP2 + LOmega + LPomega + CC
 
-  strip_s       "[| A:*;  a:A ==> G |- x:X |] ==> a:A G |- x:X"
-  strip_b       "[| A:[]; a:A ==> G |- x:X |] ==> a:A G |- x:X"
-
-  app           "[| F:Prod(A, B); C:A |] ==> F^C: B(C)"
-
-  pi_ss         "[| A:*; !!x. x:A ==> B(x):* |] ==> Prod(A, B):*"
-
-  lam_ss        "[| A:*; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):* |] 
-                   ==> Abs(A, f) : Prod(A, B)"
-
-  beta          "Abs(A, f)^a == f(a)"
-
-end
-
-
-ML
-
-val print_translation = [("Prod", dependent_tr' ("Pi", "op ->"))];
-
--- a/src/Cube/IsaMakefile	Mon Jan 19 16:26:11 1998 +0100
+++ b/src/Cube/IsaMakefile	Tue Jan 20 18:26:26 1998 +0100
@@ -26,7 +26,9 @@
 Pure:
 	@cd $(SRC)/Pure; $(ISATOOL) make Pure
 
-$(OUT)/Cube: $(OUT)/Pure Cube.ML Cube.thy ROOT.ML
+$(OUT)/Cube: $(OUT)/Pure Base.ML Base.thy CC.ML CC.thy Cube.thy L2.ML \
+  L2.thy LOmega.ML LOmega.thy LP.ML LP.thy LP2.ML LP2.thy LPomega.ML \
+  LPomega.thy Lomega.ML Lomega.thy ROOT.ML
 	@$(ISATOOL) usedir -b $(OUT)/Pure Cube
 
 
@@ -34,7 +36,7 @@
 
 Cube-ex: Cube $(LOG)/Cube-ex.gz
 
-$(LOG)/Cube-ex.gz: $(OUT)/Cube ex/ex.ML ex/ROOT.ML
+$(LOG)/Cube-ex.gz: $(OUT)/Cube ex/ex.ML ex/ex.thy ex/ROOT.ML
 	@$(ISATOOL) usedir $(OUT)/Cube ex
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/L2.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val L2 = simple @ [lam_bs,pi_bs];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/L2.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,9 @@
+
+L2 = Base +
+
+rules
+  pi_bs         "[| A:[]; !!x. x:A ==> B(x):* |] ==> Prod(A,B):*"
+  lam_bs        "[| A:[]; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):* |]
+                   ==> Abs(A,f) : Prod(A,B)"
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LOmega.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val LOmega = simple @ [lam_bs,pi_bs,lam_bb,pi_bb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LOmega.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+LOmega = L2 + Lomega
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LP.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val LP = simple @ [lam_sb,pi_sb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LP.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,9 @@
+
+LP = Base +
+
+rules
+  pi_sb         "[| A:*; !!x. x:A ==> B(x):[] |] ==> Prod(A,B):[]"
+  lam_sb        "[| A:*; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):[] |]
+                   ==> Abs(A,f) : Prod(A,B)"
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LP2.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val LP2 = simple @ [lam_bs,pi_bs,lam_sb,pi_sb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LP2.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+LP2 = LP + L2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LPomega.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val LPomega = simple @ [lam_bb,pi_bb,lam_sb,pi_sb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/LPomega.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+LPomega = LP + Lomega
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/Lomega.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+val Lomega = simple @ [lam_bb,pi_bb];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/Lomega.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,9 @@
+
+Lomega = Base +
+
+rules
+  pi_bb         "[| A:[]; !!x. x:A ==> B(x):[] |] ==> Prod(A,B):[]"
+  lam_bb        "[| A:[]; !!x. x:A ==> f(x):B(x); !!x. x:A ==> B(x):[] |]
+                   ==> Abs(A,f) : Prod(A,B)"
+
+end
--- a/src/Cube/ex/ROOT.ML	Mon Jan 19 16:26:11 1998 +0100
+++ b/src/Cube/ex/ROOT.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -4,4 +4,4 @@
 
 set proof_timing;
 
-use "ex.ML";
+use_thy "ex";
--- a/src/Cube/ex/ex.ML	Mon Jan 19 16:26:11 1998 +0100
+++ b/src/Cube/ex/ex.ML	Tue Jan 20 18:26:26 1998 +0100
@@ -6,129 +6,129 @@
 fun strip_asms_tac thms  i =
     REPEAT(resolve_tac[strip_b,strip_s]i THEN DEPTH_SOLVE_1(ares_tac thms i));
 
-val imp_elim = prove_goal thy "[| f:A->B; a:A; f^a:B ==> PROP P |] ==> PROP P"
+val imp_elim = prove_goal Base.thy "[| f:A->B; a:A; f^a:B ==> PROP P |] ==> PROP P"
         (fn asms => [REPEAT(resolve_tac (app::asms) 1)]);
 
-val pi_elim = prove_goal thy
+val pi_elim = prove_goal Base.thy
         "[| F:Prod(A,B); a:A; F^a:B(a) ==> PROP P |] ==> PROP P"
         (fn asms => [REPEAT(resolve_tac (app::asms) 1)]);
 
 (* SIMPLE TYPES *)
 
-goal thy "A:* |- A->A : ?T";
+goal Base.thy "A:* |- A->A : ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
-goal thy "A:* |- Lam a:A. a : ?T";
+goal Base.thy "A:* |- Lam a:A. a : ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
-goal thy "A:* B:* b:B |- Lam x:A. b : ?T";
+goal Base.thy "A:* B:* b:B |- Lam x:A. b : ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
-goal thy "A:* b:A |- (Lam a:A. a)^b: ?T";
+goal Base.thy "A:* b:A |- (Lam a:A. a)^b: ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
-goal thy "A:* B:* c:A b:B |- (Lam x:A. b)^ c: ?T";
+goal Base.thy "A:* B:* c:A b:B |- (Lam x:A. b)^ c: ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
-goal thy "A:* B:* |- Lam a:A. Lam b:B. a : ?T";
+goal Base.thy "A:* B:* |- Lam a:A. Lam b:B. a : ?T";
 by (DEPTH_SOLVE (ares_tac simple 1));
 uresult();
 
 (* SECOND-ORDER TYPES *)
 
-goal L2_thy "|- Lam A:*. Lam a:A. a : ?T";
+goal L2.thy "|- Lam A:*. Lam a:A. a : ?T";
 by (DEPTH_SOLVE (ares_tac L2 1));
 uresult();
 
-goal L2_thy "A:* |- (Lam B:*.Lam b:B. b)^A : ?T";
+goal L2.thy "A:* |- (Lam B:*.Lam b:B. b)^A : ?T";
 by (DEPTH_SOLVE (ares_tac L2 1));
 uresult();
 
-goal L2_thy "A:* b:A |- (Lam B:*.Lam b:B. b) ^ A ^ b: ?T";
+goal L2.thy "A:* b:A |- (Lam B:*.Lam b:B. b) ^ A ^ b: ?T";
 by (DEPTH_SOLVE (ares_tac L2 1));
 uresult();
 
-goal L2_thy "|- Lam B:*.Lam a:(Pi A:*.A).a ^ ((Pi A:*.A)->B) ^ a: ?T";
+goal L2.thy "|- Lam B:*.Lam a:(Pi A:*.A).a ^ ((Pi A:*.A)->B) ^ a: ?T";
 by (DEPTH_SOLVE (ares_tac L2 1));
 uresult();
 
 (* Weakly higher-order proposiional logic *)
 
-goal Lomega_thy "|- Lam A:*.A->A : ?T";
+goal Lomega.thy "|- Lam A:*.A->A : ?T";
 by (DEPTH_SOLVE (ares_tac Lomega 1));
 uresult();
 
-goal Lomega_thy "B:* |- (Lam A:*.A->A) ^ B : ?T";
+goal Lomega.thy "B:* |- (Lam A:*.A->A) ^ B : ?T";
 by (DEPTH_SOLVE (ares_tac Lomega 1));
 uresult();
 
-goal Lomega_thy "B:* b:B |- (Lam y:B. b): ?T";
+goal Lomega.thy "B:* b:B |- (Lam y:B. b): ?T";
 by (DEPTH_SOLVE (ares_tac Lomega 1));
 uresult();
 
-goal Lomega_thy "A:* F:*->* |- F^(F^A): ?T";
+goal Lomega.thy "A:* F:*->* |- F^(F^A): ?T";
 by (DEPTH_SOLVE (ares_tac Lomega 1));
 uresult();
 
-goal Lomega_thy "A:* |- Lam F:*->*.F^(F^A): ?T";
+goal Lomega.thy "A:* |- Lam F:*->*.F^(F^A): ?T";
 by (DEPTH_SOLVE (ares_tac Lomega 1));
 uresult();
 
 (* LF *)
 
-goal LP_thy "A:* |- A -> * : ?T";
+goal LP.thy "A:* |- A -> * : ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* a:A |- P^a: ?T";
+goal LP.thy "A:* P:A->* a:A |- P^a: ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->A->* a:A |- Pi a:A. P^a^a: ?T";
+goal LP.thy "A:* P:A->A->* a:A |- Pi a:A. P^a^a: ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* Q:A->* |- Pi a:A. P^a -> Q^a: ?T";
+goal LP.thy "A:* P:A->* Q:A->* |- Pi a:A. P^a -> Q^a: ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* |- Pi a:A. P^a -> P^a: ?T";
+goal LP.thy "A:* P:A->* |- Pi a:A. P^a -> P^a: ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* |- Lam a:A. Lam x:P^a. x: ?T";
+goal LP.thy "A:* P:A->* |- Lam a:A. Lam x:P^a. x: ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* Q:* |- (Pi a:A. P^a->Q) -> (Pi a:A. P^a) -> Q : ?T";
+goal LP.thy "A:* P:A->* Q:* |- (Pi a:A. P^a->Q) -> (Pi a:A. P^a) -> Q : ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
-goal LP_thy "A:* P:A->* Q:* a0:A |- \
+goal LP.thy "A:* P:A->* Q:* a0:A |- \
 \       Lam x:Pi a:A. P^a->Q. Lam y:Pi a:A. P^a. x^a0^(y^a0): ?T";
 by (DEPTH_SOLVE (ares_tac LP 1));
 uresult();
 
 (* OMEGA-ORDER TYPES *)
 
-goal L2_thy "A:* B:* |- Pi C:*.(A->B->C)->C : ?T";
+goal L2.thy "A:* B:* |- Pi C:*.(A->B->C)->C : ?T";
 by (DEPTH_SOLVE (ares_tac L2 1));
 uresult();
 
-goal LOmega_thy "|- Lam A:*.Lam B:*.Pi C:*.(A->B->C)->C : ?T";
+goal LOmega.thy "|- Lam A:*.Lam B:*.Pi C:*.(A->B->C)->C : ?T";
 by (DEPTH_SOLVE (ares_tac LOmega 1));
 uresult();
 
-goal LOmega_thy "|- Lam A:*.Lam B:*.Lam x:A. Lam y:B. x : ?T";
+goal LOmega.thy "|- Lam A:*.Lam B:*.Lam x:A. Lam y:B. x : ?T";
 by (DEPTH_SOLVE (ares_tac LOmega 1));
 uresult();
 
-goal LOmega_thy "A:* B:* |- ?p : (A->B) -> ((B->Pi P:*.P)->(A->Pi P:*.P))";
+goal LOmega.thy "A:* B:* |- ?p : (A->B) -> ((B->Pi P:*.P)->(A->Pi P:*.P))";
 by (strip_asms_tac LOmega 1);
 by (rtac lam_ss 1);
 by (DEPTH_SOLVE_1(ares_tac LOmega 1));
@@ -148,17 +148,17 @@
 
 (* Second-order Predicate Logic *)
 
-goal LP2_thy "A:* P:A->* |- Lam a:A. P^a->(Pi A:*.A) : ?T";
+goal LP2.thy "A:* P:A->* |- Lam a:A. P^a->(Pi A:*.A) : ?T";
 by (DEPTH_SOLVE (ares_tac LP2 1));
 uresult();
 
-goal LP2_thy "A:* P:A->A->* |- \
+goal LP2.thy "A:* P:A->A->* |- \
 \       (Pi a:A. Pi b:A. P^a^b->P^b^a->Pi P:*.P) -> Pi a:A. P^a^a->Pi P:*.P : ?T";
 by (DEPTH_SOLVE (ares_tac LP2 1));
 uresult();
 
 (* Antisymmetry implies irreflexivity: *)
-goal LP2_thy "A:* P:A->A->* |- \
+goal LP2.thy "A:* P:A->A->* |- \
 \       ?p: (Pi a:A. Pi b:A. P^a^b->P^b^a->Pi P:*.P) -> Pi a:A. P^a^a->Pi P:*.P";
 by (strip_asms_tac LP2 1);
 by (rtac lam_ss 1);
@@ -175,25 +175,25 @@
 
 (* LPomega *)
 
-goal LPomega_thy "A:* |- Lam P:A->A->*.Lam a:A. P^a^a : ?T";
+goal LPomega.thy "A:* |- Lam P:A->A->*.Lam a:A. P^a^a : ?T";
 by (DEPTH_SOLVE (ares_tac LPomega 1));
 uresult();
 
-goal LPomega_thy "|- Lam A:*.Lam P:A->A->*.Lam a:A. P^a^a : ?T";
+goal LPomega.thy "|- Lam A:*.Lam P:A->A->*.Lam a:A. P^a^a : ?T";
 by (DEPTH_SOLVE (ares_tac LPomega 1));
 uresult();
 
 (* CONSTRUCTIONS *)
 
-goal CC_thy "|- Lam A:*.Lam P:A->*.Lam a:A. P^a->Pi P:*.P: ?T";
+goal CC.thy "|- Lam A:*.Lam P:A->*.Lam a:A. P^a->Pi P:*.P: ?T";
 by (DEPTH_SOLVE (ares_tac CC 1));
 uresult();
 
-goal CC_thy "|- Lam A:*.Lam P:A->*.Pi a:A. P^a: ?T";
+goal CC.thy "|- Lam A:*.Lam P:A->*.Pi a:A. P^a: ?T";
 by (DEPTH_SOLVE (ares_tac CC 1));
 uresult();
 
-goal CC_thy "A:* P:A->* a:A |- ?p : (Pi a:A. P^a)->P^a";
+goal CC.thy "A:* P:A->* a:A |- ?p : (Pi a:A. P^a)->P^a";
 by (strip_asms_tac CC 1);
 by (rtac lam_ss 1);
 by (DEPTH_SOLVE_1(ares_tac CC 1));
@@ -203,18 +203,18 @@
 
 (* Some random examples *)
 
-goal LP2_thy "A:* c:A f:A->A |- \
+goal LP2.thy "A:* c:A f:A->A |- \
 \       Lam a:A. Pi P:A->*.P^c -> (Pi x:A. P^x->P^(f^x)) -> P^a : ?T";
 by (DEPTH_SOLVE(ares_tac LP2 1));
 uresult();
 
-goal CC_thy "Lam A:*.Lam c:A. Lam f:A->A. \
+goal CC.thy "Lam A:*.Lam c:A. Lam f:A->A. \
 \       Lam a:A. Pi P:A->*.P^c -> (Pi x:A. P^x->P^(f^x)) -> P^a : ?T";
 by (DEPTH_SOLVE(ares_tac CC 1));
 uresult();
 
 (* Symmetry of Leibnitz equality *)
-goal LP2_thy "A:* a:A b:A |- ?p: (Pi P:A->*.P^a->P^b) -> (Pi P:A->*.P^b->P^a)";
+goal LP2.thy "A:* a:A b:A |- ?p: (Pi P:A->*.P^a->P^b) -> (Pi P:A->*.P^b->P^a)";
 by (strip_asms_tac LP2 1);
 by (rtac lam_ss 1);
 by (DEPTH_SOLVE_1(ares_tac LP2 1));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Cube/ex/ex.thy	Tue Jan 20 18:26:26 1998 +0100
@@ -0,0 +1,2 @@
+
+ex = Cube