446 "Script Maximum_value(fix_::bool list)(m_::real) (rs_::bool list)\ |
446 "Script Maximum_value(fix_::bool list)(m_::real) (rs_::bool list)\ |
447 \ (v_::real) (itv_::real set) (err_::bool) = \ |
447 \ (v_::real) (itv_::real set) (err_::bool) = \ |
448 \ (let e_e = (hd o (filterVar m_)) rs_; \ |
448 \ (let e_e = (hd o (filterVar m_)) rs_; \ |
449 \ t_ = (if 1 < length_ rs_ \ |
449 \ t_ = (if 1 < length_ rs_ \ |
450 \ then (SubProblem (Reals_,[make,function],[no_met])\ |
450 \ then (SubProblem (Reals_,[make,function],[no_met])\ |
451 \ [real_ m_, real_ v_v, bool_list_ rs_])\ |
451 \ [REAL m_, REAL v_v, BOOL_LIST rs_])\ |
452 \ else (hd rs_)); \ |
452 \ else (hd rs_)); \ |
453 \ (mx_::real) = SubProblem (Reals_,[on_interval,max_of,function], \ |
453 \ (mx_::real) = SubProblem (Reals_,[on_interval,max_of,function], \ |
454 \ [Isac,maximum_on_interval])\ |
454 \ [Isac,maximum_on_interval])\ |
455 \ [bool_ t_, real_ v_v, real_set_ itv_]\ |
455 \ [BOOL t_, REAL v_v, REAL_SET itv_]\ |
456 \ in ((SubProblem (Reals_,[find_values,tool],[Isac,find_values]) \ |
456 \ in ((SubProblem (Reals_,[find_values,tool],[Isac,find_values]) \ |
457 \ [real_ mx_, real_ (Rhs t_), real_ v_v, real_ m_, \ |
457 \ [REAL mx_, REAL (Rhs t_), REAL v_v, REAL m_, \ |
458 \ bool_list_ (dropWhile (ident e_e) rs_)])::bool list))"; |
458 \ BOOL_LIST (dropWhile (ident e_e) rs_)])::bool list))"; |
459 |
459 |
460 val fix_ = (str2term "fix_::bool list", |
460 val fix_ = (str2term "fix_::bool list", |
461 str2term "[r=Arbfix]"); |
461 str2term "[r=Arbfix]"); |
462 val m_ = (str2term "m_::real", |
462 val m_ = (str2term "m_::real", |
463 str2term "A"); |
463 str2term "A"); |
492 |
492 |
493 (*--- 2.line in script ---*) |
493 (*--- 2.line in script ---*) |
494 val t = str2term |
494 val t = str2term |
495 "(if 1 < length_ rs_ \ |
495 "(if 1 < length_ rs_ \ |
496 \ then (SubProblem (Reals_,[make,function],[no_met])\ |
496 \ then (SubProblem (Reals_,[make,function],[no_met])\ |
497 \ [real_ m_, real_ v_v, bool_list_ rs_])\ |
497 \ [REAL m_, REAL v_v, BOOL_LIST rs_])\ |
498 \ else (hd rs_))"; |
498 \ else (hd rs_))"; |
499 val s = subst_atomic env t; |
499 val s = subst_atomic env t; |
500 term2str s; |
500 term2str s; |
501 "if 1 < length_ [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]\ |
501 "if 1 < length_ [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]\ |
502 \then SubProblem (Reals_, [make, function], [no_met])\ |
502 \then SubProblem (Reals_, [make, function], [no_met])\ |
503 \ [real_ A, real_ b,\ |
503 \ [REAL A, REAL b,\ |
504 \ bool_list_ [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]]\ |
504 \ BOOL_LIST [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]]\ |
505 \else hd [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]"; |
505 \else hd [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]"; |
506 val SOME (s',_) = rewrite_set_ thy false list_rls s; |
506 val SOME (s',_) = rewrite_set_ thy false list_rls s; |
507 val s'' = term2str s'; |
507 val s'' = term2str s'; |
508 if s'' = |
508 if s'' = |
509 "SubProblem (Reals_, [make, function], [no_met])\n\ |
509 "SubProblem (Reals_, [make, function], [no_met])\n\ |
510 \ [real_ A, real_ b,\n\ |
510 \ [REAL A, REAL b,\n\ |
511 \ bool_list_ [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]]" then () |
511 \ BOOL_LIST [A = a * b, (a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2]]" then () |
512 else raise error "new behaviour with list_rls 1.3."; |
512 else raise error "new behaviour with list_rls 1.3."; |
513 val env = env @ [(str2term "t_::bool", |
513 val env = env @ [(str2term "t_::bool", |
514 str2term "A = (2*sqrt(r^^^2-(b/2)^^^2)) * b")]; |
514 str2term "A = (2*sqrt(r^^^2-(b/2)^^^2)) * b")]; |
515 |
515 |
516 |
516 |
524 \ (let h_ = (hd o (filterVar f_)) eqs_; \ |
524 \ (let h_ = (hd o (filterVar f_)) eqs_; \ |
525 \ e_1 = hd (dropWhile (ident h_) eqs_); \ |
525 \ e_1 = hd (dropWhile (ident h_) eqs_); \ |
526 \ vs_ = dropWhile (ident f_) (Vars h_); \ |
526 \ vs_ = dropWhile (ident f_) (Vars h_); \ |
527 \ v_1 = hd (dropWhile (ident v_v) vs_); \ |
527 \ v_1 = hd (dropWhile (ident v_v) vs_); \ |
528 \ (s_1::bool list)=(SubProblem(Reals_,[univar,equation],[no_met])\ |
528 \ (s_1::bool list)=(SubProblem(Reals_,[univar,equation],[no_met])\ |
529 \ [bool_ e_1, real_ v_1])\ |
529 \ [BOOL e_1, REAL v_1])\ |
530 \ in Substitute [(v_1 = (rhs o hd) s_1)] h_)"; |
530 \ in Substitute [(v_1 = (rhs o hd) s_1)] h_)"; |
531 val f_ = (str2term "f_::real", |
531 val f_ = (str2term "f_::real", |
532 str2term "A"); |
532 str2term "A"); |
533 val v_v = (str2term "v_::real", |
533 val v_v = (str2term "v_::real", |
534 str2term "b"); |
534 str2term "b"); |
582 if s' = "a" then () else raise error "new behaviour with list_rls 2.4."; |
582 if s' = "a" then () else raise error "new behaviour with list_rls 2.4."; |
583 val env = env @ [(str2term "v_1::real", str2term s')]; |
583 val env = env @ [(str2term "v_1::real", str2term s')]; |
584 |
584 |
585 (*--- 5.line in script ---*) |
585 (*--- 5.line in script ---*) |
586 val t = str2term "(SubProblem(Reals_,[univar,equation],[no_met])\ |
586 val t = str2term "(SubProblem(Reals_,[univar,equation],[no_met])\ |
587 \ [bool_ e_1, real_ v_1])"; |
587 \ [BOOL e_1, REAL v_1])"; |
588 val s = subst_atomic env t; |
588 val s = subst_atomic env t; |
589 term2str s; |
589 term2str s; |
590 "SubProblem (Reals_, [univar, equation], [no_met])\n\ |
590 "SubProblem (Reals_, [univar, equation], [no_met])\n\ |
591 \ [bool_ ((a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2), real_ a]"; |
591 \ [BOOL ((a / 2) ^^^ 2 + (b / 2) ^^^ 2 = r ^^^ 2), REAL a]"; |
592 val env = env @ [(str2term "s_1::bool list", |
592 val env = env @ [(str2term "s_1::bool list", |
593 str2term "[a = 2 * sqrt (r^^^2 - (b/2)^^^2)]")]; |
593 str2term "[a = 2 * sqrt (r^^^2 - (b/2)^^^2)]")]; |
594 |
594 |
595 (*--- 6.line in script ---*) |
595 (*--- 6.line in script ---*) |
596 val t = str2term "Substitute [(v_1 = (rhs o hd) (s_1::bool list))] (h_::bool)"; |
596 val t = str2term "Substitute [(v_1 = (rhs o hd) (s_1::bool list))] (h_::bool)"; |
618 \ v_1 = nth_ 1 vs_; \ |
618 \ v_1 = nth_ 1 vs_; \ |
619 \ v_2 = nth_ 2 vs_; \ |
619 \ v_2 = nth_ 2 vs_; \ |
620 \ e_1 = (hd o (filterVar v_1)) es_; \ |
620 \ e_1 = (hd o (filterVar v_1)) es_; \ |
621 \ e_2 = (hd o (filterVar v_2)) es_; \ |
621 \ e_2 = (hd o (filterVar v_2)) es_; \ |
622 \ (s_1::bool list) = (SubProblem (Reals_,[univar,equation],[no_met])\ |
622 \ (s_1::bool list) = (SubProblem (Reals_,[univar,equation],[no_met])\ |
623 \ [bool_ e_1, real_ v_1]);\ |
623 \ [BOOL e_1, REAL v_1]);\ |
624 \ (s_2::bool list) = (SubProblem (Reals_,[univar,equation],[no_met])\ |
624 \ (s_2::bool list) = (SubProblem (Reals_,[univar,equation],[no_met])\ |
625 \ [bool_ e_2, real_ v_2])\ |
625 \ [BOOL e_2, REAL v_2])\ |
626 \in Substitute [(v_1 = (rhs o hd) s_1),(v_2 = (rhs o hd) s_2)] h_)"; |
626 \in Substitute [(v_1 = (rhs o hd) s_1),(v_2 = (rhs o hd) s_2)] h_)"; |
627 val f_ = (str2term "f_::real", |
627 val f_ = (str2term "f_::real", |
628 str2term "A"); |
628 str2term "A"); |
629 val v_v = (str2term "v_::real", |
629 val v_v = (str2term "v_::real", |
630 str2term "alpha"); |
630 str2term "alpha"); |
713 else raise error "new behaviour with list_rls 3.7."; |
713 else raise error "new behaviour with list_rls 3.7."; |
714 val env = env @ [(str2term "e_2::bool", str2term s')]; |
714 val env = env @ [(str2term "e_2::bool", str2term s')]; |
715 |
715 |
716 (*--- 8.line in script ---*) |
716 (*--- 8.line in script ---*) |
717 val t = str2term "(SubProblem (Reals_,[univar,equation],[no_met])\ |
717 val t = str2term "(SubProblem (Reals_,[univar,equation],[no_met])\ |
718 \ [bool_ e_1, real_ v_1])"; |
718 \ [BOOL e_1, REAL v_1])"; |
719 val s = subst_atomic env t; |
719 val s = subst_atomic env t; |
720 term2str s; |
720 term2str s; |
721 "SubProblem (Reals_, [univar, equation], [no_met])\ |
721 "SubProblem (Reals_, [univar, equation], [no_met])\ |
722 \ [bool_ (a / 2 = r * sin alpha), real_ a]"; |
722 \ [BOOL (a / 2 = r * sin alpha), REAL a]"; |
723 val s_1 = str2term "[a = 2*r*sin alpha]"; |
723 val s_1 = str2term "[a = 2*r*sin alpha]"; |
724 val env = env @ [(str2term "s_1::bool list", s_1)]; |
724 val env = env @ [(str2term "s_1::bool list", s_1)]; |
725 |
725 |
726 (*--- 9.line in script ---*) |
726 (*--- 9.line in script ---*) |
727 val t = str2term "(SubProblem (Reals_,[univar,equation],[no_met])\ |
727 val t = str2term "(SubProblem (Reals_,[univar,equation],[no_met])\ |
728 \ [bool_ e_2, real_ v_2])"; |
728 \ [BOOL e_2, REAL v_2])"; |
729 val s = subst_atomic env t; |
729 val s = subst_atomic env t; |
730 term2str s; |
730 term2str s; |
731 "SubProblem (Reals_, [univar, equation], [no_met])\ |
731 "SubProblem (Reals_, [univar, equation], [no_met])\ |
732 \ [bool_ (b / 2 = r * cos alpha), real_ b]"; |
732 \ [BOOL (b / 2 = r * cos alpha), REAL b]"; |
733 val s_2 = str2term "[b = 2*r*cos alpha]"; |
733 val s_2 = str2term "[b = 2*r*cos alpha]"; |
734 val env = env @ [(str2term "s_2::bool list", s_2)]; |
734 val env = env @ [(str2term "s_2::bool list", s_2)]; |
735 |
735 |
736 (*--- 10.line in script ---*) |
736 (*--- 10.line in script ---*) |
737 val t = str2term |
737 val t = str2term |