Test_Isac works again, perfectly ..
# the same tests works as in 8df4b6196660 (the *child* of "Test_Isac works...")
# ..EXCEPT those marked with "exception Div raised"
# for general state of tests see Test_Isac section {* history of tests *}.
1 (* Title: tests on solve.sml
2 Author: Walther Neuper 060508,
3 (c) due to copyright terms
5 is NOT ONLY dependent on Test, but on other thys:
6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 uses from Rational.ML: Rrls cancel_p, Rrls cancel
9 uses from Poly.ML: Rls make_polynomial, Rls expand_binom
13 trace_rewrite := false;
14 trace_script := false;
15 "-----------------------------------------------------------------";
16 "table of contents -----------------------------------------------";
17 "-----------------------------------------------------------------";
18 "--------- interSteps on norm_Rational ---------------------------";
19 (*---vvv NOT working after meNEW.04mmdd*)
20 "###### val intermediate_ptyps = !ptyps; val intermediate_mets = !mets";
21 "--------- prepare pbl, met --------------------------------------";
22 "-------- cancel, without detail ------------------------------";
23 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
24 "-------------- cancel_p, without detail ------------------------------";
25 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
26 (*---^^^ NOT working*)
27 "on 'miniscript with mini-subpbl':";
28 "------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
29 "------ interSteps'detailrls' after CompleteCalc -----------------";
30 "------ interSteps after appendFormula ---------------------------";
31 (*---vvv not brought to work 0403*)
32 "------ Detail_Set -----------------------------------------------";
33 "###### ptyps:= intermediate_ptyps; met:= intermediate_mets;#######";
34 "-----------------------------------------------------------------";
35 "-----------------------------------------------------------------";
36 "-----------------------------------------------------------------";
38 val thy= @{theory Isac};
39 "--------- interSteps on norm_Rational ---------------------------";
40 "--------- interSteps on norm_Rational ---------------------------";
41 "--------- interSteps on norm_Rational ---------------------------";
42 states := []; (*exp_IsacCore_Simp_Rat_Double_No-7.xml*)
43 CalcTree [(["Term ((2/(x+3) + 2/(x - 3)) / (8*x/(x^2 - 9)))", "normalform N"],
44 ("Rational", ["rational","simplification"], ["simplification","of_rationals"]))];
46 autoCalculate 1 CompleteCalc;
47 val ((pt, _), _) = get_calc 1; show_pt pt;
48 case pt of Nd (PblObj _, [Nd _, Nd _, Nd _, Nd _, Nd _, Nd _]) => ()
49 | _ => error "solve.sml: interSteps on norm_Rational 1";
50 interSteps 1 ([6], Res);
52 getTactic 1 ([6,1], Frm) (*here get the tactic, and ...*);
53 interSteps 1 ([6,1], Res) (*... here get the intermediate steps above*);
55 getTactic 1 ([6,1,1], Frm); (*WN130909 <ERROR> syserror in getTactic </ERROR>*)
56 val ((pt,_),_) = get_calc 1; show_pt pt;
57 val (Form form, SOME tac, asm) = pt_extract (pt, ([6], Res));
58 case (term2str form, tac, terms2strs asm) of
59 ("1 / 2", Check_Postcond ["rational", "simplification"], []) => ()
60 | _ => error "solve.sml: interSteps on norm_Rational 2";
62 val (t, asm) = get_obj g_result pt [];
63 if terms2str asm = "[\"8 * x ~= 0\",\"-9 + x ^^^ 2 ~= 0\"," ^
64 "\"(2 / (x + 3) + 2 / (x - 3)) / (8 * x / (x ^^^ 2 - 9)) is_ratpolyexp\"]"
65 then () else error "solve.sml: interSteps on norm_Rational 2, asms";
68 "###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
69 "###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
70 "###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
71 val intermediate_ptyps = !ptyps;
72 val intermediate_mets = !mets;
74 "--------- prepare pbl, met --------------------------------------";
75 "--------- prepare pbl, met --------------------------------------";
76 "--------- prepare pbl, met --------------------------------------";
78 (prep_pbt @{theory Test} "pbl_ttestt" [] e_pblID
79 (["test"], [], e_rls, NONE, []));
81 (prep_pbt @{theory Test} "pbl_ttestt_detail" [] e_pblID
83 [("#Given", ["realTestGiven t_t"]), ("#Find", ["realTestFind s_s"])],
84 e_rls, NONE, [["Test","test_detail"]]));
87 (prep_met @{theory Test} "met_detbin" [] e_metID
88 (["Test", "test_detail_binom"] : metID,
89 [("#Given", ["realTestGiven t_t"]), ("#Find", ["realTestFind s_s"])],
90 {rew_ord' = "sqrt_right", rls' = tval_rls, calc = [], srls = e_rls, prls = e_rls,
91 crls = tval_rls, errpats = [], nrls = e_rls},
92 "Script Testterm (g_g::real) =" ^
93 "(((Rewrite_Set expand_binoms False) @@" ^
94 "(Rewrite_Set cancel_p False)) g_g)"));
96 (prep_met @{theory Test} "met_detpoly" [] e_metID
97 (["Test","test_detail_poly"] : metID,
98 [("#Given", ["realTestGiven t_t"]), ("#Find", ["realTestFind s_s"])],
99 {rew_ord' = "sqrt_right", rls' = tval_rls, calc = [], srls = e_rls, prls = e_rls,
100 crls = tval_rls, errpats = [], nrls = e_rls},
101 "Script Testterm (g_g::real) =" ^
102 "(((Rewrite_Set make_polynomial False) @@" ^
103 "(Rewrite_Set cancel_p False)) g_g)"));
105 "-------- cancel, without detail ------------------------------";
106 "-------- cancel, without detail ------------------------------";
107 "-------- cancel, without detail ------------------------------";
108 val fmz = ["realTestGiven (((3 + x) * (3 + -1*x)) / ((3 + x) * (3 + x)))", "realTestFind s"];
109 val (dI',pI',mI') = ("Test", ["detail", "test"], ["Test", "test_detail_binom"]);
111 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
112 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
113 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
114 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
115 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
116 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
117 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
118 (*nxt = ("Apply_Method",Apply_Method ("Test","test_detail"))*)
119 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
120 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
121 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
122 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
123 (*WN130909: detail will be discontinued
124 if nxt = ("End_Proof'",End_Proof') then ()
125 else error "details.sml, changed behaviour in: without detail";
127 val str = pr_ptree pr_short pt;
129 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
130 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
131 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
132 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
133 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
134 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
135 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
136 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
137 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
138 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
139 (*nxt = ("Apply_Method",Apply_Method ("Test","test_detail"))*)
140 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
141 (*val nxt = ("Rewrite_Set",Rewrite_Set "expand_binoms")*)
142 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
143 (* val nxt = ("Detail",Detail);"----------------------";*)
146 (*WN.11.9.03: after meNEW not yet implemented -------------------------*)
147 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
148 (*FIXXXXXME.040216 #####################################################
149 # val nxt = ("Detail", Detail) : string * tac
150 val it = "----------------------" : string
151 > val (p,_,f,nxt,_,pt) = me nxt p [] pt;
152 val f = Form' (FormKF (~1, EdUndef, ...)) : mout
153 val nxt = ("Empty_Tac", Empty_Tac) : string * tac
154 val p = ([2, 1], Res) : pos'
155 #########################################################################
156 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
157 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
158 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
159 val (p,_,f,nxt,_,pt) = me nxt p [] pt;src
160 (*val nxt = ("End_Detail",End_Detail)*)
161 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
162 (*val nxt = ("Rewrite_Set",Rewrite_Set "cancel")*)src
163 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
164 val nxt = ("Detail",Detail);"----------------------";
165 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => OldGoals.print_exn e;
166 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
169 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
171 rewrite "Rationals" "tless_true""e_rls"true("sym_real_plus_minus_binom","")
174 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
175 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
176 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
177 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => OldGoals.print_exn e;
178 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
179 if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 - x) / (3 + x)"))
180 andalso nxt = ("End_Proof'",End_Proof') then ()
181 else error "new behaviour in details.sml, \
182 \cancel, rev-rew (cancel) afterwards";
183 FIXXXXXME.040216 #####################################################*)
185 (*---- funktionieren mit Rationals.ML: dummy-Funktionen(1)--------*)
187 "-------------- cancel_p, without detail ------------------------------";
188 "-------------- cancel_p, without detail ------------------------------";
189 "-------------- cancel_p, without detail ------------------------------";
190 val fmz = ["realTestGiven (((3 + x)*(3+(-1)*x)) / ((3+x) * (3+x)))",
193 ("Test",["detail","test"],["Test","test_detail_poly"]);
195 (*val p = e_pos'; val c = [];
196 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
197 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
198 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
199 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
200 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
201 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
202 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
203 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
204 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
205 (*nxt = ("Apply_Method",Apply_Method ("Test","test_detail"))*)
206 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
207 "(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
210 (*---------------WN060614?!?---
211 val t = str2term "(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
212 val SOME (t,_) = rewrite_set_ thy false make_polynomial t; term2str t;
213 "(9 + - (x ^^^ 2)) / (9 + 6 * x + x ^^^ 2)";
214 val SOME (t,_) = rewrite_set_ thy false cancel_p t; term2str t;
216 (---------------WN060614?!?---*)
218 val t = str2term "(3 + x) * (3 + -1 * x)";
219 val SOME (t,_) = rewrite_set_ thy false expand_poly t; term2str t;
220 "3 * 3 + 3 * (-1 * x) + (x * 3 + x * (-1 * x))";
221 val SOME (t,_) = rewrite_set_ thy false order_add_mult t; term2str t;
222 "3 * 3 + (3 * x + (-1 * (3 * x) + -1 * (x * x)))";
223 val SOME (t,_) = rewrite_set_ thy false simplify_power t; term2str t;
224 "3 ^^^ 2 + (3 * x + (-1 * (3 * x) + -1 * x ^^^ 2))";
225 val SOME (t,_) = rewrite_set_ thy false collect_numerals t; term2str t;
226 "9 + (0 * x + -1 * x ^^^ 2)";
227 val SOME (t,_) = rewrite_set_ thy false reduce_012 t; term2str t;
231 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
232 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
233 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
234 (*"(3 + -1 * x) / (3 + x)"*)
235 if nxt = ("End_Proof'",End_Proof') then ()
236 else error "details.sml, changed behaviour in: cancel_p, without detail";
238 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
239 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
240 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
241 (* val p = e_pos'; val c = [];
242 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
243 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
244 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
245 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
246 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
247 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
248 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
249 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
250 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
251 (*nxt = ("Apply_Method",Apply_Method ("Test","test_detail_poly"))*)
252 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
253 (*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
254 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
256 (*14.3.03.FIXXXXXME since Isa02/reverse-rew.sml:
257 fun make_deriv ... Rls_ not yet impl. (| Thm | Calc)
258 Rls_ needed for make_polynomial ----------------------
259 val nxt = ("Detail",Detail);"----------------------";
260 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
261 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
262 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
263 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
264 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
265 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
266 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
267 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
268 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
269 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
270 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
271 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
272 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
273 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
274 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
275 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
276 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
277 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
278 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
279 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
280 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
281 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
282 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
283 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
284 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
285 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
286 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
287 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
288 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
289 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
290 if nxt = ("End_Detail",End_Detail) then ()
291 else error "details.sml: new behav. in Detail make_polynomial";
292 ----------------------------------------------------------------------*)
295 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
296 (*val nxt = ("Rewrite_Set",Rewrite_Set "cancel_p")*)
297 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
298 val nxt = ("Detail",Detail);"----------------------";
299 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => OldGoals.print_exn e;
300 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
301 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
302 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
303 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
304 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
305 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => OldGoals.print_exn e;
306 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
307 if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 + x) / (3 - x)"))
308 andalso nxt = ("End_Proof'",End_Proof') then ()
309 else error "new behaviour in details.sml, cancel_p afterwards";
316 val fmz = ["realTestGiven ((x+3)+(-1)*(2+6*x))",
319 ("Test",["detail","test"],["Test","test_detail_poly"]);
321 (* val p = e_pos'; val c = [];
322 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
323 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
324 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
325 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
326 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
327 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
328 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
329 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
330 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
331 (*nxt = ("Apply_Method",Apply_Method ("Test","test_detail_poly"))*)
332 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
333 (*16.10.02 --- kommt auf POLY_EXCEPTION ?!??? ----------------------------
334 (*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
335 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
336 val nxt = ("Detail",Detail);"----------------------";
337 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
338 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
339 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
340 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
341 -------------------------------------------------------------------------*)
344 "------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
345 "------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
346 "------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
348 CalcTree [(["equality (x+1=(2::real))", "solveFor x","solutions L"],
349 ("Test", ["sqroot-test","univariate","equation","test"],
350 ["Test","squ-equ-test-subpbl1"]))];
353 autoCalculate 1 CompleteCalc;
356 interSteps 1 ([],Res);
357 val [(_,(((pt,_),_),[(_,ip)]))] = !states;
358 val ("donesteps",_(*,ss*), lastpos) = detailstep pt ip;
359 (*case ss of [(_,_,t1),(_,_,t2),(_,_,t3),(_,_,t4),(_,_,t5),(_,_,t6)] =>
360 (writeln o terms2str) [t1,t2,t3,t4,t5,t6]
361 | _ => error "details.sml: diff.behav. in detail miniscript";*) if lastpos = ([4], Res) then ()
362 else error "details.sml: diff.behav. in interSteps'donesteps' 1";
369 interSteps 1 ([3],Pbl) (*subproblem*);
370 val [(_,(((pt,_),_),[(_,ip)]))] = !states;
371 val ("donesteps",_(*,ss*), lastpos) = detailstep pt ip;
372 (*case ss of [(_,_,t1),(_,_,t2),(_,_,t3)] =>
373 (writeln o terms2str) [t1,t2,t3]
374 | _ => error "details.sml: diff.behav. in detail miniscript";*) if lastpos = ([3, 2], Res) then ()
375 else error "details.sml: diff.behav. in interSteps'donesteps' 1";
378 (* val [(_,(((pt,_),_),[(_,ip)]))] = !states;
379 writeln (pr_ptree pr_short pt);
380 get_obj g_tac pt [4];
383 "------ interSteps'detailrls' after CompleteCalc -----------------";
384 "------ interSteps'detailrls' after CompleteCalc -----------------";
385 "------ interSteps'detailrls' after CompleteCalc -----------------";
387 CalcTree [(["equality (x+1=(2::real))", "solveFor x","solutions L"],
388 ("Test", ["sqroot-test","univariate","equation","test"],
389 ["Test","squ-equ-test-subpbl1"]))];
392 autoCalculate 1 CompleteCalc;
393 interSteps 1 ([],Res);
398 refFormula 1 (get_pos 1 1); (* 2 Res, <ISA> -1 + x = 0 </ISA> *)
400 interSteps 1 ([2],Res);
401 val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
402 if length (children (get_nd pt p)) = 6 then ()
403 else error "details.sml: diff.behav. in interSteps'detailrls' 1";
406 moveActiveDown 1; refFormula 1 (get_pos 1 1); (* 3,1 Frm, <ISA> -1 + x = 0 </ISA> *);
408 interSteps 1 ([3,1],Frm) (*<ERROR> first formula on level has NO detail </E*);
409 val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
410 if length (children (get_nd pt p)) = 0 then () (*NO detail at ([xxx,1],Frm)*)
411 else error "details.sml: diff.behav. in interSteps'detailrls' 2";
414 refFormula 1 (get_pos 1 1); (* 3,1 Res, <ISA> x = 0 + -1 * -1 </ISA> *)
416 interSteps 1 ([3,1],Res);
417 val ((pt,p),_) = get_calc 1; show_pt pt;
418 term2str (get_obj g_res pt [3,1,1]);(*"x = 0 + -1 * -1" ok*)
419 term2str (get_obj g_form pt [3,2]); (*"x = 0 + -1 * -1" ok*)
420 get_obj g_tac pt [3,1,1]; (*Rewrite_Inst.."risolate_bdv_add ok*)
423 refFormula 1 (get_pos 1 1); (* 3,2 Res, <ISA> x = 1 </ISA> *)
425 interSteps 1 ([3,2],Res);
426 val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
427 if length (children (get_nd pt p)) = 2 then ()
428 else error "details.sml: diff.behav. in interSteps'detailrls' 3";
430 val ((pt,p),_) = get_calc 1; show_pt pt;
433 "------ interSteps after appendFormula ---------------------------";
434 "------ interSteps after appendFormula ---------------------------";
435 "------ interSteps after appendFormula ---------------------------";
437 CalcTree [(["equality (x+1=(2::real))", "solveFor x","solutions L"],
438 ("Test", ["sqroot-test","univariate","equation","test"],
439 ["Test","squ-equ-test-subpbl1"]))];
442 autoCalculate 1 CompleteCalcHead;
443 autoCalculate 1 (Step 1);
444 autoCalculate 1 (Step 1);
445 appendFormula 1 "x - 1 = 0"(*generates intermediate steps*);
446 (*these are not shown, because the resulting formula is on the same
447 level as the previous formula*)
448 interSteps 1 ([2],Res) (*error: last unchanged was ([2, 9], Res)*);
449 (*...and these are the internals*)
450 val ((pt,p),_) = get_calc 1; show_pt pt;
451 val (_,_,lastpos) =detailstep pt p;
452 if p = ([2], Res) andalso lastpos = ([2, 9], Res) then ()
453 else error "solve.sml: diff.beh. after appendFormula x - 1 = 0";
456 "------ Detail_Set -----------------------------------------------";
457 "------ Detail_Set -----------------------------------------------";
458 "------ Detail_Set -----------------------------------------------";
459 states:=[]; (*start of calculation, return No.1*)
460 CalcTree [(["equality (x+1=(2::real))", "solveFor x","solutions L"],
461 ("Test", ["sqroot-test","univariate","equation","test"],
462 ["Test","squ-equ-test-subpbl1"]))];
463 Iterator 1; moveActiveRoot 1;
464 autoCalculate 1 CompleteCalcHead;
465 autoCalculate 1 (Step 1);
466 autoCalculate 1 (Step 1);
468 fetchProposedTactic 1 (*DG decides to do this tactic in detail*);
470 setNextTactic 1 (Detail_Set "Test_simplify");
473 val ((pt,p),tacis) = get_calc 1;
474 val str = pr_ptree pr_short pt;
478 term2str (fst (get_obj g_result pt [1]));
483 "###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
484 "###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
485 "###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
486 ptyps:= intermediate_ptyps;
487 mets:= intermediate_mets;