1 (* Title: Knowledge/polyeq-1.sml
2 testexamples for PolyEq, poynomial equations and equational systems
3 Author: Richard Lang 2003
4 (c) due to copyright terms
5 WN030609: some expls dont work due to unfinished handling of 'expanded terms';
6 others marked with TODO have to be checked, too.
9 "-----------------------------------------------------------------";
10 "table of contents -----------------------------------------------";
11 "-----------------------------------------------------------------";
12 "------ polyeq-1.sml ---------------------------------------------";
13 "----------- tests on predicates in problems ---------------------";
14 "----------- test matching problems ------------------------------";
15 "----------- lin.eq degree_0 -------------------------------------";
16 "----------- test thm's d2_pq_formulsxx[_neg]---------------------";
17 "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------";
18 "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------";
19 "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------";
20 "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------";
21 "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------";
22 "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------";
23 "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------";
24 "----------- equality (x + x^^^2 = 0) ------------------------------------------------------";
25 "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------";
26 "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------";
27 "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------";
28 "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------";
29 "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------";
30 "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------";
31 "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----";
32 "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------";
33 "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------";
34 "-----------------------------------------------------------------";
35 "------ polyeq-2.sml ---------------------------------------------";
36 "----------- (a*b - (a+b)*x + x^^^2 = 0), (*Schalk 2,S.68Nr.44.a*)";
37 "----------- (-64 + x^^^2 = 0), (*Schalk 2, S.66 Nr.1.a~--------*)";
38 "----------- (-147 + 3*x^^^2 = 0), (*Schalk 2, S.66 Nr.1.b------*)";
39 "----------- (3*x - 1 - (5*x - (2 - 4*x)) = -11),(*Schalk Is86Bsp5";
40 "----------- ((x+1)*(x+2) - (3*x - 2)^^^2=.. Schalk II s.68 Bsp 37";
41 "----------- rls make_polynomial_in ------------------------------";
42 "----------- interSteps ([1],Res); on Schalk Is86Bsp5-------------";
43 "----------- rls d2_polyeq_bdv_only_simplify ---------------------";
44 "-----------------------------------------------------------------";
45 "-----------------------------------------------------------------";
47 "----------- tests on predicates in problems ---------------------";
48 "----------- tests on predicates in problems ---------------------";
49 "----------- tests on predicates in problems ---------------------";
50 (* trace_rewrite:=true;
53 val t1 = (Thm.term_of o the o (parse thy)) "lhs (-8 - 2*x + x^^^2 = 0)";
54 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t1;
55 if ((term2str t) = "-8 - 2 * x + x ^^^ 2") then ()
56 else error "polyeq.sml: diff.behav. in lhs";
58 val t2 = (Thm.term_of o the o (parse thy)) "(-8 - 2*x + x^^^2) is_expanded_in x";
59 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t2;
60 if (term2str t) = "True" then ()
61 else error "polyeq.sml: diff.behav. 1 in is_expended_in";
63 val t0 = (Thm.term_of o the o (parse thy)) "(sqrt(x)) is_poly_in x";
64 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t0;
65 if (term2str t) = "False" then ()
66 else error "polyeq.sml: diff.behav. 2 in is_poly_in";
68 val t3 = (Thm.term_of o the o (parse thy)) "(-8 + (-1)*2*x + x^^^2) is_poly_in x";
69 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3;
70 if (term2str t) = "True" then ()
71 else error "polyeq.sml: diff.behav. 3 in is_poly_in";
73 val t4 = (Thm.term_of o the o (parse thy)) "(lhs (-8 + (-1)*2*x + x^^^2 = 0)) is_expanded_in x";
74 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t4;
75 if (term2str t) = "True" then ()
76 else error "polyeq.sml: diff.behav. 4 in is_expended_in";
79 val t6 = (Thm.term_of o the o (parse thy)) "(lhs (-8 - 2*x + x^^^2 = 0)) is_expanded_in x";
80 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t6;
81 if (term2str t) = "True" then ()
82 else error "polyeq.sml: diff.behav. 5 in is_expended_in";
84 val t3 = (Thm.term_of o the o (parse thy))"((-8 - 2*x + x^^^2) has_degree_in x) = 2";
85 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3;
86 if (term2str t) = "True" then ()
87 else error "polyeq.sml: diff.behav. in has_degree_in_in";
89 val t3 = (Thm.term_of o the o (parse thy)) "((sqrt(x)) has_degree_in x) = 2";
90 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3;
91 if (term2str t) = "False" then ()
92 else error "polyeq.sml: diff.behav. 6 in has_degree_in_in";
94 val t4 = (Thm.term_of o the o (parse thy))
95 "((-8 - 2*x + x^^^2) has_degree_in x) = 1";
96 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t4;
97 if (term2str t) = "False" then ()
98 else error "polyeq.sml: diff.behav. 7 in has_degree_in_in";
100 val t5 = (Thm.term_of o the o (parse thy))
101 "((-8 - 2*x + x^^^2) has_degree_in x) = 2";
102 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t5;
103 if (term2str t) = "True" then ()
104 else error "polyeq.sml: diff.behav. 8 in has_degree_in_in";
106 "----------- test matching problems --------------------------0---";
107 "----------- test matching problems --------------------------0---";
108 "----------- test matching problems --------------------------0---";
109 val fmz = ["equality (-8 - 2*x + x^^^2 = 0)", "solveFor x","solutions L"];
110 if match_pbl fmz (get_pbt ["expanded","univariate","equation"]) =
111 Matches' {Find = [Correct "solutions L"],
113 Given = [Correct "equality (-8 - 2 * x + x ^^^ 2 = 0)", Correct "solveFor x"],
114 Where = [Correct "matches (?a = 0) (-8 - 2 * x + x ^^^ 2 = 0)",
115 Correct "lhs (-8 - 2 * x + x ^^^ 2 = 0) is_expanded_in x"],
117 then () else error "match_pbl [expanded,univariate,equation]";
119 if match_pbl fmz (get_pbt ["degree_2","expanded","univariate","equation"]) =
120 Matches' {Find = [Correct "solutions L"],
122 Given = [Correct "equality (-8 - 2 * x + x ^^^ 2 = 0)", Correct "solveFor x"],
123 Where = [Correct "lhs (-8 - 2 * x + x ^^^ 2 = 0) has_degree_in x = 2"],
124 Relate = []} (*before WN110906 was: has_degree_in x =!= 2"]*)
125 then () else error "match_pbl [degree_2,expanded,univariate,equation]";
127 "----------- lin.eq degree_0 -------------------------------------";
128 "----------- lin.eq degree_0 -------------------------------------";
129 "----------- lin.eq degree_0 -------------------------------------";
130 "----- d0_false ------";
131 val fmz = ["equality (1 = (0::real))", "solveFor x", "solutions L"];
132 val (dI',pI',mI') = ("PolyEq",["degree_0","polynomial","univariate","equation"],
133 ["PolyEq","solve_d0_polyeq_equation"]);
134 (*=== inhibit exn WN110914: declare_constraints doesnt work with num_str ========
135 TODO: change to "equality (x + -1*x = (0::real))"
136 and search for an appropriate problem and method.
138 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
139 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
140 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
141 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
142 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
143 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
144 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
145 case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[]")) => ()
146 | _ => error "polyeq.sml: diff.behav. in 1 = 0 -> []";
148 "----- d0_true ------";
149 val fmz = ["equality (0 = (0::real))", "solveFor x","solutions L"];
150 val (dI',pI',mI') = ("PolyEq",["degree_0","polynomial","univariate","equation"],
151 ["PolyEq","solve_d0_polyeq_equation"]);
152 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
153 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
154 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
155 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
156 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
157 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
158 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
159 case f of Form' (FormKF (~1,EdUndef,0,Nundef,"UniversalList")) => ()
160 | _ => error "polyeq.sml: diff.behav. in 0 = 0 -> UniversalList";
161 ============ inhibit exn WN110914 ============================================*)
163 "----------- test thm's d2_pq_formulsxx[_neg]---------------------";
164 "----------- test thm's d2_pq_formulsxx[_neg]---------------------";
165 "----------- test thm's d2_pq_formulsxx[_neg]---------------------";
166 "----- d2_pqformula1 ------!!!!";
167 val fmz = ["equality (-1/8 + (-1/4)*z + z^^^2 = (0::real))", "solveFor z","solutions L"];
169 ("Isac_Knowledge", ["pqFormula","degree_2","polynomial","univariate","equation"], ["no_met"]);
170 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
171 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
172 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
173 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
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; (*Apply_Method ["PolyEq", "solve_d2_polyeq_pq_equation"]*)
178 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
179 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
180 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
181 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
183 (*[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2] TODO sqrt*)
184 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt =..,Check_elementwise "Assumptions")*)
185 "~~~~~ fun me, args:"; val ((_,tac), (p:pos'), _, (pt:ctree)) = (nxt, p, [], pt);
186 "~~~~~ fun locatetac, args:"; val (tac, (ptp as (pt, p))) = (tac, (pt, p));
187 val (mI,m) = mk_tac'_ tac;
188 val Appl m = applicable_in p pt m;
189 val Check_elementwise' (trm1, str, (trm2, trms)) = m;
190 term2str trm1 = "[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2]";
192 term2str trm2 = "[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2]";
193 terms2str trms = "[\"lhs (-1 / 8 + -1 * (1 / 8 + sqrt (9 / 16) / 2) / 4 +\n "^
194 " (1 / 8 + sqrt (9 / 16) / 2) ^^^ 2 =\n 0) is_poly_in 1 / 8 + sqrt (9 / 16) / 2\","^
195 "\"lhs (-1 / 8 + -1 * (1 / 8 + sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + sqrt (9 / 16) / 2) ^^^ 2 =\n 0) "^
196 "has_degree_in 1 / 8 + sqrt (9 / 16) / 2 =\n2\","^
197 "\"lhs (-1 / 8 + -1 * (1 / 8 + -1 * sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + -1 * sqrt (9 / 16) / 2) ^^^ 2 =\n 0) is_poly_in 1 / 8 + -1 * sqrt (9 / 16) / 2\","^
198 "\"lhs (-1 / 8 + -1 * (1 / 8 + -1 * sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + -1 * sqrt (9 / 16) / 2) ^^^ 2 =\n 0) has_degree_in 1 / 8 + -1 * sqrt (9 / 16) / 2 =\n2\"]";
199 (*TODO simplify assumptions (sqrt!) and check ERROR in has_degree_in*);
200 member op = specsteps mI (*false*);
201 (*loc_solve_ (mI,m) ptp;
202 WAS: not-found-in-script: NotLocatable from Term_Val1 (Const ("List...*)
203 "~~~~~ fun loc_solve_, args:"; val (m, (pt,pos)) = ((mI,m), ptp);
205 WAS: not-found-in-script: NotLocatable from Term_Val1 (Const ("List...*)
206 "~~~~~ fun solve, args:"; val ((mI,m), (pt, po as (p,p_))) = (m, (pt, pos));
207 e_metID = get_obj g_metID pt (par_pblobj pt p) (*false*);
208 val thy' = get_obj g_domID pt (par_pblobj pt p);
209 val (srls, is, sc) = from_pblobj_or_detail' thy' (p,p_) pt;
211 (*locate_input_tactic (thy',srls) m (pt,(p,p_)) (sc,d) is;
212 WAS: not-found-in-script: NotLocatable from Term_Val1 (Const ("List...*)
213 "~~~~~ fun locate_input_tactic, args:"; val () = ();
214 (*----- outcommented during cleanup of args in lucas-interpreter.sml ------------------------\\* )
215 l = [] orelse ((last_elem o fst) p = 0 andalso snd p = Res) (*false*);
216 (*WAS val Reject_Tac1 _ =(go_scan_up1 (thy',srls,scr,d) ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])]) )
217 ... Accept_Tac1 ... is correct*)
218 "~~~~~ and go_scan_up1, args:"; val ((ys as (_,_,_,Prog sc,_)), ((E,l,a,v,S,b),ss)) =
219 ((thy',ctxt,srls,scr,d), ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])]));
220 1 < length l (*true*);
221 val up = drop_last l;
224 (*WAS val Term_Val1 _ = scan_up1 ys ((E,up,a,v,S,b),ss) (go up sc)
225 ... ???? ... is correct*)
226 "~~~~~ fun scan_up1, args:"; val ((ys as (y,ctxt,s,Prog sc,d)), (is as (E,l,a,v,S,b),ss),
227 (Const ("HOL.Let",_) $ _)) = (ys, ((E,up,a,v,S,b),ss:step list), (go up sc));
228 val l = drop_last l; (*comes from e, goes to Abs*)
229 val (Const ("HOL.Let",_) $ e $ (Abs (i,T,body))) = go l sc;
230 val i = mk_Free (i, T);
231 val E = Env.update E (i, v);
232 (*Type error ...: Can't unify _a to pos * pos_ (Incompatible types)*)
233 val [(tac_, mout, ctree, pos', xxx)] = ss;
234 val ss = [(tac_, mout, ctree, pos', []:(pos * pos_) list)];
235 (*WAS val Reject_Tac1 iss = scan_dn1 (((y,s),d),ORundef) ((E, l@[R,D], a,v,S,b),ss) body
236 ... Accept_Tac1 ... is correct*)
237 "~~~~~ fun scan_dn1, args:"; val ((((thy',sr),d),ap), (is as (E,l,a,v,S,b), (m,_,pt,(p,p_),c)::ss), t) =
238 ((((y,s),d),ORundef), ((E, l@[R,D], a,v,S,b),ss), body);
239 val (Program.Tac stac, a') = interpret_leaf "locate" thy' sr (E, (a, v)) t
240 val ctxt = get_ctxt pt (p,p_)
241 val p' = lev_on p : pos;
242 (* WAS val NotAss = associate pt d (m, stac)
243 ... Ass ... is correct*)
244 "~~~~~ fun associate, args:"; val (pt, _, (m as Check_elementwise' (consts,_,(consts_chkd,_))),
245 (Const ("Prog_Tac.Check'_elementwise",_) $ consts' $ _)) = (pt, d, m, stac);
248 if consts = consts' (*WAS false*) then () else error "Check_elementwise changed";
249 (*[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2] TODO sqrt*)
250 ( *----- outcommented during cleanup of args in lucas-interpreter.sml ------------------------//*)
252 "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------";
253 "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------";
254 "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------";
255 "----- d2_pqformula1_neg ------";
256 val fmz = ["equality (2 +(-1)*x + x^^^2 = (0::real))", "solveFor x","solutions L"];
257 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_pq_equation"]);
258 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
259 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
260 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
261 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
262 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
263 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
265 ([1],Res) False Or_to_List)*)
266 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
268 ([2],Res) [] Check_elementwise "Assumptions"*)
269 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
270 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
271 val asm = get_assumptions_ pt p;
272 if f2str f = "[]" andalso
273 terms2str asm = "[\"lhs (2 + -1 * x + x ^^^ 2 = 0) is_poly_in x\"," ^
274 "\"lhs (2 + -1 * x + x ^^^ 2 = 0) has_degree_in x = 2\"]" then ()
275 else error "polyeq.sml: diff.behav. in 2 +(-1)*x + x^^^2 = 0";
277 "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------";
278 "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------";
279 "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------";
280 "----- d2_pqformula2 ------";
281 val fmz = ["equality (-2 +(-1)*x + 1*x^^^2 = 0)", "solveFor x","solutions L"];
282 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
283 ["PolyEq","solve_d2_polyeq_pq_equation"]);
285 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
286 val (p,_,f,nxt,_,pt) = me (mI,m) p [] EmptyPtree;*)
287 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
288 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
289 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
290 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
291 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
292 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
294 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
295 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
296 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
297 case f of FormKF "[x = 2, x = -1]" => ()
298 | _ => error "polyeq.sml: diff.behav. in -2 + (-1)*x + x^2 = 0 -> [x = 2, x = -1]";
301 "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------";
302 "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------";
303 "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------";
304 "----- d2_pqformula3 ------";
306 val fmz = ["equality (-2 + x + x^^^2 = 0)", "solveFor x","solutions L"];
307 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
308 ["PolyEq","solve_d2_polyeq_pq_equation"]);
309 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
310 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
311 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
312 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
313 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
314 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
316 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
317 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
318 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
319 case f of FormKF "[x = 1, x = -2]" => ()
320 | _ => error "polyeq.sml: diff.behav. in -2 + x + x^2 = 0-> [x = 1, x = -2]";
323 "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------";
324 "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------";
325 "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------";
326 "----- d2_pqformula3_neg ------";
327 val fmz = ["equality (2 + x + x^^^2 = 0)", "solveFor x","solutions L"];
328 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
329 ["PolyEq","solve_d2_polyeq_pq_equation"]);
330 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
331 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
332 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
333 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
334 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
335 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
337 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
338 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
339 "TODO 2 + x + x^^^2 = 0";
340 "TODO 2 + x + x^^^2 = 0";
341 "TODO 2 + x + x^^^2 = 0";
343 "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------";
344 "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------";
345 "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------";
346 "----- d2_pqformula4 ------";
347 val fmz = ["equality (-2 + x + 1*x^^^2 = 0)", "solveFor x","solutions L"];
348 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
349 ["PolyEq","solve_d2_polyeq_pq_equation"]);
350 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
351 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
352 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
353 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
354 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
355 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
356 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
357 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
358 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
359 case f of FormKF "[x = 1, x = -2]" => ()
360 | _ => error "polyeq.sml: diff.behav. in -2 + x + 1*x^^^2 = 0 -> [x = 1, x = -2]";
362 "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------";
363 "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------";
364 "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------";
365 "----- d2_pqformula5 ------";
366 val fmz = ["equality (1*x + x^^^2 = 0)", "solveFor x","solutions L"];
367 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
368 ["PolyEq","solve_d2_polyeq_pq_equation"]);
369 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
370 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
371 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
372 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
373 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
374 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
375 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
376 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
377 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
378 case f of FormKF "[x = 0, x = -1]" => ()
379 | _ => error "polyeq.sml: diff.behav. in 1*x + x^2 = 0 -> [x = 0, x = -1]";
381 "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------";
382 "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------";
383 "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------";
384 "----- d2_pqformula6 ------";
385 val fmz = ["equality (1*x + 1*x^^^2 = 0)", "solveFor x","solutions L"];
386 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
387 ["PolyEq","solve_d2_polyeq_pq_equation"]);
388 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
389 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
390 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
391 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
392 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
393 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
394 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
395 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
396 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
397 case f of FormKF "[x = 0, x = -1]" => ()
398 | _ => error "polyeq.sml: diff.behav. in 1*x + 1*x^2 = 0 -> [x = 0, x = -1]";
400 "----------- equality (x + x^^^2 = 0) ------------------------------------------------------";
401 "----------- equality (x + x^^^2 = 0) ------------------------------------------------------";
402 "----------- equality (x + x^^^2 = 0) ------------------------------------------------------";
403 "----- d2_pqformula7 ------";
405 val fmz = ["equality ( x + x^^^2 = 0)", "solveFor x","solutions L"];
406 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
407 ["PolyEq","solve_d2_polyeq_pq_equation"]);
408 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
409 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
410 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
411 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
412 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
413 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
414 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
415 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
416 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
417 case f of FormKF "[x = 0, x = -1]" => ()
418 | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]";
420 "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------";
421 "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------";
422 "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------";
423 "----- d2_pqformula8 ------";
424 val fmz = ["equality (x + 1*x^^^2 = 0)", "solveFor x","solutions L"];
425 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
426 ["PolyEq","solve_d2_polyeq_pq_equation"]);
427 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
428 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
429 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
430 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
431 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
432 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
433 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
434 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
435 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
436 case f of FormKF "[x = 0, x = -1]" => ()
437 | _ => error "polyeq.sml: diff.behav. in x + 1*x^2 = 0 -> [x = 0, x = -1]";
439 "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------";
440 "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------";
441 "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------";
442 "----- d2_pqformula9 ------";
443 val fmz = ["equality (-4 + x^^^2 = 0)", "solveFor x","solutions L"];
444 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
445 ["PolyEq","solve_d2_polyeq_pq_equation"]);
446 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
447 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
448 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
449 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
450 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
451 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
452 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
453 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
454 case f of FormKF "[x = 2, x = -2]" => ()
455 | _ => error "polyeq.sml: diff.behav. in -4 + x^2 = 0 -> [x = 2, x = -2]";
458 "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------";
459 "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------";
460 "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------";
461 "----- d2_pqformula9_neg ------";
462 val fmz = ["equality (4 + 1*x^^^2 = 0)", "solveFor x","solutions L"];
463 val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"],
464 ["PolyEq","solve_d2_polyeq_pq_equation"]);
465 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
466 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
467 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
468 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
469 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
470 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
471 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
472 "TODO 4 + 1*x^^^2 = 0";
473 "TODO 4 + 1*x^^^2 = 0";
474 "TODO 4 + 1*x^^^2 = 0";
476 "-------------------- test thm's d2_abc_formulsxx[_neg]-----";
477 "-------------------- test thm's d2_abc_formulsxx[_neg]-----";
478 "-------------------- test thm's d2_abc_formulsxx[_neg]-----";
479 val fmz = ["equality (-1 +(-1)*x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
480 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
481 ["PolyEq","solve_d2_polyeq_abc_equation"]);
482 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
483 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
484 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
485 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
486 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
487 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
488 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
489 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
490 case f of FormKF "[x = 1, x = -1 / 2]" => ()
491 | _ => error "polyeq.sml: diff.behav. in -1 + (-1)*x + 2*x^2 = 0 -> [x = 1, x = -1/2]";
493 "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------";
494 "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------";
495 "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------";
496 val fmz = ["equality (1 +(-1)*x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
497 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
498 ["PolyEq","solve_d2_polyeq_abc_equation"]);
499 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
500 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
501 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
502 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
504 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
505 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
506 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
507 "TODO 1 +(-1)*x + 2*x^^^2 = 0";
508 "TODO 1 +(-1)*x + 2*x^^^2 = 0";
509 "TODO 1 +(-1)*x + 2*x^^^2 = 0";
512 "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------";
513 "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------";
514 "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------";
516 val fmz = ["equality (-1 + x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
517 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
518 ["PolyEq","solve_d2_polyeq_abc_equation"]);
519 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
520 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
521 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
523 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
524 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
525 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
526 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
528 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
529 case f of FormKF "[x = 1 / 2, x = -1]" => ()
530 | _ => error "polyeq.sml: diff.behav. in -1 + x + 2*x^2 = 0 -> [x = 1/2, x = -1]";
533 "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------";
534 "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------";
535 "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------";
536 val fmz = ["equality (1 + x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
537 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
538 ["PolyEq","solve_d2_polyeq_abc_equation"]);
539 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
540 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
541 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
543 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
544 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
545 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
546 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
547 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
548 "TODO 1 + x + 2*x^^^2 = 0";
549 "TODO 1 + x + 2*x^^^2 = 0";
550 "TODO 1 + x + 2*x^^^2 = 0";
553 val fmz = ["equality (-2 + 1*x + x^^^2 = 0)", "solveFor x","solutions L"];
554 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
555 ["PolyEq","solve_d2_polyeq_abc_equation"]);
556 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
557 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
558 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
559 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
560 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
561 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
562 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
563 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
564 case f of FormKF "[x = 1, x = -2]" => ()
565 | _ => error "polyeq.sml: diff.behav. in -2 + 1*x + x^2 = 0 -> [x = 1, x = -2]";
567 val fmz = ["equality ( 2 + 1*x + x^^^2 = 0)", "solveFor x","solutions L"];
568 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
569 ["PolyEq","solve_d2_polyeq_abc_equation"]);
570 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
571 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
572 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
573 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
574 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
575 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
576 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
577 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
578 "TODO 2 + 1*x + x^^^2 = 0";
579 "TODO 2 + 1*x + x^^^2 = 0";
580 "TODO 2 + 1*x + x^^^2 = 0";
583 val fmz = ["equality (-2 + x + x^^^2 = 0)", "solveFor x","solutions L"];
584 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
585 ["PolyEq","solve_d2_polyeq_abc_equation"]);
586 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
587 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
588 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
589 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
590 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
591 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
592 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
593 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
594 case f of FormKF "[x = 1, x = -2]" => ()
595 | _ => error "polyeq.sml: diff.behav. in -2 + x + x^2 = 0 -> [x = 1, x = -2]";
597 val fmz = ["equality ( 2 + x + x^^^2 = 0)", "solveFor x","solutions L"];
598 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
599 ["PolyEq","solve_d2_polyeq_abc_equation"]);
600 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
601 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
602 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
603 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
604 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
605 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
606 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
607 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
608 "TODO 2 + x + x^^^2 = 0";
609 "TODO 2 + x + x^^^2 = 0";
610 "TODO 2 + x + x^^^2 = 0";
613 val fmz = ["equality (-8 + 2*x^^^2 = 0)", "solveFor x","solutions L"];
614 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
615 ["PolyEq","solve_d2_polyeq_abc_equation"]);
616 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
617 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
618 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
619 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
620 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
621 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
622 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
623 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
624 case f of FormKF "[x = 2, x = -2]" => ()
625 | _ => error "polyeq.sml: diff.behav. in -8 + 2*x^2 = 0 -> [x = 2, x = -2]";
627 val fmz = ["equality ( 8+ 2*x^^^2 = 0)", "solveFor x","solutions L"];
628 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
629 ["PolyEq","solve_d2_polyeq_abc_equation"]);
630 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
631 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
632 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
633 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
634 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
635 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
636 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
637 "TODO 8+ 2*x^^^2 = 0";
638 "TODO 8+ 2*x^^^2 = 0";
639 "TODO 8+ 2*x^^^2 = 0";
642 val fmz = ["equality (-4 + x^^^2 = 0)", "solveFor x","solutions L"];
643 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_abc_equation"]);
644 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
645 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
646 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
647 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
648 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
649 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
650 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
651 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
652 case f of FormKF "[x = 2, x = -2]" => ()
653 | _ => error "polyeq.sml: diff.behav. in -4 + x^2 = 0 -> [x = 2, x = -2]";
656 val fmz = ["equality ( 4+ x^^^2 = 0)", "solveFor x","solutions L"];
657 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_abc_equation"]);
658 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
659 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
660 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
661 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
662 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
663 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
664 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
670 val fmz = ["equality (2*x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
671 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
672 ["PolyEq","solve_d2_polyeq_abc_equation"]);
673 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
674 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
675 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
676 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
677 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
678 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
679 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
680 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
681 case f of FormKF "[x = 0, x = -1]" => ()
682 | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]";
684 val fmz = ["equality (1*x + x^^^2 = 0)", "solveFor x","solutions L"];
685 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
686 ["PolyEq","solve_d2_polyeq_abc_equation"]);
687 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
688 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
689 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
690 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
691 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
692 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
693 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
694 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
695 case f of FormKF "[x = 0, x = -1]" => ()
696 | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]";
699 val fmz = ["equality (x + 2*x^^^2 = 0)", "solveFor x","solutions L"];
700 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
701 ["PolyEq","solve_d2_polyeq_abc_equation"]);
702 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
703 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
704 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
705 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
706 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
707 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
708 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
709 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
710 case f of FormKF "[x = 0, x = -1 / 2]" => ()
711 | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1 / 2]";
714 val fmz = ["equality (x + x^^^2 = 0)", "solveFor x","solutions L"];
715 val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"],
716 ["PolyEq","solve_d2_polyeq_abc_equation"]);
717 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
718 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
719 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
720 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
721 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
722 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
723 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
724 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
725 case f of FormKF "[x = 0, x = -1]" => ()
726 | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]";
729 "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----";
730 "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----";
731 "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----";
732 (*stopped du to TODO.txt WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat
733 see --- val rls = calculate_RootRat > calculate_Rational ---
734 calculate_RootRat was a TODO with 2002, requires re-design.
735 see also --- (-8 - 2*x + x^^^2 = 0), by rewriting --- below
737 val fmz = ["equality (-8 - 2*x + x^^^2 = 0)", (*Schalk 2, S.67 Nr.31.b*)
738 "solveFor x","solutions L"];
740 ("PolyEq",["degree_2","expanded","univariate","equation"],
741 ["PolyEq","complete_square"]);
742 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
743 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
744 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
745 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
747 val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
748 (*Apply_Method ("PolyEq","complete_square")*)
749 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
750 (*"-8 - 2 * x + x ^^^ 2 = 0", nxt = Rewrite_Set_Inst ... "complete_square*)
751 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
752 (*"-8 + (2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2", nxt = Rewrite("square_explicit1"*)
753 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
754 (*"(2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2 - -8" nxt = Rewrite("root_plus_minus*)
755 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
756 (*"2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |
757 2 / 2 - x = - sqrt ((2 / 2) ^^^ 2 - -8)" nxt = Rewr_Inst("bdv_explicit2"*)
758 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
759 (*"2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |
760 -1*x = - (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8)"nxt = R_Inst("bdv_explt2"*)
761 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
762 (*"-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) |
763 -1 * x = (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))"nxt = bdv_explicit3*)
764 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
765 (*"-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) |
766 x = -1 * (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))" nxt = bdv_explicit3*)
767 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
768 (*"x = -1 * (- (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8)) |
769 x = -1 * (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))"nxt = calculate_Rational
770 NOT IMPLEMENTED SINCE 2002 ------------------------------^^^^^^^^^^^^^^^^^^*)
771 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
772 (*"x = -2 | x = 4" nxt = Or_to_List*)
773 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
774 (*"[x = -2, x = 4]" nxt = Check_Postcond*)
775 val (p,_,f,nxt,_,pt) = me nxt p [] pt; f2str f;
777 case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -2, x = 4]")) => () TODO
778 | _ => error "polyeq.sml: diff.behav. in [x = -2, x = 4]";
781 "[x = -1 * -1 + -1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8),\n x = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))]"
782 (*"[x = -1 * -1 + -1 * sqrt (1 ^^^ 2 - -8),\n x = -1 * -1 + -1 * (-1 * sqrt (1 ^^^ 2 - -8))]"*)
783 then () else error "polyeq.sml corrected?behav. in [x = -2, x = 4]";
786 "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------";
787 "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------";
788 "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------";
789 (*stopped du to TODO.txt WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat
790 see --- val rls = calculate_RootRat > calculate_Rational ---*)
791 val thy = @{theory PolyEq};
792 val ctxt = Proof_Context.init_global thy;
793 val inst = [((the o (parseNEW ctxt)) "bdv::real", (the o (parseNEW ctxt)) "x::real")];
794 val t = (the o (parseNEW ctxt)) "-8 - 2*x + x^^^2 = (0::real)";
796 val rls = complete_square;
797 val SOME (t,asm) = rewrite_set_inst_ thy true inst rls t;
798 term2str t = "-8 + (2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2";
800 val thm = num_str @{thm square_explicit1};
801 val SOME (t,asm) = rewrite_ thy dummy_ord Erls true thm t;
802 term2str t = "(2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2 - -8";
804 val thm = num_str @{thm root_plus_minus};
805 val SOME (t,asm) = rewrite_ thy dummy_ord PolyEq_erls true thm t;
806 term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^
807 "\n2 / 2 - x = -1 * sqrt ((2 / 2) ^^^ 2 - -8)";
809 (*the thm bdv_explicit2* here required to be constrained to ::real*)
810 val thm = num_str @{thm bdv_explicit2};
811 val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t;
812 term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^
813 "\n-1 * x = - (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8)";
815 val thm = num_str @{thm bdv_explicit3};
816 val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t;
817 term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^
818 "\nx = -1 * (- (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8))";
820 val thm = num_str @{thm bdv_explicit2};
821 val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t;
822 term2str t = "-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) |"^
823 "\nx = -1 * (- (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8))";
825 val rls = calculate_RootRat;
826 val SOME (t,asm) = rewrite_set_ thy true rls t;
828 "-1 * x = -1 + sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8) \<or>\nx = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))"
829 (*"-1 * x = -1 + sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8) |\nx = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))"..isabisac15*)
830 then () else error "(-8 - 2*x + x^^^2 = 0), by rewriting -- ERROR INDICATES IMPROVEMENT";
831 (*SHOULD BE: term2str = "x = -2 | x = 4;*)
834 "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------";
835 "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------";
836 "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------";
837 "---- test the erls ----";
838 val t1 = (Thm.term_of o the o (parse thy)) "0 <= (10/3/2)^^^2 - 1";
839 val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_erls t1;
841 (*if t'= "HOL.True" then ()
842 else error "polyeq.sml: diff.behav. in 'rewrite_set_.. PolyEq_erls";*)
844 val fmz = ["equality (3 - 10*x + 3*x^^^2 = 0)",
845 "solveFor x","solutions L"];
847 ("PolyEq",["degree_2","expanded","univariate","equation"],
848 ["PolyEq","complete_square"]);
849 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
850 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
851 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
852 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
853 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
854 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
855 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
856 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
857 (*Apply_Method ("PolyEq","complete_square")*)
858 val (p,_,f,nxt,_,pt) = me nxt p [] pt; f2str f;
860 "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------";
861 "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------";
862 "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------";
863 val fmz = ["equality (-16 + 4*x + 2*x^^^2 = 0)",
864 "solveFor x","solutions L"];
866 ("PolyEq",["degree_2","expanded","univariate","equation"],
867 ["PolyEq","complete_square"]);
868 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
869 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
870 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
871 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
872 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
873 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
874 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
875 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
876 (*Apply_Method ("PolyEq","complete_square")*)
877 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
878 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
879 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
880 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
881 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
882 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
883 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
884 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
885 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
886 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
888 case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 2, x = -4]")) => () TODO
889 | _ => error "polyeq.sml: diff.behav. in [x = 2, x = -4]";