neuper@41905
|
1 |
(* Title: test/Tools/isac/ADDTESTS/file-depend
|
neuper@41905
|
2 |
Author: Walther Neuper
|
neuper@41905
|
3 |
*)
|
neuper@41905
|
4 |
|
neuper@41905
|
5 |
header {* Test file dependencies analogous to ISAC
|
neuper@41905
|
6 |
|
neuper@41899
|
7 |
$ cd /usr/local/Isabelle/test/Tools/isac/ADDTESTS/file-depend
|
neuper@41899
|
8 |
$ /usr/local/Isabelle/bin/isabelle emacs Build_Test.thy &
|
neuper@41905
|
9 |
*}
|
neuper@41905
|
10 |
(*----------------------------------------------------------------------------
|
neuper@41900
|
11 |
theory Build_Test
|
neuper@41900
|
12 |
imports
|
neuper@41900
|
13 |
Complex_Main
|
neuper@41900
|
14 |
"1language/Foo_Language"
|
neuper@41900
|
15 |
"3knowledge/Foo_KnowALL"
|
neuper@41900
|
16 |
begin
|
neuper@41905
|
17 |
----------------------------------------------------------------------------*)
|
neuper@37946
|
18 |
|
neuper@41905
|
19 |
theory Build_Test
|
neuper@41905
|
20 |
imports
|
neuper@41905
|
21 |
Complex_Main
|
neuper@41905
|
22 |
begin
|
neuper@41905
|
23 |
use "0foolibrary.ML" ML {* foolibrhs *}
|
neuper@41905
|
24 |
use_thy "1language/Foo_Language" (*ML {* @{const fooprog} *}*)
|
neuper@41905
|
25 |
use "2interpreter/2foointerpreter.ML" ML {* foointerpret *}
|
neuper@37946
|
26 |
|
neuper@41905
|
27 |
text {* The top 'theory ... begin' can be outcommended and done stepwise:
|
neuper@41905
|
28 |
|
neuper@41905
|
29 |
use "2interpreter/2foointerpreter.ML"
|
neuper@41905
|
30 |
use_thy "3knowledge/Foo_Know111"
|
neuper@41905
|
31 |
use_thy "3knowledge/Foo_Know222"
|
neuper@41905
|
32 |
use_thy "3knowledge/Foo_KnowALL"
|
neuper@41905
|
33 |
*}
|
neuper@37946
|
34 |
|
neuper@37949
|
35 |
text {* the different theories of knowledge are recognized, Const bar*: *}
|
neuper@37949
|
36 |
ML {*
|
neuper@37946
|
37 |
val trm = Syntax.read_term_global @{theory Foo_Know111}
|
neuper@37946
|
38 |
"fooprog (foo111 = bar111)";
|
neuper@37949
|
39 |
val Const ("Foo_Know111.bar111", _) = foointerpret trm;
|
neuper@37946
|
40 |
|
neuper@37946
|
41 |
val trm = Syntax.read_term_global @{theory Foo_Know222}
|
neuper@37946
|
42 |
"fooprog (foo222 = bar222)";
|
neuper@37949
|
43 |
val Const ("Foo_Know222.bar222", _) = foointerpret trm;
|
neuper@37946
|
44 |
*}
|
neuper@37946
|
45 |
|
neuper@37949
|
46 |
text {* the different theories of knowledge are recognized, Free bar*: *}
|
neuper@37949
|
47 |
ML {*
|
neuper@37946
|
48 |
val trm = Syntax.read_term_global @{theory Foo_Know111}
|
neuper@37946
|
49 |
"fooprog (foo222 = bar222)";
|
neuper@37946
|
50 |
(*Const ("Foo_Language.fooprog", "bool => Foo_Language.foosource") $
|
neuper@37946
|
51 |
(Const ("op =", "'a => 'a => bool") $ Free ("foo222", "'a") $
|
neuper@37946
|
52 |
Free ("bar222", "'a"))
|
neuper@37946
|
53 |
: term*)
|
neuper@37946
|
54 |
|
neuper@37946
|
55 |
val trm = Syntax.read_term_global @{theory Foo_Know222}
|
neuper@37946
|
56 |
"fooprog (foo111 = bar111)";
|
neuper@37946
|
57 |
(*val trm =
|
neuper@37946
|
58 |
Const ("Foo_Language.fooprog", "bool => Foo_Language.foosource") $
|
neuper@37946
|
59 |
(Const ("op =", "'a => 'a => bool") $ Free ("foo111", "'a") $
|
neuper@37946
|
60 |
Free ("bar111", "'a"))
|
neuper@37946
|
61 |
: term*)
|
neuper@41905
|
62 |
*}
|
neuper@41905
|
63 |
|
neuper@41905
|
64 |
text {* dir structure reflects ISAC, see Build_Isac.thy:
|
neuper@41905
|
65 |
/file-depend/0foolibrary.ML
|
neuper@41905
|
66 |
/file-depend/Build_Test.thy
|
neuper@41905
|
67 |
/file-depend/README
|
neuper@41905
|
68 |
|
neuper@41905
|
69 |
/file-depend/1language/Foo_Language.thy
|
neuper@41905
|
70 |
|
neuper@41905
|
71 |
/file-depend/2interpreter/2foointerpreter.ML
|
neuper@41905
|
72 |
|
neuper@41905
|
73 |
/file-depend/3knowledge/Foo_Know111.thy
|
neuper@41905
|
74 |
/file-depend/3knowledge/Foo_Know222.thy
|
neuper@41905
|
75 |
/file-depend/3knowledge/Foo_KnowALL.thy
|
neuper@37946
|
76 |
*} |