test/Tools/isac/Knowledge/polyminus.sml
changeset 59248 5eba5e6d5266
parent 59188 c477d0f79ab9
child 59348 ddfabb53082c
equal deleted inserted replaced
59247:7f29665daeb2 59248:5eba5e6d5266
   274 CalcTree [(["Term (5*e + 6*f - 8*g - 9 - 7*e - 4*f + 10*g + 12)",
   274 CalcTree [(["Term (5*e + 6*f - 8*g - 9 - 7*e - 4*f + 10*g + 12)",
   275 	    "normalform N"],
   275 	    "normalform N"],
   276 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   276 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   277 	    ["simplification","for_polynomials","with_minus"]))];
   277 	    ["simplification","for_polynomials","with_minus"]))];
   278 moveActiveRoot 1;
   278 moveActiveRoot 1;
   279 autoCalculate' 1 CompleteCalc;
   279 autoCalculate 1 CompleteCalc;
   280 val ((pt,p),_) = get_calc 1; show_pt pt;
   280 val ((pt,p),_) = get_calc 1; show_pt pt;
   281 if p = ([], Res) andalso 
   281 if p = ([], Res) andalso 
   282    term2str (get_obj g_res pt (fst p)) = "3 - 2 * e + 2 * f + 2 * g"
   282    term2str (get_obj g_res pt (fst p)) = "3 - 2 * e + 2 * f + 2 * g"
   283 then () else error "polyminus.sml: Vereinfache (3 - 2 * e + 2 * f...";
   283 then () else error "polyminus.sml: Vereinfache (3 - 2 * e + 2 * f...";
   284 
   284 
   287 CalcTree [(["Term (-r - 2*s - 3*t + 5 + 4*r + 8*s - 5*t - 2)",
   287 CalcTree [(["Term (-r - 2*s - 3*t + 5 + 4*r + 8*s - 5*t - 2)",
   288 	    "normalform N"],
   288 	    "normalform N"],
   289 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   289 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   290 	    ["simplification","for_polynomials","with_minus"]))];
   290 	    ["simplification","for_polynomials","with_minus"]))];
   291 moveActiveRoot 1;
   291 moveActiveRoot 1;
   292 autoCalculate' 1 CompleteCalc;
   292 autoCalculate 1 CompleteCalc;
   293 val ((pt,p),_) = get_calc 1; show_pt pt;
   293 val ((pt,p),_) = get_calc 1; show_pt pt;
   294 if p = ([], Res) andalso 
   294 if p = ([], Res) andalso 
   295    term2str (get_obj g_res pt (fst p)) = "3 + 3 * r + 6 * s - 8 * t"
   295    term2str (get_obj g_res pt (fst p)) = "3 + 3 * r + 6 * s - 8 * t"
   296 then () else error "polyminus.sml: Vereinfache 140 d)";
   296 then () else error "polyminus.sml: Vereinfache 140 d)";
   297 
   297 
   300 CalcTree [(["Term (3*e - 6*f - 8*e - 4*f + 5*e + 7*f)",
   300 CalcTree [(["Term (3*e - 6*f - 8*e - 4*f + 5*e + 7*f)",
   301 	    "normalform N"],
   301 	    "normalform N"],
   302 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   302 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   303 	    ["simplification","for_polynomials","with_minus"]))];
   303 	    ["simplification","for_polynomials","with_minus"]))];
   304 moveActiveRoot 1;
   304 moveActiveRoot 1;
   305 autoCalculate' 1 CompleteCalc;
   305 autoCalculate 1 CompleteCalc;
   306 val ((pt,p),_) = get_calc 1; show_pt pt;
   306 val ((pt,p),_) = get_calc 1; show_pt pt;
   307 if p = ([], Res) andalso 
   307 if p = ([], Res) andalso 
   308    term2str (get_obj g_res pt (fst p)) = "- (3 * f)"
   308    term2str (get_obj g_res pt (fst p)) = "- (3 * f)"
   309 then () else error "polyminus.sml: Vereinfache 139 c)";
   309 then () else error "polyminus.sml: Vereinfache 139 c)";
   310 
   310 
   313 CalcTree [(["Term (8*u - 5*v - 5*u + 7*v - 6*u - 3*v)",
   313 CalcTree [(["Term (8*u - 5*v - 5*u + 7*v - 6*u - 3*v)",
   314 	    "normalform N"],
   314 	    "normalform N"],
   315 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   315 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   316 	    ["simplification","for_polynomials","with_minus"]))];
   316 	    ["simplification","for_polynomials","with_minus"]))];
   317 moveActiveRoot 1;
   317 moveActiveRoot 1;
   318 autoCalculate' 1 CompleteCalc;
   318 autoCalculate 1 CompleteCalc;
   319 val ((pt,p),_) = get_calc 1; show_pt pt;
   319 val ((pt,p),_) = get_calc 1; show_pt pt;
   320 if p = ([], Res) andalso 
   320 if p = ([], Res) andalso 
   321    term2str (get_obj g_res pt (fst p)) = "-3 * u - v"
   321    term2str (get_obj g_res pt (fst p)) = "-3 * u - v"
   322 then () else error "polyminus.sml: Vereinfache 139 b)";
   322 then () else error "polyminus.sml: Vereinfache 139 b)";
   323 
   323 
   326 CalcTree [(["Term (2*u - 3*v - 6*u + 5*v)",
   326 CalcTree [(["Term (2*u - 3*v - 6*u + 5*v)",
   327 	    "normalform N"],
   327 	    "normalform N"],
   328 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   328 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   329 	    ["simplification","for_polynomials","with_minus"]))];
   329 	    ["simplification","for_polynomials","with_minus"]))];
   330 moveActiveRoot 1;
   330 moveActiveRoot 1;
   331 autoCalculate' 1 CompleteCalc;
   331 autoCalculate 1 CompleteCalc;
   332 val ((pt,p),_) = get_calc 1; show_pt pt;
   332 val ((pt,p),_) = get_calc 1; show_pt pt;
   333 if p = ([], Res) andalso 
   333 if p = ([], Res) andalso 
   334    term2str (get_obj g_res pt (fst p)) = "-4 * u + 2 * v"
   334    term2str (get_obj g_res pt (fst p)) = "-4 * u + 2 * v"
   335 then () else error "polyminus.sml: Vereinfache 138 a)";
   335 then () else error "polyminus.sml: Vereinfache 138 a)";
   336 
   336 
   356 	    "mitWert [e = 1, f = 2, g = 3]",
   356 	    "mitWert [e = 1, f = 2, g = 3]",
   357 	    "Geprueft b"],
   357 	    "Geprueft b"],
   358 	   ("PolyMinus",["polynom","probe"],
   358 	   ("PolyMinus",["polynom","probe"],
   359 	    ["probe","fuer_polynom"]))];
   359 	    ["probe","fuer_polynom"]))];
   360 moveActiveRoot 1;
   360 moveActiveRoot 1;
   361 autoCalculate' 1 CompleteCalc;
   361 autoCalculate 1 CompleteCalc;
   362 (* autoCalculate' 1 CompleteCalcHead;
   362 (* autoCalculate 1 CompleteCalcHead;
   363    autoCalculate' 1 (Step 1);
   363    autoCalculate 1 (Step 1);
   364    autoCalculate' 1 (Step 1);
   364    autoCalculate 1 (Step 1);
   365    val ((pt,p),_) = get_calc 1; term2str (get_obj g_res pt (fst p));
   365    val ((pt,p),_) = get_calc 1; term2str (get_obj g_res pt (fst p));
   366 @@@@@WN081114 gives "??.empty", all "Pruefe" are the same,
   366 @@@@@WN081114 gives "??.empty", all "Pruefe" are the same,
   367 although analogies work in interface.sml: FIXME.WN081114 in "Pruefe"*)
   367 although analogies work in interface.sml: FIXME.WN081114 in "Pruefe"*)
   368 val ((pt,p),_) = get_calc 1;
   368 val ((pt,p),_) = get_calc 1;
   369 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "11 = 11"
   369 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "11 = 11"
   377 CalcTree [(["Term (2*u - 5 - (3 - 4*u) + (8*u + 9))",
   377 CalcTree [(["Term (2*u - 5 - (3 - 4*u) + (8*u + 9))",
   378 	    "normalform N"],
   378 	    "normalform N"],
   379 	   ("PolyMinus",["klammer","polynom","vereinfachen"],
   379 	   ("PolyMinus",["klammer","polynom","vereinfachen"],
   380 	    ["simplification","for_polynomials","with_parentheses"]))];
   380 	    ["simplification","for_polynomials","with_parentheses"]))];
   381 moveActiveRoot 1;
   381 moveActiveRoot 1;
   382 autoCalculate' 1 CompleteCalc;
   382 autoCalculate 1 CompleteCalc;
   383 val ((pt,p),_) = get_calc 1;
   383 val ((pt,p),_) = get_calc 1;
   384 if p = ([], Res) andalso 
   384 if p = ([], Res) andalso 
   385    term2str (get_obj g_res pt (fst p)) = "1 + 14 * u"
   385    term2str (get_obj g_res pt (fst p)) = "1 + 14 * u"
   386 then () else error "polyminus.sml: Vereinfache (2*u - 5 - (3 - ...";
   386 then () else error "polyminus.sml: Vereinfache (2*u - 5 - (3 - ...";
   387 show_pt pt;
   387 show_pt pt;
   392 	    "mitWert [u = 2]",
   392 	    "mitWert [u = 2]",
   393 	    "Geprueft b"],
   393 	    "Geprueft b"],
   394 	   ("PolyMinus",["polynom","probe"],
   394 	   ("PolyMinus",["polynom","probe"],
   395 	    ["probe","fuer_polynom"]))];
   395 	    ["probe","fuer_polynom"]))];
   396 moveActiveRoot 1;
   396 moveActiveRoot 1;
   397 autoCalculate' 1 CompleteCalc;
   397 autoCalculate 1 CompleteCalc;
   398 val ((pt,p),_) = get_calc 1;
   398 val ((pt,p),_) = get_calc 1;
   399 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "29 = 29"
   399 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "29 = 29"
   400 then () else error "polyminus.sml: Probe 29 = 29";
   400 then () else error "polyminus.sml: Probe 29 = 29";
   401 show_pt pt;
   401 show_pt pt;
   402 
   402 
   407 CalcTree [(["Term (5*e + 6*f - 8*g - 9 - 7*e - 4*f + 10*g + 12)",
   407 CalcTree [(["Term (5*e + 6*f - 8*g - 9 - 7*e - 4*f + 10*g + 12)",
   408 	    "normalform N"],
   408 	    "normalform N"],
   409 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   409 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   410 	    ["simplification","for_polynomials","with_minus"]))];
   410 	    ["simplification","for_polynomials","with_minus"]))];
   411 moveActiveRoot 1;
   411 moveActiveRoot 1;
   412 autoCalculate' 1 CompleteCalcHead;
   412 autoCalculate 1 CompleteCalcHead;
   413 autoCalculate' 1 (Step 1);
   413 autoCalculate 1 (Step 1);
   414 autoCalculate' 1 (Step 1);
   414 autoCalculate 1 (Step 1);
   415 val ((pt,p),_) = get_calc 1; show_pt pt;
   415 val ((pt,p),_) = get_calc 1; show_pt pt;
   416 "----- 1 ^^^";
   416 "----- 1 ^^^";
   417 fetchApplicableTactics 1 0 p;
   417 fetchApplicableTactics 1 0 p;
   418 val appltacs = sel_appl_atomic_tacs pt p;
   418 val appltacs = sel_appl_atomic_tacs pt p;
   419 applyTactic 1 p (hd appltacs) (*addiere_x_plus_minus*);
   419 applyTactic 1 p (hd appltacs) (*addiere_x_plus_minus*);
   453 (*<CALCMESSAGE> failure </CALCMESSAGE>
   453 (*<CALCMESSAGE> failure </CALCMESSAGE>
   454 applyTactic 1 p (hd (sel_appl_atomic_tacs pt p)) (**);
   454 applyTactic 1 p (hd (sel_appl_atomic_tacs pt p)) (**);
   455 val ((pt,p),_) = get_calc 1; show_pt pt;
   455 val ((pt,p),_) = get_calc 1; show_pt pt;
   456 "----- 7 ^^^";
   456 "----- 7 ^^^";
   457 *)
   457 *)
   458 autoCalculate' 1 CompleteCalc;
   458 autoCalculate 1 CompleteCalc;
   459 val ((pt,p),_) = get_calc 1; show_pt pt;
   459 val ((pt,p),_) = get_calc 1; show_pt pt;
   460 (*independent from failure above: met_simp_poly_minus not confluent:
   460 (*independent from failure above: met_simp_poly_minus not confluent:
   461 (([9], Res), - (8 * g) + 10 * g + (3 - 2 * e + 2 * f)),
   461 (([9], Res), - (8 * g) + 10 * g + (3 - 2 * e + 2 * f)),
   462 (([], Res), - (8 * g) + 10 * g + (3 - 2 * e + 2 * f))]
   462 (([], Res), - (8 * g) + 10 * g + (3 - 2 * e + 2 * f))]
   463 ~~~~~~~~~~~###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
   463 ~~~~~~~~~~~###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
   468 CalcTree [(["Term (- (8 * g) + 10 * g + h)",
   468 CalcTree [(["Term (- (8 * g) + 10 * g + h)",
   469 	    "normalform N"],
   469 	    "normalform N"],
   470 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   470 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   471 	    ["simplification","for_polynomials","with_minus"]))];
   471 	    ["simplification","for_polynomials","with_minus"]))];
   472 moveActiveRoot 1;
   472 moveActiveRoot 1;
   473 autoCalculate' 1 CompleteCalc;
   473 autoCalculate 1 CompleteCalc;
   474 val ((pt,p),_) = get_calc 1; show_pt pt;
   474 val ((pt,p),_) = get_calc 1; show_pt pt;
   475 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "2 * g + h"
   475 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "2 * g + h"
   476 then () else error "polyminus.sml: addiere_vor_minus";
   476 then () else error "polyminus.sml: addiere_vor_minus";
   477 
   477 
   478 
   478 
   481 CalcTree [(["Term (- (8 * g) + 10 * g + f)",
   481 CalcTree [(["Term (- (8 * g) + 10 * g + f)",
   482 	    "normalform N"],
   482 	    "normalform N"],
   483 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   483 	   ("PolyMinus",["plus_minus","polynom","vereinfachen"],
   484 	    ["simplification","for_polynomials","with_minus"]))];
   484 	    ["simplification","for_polynomials","with_minus"]))];
   485 moveActiveRoot 1;
   485 moveActiveRoot 1;
   486 autoCalculate' 1 CompleteCalc;
   486 autoCalculate 1 CompleteCalc;
   487 val ((pt,p),_) = get_calc 1; show_pt pt;
   487 val ((pt,p),_) = get_calc 1; show_pt pt;
   488 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "f + 2 * g"
   488 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "f + 2 * g"
   489 then () else error "polyminus.sml: tausche_vor_plus";
   489 then () else error "polyminus.sml: tausche_vor_plus";
   490 
   490 
   491 "----------- pbl binom polynom vereinfachen p.39 -----------------";
   491 "----------- pbl binom polynom vereinfachen p.39 -----------------";
   525 CalcTree [(["Term ((3*a + 2) * (4*a - 1))",
   525 CalcTree [(["Term ((3*a + 2) * (4*a - 1))",
   526 	    "normalform N"],
   526 	    "normalform N"],
   527 	   ("PolyMinus",["binom_klammer","polynom","vereinfachen"],
   527 	   ("PolyMinus",["binom_klammer","polynom","vereinfachen"],
   528 	    ["simplification","for_polynomials","with_parentheses_mult"]))];
   528 	    ["simplification","for_polynomials","with_parentheses_mult"]))];
   529 moveActiveRoot 1;
   529 moveActiveRoot 1;
   530 autoCalculate' 1 CompleteCalc;
   530 autoCalculate 1 CompleteCalc;
   531 val ((pt,p),_) = get_calc 1; show_pt pt;
   531 val ((pt,p),_) = get_calc 1; show_pt pt;
   532 if p = ([], Res) andalso 
   532 if p = ([], Res) andalso 
   533    term2str (get_obj g_res pt (fst p)) = "-2 + 12 * a ^^^ 2 + 5 * a"
   533    term2str (get_obj g_res pt (fst p)) = "-2 + 12 * a ^^^ 2 + 5 * a"
   534 then () else error "polyminus.sml: Vereinfache (2*u - 5 - (3 - ...";
   534 then () else error "polyminus.sml: Vereinfache (2*u - 5 - (3 - ...";
   535 
   535 
   539 reset_states ();
   539 reset_states ();
   540 CalcTree [(["Term (8*(a - q) + a - 2*q + 3*(a - 2*q))", "normalform N"],
   540 CalcTree [(["Term (8*(a - q) + a - 2*q + 3*(a - 2*q))", "normalform N"],
   541 	   ("PolyMinus",["binom_klammer","polynom","vereinfachen"],
   541 	   ("PolyMinus",["binom_klammer","polynom","vereinfachen"],
   542 	    ["simplification","for_polynomials","with_parentheses_mult"]))];
   542 	    ["simplification","for_polynomials","with_parentheses_mult"]))];
   543 moveActiveRoot 1;
   543 moveActiveRoot 1;
   544 autoCalculate' 1 CompleteCalc;
   544 autoCalculate 1 CompleteCalc;
   545 val ((pt,p),_) = get_calc 1; show_pt pt;
   545 val ((pt,p),_) = get_calc 1; show_pt pt;
   546 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "12 * a - 16 * q" 
   546 if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) = "12 * a - 16 * q" 
   547 then () else error "pbl binom polynom vereinfachen: cube";
   547 then () else error "pbl binom polynom vereinfachen: cube";
   548 
   548 
   549 "----------- refine Vereinfache ----------------------------------";
   549 "----------- refine Vereinfache ----------------------------------";