neuper@41945
|
1 |
(* Title: All tests on isac; observe outcommented
|
neuper@41943
|
2 |
Author: Walther Neuper 101001
|
neuper@41943
|
3 |
(c) copyright due to lincense terms.
|
neuper@41943
|
4 |
|
neuper@41943
|
5 |
$ cd /usr/local/isabisac/test/Tools/isac
|
neuper@41945
|
6 |
$ /usr/local/isabisac/bin/isabelle emacs -l Isac Test_Isac.thy &
|
neuper@41968
|
7 |
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
neuper@41968
|
8 |
10 20 30 40 50 60 70 80 90 100
|
neuper@41943
|
9 |
*)
|
neuper@41943
|
10 |
|
neuper@41954
|
11 |
theory Test_Isac imports Isac
|
neuper@41945
|
12 |
uses
|
neuper@41945
|
13 |
( "library.sml")
|
neuper@41945
|
14 |
( "calcelems.sml")
|
neuper@41945
|
15 |
("ProgLang/termC.sml")
|
neuper@41945
|
16 |
("ProgLang/calculate.sml")
|
neuper@41945
|
17 |
("ProgLang/rewrite.sml")
|
neuper@41945
|
18 |
(*("ProgLang/listg.sml") ("ProgLang/scrtools.sml") ("ProgLang/tools.sml") *)
|
neuper@41945
|
19 |
|
neuper@41945
|
20 |
("Interpret/mstools.sml")
|
bonzai@41951
|
21 |
("Interpret/ctree.sml")
|
neuper@41945
|
22 |
("Interpret/ptyps.sml")
|
neuper@41945
|
23 |
(*("Interpret/generate.sml")*)
|
neuper@41945
|
24 |
("Interpret/calchead.sml")
|
neuper@41945
|
25 |
(*("Interpret/appl.sml")*)
|
neuper@41945
|
26 |
("Interpret/rewtools.sml")
|
neuper@41945
|
27 |
(*("Interpret/script.sml")
|
neuper@41945
|
28 |
("Interpret/solve.sml")
|
neuper@41945
|
29 |
("Interpret/inform.sml")*)
|
neuper@41945
|
30 |
("Interpret/mathengine.sml")
|
neuper@41945
|
31 |
|
neuper@41945
|
32 |
(*("xmlsrc/mathml.sml")
|
neuper@41945
|
33 |
("xmlsrc/datatypes.sml")
|
neuper@41945
|
34 |
("xmlsrc/pbl-met-hierarchy.sml")
|
neuper@41945
|
35 |
("xmlsrc/thy-hierarchy.sml")*)
|
neuper@41945
|
36 |
("xmlsrc/interface-xml.sml")
|
neuper@41945
|
37 |
|
neuper@41945
|
38 |
("Frontend/messages.sml")
|
neuper@41945
|
39 |
("Frontend/states.sml")
|
neuper@41945
|
40 |
("Frontend/interface.sml")
|
neuper@41945
|
41 |
("print_exn_G.sml")
|
neuper@41945
|
42 |
|
neuper@41945
|
43 |
("Knowledge/delete.sml")
|
neuper@41945
|
44 |
("Knowledge/descript.sml")
|
neuper@41945
|
45 |
("Knowledge/atools.sml")
|
neuper@41945
|
46 |
("Knowledge/simplify.sml")
|
neuper@41945
|
47 |
("Knowledge/poly.sml")
|
neuper@41945
|
48 |
("Knowledge/rational.sml")
|
neuper@41945
|
49 |
("Knowledge/equation.sml")
|
neuper@41945
|
50 |
("Knowledge/root.sml")
|
neuper@41945
|
51 |
("Knowledge/lineq.sml")
|
neuper@41945
|
52 |
("Knowledge/rooteq.sml")
|
neuper@41945
|
53 |
("Knowledge/rateq.sml")
|
neuper@41945
|
54 |
("Knowledge/rootrateq.sml")
|
neuper@41945
|
55 |
(*("Knowledge/polyeq.sml")*)
|
neuper@41945
|
56 |
("Knowledge/calculus.sml")
|
neuper@41945
|
57 |
("Knowledge/trig.sml")
|
neuper@41945
|
58 |
("Knowledge/logexp.sml")
|
neuper@41945
|
59 |
("Knowledge/diff.sml")
|
neuper@41945
|
60 |
("Knowledge/integrate.sml")
|
neuper@41945
|
61 |
("Knowledge/eqsystem.sml")
|
neuper@41945
|
62 |
("Knowledge/test.sml")
|
neuper@41945
|
63 |
("Knowledge/polyminus.sml")
|
neuper@41945
|
64 |
("Knowledge/vect.sml")
|
neuper@41945
|
65 |
("Knowledge/diffapp.sml")
|
neuper@41945
|
66 |
("Knowledge/biegelinie.sml")
|
neuper@41945
|
67 |
("Knowledge/algein.sml")
|
neuper@41945
|
68 |
("Knowledge/diophanteq.sml")
|
neuper@41945
|
69 |
("Knowledge/isac.sml")
|
neuper@41945
|
70 |
|
neuper@41943
|
71 |
begin
|
neuper@41947
|
72 |
|
neuper@41943
|
73 |
ML {*"%%%%%%%%%%%%%%%%% start ProgLang.thy %%%%%%%%%%%%%%%%%%%";*}
|
neuper@41945
|
74 |
use "library.sml" (*new 2011*)
|
neuper@41945
|
75 |
use "calcelems.sml" (*complete*)
|
neuper@41943
|
76 |
use "ProgLang/termC.sml" (*part.*)
|
neuper@41943
|
77 |
use "ProgLang/calculate.sml" (*part.*)
|
neuper@41943
|
78 |
use "ProgLang/rewrite.sml" (*part.*)
|
neuper@41943
|
79 |
(*use "ProgLang/listg.sml" 2002*)
|
neuper@41943
|
80 |
(*use "ProgLang/scrtools.sml" 2002*)
|
neuper@41943
|
81 |
(*use "ProgLang/tools.sml" 2002*)
|
neuper@41943
|
82 |
ML {*"%%%%%%%%%%%%%%%%% end ProgLang.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
83 |
ML {*"%%%%%%%%%%%%%%%%% start Interpret.thy %%%%%%%%%%%%%%%%%%";*}
|
neuper@41973
|
84 |
ML {*
|
neuper@41973
|
85 |
val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
|
neuper@41973
|
86 |
val (dI',pI',mI') =
|
neuper@41973
|
87 |
("Test", ["sqroot-test","univariate","equation","test"],
|
neuper@41973
|
88 |
["Test","squ-equ-test-subpbl1"]);
|
neuper@41973
|
89 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@41973
|
90 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
91 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
92 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
93 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
94 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
95 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
96 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
97 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
98 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
99 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
100 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41973
|
101 |
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt; WAS:
|
neuper@41973
|
102 |
Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
neuper@41973
|
103 |
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt; WAS: applicable_in (p,Pbl) pt (Tac id): not at Pbl*)
|
neuper@41973
|
104 |
show_pt pt; (*WAS ...(([3], Pbl), solve (-1 + x = 0, x))] OK*)
|
neuper@41973
|
105 |
"~~~~~ fun me, args:"; val (_,tac) = nxt;
|
neuper@41973
|
106 |
val (pt, p) = case locatetac tac (pt,p) of
|
neuper@41973
|
107 |
("ok", (_, _, ptp)) => ptp | _ => error "script.sml locatetac";
|
neuper@41973
|
108 |
"~~~~~ fun step, args:"; val (ip as (_,p_), (ptp as (pt,p), tacis)) = (p, ((pt, e_pos'), []))
|
neuper@41973
|
109 |
val pIopt = get_pblID (pt,ip);
|
neuper@41973
|
110 |
tacis; (*= []*)
|
neuper@41973
|
111 |
pIopt; (*= SOME ["sqroot-test", "univariate", ...]*)
|
neuper@41973
|
112 |
member op = [Pbl,Met] p_ andalso is_none (get_obj g_env pt (fst p)); (*= true*)
|
neuper@41973
|
113 |
"~~~~~ fun nxt_specify_, args:"; val (ptp as (pt, pos as (p,p_))) = (pt,ip);
|
neuper@41973
|
114 |
val pblobj as (PblObj{meth,origin=origin as (oris,(dI',pI',mI'),_),
|
neuper@41973
|
115 |
probl,spec=(dI,pI,mI),...}) = get_obj I pt p;
|
neuper@41973
|
116 |
just_created_ pblobj (*by Subproblem*) andalso origin <> e_origin; (*false*)
|
neuper@41973
|
117 |
val cpI = if pI = e_pblID then pI' else pI;
|
neuper@41973
|
118 |
val cmI = if mI = e_metID then mI' else mI;
|
neuper@41973
|
119 |
val {ppc, prls, where_, ...} = get_pbt cpI;
|
neuper@41973
|
120 |
val pre = check_preconds "thy 100820" prls where_ probl;
|
neuper@41973
|
121 |
val pb = foldl and_ (true, map fst pre);
|
neuper@41973
|
122 |
val (_,tac) = nxt_spec p_ pb oris (dI',pI',mI') (probl, meth)
|
neuper@41973
|
123 |
(ppc, (#ppc o get_met) cmI) (dI, pI, mI);
|
neuper@41973
|
124 |
"~~~~~ fun nxt_specif, args:"; val (Add_Given ct, ptp) = (tac, ptp);
|
neuper@41973
|
125 |
"~~~~~ fun nxt_specif_additem, args:"; val (sel, ct, ptp as (pt, (p, Pbl))) = ("#Given", ct, ptp);
|
neuper@41973
|
126 |
val (PblObj{meth=met,origin=(oris,(dI',pI',_),_),
|
neuper@41973
|
127 |
probl=pbl,spec=(dI,pI,_),...}) = get_obj I pt p;
|
neuper@41973
|
128 |
val thy = if dI = e_domID then assoc_thy dI' else assoc_thy dI;
|
neuper@41973
|
129 |
val cpI = if pI = e_pblID then pI' else pI;
|
neuper@41973
|
130 |
val ctxt = get_ctxt pt (p, Pbl);
|
neuper@41973
|
131 |
oris; (*= [(1, [1], "#Given", Const ("Descript.equality", "HOL.bool...*)
|
neuper@41973
|
132 |
"~~~~~ fun appl_add, args:"; val (ctxt, sel, oris, ppc, pbt, str) =
|
neuper@41973
|
133 |
(ctxt, sel, oris, pbl, (#ppc o get_pbt) cpI, ct);
|
neuper@41975
|
134 |
*}
|
neuper@41975
|
135 |
ML {*
|
neuper@41975
|
136 |
val t = parseNEW ctxt str;
|
neuper@41975
|
137 |
str;
|
neuper@41975
|
138 |
t;
|
neuper@41975
|
139 |
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
|
neuper@41975
|
140 |
if t = parseNEW ctxt "-1 + x = (0::real)" then ()
|
neuper@41973
|
141 |
else error "TODO"
|
neuper@41975
|
142 |
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
|
neuper@41975
|
143 |
|
neuper@41973
|
144 |
*}
|
neuper@41975
|
145 |
ML {*
|
neuper@41975
|
146 |
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
|
neuper@41975
|
147 |
print_depth 999; applicable_in p pt m;
|
neuper@41975
|
148 |
Model_Problem';
|
neuper@41975
|
149 |
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
|
neuper@41975
|
150 |
*}
|
neuper@41975
|
151 |
use "Interpret/mstools.sml" (*new 2010*)
|
neuper@41975
|
152 |
use "Interpret/ctree.sml" (*!...see(25)*)
|
neuper@41943
|
153 |
use "Interpret/ptyps.sml" (* *)
|
neuper@41943
|
154 |
(*use "Interpret/generate.sml" new 2011*)
|
neuper@41972
|
155 |
use "Interpret/calchead.sml" (*! *)
|
neuper@41975
|
156 |
use "Interpret/appl.sml" (*!complete WEGEN INTERMED TESTCODE*)
|
neuper@41972
|
157 |
use "Interpret/rewtools.sml" (*! *)
|
neuper@41972
|
158 |
use "Interpret/script.sml" (*!TODO*)
|
neuper@41972
|
159 |
(*use "Interpret/solve.sml" !TODO*)
|
neuper@41972
|
160 |
(*use "Interpret/inform.sml" !TODO*)
|
neuper@41972
|
161 |
use "Interpret/mathengine.sml" (*!part.*)
|
neuper@41943
|
162 |
ML {*"%%%%%%%%%%%%%%%%% end Interpret.thy %%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
163 |
ML {*"%%%%%%%%%%%%%%%%% start xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
164 |
(*use "xmlsrc/mathml.sml" TODO*)
|
neuper@41943
|
165 |
(*use "xmlsrc/datatypes.sml" TODO*)
|
neuper@41943
|
166 |
(*use "xmlsrc/pbl-met-hierarchy.sml" TODO*)
|
neuper@41943
|
167 |
(*use "xmlsrc/thy-hierarchy.sml" TODO after 2009-2*)
|
neuper@41943
|
168 |
use "xmlsrc/interface-xml.sml" (*TODO after 2009-2*)
|
neuper@41943
|
169 |
ML {*"%%%%%%%%%%%%%%%%% end xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
170 |
ML {*"%%%%%%%%%%%%%%%%% start Frontend.thy %%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
171 |
use "Frontend/messages.sml" (*new 2011*)
|
neuper@41943
|
172 |
use "Frontend/states.sml" (*new 2011*)
|
neuper@41945
|
173 |
use "Frontend/interface.sml" (*part.*)
|
neuper@41945
|
174 |
use "print_exn_G.sml" (*new 2011*)
|
neuper@41943
|
175 |
ML {*"%%%%%%%%%%%%%%%%% end Frontend.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
176 |
ML {*"%%%%%%%%%%%%%%%%% start Knowledge.thy %%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
177 |
use "Knowledge/delete.sml" (*new 2011*)
|
neuper@41943
|
178 |
use "Knowledge/descript.sml" (*new 2011*)
|
neuper@41943
|
179 |
(*use "Knowledge/atools.sml" 2002, added termorder.sml 2011*)
|
neuper@41943
|
180 |
use "Knowledge/simplify.sml" (*part.*)
|
neuper@41943
|
181 |
(*use "Knowledge/poly.sml" 2002*)
|
neuper@41947
|
182 |
(*use "Knowledge/rational.sml" part.; diff.emacs--jedit*)
|
neuper@41943
|
183 |
(*use "Knowledge/equation.sml" 2002*)
|
neuper@41943
|
184 |
(*use "Knowledge/root.sml" 2002*)
|
neuper@41943
|
185 |
use "Knowledge/lineq.sml" (*new 2011*)
|
neuper@41943
|
186 |
(*use "Knowledge/rooteq.sml" 2002*)
|
neuper@41943
|
187 |
(*use "Knowledge/rateq.sml" 2002*)
|
neuper@41943
|
188 |
(*use "Knowledge/rootrat.sml" 2002*)
|
neuper@41943
|
189 |
(*use "Knowledge/rootrateq.sml" 2002*)
|
neuper@41943
|
190 |
(*use "Knowledge/polyeq.sml" 2002*)
|
neuper@41956
|
191 |
(*use "Knowledge/rlang.sml" 2002???*)
|
neuper@41943
|
192 |
use "Knowledge/calculus.sml" (*new 2011*)
|
neuper@41943
|
193 |
(*use "Knowledge/trig.sml" 2002*)
|
neuper@41943
|
194 |
(*use "Knowledge/logexp.sml" 2002*)
|
neuper@41943
|
195 |
use "Knowledge/diff.sml" (*part.*)
|
neuper@41947
|
196 |
(*use "Knowledge/integrate.sml" part. was complete 2009-2
|
neuper@41947
|
197 |
diff.emacs--jedit*)
|
neuper@41943
|
198 |
(*use "Knowledge/eqsystem.sml" 2002*)
|
neuper@41943
|
199 |
use "Knowledge/test.sml" (*new 2011*)
|
neuper@41943
|
200 |
use "Knowledge/polyminus.sml" (*part.*)
|
neuper@41943
|
201 |
(*use "Knowledge/vect.sml" 2002*)
|
neuper@41943
|
202 |
(*use "Knowledge/diffapp.sml" 2002*)
|
neuper@41943
|
203 |
(*use "Knowledge/biegelinie.sml" 2002*)
|
neuper@41943
|
204 |
(*use "Knowledge/algein.sml" 2002*)
|
neuper@41943
|
205 |
use "Knowledge/diophanteq.sml" (*complete*)
|
neuper@41943
|
206 |
use "Knowledge/isac.sml" (*part.*)
|
neuper@41943
|
207 |
ML {*"%%%%%%%%%%%%%%%%% end Knowledge.thy %%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41945
|
208 |
ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41945
|
209 |
ML {*"%%%%%%%%%%%%%%%%% all tests successful %%%%%%%%%%%%%%%%%";*}
|
neuper@41945
|
210 |
ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
211 |
|
neuper@41943
|
212 |
end
|
neuper@41943
|
213 |
|
neuper@41943
|
214 |
(*=== inhibit exn ?=============================================================
|
neuper@41943
|
215 |
===== inhibit exn ?===========================================================*)
|
neuper@41943
|
216 |
|
neuper@41969
|
217 |
(*========== inhibit exn 110503 ================================================
|
neuper@41943
|
218 |
|
neuper@41943
|
219 |
"########### testcode inserted vvv ###########################################";
|
neuper@41943
|
220 |
"########### testcode inserted ^^^ ###########################################";
|
neuper@41943
|
221 |
|
neuper@41969
|
222 |
============ inhibit exn 110503 ==============================================*)
|
neuper@41943
|
223 |
|
neuper@41943
|
224 |
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
|
neuper@41943
|
225 |
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
|
neuper@41975
|
226 |
|