neuper@37906
|
1 |
(* tests on solve.sml
|
neuper@37906
|
2 |
author: Walther Neuper
|
neuper@37906
|
3 |
060508,
|
neuper@37906
|
4 |
(c) due to copyright terms
|
neuper@37906
|
5 |
|
neuper@37906
|
6 |
is NOT ONLY dependent on Test, but on other thys:
|
neuper@37906
|
7 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
neuper@37906
|
8 |
uses from Rational.ML: Rrls cancel_p, Rrls cancel
|
neuper@37906
|
9 |
which in turn
|
neuper@37906
|
10 |
uses from Poly.ML: Rls make_polynomial, Rls expand_binom
|
neuper@37906
|
11 |
|
neuper@37906
|
12 |
use"../smltest/ME/solve.sml";
|
neuper@37906
|
13 |
use"solve.sml";
|
neuper@37906
|
14 |
*)
|
neuper@37906
|
15 |
|
neuper@37906
|
16 |
"-----------------------------------------------------------------";
|
neuper@37906
|
17 |
"table of contents -----------------------------------------------";
|
neuper@37906
|
18 |
"-----------------------------------------------------------------";
|
neuper@37906
|
19 |
"--------- interSteps on norm_Rational ---------------------------";
|
neuper@37906
|
20 |
(*---vvv NOT working after meNEW.04mmdd*)
|
neuper@37906
|
21 |
"###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
|
neuper@37906
|
22 |
"--------- prepare pbl, met --------------------------------------";
|
neuper@37906
|
23 |
"-------- cancel, without detail ------------------------------";
|
neuper@37906
|
24 |
"-------- cancel, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
25 |
"-------------- cancel_p, without detail ------------------------------";
|
neuper@37906
|
26 |
"-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
27 |
(*---^^^ NOT working*)
|
neuper@37906
|
28 |
"on 'miniscript with mini-subpbl':";
|
neuper@37906
|
29 |
"------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
|
neuper@37906
|
30 |
"------ interSteps'detailrls' after CompleteCalc -----------------";
|
neuper@37906
|
31 |
"------ interSteps after appendFormula ---------------------------";
|
neuper@37906
|
32 |
(*---vvv not brought to work 0403*)
|
neuper@37906
|
33 |
"------ Detail_Set -----------------------------------------------";
|
neuper@37906
|
34 |
"###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
|
neuper@37906
|
35 |
"-----------------------------------------------------------------";
|
neuper@37906
|
36 |
"-----------------------------------------------------------------";
|
neuper@37906
|
37 |
"-----------------------------------------------------------------";
|
neuper@37906
|
38 |
|
neuper@37906
|
39 |
|
neuper@37906
|
40 |
"--------- interSteps on norm_Rational ---------------------------";
|
neuper@37906
|
41 |
"--------- interSteps on norm_Rational ---------------------------";
|
neuper@37906
|
42 |
"--------- interSteps on norm_Rational ---------------------------";
|
neuper@37906
|
43 |
states:=[];(*exp_IsacCore_Simp_Rat_Double_No-7.xml*)
|
neuper@37967
|
44 |
CalcTree [(["TERM ((2/(x+3) + 2/(x - 3)) / (8*x/(x^2 - 9)))","normalform N"],
|
neuper@37906
|
45 |
("Rational.thy",
|
neuper@37906
|
46 |
["rational","simplification"],
|
neuper@37906
|
47 |
["simplification","of_rationals"]))];
|
neuper@37906
|
48 |
moveActiveRoot 1;
|
neuper@37906
|
49 |
autoCalculate 1 CompleteCalc;
|
neuper@37906
|
50 |
val ((pt,_),_) = get_calc 1; show_pt pt;
|
neuper@37906
|
51 |
|
neuper@37906
|
52 |
(*with "Script SimplifyScript (t_::real) = -----------------
|
neuper@37906
|
53 |
\ ((Rewrite_Set norm_Rational False) t_)"
|
neuper@37906
|
54 |
case pt of Nd (PblObj _, [Nd _]) => ((*met only applies norm_Rational*))
|
neuper@38031
|
55 |
| _ => error "solve.sml: interSteps on norm_Rational 1";
|
neuper@37906
|
56 |
interSteps 1 ([1], Res);
|
neuper@37906
|
57 |
getFormulaeFromTo 1 ([1], Frm) ([1,12], Res) 99999 false;
|
neuper@37906
|
58 |
interSteps 1 ([1,3], Res);
|
neuper@37906
|
59 |
|
neuper@37906
|
60 |
getTactic 1 ([1,4], Res) (*here get the tactic, and ...*);
|
neuper@37906
|
61 |
interSteps 1 ([1,5], Res) (*... here get the intermediate steps above*);
|
neuper@37906
|
62 |
|
neuper@37906
|
63 |
getTactic 1 ([1,5,1], Frm);
|
neuper@37906
|
64 |
val ((pt,_),_) = get_calc 1; show_pt pt;
|
neuper@37906
|
65 |
|
neuper@37906
|
66 |
getTactic 1 ([1,8], Res) (*Rewrite_Set "common_nominator_p" *);
|
neuper@37906
|
67 |
interSteps 1 ([1,9], Res)(*TODO.WN060606 reverse rew*);
|
neuper@37906
|
68 |
--------------------------------------------------------------------*)
|
neuper@37906
|
69 |
|
neuper@37906
|
70 |
case pt of Nd (PblObj _, [Nd _, Nd _, Nd _, Nd _, Nd _, Nd _]) => ()
|
neuper@38031
|
71 |
| _ => error "solve.sml: interSteps on norm_Rational 1";
|
neuper@37906
|
72 |
(*these have been done now by the script ^^^ immediately...
|
neuper@37906
|
73 |
interSteps 1 ([1], Res);
|
neuper@37906
|
74 |
getFormulaeFromTo 1 ([1], Frm) ([1,12], Res) 99999 false;
|
neuper@37906
|
75 |
*)
|
neuper@37906
|
76 |
interSteps 1 ([6], Res);
|
neuper@37906
|
77 |
|
neuper@37906
|
78 |
getTactic 1 ([6,1], Frm) (*here get the tactic, and ...*);
|
neuper@37906
|
79 |
interSteps 1 ([6,1], Res) (*... here get the intermediate steps above*);
|
neuper@37906
|
80 |
|
neuper@37906
|
81 |
getTactic 1 ([3,4,1], Frm);
|
neuper@37906
|
82 |
val ((pt,_),_) = get_calc 1; show_pt pt;
|
neuper@37926
|
83 |
val (Form form, SOME tac, asm) = pt_extract (pt, ([6], Res));
|
neuper@37906
|
84 |
case (term2str form, tac, terms2strs asm) of
|
neuper@37906
|
85 |
("1 / 2", Check_Postcond ["rational", "simplification"],
|
neuper@37906
|
86 |
["-36 * x + 4 * x ^^^ 3 ~= 0"]) => ()
|
neuper@38031
|
87 |
| _ => error "solve.sml: interSteps on norm_Rational 2";
|
neuper@37906
|
88 |
|
neuper@37906
|
89 |
|
neuper@37906
|
90 |
|
neuper@37906
|
91 |
"###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
|
neuper@37906
|
92 |
"###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
|
neuper@37906
|
93 |
"###### val intermediate_ptyps = !ptyps;val intermediate_mets = !mets";
|
neuper@37906
|
94 |
val intermediate_ptyps = !ptyps;
|
neuper@37906
|
95 |
val intermediate_mets = !mets;
|
neuper@37906
|
96 |
|
neuper@37906
|
97 |
"--------- prepare pbl, met --------------------------------------";
|
neuper@37906
|
98 |
"--------- prepare pbl, met --------------------------------------";
|
neuper@37906
|
99 |
"--------- prepare pbl, met --------------------------------------";
|
neuper@37906
|
100 |
store_pbt
|
neuper@37906
|
101 |
(prep_pbt Test.thy "pbl_ttestt" [] e_pblID
|
neuper@37906
|
102 |
(["test"],
|
neuper@37906
|
103 |
[],
|
neuper@37926
|
104 |
e_rls, NONE, []));
|
neuper@37906
|
105 |
store_pbt
|
neuper@37906
|
106 |
(prep_pbt Test.thy "pbl_ttestt_detail" [] e_pblID
|
neuper@37906
|
107 |
(["detail","test"],
|
neuper@37906
|
108 |
[("#Given" ,["realTestGiven t_"]),
|
neuper@37906
|
109 |
("#Find" ,["realTestFind s_"])
|
neuper@37906
|
110 |
],
|
neuper@37926
|
111 |
e_rls, NONE, [["Test","test_detail"]]));
|
neuper@37906
|
112 |
|
neuper@37906
|
113 |
store_met
|
neuper@37906
|
114 |
(prep_met Test.thy "met_detbin" [] e_metID
|
neuper@37906
|
115 |
(["Test","test_detail_binom"]:metID,
|
neuper@37906
|
116 |
[("#Given" ,["realTestGiven t_"]),
|
neuper@37906
|
117 |
("#Find" ,["realTestFind s_"])
|
neuper@37906
|
118 |
],
|
neuper@37906
|
119 |
{rew_ord'="sqrt_right",rls'=tval_rls,calc = [],srls=e_rls,prls=e_rls,
|
neuper@37906
|
120 |
crls=tval_rls, nrls=e_rls(*,
|
neuper@37906
|
121 |
asm_rls=[],asm_thm=[("real_mult_div_cancel2","")]*)},
|
neuper@37906
|
122 |
"Script Testterm (g_::real) = \
|
neuper@37906
|
123 |
\(((Rewrite_Set expand_binoms False) @@\
|
neuper@37906
|
124 |
\ (Rewrite_Set cancel False)) g_)"
|
neuper@37906
|
125 |
));
|
neuper@37906
|
126 |
store_met
|
neuper@37906
|
127 |
(prep_met Test.thy "met_detpoly" [] e_metID
|
neuper@37906
|
128 |
(["Test","test_detail_poly"]:metID,
|
neuper@37906
|
129 |
[("#Given" ,["realTestGiven t_"]),
|
neuper@37906
|
130 |
("#Find" ,["realTestFind s_"])
|
neuper@37906
|
131 |
],
|
neuper@37906
|
132 |
{rew_ord'="sqrt_right",rls'=tval_rls,calc=[],srls=e_rls,prls=e_rls,
|
neuper@37906
|
133 |
crls=tval_rls, nrls=e_rls(*,
|
neuper@37906
|
134 |
asm_rls=[],asm_thm=[("real_mult_div_cancel2","")]*)},
|
neuper@37906
|
135 |
"Script Testterm (g_::real) = \
|
neuper@37906
|
136 |
\(((Rewrite_Set make_polynomial False) @@\
|
neuper@37906
|
137 |
\ (Rewrite_Set cancel_p False)) g_)"
|
neuper@37906
|
138 |
));
|
neuper@37906
|
139 |
|
neuper@37906
|
140 |
(*---- funktionieren mit Rationals.ML: dummy-Funktionen(1)--------*)
|
neuper@37906
|
141 |
|
neuper@37906
|
142 |
"-------- cancel, without detail ------------------------------";
|
neuper@37906
|
143 |
"-------- cancel, without detail ------------------------------";
|
neuper@37906
|
144 |
"-------- cancel, without detail ------------------------------";
|
neuper@37906
|
145 |
val fmz = ["realTestGiven (((3 + x) * (3 - x)) / ((3 + x) * (3 + x)))",
|
neuper@37906
|
146 |
"realTestFind s"];
|
neuper@37906
|
147 |
val (dI',pI',mI') =
|
neuper@37906
|
148 |
("Test.thy",["detail","test"],["Test","test_detail_binom"]);
|
neuper@37906
|
149 |
|
neuper@37906
|
150 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@37906
|
151 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
152 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
153 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
154 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
155 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
156 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
157 |
(*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
|
neuper@37906
|
158 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
159 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
160 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
161 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
162 |
(*"(3 + -1 * x) / (3 + x)"*)
|
neuper@37906
|
163 |
if nxt = ("End_Proof'",End_Proof') then ()
|
neuper@38031
|
164 |
else error "details.sml, changed behaviour in: without detail";
|
neuper@37906
|
165 |
|
neuper@37906
|
166 |
val str = pr_ptree pr_short pt;
|
neuper@37906
|
167 |
writeln str;
|
neuper@37906
|
168 |
|
neuper@37906
|
169 |
|
neuper@37906
|
170 |
"-------- cancel, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
171 |
"-------- cancel, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
172 |
"-------- cancel, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
173 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@37906
|
174 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
175 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
176 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
177 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
178 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
179 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
180 |
(*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
|
neuper@37906
|
181 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
182 |
(*val nxt = ("Rewrite_Set",Rewrite_Set "expand_binoms")*)
|
neuper@37906
|
183 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
|
neuper@37906
|
184 |
(* val nxt = ("Detail",Detail);"----------------------";*)
|
neuper@37906
|
185 |
|
neuper@37906
|
186 |
|
neuper@37906
|
187 |
(*WN.11.9.03: after meNEW not yet implemented -------------------------*)
|
neuper@37906
|
188 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
189 |
(*FIXXXXXME.040216 #####################################################
|
neuper@37906
|
190 |
# val nxt = ("Detail", Detail) : string * tac
|
neuper@37906
|
191 |
val it = "----------------------" : string
|
neuper@37906
|
192 |
> val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
193 |
val f = Form' (FormKF (~1, EdUndef, ...)) : mout
|
neuper@37906
|
194 |
val nxt = ("Empty_Tac", Empty_Tac) : string * tac
|
neuper@37906
|
195 |
val p = ([2, 1], Res) : pos'
|
neuper@37906
|
196 |
#########################################################################
|
neuper@37906
|
197 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
198 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
199 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
200 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
201 |
(*val nxt = ("End_Detail",End_Detail)*)
|
neuper@37906
|
202 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
203 |
(*val nxt = ("Rewrite_Set",Rewrite_Set "cancel")*)
|
neuper@37906
|
204 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
|
neuper@37906
|
205 |
val nxt = ("Detail",Detail);"----------------------";
|
neuper@37906
|
206 |
val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
|
neuper@37906
|
207 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
208 |
(*15.10.02*)
|
neuper@37906
|
209 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
210 |
(*
|
neuper@37906
|
211 |
rewrite "Rationals.thy" "tless_true""e_rls"true("sym_real_plus_minus_binom","")
|
neuper@37906
|
212 |
"3 ^^^ 2 - x ^^^ 2";
|
neuper@37906
|
213 |
*)
|
neuper@37906
|
214 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
215 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
216 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
217 |
val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
|
neuper@37906
|
218 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
219 |
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 - x) / (3 + x)"))
|
neuper@37906
|
220 |
andalso nxt = ("End_Proof'",End_Proof') then ()
|
neuper@38031
|
221 |
else error "new behaviour in details.sml, \
|
neuper@37906
|
222 |
\cancel, rev-rew (cancel) afterwards";
|
neuper@37906
|
223 |
FIXXXXXME.040216 #####################################################*)
|
neuper@37906
|
224 |
|
neuper@37906
|
225 |
(*---- funktionieren mit Rationals.ML: dummy-Funktionen(1)--------*)
|
neuper@37906
|
226 |
|
neuper@37906
|
227 |
"-------------- cancel_p, without detail ------------------------------";
|
neuper@37906
|
228 |
"-------------- cancel_p, without detail ------------------------------";
|
neuper@37906
|
229 |
"-------------- cancel_p, without detail ------------------------------";
|
neuper@37906
|
230 |
val fmz = ["realTestGiven (((3 + x)*(3+(-1)*x)) / ((3+x) * (3+x)))",
|
neuper@37906
|
231 |
"realTestFind s"];
|
neuper@37906
|
232 |
val (dI',pI',mI') =
|
neuper@37906
|
233 |
("Test.thy",["detail","test"],["Test","test_detail_poly"]);
|
neuper@37906
|
234 |
|
neuper@37906
|
235 |
(*val p = e_pos'; val c = [];
|
neuper@37906
|
236 |
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
|
neuper@37906
|
237 |
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
|
neuper@37906
|
238 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@37906
|
239 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
240 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
241 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
242 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
243 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
244 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
245 |
(*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
|
neuper@37906
|
246 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
247 |
"(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
|
neuper@37906
|
248 |
|
neuper@37906
|
249 |
(*14.3.03*)
|
neuper@37906
|
250 |
(*---------------WN060614?!?---
|
neuper@37906
|
251 |
val t = str2term "(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
|
neuper@37926
|
252 |
val SOME (t,_) = rewrite_set_ thy false make_polynomial t; term2str t;
|
neuper@37906
|
253 |
"(9 + - (x ^^^ 2)) / (9 + 6 * x + x ^^^ 2)";
|
neuper@37926
|
254 |
val SOME (t,_) = rewrite_set_ thy false cancel_p t; term2str t;
|
neuper@37906
|
255 |
cancel_p_ thy t;
|
neuper@37906
|
256 |
(---------------WN060614?!?---*)
|
neuper@37906
|
257 |
|
neuper@37906
|
258 |
val t = str2term "(3 + x) * (3 + -1 * x)";
|
neuper@37926
|
259 |
val SOME (t,_) = rewrite_set_ thy false expand_poly t; term2str t;
|
neuper@37906
|
260 |
"3 * 3 + 3 * (-1 * x) + (x * 3 + x * (-1 * x))";
|
neuper@37926
|
261 |
val SOME (t,_) = rewrite_set_ thy false order_add_mult t; term2str t;
|
neuper@37906
|
262 |
"3 * 3 + (3 * x + (-1 * (3 * x) + -1 * (x * x)))";
|
neuper@37926
|
263 |
val SOME (t,_) = rewrite_set_ thy false simplify_power t; term2str t;
|
neuper@37906
|
264 |
"3 ^^^ 2 + (3 * x + (-1 * (3 * x) + -1 * x ^^^ 2))";
|
neuper@37926
|
265 |
val SOME (t,_) = rewrite_set_ thy false collect_numerals t; term2str t;
|
neuper@37906
|
266 |
"9 + (0 * x + -1 * x ^^^ 2)";
|
neuper@37926
|
267 |
val SOME (t,_) = rewrite_set_ thy false reduce_012 t; term2str t;
|
neuper@37906
|
268 |
"9 + - (x ^^^ 2)";
|
neuper@37906
|
269 |
(*14.3.03*)
|
neuper@37906
|
270 |
|
neuper@37906
|
271 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
272 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
273 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
274 |
(*"(3 + -1 * x) / (3 + x)"*)
|
neuper@37906
|
275 |
if nxt = ("End_Proof'",End_Proof') then ()
|
neuper@38031
|
276 |
else error "details.sml, changed behaviour in: cancel_p, without detail";
|
neuper@37906
|
277 |
|
neuper@37906
|
278 |
"-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
279 |
"-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
280 |
"-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
|
neuper@37906
|
281 |
(* val p = e_pos'; val c = [];
|
neuper@37906
|
282 |
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
|
neuper@37906
|
283 |
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
|
neuper@37906
|
284 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@37906
|
285 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
286 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
287 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
288 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
289 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
290 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
291 |
(*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail_poly"))*)
|
neuper@37906
|
292 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
293 |
(*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
|
neuper@37906
|
294 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
|
neuper@37906
|
295 |
|
neuper@37906
|
296 |
(*14.3.03.FIXXXXXME since Isa02/reverse-rew.sml:
|
neuper@37906
|
297 |
fun make_deriv ... Rls_ not yet impl. (| Thm | Calc)
|
neuper@37906
|
298 |
Rls_ needed for make_polynomial ----------------------
|
neuper@37906
|
299 |
val nxt = ("Detail",Detail);"----------------------";
|
neuper@37906
|
300 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
301 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
302 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
303 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
304 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
305 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
306 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
307 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
308 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
309 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
310 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
311 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
312 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
313 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
314 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
315 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
316 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
317 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
318 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
319 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
320 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
321 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
322 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
323 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
324 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
325 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
326 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
327 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
328 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
329 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
330 |
if nxt = ("End_Detail",End_Detail) then ()
|
neuper@38031
|
331 |
else error "details.sml: new behav. in Detail make_polynomial";
|
neuper@37906
|
332 |
----------------------------------------------------------------------*)
|
neuper@37906
|
333 |
|
neuper@37906
|
334 |
(*---------------
|
neuper@37906
|
335 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
336 |
(*val nxt = ("Rewrite_Set",Rewrite_Set "cancel_p")*)
|
neuper@37906
|
337 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
|
neuper@37906
|
338 |
val nxt = ("Detail",Detail);"----------------------";
|
neuper@37906
|
339 |
val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
|
neuper@37906
|
340 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
341 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
342 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
343 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
344 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
345 |
val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
|
neuper@37906
|
346 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
347 |
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 + x) / (3 - x)"))
|
neuper@37906
|
348 |
andalso nxt = ("End_Proof'",End_Proof') then ()
|
neuper@38031
|
349 |
else error "new behaviour in details.sml, cancel_p afterwards";
|
neuper@37906
|
350 |
|
neuper@37906
|
351 |
----------------*)
|
neuper@37906
|
352 |
|
neuper@37906
|
353 |
|
neuper@37906
|
354 |
|
neuper@37906
|
355 |
|
neuper@37906
|
356 |
|
neuper@37906
|
357 |
val fmz = ["realTestGiven ((x+3)+(-1)*(2+6*x))",
|
neuper@37906
|
358 |
"realTestFind s"];
|
neuper@37906
|
359 |
val (dI',pI',mI') =
|
neuper@37906
|
360 |
("Test.thy",["detail","test"],["Test","test_detail_poly"]);
|
neuper@37906
|
361 |
|
neuper@37906
|
362 |
(* val p = e_pos'; val c = [];
|
neuper@37906
|
363 |
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
|
neuper@37906
|
364 |
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
|
neuper@37906
|
365 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
neuper@37906
|
366 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
367 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
368 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
369 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
370 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
371 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
372 |
(*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail_poly"))*)
|
neuper@37906
|
373 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
374 |
(*16.10.02 --- kommt auf POLY_EXCEPTION ?!??? ----------------------------
|
neuper@37906
|
375 |
(*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
|
neuper@37906
|
376 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
|
neuper@37906
|
377 |
val nxt = ("Detail",Detail);"----------------------";
|
neuper@37906
|
378 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
379 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
380 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
381 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@37906
|
382 |
-------------------------------------------------------------------------*)
|
neuper@37906
|
383 |
|
neuper@37906
|
384 |
|
neuper@37906
|
385 |
"------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
|
neuper@37906
|
386 |
"------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
|
neuper@37906
|
387 |
"------ interSteps'donesteps': on 'miniscript with mini-subpbl'---";
|
neuper@37906
|
388 |
states:=[];
|
neuper@37906
|
389 |
CalcTree
|
neuper@37906
|
390 |
[(["equality (x+1=2)", "solveFor x","solutions L"],
|
neuper@37906
|
391 |
("Test.thy",
|
neuper@37906
|
392 |
["sqroot-test","univariate","equation","test"],
|
neuper@37906
|
393 |
["Test","squ-equ-test-subpbl1"]))];
|
neuper@37906
|
394 |
Iterator 1;
|
neuper@37906
|
395 |
moveActiveRoot 1;
|
neuper@37906
|
396 |
autoCalculate 1 CompleteCalc;
|
neuper@37906
|
397 |
moveActiveRoot 1;
|
neuper@37906
|
398 |
|
neuper@37906
|
399 |
interSteps 1 ([],Res);
|
neuper@37906
|
400 |
val [(_,(((pt,_),_),[(_,ip)]))] = !states;
|
neuper@37906
|
401 |
val ("donesteps",_(*,ss*), lastpos) = detailstep pt ip;
|
neuper@37906
|
402 |
(*case ss of [(_,_,t1),(_,_,t2),(_,_,t3),(_,_,t4),(_,_,t5),(_,_,t6)] =>
|
neuper@37906
|
403 |
(writeln o terms2str) [t1,t2,t3,t4,t5,t6]
|
neuper@38031
|
404 |
| _ => error "details.sml: diff.behav. in detail miniscript";*) if lastpos = ([4], Res) then ()
|
neuper@38031
|
405 |
else error "details.sml: diff.behav. in interSteps'donesteps' 1";
|
neuper@37906
|
406 |
|
neuper@37906
|
407 |
moveActiveDown 1;
|
neuper@37906
|
408 |
moveActiveDown 1;
|
neuper@37906
|
409 |
moveActiveDown 1;
|
neuper@37906
|
410 |
moveActiveDown 1;
|
neuper@37906
|
411 |
|
neuper@37906
|
412 |
interSteps 1 ([3],Pbl) (*subproblem*);
|
neuper@37906
|
413 |
val [(_,(((pt,_),_),[(_,ip)]))] = !states;
|
neuper@37906
|
414 |
val ("donesteps",_(*,ss*), lastpos) = detailstep pt ip;
|
neuper@37906
|
415 |
(*case ss of [(_,_,t1),(_,_,t2),(_,_,t3)] =>
|
neuper@37906
|
416 |
(writeln o terms2str) [t1,t2,t3]
|
neuper@38031
|
417 |
| _ => error "details.sml: diff.behav. in detail miniscript";*) if lastpos = ([3, 2], Res) then ()
|
neuper@38031
|
418 |
else error "details.sml: diff.behav. in interSteps'donesteps' 1";
|
neuper@37906
|
419 |
|
neuper@37906
|
420 |
|
neuper@37906
|
421 |
(* val [(_,(((pt,_),_),[(_,ip)]))] = !states;
|
neuper@37906
|
422 |
writeln (pr_ptree pr_short pt);
|
neuper@37906
|
423 |
get_obj g_tac pt [4];
|
neuper@37906
|
424 |
*)
|
neuper@37906
|
425 |
|
neuper@37906
|
426 |
|
neuper@37906
|
427 |
"------ interSteps'detailrls' after CompleteCalc -----------------";
|
neuper@37906
|
428 |
"------ interSteps'detailrls' after CompleteCalc -----------------";
|
neuper@37906
|
429 |
"------ interSteps'detailrls' after CompleteCalc -----------------";
|
neuper@37906
|
430 |
states:=[];
|
neuper@37906
|
431 |
CalcTree
|
neuper@37906
|
432 |
[(["equality (x+1=2)", "solveFor x","solutions L"],
|
neuper@37906
|
433 |
("Test.thy",
|
neuper@37906
|
434 |
["sqroot-test","univariate","equation","test"],
|
neuper@37906
|
435 |
["Test","squ-equ-test-subpbl1"]))];
|
neuper@37906
|
436 |
Iterator 1;
|
neuper@37906
|
437 |
moveActiveRoot 1;
|
neuper@37906
|
438 |
autoCalculate 1 CompleteCalc;
|
neuper@37906
|
439 |
interSteps 1 ([],Res);
|
neuper@37906
|
440 |
moveActiveRoot 1;
|
neuper@37906
|
441 |
moveActiveDown 1;
|
neuper@37906
|
442 |
moveActiveDown 1;
|
neuper@37906
|
443 |
moveActiveDown 1;
|
neuper@37906
|
444 |
refFormula 1 (get_pos 1 1); (* 2 Res, <ISA> -1 + x = 0 </ISA> *)
|
neuper@37906
|
445 |
|
neuper@37906
|
446 |
interSteps 1 ([2],Res);
|
neuper@37906
|
447 |
val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
|
neuper@37906
|
448 |
if length (children (get_nd pt p)) = 6 then ()
|
neuper@38031
|
449 |
else error "details.sml: diff.behav. in interSteps'detailrls' 1";
|
neuper@37906
|
450 |
|
neuper@37906
|
451 |
moveActiveDown 1;
|
neuper@37906
|
452 |
moveActiveDown 1; refFormula 1 (get_pos 1 1); (* 3,1 Frm, <ISA> -1 + x = 0 </ISA> *);
|
neuper@37906
|
453 |
|
neuper@37906
|
454 |
interSteps 1 ([3,1],Frm) (*<ERROR> first formula on level has NO detail </E*);
|
neuper@37906
|
455 |
val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
|
neuper@37906
|
456 |
if length (children (get_nd pt p)) = 0 then () (*NO detail at ([xxx,1],Frm)*)
|
neuper@38031
|
457 |
else error "details.sml: diff.behav. in interSteps'detailrls' 2";
|
neuper@37906
|
458 |
|
neuper@37906
|
459 |
moveActiveDown 1;
|
neuper@37906
|
460 |
refFormula 1 (get_pos 1 1); (* 3,1 Res, <ISA> x = 0 + -1 * -1 </ISA> *)
|
neuper@37906
|
461 |
|
neuper@37906
|
462 |
interSteps 1 ([3,1],Res);
|
neuper@37906
|
463 |
val ((pt,p),_) = get_calc 1; show_pt pt;
|
neuper@37906
|
464 |
term2str (get_obj g_res pt [3,1,1]);(*"x = 0 + -1 * -1" ok*)
|
neuper@37906
|
465 |
term2str (get_obj g_form pt [3,2]); (*"x = 0 + -1 * -1" ok*)
|
neuper@37906
|
466 |
get_obj g_tac pt [3,1,1]; (*Rewrite_Inst.."risolate_bdv_add ok*)
|
neuper@37906
|
467 |
|
neuper@37906
|
468 |
moveActiveDown 1;
|
neuper@37906
|
469 |
refFormula 1 (get_pos 1 1); (* 3,2 Res, <ISA> x = 1 </ISA> *)
|
neuper@37906
|
470 |
|
neuper@37906
|
471 |
interSteps 1 ([3,2],Res);
|
neuper@37906
|
472 |
val [(_,(((pt,_),_),[(_,(p,_))]))] = !states;
|
neuper@37906
|
473 |
if length (children (get_nd pt p)) = 2 then ()
|
neuper@38031
|
474 |
else error "details.sml: diff.behav. in interSteps'detailrls' 3";
|
neuper@37906
|
475 |
|
neuper@37906
|
476 |
val ((pt,p),_) = get_calc 1; show_pt pt;
|
neuper@37906
|
477 |
|
neuper@37906
|
478 |
|
neuper@37906
|
479 |
"------ interSteps after appendFormula ---------------------------";
|
neuper@37906
|
480 |
"------ interSteps after appendFormula ---------------------------";
|
neuper@37906
|
481 |
"------ interSteps after appendFormula ---------------------------";
|
neuper@37906
|
482 |
states:=[];
|
neuper@37906
|
483 |
CalcTree
|
neuper@37906
|
484 |
[(["equality (x+1=2)", "solveFor x","solutions L"],
|
neuper@37906
|
485 |
("Test.thy",
|
neuper@37906
|
486 |
["sqroot-test","univariate","equation","test"],
|
neuper@37906
|
487 |
["Test","squ-equ-test-subpbl1"]))];
|
neuper@37906
|
488 |
Iterator 1;
|
neuper@37906
|
489 |
moveActiveRoot 1;
|
neuper@37906
|
490 |
autoCalculate 1 CompleteCalcHead;
|
neuper@37906
|
491 |
autoCalculate 1 (Step 1);
|
neuper@37906
|
492 |
autoCalculate 1 (Step 1);
|
neuper@37906
|
493 |
appendFormula 1 "x - 1 = 0"(*generates intermediate steps*);
|
neuper@37906
|
494 |
(*these are not shown, because the resulting formula is on the same
|
neuper@37906
|
495 |
level as the previous formula*)
|
neuper@37906
|
496 |
interSteps 1 ([2],Res) (*error: last unchanged was ([2, 9], Res)*);
|
neuper@37906
|
497 |
(*...and these are the internals*)
|
neuper@37906
|
498 |
val ((pt,p),_) = get_calc 1; show_pt pt;
|
neuper@37906
|
499 |
val (_,_,lastpos) =detailstep pt p;
|
neuper@37906
|
500 |
if p = ([2], Res) andalso lastpos = ([2, 9], Res) then ()
|
neuper@38031
|
501 |
else error "solve.sml: diff.beh. after appendFormula x - 1 = 0";
|
neuper@37906
|
502 |
|
neuper@37906
|
503 |
|
neuper@37906
|
504 |
"------ Detail_Set -----------------------------------------------";
|
neuper@37906
|
505 |
"------ Detail_Set -----------------------------------------------";
|
neuper@37906
|
506 |
"------ Detail_Set -----------------------------------------------";
|
neuper@37906
|
507 |
states:=[];
|
neuper@37906
|
508 |
CalcTree (*start of calculation, return No.1*)
|
neuper@37906
|
509 |
[(["equality (x+1=2)", "solveFor x","solutions L"],
|
neuper@37906
|
510 |
("Test.thy",
|
neuper@37906
|
511 |
["sqroot-test","univariate","equation","test"],
|
neuper@37906
|
512 |
["Test","squ-equ-test-subpbl1"]))];
|
neuper@37906
|
513 |
Iterator 1; moveActiveRoot 1;
|
neuper@37906
|
514 |
autoCalculate 1 CompleteCalcHead;
|
neuper@37906
|
515 |
autoCalculate 1 (Step 1);
|
neuper@37906
|
516 |
autoCalculate 1 (Step 1);
|
neuper@37906
|
517 |
|
neuper@37906
|
518 |
fetchProposedTactic 1 (*DG decides to do this tactic in detail*);
|
neuper@37906
|
519 |
(*TODO ...*)
|
neuper@37906
|
520 |
setNextTactic 1 (Detail_Set "Test_simplify");
|
neuper@37906
|
521 |
|
neuper@37906
|
522 |
|
neuper@37906
|
523 |
val ((pt,p),tacis) = get_calc 1;
|
neuper@37906
|
524 |
val str = pr_ptree pr_short pt;
|
neuper@37906
|
525 |
writeln str;
|
neuper@37906
|
526 |
|
neuper@37906
|
527 |
print_depth 3;
|
neuper@37906
|
528 |
term2str (fst (get_obj g_result pt [1]));
|
neuper@37906
|
529 |
|
neuper@37906
|
530 |
|
neuper@37906
|
531 |
|
neuper@37906
|
532 |
|
neuper@37906
|
533 |
"###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
|
neuper@37906
|
534 |
"###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
|
neuper@37906
|
535 |
"###### ptyps:= intermediate_ptyps;met:= intermediate_mets;#######";
|
neuper@37906
|
536 |
ptyps:= intermediate_ptyps;
|
neuper@37906
|
537 |
mets:= intermediate_mets;
|