test/Tools/isac/Knowledge/eqsystem.sml
branchisac-update-Isa09-2
changeset 38031 460c24a6a6ba
parent 38014 3e11e3c2dc42
child 38050 4c52ad406c20
equal deleted inserted replaced
38030:95d956108461 38031:460c24a6a6ba
    37 "----------- occur_exactly_in ------------------------------------";
    37 "----------- occur_exactly_in ------------------------------------";
    38 val all = [str2term"c", str2term"c_2", str2term"c_3"];
    38 val all = [str2term"c", str2term"c_2", str2term"c_3"];
    39 val t = str2term"0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    39 val t = str2term"0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    40 
    40 
    41 if occur_exactly_in [str2term"c", str2term"c_2"] all t
    41 if occur_exactly_in [str2term"c", str2term"c_2"] all t
    42 then () else raise error "eqsystem.sml occur_exactly_in 1";
    42 then () else error "eqsystem.sml occur_exactly_in 1";
    43 
    43 
    44 if not (occur_exactly_in [str2term"c", str2term"c_2", str2term"c_3"] all t)
    44 if not (occur_exactly_in [str2term"c", str2term"c_2", str2term"c_3"] all t)
    45 then () else raise error "eqsystem.sml occur_exactly_in 2";
    45 then () else error "eqsystem.sml occur_exactly_in 2";
    46 
    46 
    47 if not (occur_exactly_in [str2term"c_2"] all t)
    47 if not (occur_exactly_in [str2term"c_2"] all t)
    48 then () else raise error "eqsystem.sml occur_exactly_in 3";
    48 then () else error "eqsystem.sml occur_exactly_in 3";
    49 
    49 
    50 
    50 
    51 val t = str2term"[c,c_2] from_ [c,c_2,c_3] occur_exactly_in \
    51 val t = str2term"[c,c_2] from_ [c,c_2,c_3] occur_exactly_in \
    52 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    52 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    53 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    53 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    54 if str = "[c, c_2] from_ [c, c_2,\n                c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = True" then ()
    54 if str = "[c, c_2] from_ [c, c_2,\n                c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = True" then ()
    55 else raise error "eval_occur_exactly_in [c, c_2]";
    55 else error "eval_occur_exactly_in [c, c_2]";
    56 
    56 
    57 val t = str2term"[c,c_2,c_3] from_ [c,c_2,c_3] occur_exactly_in \
    57 val t = str2term"[c,c_2,c_3] from_ [c,c_2,c_3] occur_exactly_in \
    58 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    58 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    59 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    59 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    60 if str = "[c, c_2,\n c_3] from_ [c, c_2,\n             c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
    60 if str = "[c, c_2,\n c_3] from_ [c, c_2,\n             c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
    61 else raise error "eval_occur_exactly_in [c, c_2, c_3]";
    61 else error "eval_occur_exactly_in [c, c_2, c_3]";
    62 
    62 
    63 val t = str2term"[c_2] from_ [c,c_2,c_3] occur_exactly_in \
    63 val t = str2term"[c_2] from_ [c,c_2,c_3] occur_exactly_in \
    64 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    64 		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
    65 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    65 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    66 if str = "[c_2] from_ [c, c_2,\n             c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
    66 if str = "[c_2] from_ [c, c_2,\n             c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
    67 else raise error "eval_occur_exactly_in [c, c_2, c_3]";
    67 else error "eval_occur_exactly_in [c, c_2, c_3]";
    68 
    68 
    69 val t = str2term"[] from_ [c,c_2,c_3] occur_exactly_in 0";
    69 val t = str2term"[] from_ [c,c_2,c_3] occur_exactly_in 0";
    70 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    70 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    71 if str = "[] from_ [c, c_2, c_3] occur_exactly_in 0 = True" then ()
    71 if str = "[] from_ [c, c_2, c_3] occur_exactly_in 0 = True" then ()
    72 else raise error "eval_occur_exactly_in [c, c_2, c_3]";
    72 else error "eval_occur_exactly_in [c, c_2, c_3]";
    73 
    73 
    74 val t = 
    74 val t = 
    75     str2term
    75     str2term
    76 	"[] from_ [c, c_2, c_3, c_4] occur_exactly_in -1 * (q_0 * L ^^^ 2) /2";
    76 	"[] from_ [c, c_2, c_3, c_4] occur_exactly_in -1 * (q_0 * L ^^^ 2) /2";
    77 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    77 val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
    78 if str = "[] from_ [c, c_2, c_3, c_4] occur_exactly_in \
    78 if str = "[] from_ [c, c_2, c_3, c_4] occur_exactly_in \
    79 	 \-1 * (q_0 * L ^^^ 2) / 2 = True" then ()
    79 	 \-1 * (q_0 * L ^^^ 2) / 2 = True" then ()
    80 else raise error "eval_occur_exactly_in [c, c_2, c_3, c_4]";
    80 else error "eval_occur_exactly_in [c, c_2, c_3, c_4]";
    81 
    81 
    82 
    82 
    83 "----------- problems --------------------------------------------";
    83 "----------- problems --------------------------------------------";
    84 "----------- problems --------------------------------------------";
    84 "----------- problems --------------------------------------------";
    85 "----------- problems --------------------------------------------";
    85 "----------- problems --------------------------------------------";
    91 			  Calc ("Groups.plus_class.plus", eval_binop "#add_"),
    91 			  Calc ("Groups.plus_class.plus", eval_binop "#add_"),
    92 			  Calc ("op =",eval_equal "#equal_")
    92 			  Calc ("op =",eval_equal "#equal_")
    93 			  ];
    93 			  ];
    94 val SOME (t',_) = rewrite_set_ thy false testrls t;
    94 val SOME (t',_) = rewrite_set_ thy false testrls t;
    95 if term2str t' = "True" then () 
    95 if term2str t' = "True" then () 
    96 else raise error "eqsystem.sml: length_ [x+y=1,y=2] = 2";
    96 else error "eqsystem.sml: length_ [x+y=1,y=2] = 2";
    97 
    97 
    98 val SOME t = parse EqSystem.thy "solution L";
    98 val SOME t = parse EqSystem.thy "solution L";
    99 atomty (term_of t);
    99 atomty (term_of t);
   100 val SOME t = parse Biegelinie.thy "solution L";
   100 val SOME t = parse Biegelinie.thy "solution L";
   101 atomty (term_of t);
   101 atomty (term_of t);
   116 			      Calc ("EqSystem.occur'_exactly'_in", 
   116 			      Calc ("EqSystem.occur'_exactly'_in", 
   117 				    eval_occur_exactly_in 
   117 				    eval_occur_exactly_in 
   118 					"#eval_occur_exactly_in_")
   118 					"#eval_occur_exactly_in_")
   119 			      ]) t;
   119 			      ]) t;
   120 if t = HOLogic.true_const then () 
   120 if t = HOLogic.true_const then () 
   121 else raise error "eqsystem.sml ..occur_exactly_in (nth_ 1 [c_4..";
   121 else error "eqsystem.sml ..occur_exactly_in (nth_ 1 [c_4..";
   122 
   122 
   123 
   123 
   124 "----------- rewrite-order ord_simplify_System -------------------";
   124 "----------- rewrite-order ord_simplify_System -------------------";
   125 "----------- rewrite-order ord_simplify_System -------------------";
   125 "----------- rewrite-order ord_simplify_System -------------------";
   126 "----------- rewrite-order ord_simplify_System -------------------";
   126 "----------- rewrite-order ord_simplify_System -------------------";
   127 "M_b x = c * x + -1 * q_0 * (x ^^^ 2 / 2) + c_2";
   127 "M_b x = c * x + -1 * q_0 * (x ^^^ 2 / 2) + c_2";
   128 "--- add_commute ---";
   128 "--- add_commute ---";
   129 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
   129 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
   130 				       str2term"c * x") then ()
   130 				       str2term"c * x") then ()
   131 else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c * x) not#1";
   131 else error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c * x) not#1";
   132 
   132 
   133 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
   133 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
   134 				       str2term"c_2") then ()
   134 				       str2term"c_2") then ()
   135 else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c_2) not#2";
   135 else error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c_2) not#2";
   136 
   136 
   137 if ord_simplify_System false thy [] (str2term"c * x", 
   137 if ord_simplify_System false thy [] (str2term"c * x", 
   138 				       str2term"c_2") then ()
   138 				       str2term"c_2") then ()
   139 else raise error "integrate.sml, (c * x) < (c_2) not#3";
   139 else error "integrate.sml, (c * x) < (c_2) not#3";
   140 
   140 
   141 "--- mult_commute ---";
   141 "--- mult_commute ---";
   142 if ord_simplify_System false thy [] (str2term"x * c", 
   142 if ord_simplify_System false thy [] (str2term"x * c", 
   143 				       str2term"c * x") then ()
   143 				       str2term"c * x") then ()
   144 else raise error "integrate.sml, (x * c) < (c * x) not#4";
   144 else error "integrate.sml, (x * c) < (c * x) not#4";
   145 
   145 
   146 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
   146 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
   147 				       str2term"-1 * q_0 * c * (x ^^^ 2 / 2)") 
   147 				       str2term"-1 * q_0 * c * (x ^^^ 2 / 2)") 
   148 then () else raise error "integrate.sml, (. * .) < (. * .) not#5";
   148 then () else error "integrate.sml, (. * .) < (. * .) not#5";
   149 
   149 
   150 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
   150 if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
   151 				       str2term"c * -1 * q_0 * (x ^^^ 2 / 2)") 
   151 				       str2term"c * -1 * q_0 * (x ^^^ 2 / 2)") 
   152 then () else raise error "integrate.sml, (. * .) < (. * .) not#6";
   152 then () else error "integrate.sml, (. * .) < (. * .) not#6";
   153 
   153 
   154 
   154 
   155 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   155 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   156 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   156 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   157 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   157 "----------- rewrite in [EqSystem,normalize,2x2] -----------------";
   159 	        \0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2]";
   159 	        \0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2]";
   160 val bdvs = [(str2term"bdv_1",str2term"c"),
   160 val bdvs = [(str2term"bdv_1",str2term"c"),
   161 	    (str2term"bdv_2",str2term"c_2")];
   161 	    (str2term"bdv_2",str2term"c_2")];
   162 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   162 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   163 if term2str t = "[0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2), 0 = c_2]"
   163 if term2str t = "[0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2), 0 = c_2]"
   164 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1";
   164 then () else error "eqsystem.sml rewrite in 2x2 simplify_System_par.1";
   165 
   165 
   166 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   166 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   167 if term2str t = "[L * c + c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2), c_2 = 0]"
   167 if term2str t = "[L * c + c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2), c_2 = 0]"
   168 then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs";
   168 then () else error "eqsystem.sml rewrite in 2x2 isolate_bdvs";
   169 
   169 
   170 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
   170 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
   171 if term2str t = "[L * c + c_2 = q_0 * L ^^^ 2 / 2, c_2 = 0]"
   171 if term2str t = "[L * c + c_2 = q_0 * L ^^^ 2 / 2, c_2 = 0]"
   172 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.2";
   172 then () else error "eqsystem.sml rewrite in 2x2 simplify_System_par.2";
   173 
   173 
   174 val SOME (t,_) = rewrite_set_ thy true order_system t;
   174 val SOME (t,_) = rewrite_set_ thy true order_system t;
   175 if term2str t = "[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"
   175 if term2str t = "[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"
   176 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.3";
   176 then () else error "eqsystem.sml rewrite in 2x2 simplify_System_par.3";
   177 
   177 
   178 
   178 
   179 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   179 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   180 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   180 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   181 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   181 "----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
   185 	    \                                     -1 * q_0 / 24 * 0 ^^^ 4),\
   185 	    \                                     -1 * q_0 / 24 * 0 ^^^ 4),\
   186 	    \ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 +         \
   186 	    \ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 +         \
   187 	    \                                     -1 * q_0 / 24 * L ^^^ 4)]";
   187 	    \                                     -1 * q_0 / 24 * L ^^^ 4)]";
   188 val SOME (t,_) = rewrite_set_ thy true norm_Rational t;
   188 val SOME (t,_) = rewrite_set_ thy true norm_Rational t;
   189 if term2str t="[0 = c_2, 0 = c_2 + L * c + L ^^^ 4 * q_0 / (EI * 24)]"
   189 if term2str t="[0 = c_2, 0 = c_2 + L * c + L ^^^ 4 * q_0 / (EI * 24)]"
   190 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.0b";
   190 then () else error "eqsystem.sml rewrite in 2x2 simplify_System_par.0b";
   191 
   191 
   192 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   192 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   193 if term2str t = "[0 = c_2, 0 = q_0 * L ^^^ 4 / (24 * EI) + (L * c + c_2)]"
   193 if term2str t = "[0 = c_2, 0 = q_0 * L ^^^ 4 / (24 * EI) + (L * c + c_2)]"
   194 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1b";
   194 then () else error "eqsystem.sml rewrite in 2x2 simplify_System_par.1b";
   195 
   195 
   196 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   196 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   197 if term2str t = "[c_2 = 0, L * c + c_2 = 0 + -1 * (q_0 * L ^^^ 4 / (24 * EI))]"
   197 if term2str t = "[c_2 = 0, L * c + c_2 = 0 + -1 * (q_0 * L ^^^ 4 / (24 * EI))]"
   198 then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs b";
   198 then () else error "eqsystem.sml rewrite in 2x2 isolate_bdvs b";
   199 
   199 
   200 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
   200 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
   201 if term2str t = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
   201 if term2str t = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
   202 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.2b";
   202 then () else error "eqsystem.sml rewrite in 2x2 simplify_System.2b";
   203 
   203 
   204 val xxx = rewrite_set_ thy true order_system t;
   204 val xxx = rewrite_set_ thy true order_system t;
   205 if is_none xxx
   205 if is_none xxx
   206 then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.3b";
   206 then () else error "eqsystem.sml rewrite in 2x2 simplify_System.3b";
   207 
   207 
   208 
   208 
   209 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   209 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   210 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   210 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   211 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   211 "----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
   213 val e2__ = str2term "L * c + c_2 = q_0 * L ^^^ 2 / 2";
   213 val e2__ = str2term "L * c + c_2 = q_0 * L ^^^ 2 / 2";
   214 val bdvs = [(str2term"bdv_1",str2term"c"),
   214 val bdvs = [(str2term"bdv_1",str2term"c"),
   215 	    (str2term"bdv_2",str2term"c_2")];
   215 	    (str2term"bdv_2",str2term"c_2")];
   216 val SOME (e2__,_) = rewrite_terms_ thy dummy_ord Erls [e1__] e2__;
   216 val SOME (e2__,_) = rewrite_terms_ thy dummy_ord Erls [e1__] e2__;
   217 if term2str e2__ = "L * c + 77 = q_0 * L ^^^ 2 / 2" then ()
   217 if term2str e2__ = "L * c + 77 = q_0 * L ^^^ 2 / 2" then ()
   218 else raise error "eqsystem.sml top_down_substitution,2x2] subst";
   218 else error "eqsystem.sml top_down_substitution,2x2] subst";
   219 
   219 
   220 val SOME (e2__,_) = 
   220 val SOME (e2__,_) = 
   221     rewrite_set_inst_ thy true bdvs simplify_System_parenthesized e2__;
   221     rewrite_set_inst_ thy true bdvs simplify_System_parenthesized e2__;
   222 if term2str e2__ = "77 + L * c = q_0 * L ^^^ 2 / 2" then ()
   222 if term2str e2__ = "77 + L * c = q_0 * L ^^^ 2 / 2" then ()
   223 else raise error "eqsystem.sml top_down_substitution,2x2] simpl_par";
   223 else error "eqsystem.sml top_down_substitution,2x2] simpl_par";
   224 
   224 
   225 val SOME (e2__,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs e2__;
   225 val SOME (e2__,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs e2__;
   226 if term2str e2__ = "c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L" then ()
   226 if term2str e2__ = "c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L" then ()
   227 else raise error "eqsystem.sml top_down_substitution,2x2] isolate";
   227 else error "eqsystem.sml top_down_substitution,2x2] isolate";
   228 
   228 
   229 val t = str2term "[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]";
   229 val t = str2term "[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]";
   230 val SOME (t,_) = rewrite_set_ thy true order_system t;
   230 val SOME (t,_) = rewrite_set_ thy true order_system t;
   231 if term2str t = "[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]" then ()
   231 if term2str t = "[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]" then ()
   232 else raise error "eqsystem.sml top_down_substitution,2x2] order_system";
   232 else error "eqsystem.sml top_down_substitution,2x2] order_system";
   233 
   233 
   234 if not (ord_simplify_System
   234 if not (ord_simplify_System
   235 	    false thy [] 
   235 	    false thy [] 
   236 	    (str2term"[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]", 
   236 	    (str2term"[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]", 
   237 	     str2term"[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]")) 
   237 	     str2term"[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]")) 
   238 then () else raise error "eqsystem.sml, order_result rew_ord";
   238 then () else error "eqsystem.sml, order_result rew_ord";
   239 
   239 
   240 trace_rewrite:=true;
   240 trace_rewrite:=true;
   241 trace_rewrite:=false;
   241 trace_rewrite:=false;
   242 
   242 
   243 
   243 
   255 	    (str2term"bdv_4",str2term"c_4")];
   255 	    (str2term"bdv_4",str2term"c_4")];
   256 val SOME (t,_) = 
   256 val SOME (t,_) = 
   257     rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   257     rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   258 if term2str t = "[0 = c_4, 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c_3 + c_4),\n\
   258 if term2str t = "[0 = c_4, 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c_3 + c_4),\n\
   259 	        \ c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
   259 	        \ c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
   260 then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_paren";
   260 then () else error "eqsystem.sml rewrite in 4x4 simplify_System_paren";
   261 
   261 
   262 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   262 val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
   263 if term2str t = "[c_4 = 0, \
   263 if term2str t = "[c_4 = 0, \
   264 	        \L * c_3 + c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2),\n \
   264 	        \L * c_3 + c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2),\n \
   265 		\c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
   265 		\c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
   266 then () else raise error "eqsystem.sml rewrite in 4x4 isolate_bdvs";
   266 then () else error "eqsystem.sml rewrite in 4x4 isolate_bdvs";
   267 
   267 
   268 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   268 val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
   269 if term2str t = "[c_4 = 0,\
   269 if term2str t = "[c_4 = 0,\
   270 		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
   270 		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
   271 		\ c + (c_2 + (c_3 + c_4)) = 0,\n\
   271 		\ c + (c_2 + (c_3 + c_4)) = 0,\n\
   272 		\ c_2 + (c_3 + c_4) = 0]"
   272 		\ c_2 + (c_3 + c_4) = 0]"
   273 then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_p..2";
   273 then () else error "eqsystem.sml rewrite in 4x4 simplify_System_p..2";
   274 
   274 
   275 val SOME (t,_) = rewrite_set_ thy true order_system t;
   275 val SOME (t,_) = rewrite_set_ thy true order_system t;
   276 if term2str t = "[c_4 = 0,\
   276 if term2str t = "[c_4 = 0,\
   277 		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
   277 		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
   278 		\ c_2 + (c_3 + c_4) = 0,\n\
   278 		\ c_2 + (c_3 + c_4) = 0,\n\
   279 		\ c + (c_2 + (c_3 + c_4)) = 0]"
   279 		\ c + (c_2 + (c_3 + c_4)) = 0]"
   280 then () else raise error "eqsystem.sml rewrite in 4x4 order_system";
   280 then () else error "eqsystem.sml rewrite in 4x4 order_system";
   281 
   281 
   282 
   282 
   283 "----------- script [EqSystem,normalize,2x2] ---------------------";
   283 "----------- script [EqSystem,normalize,2x2] ---------------------";
   284 "----------- script [EqSystem,normalize,2x2] ---------------------";
   284 "----------- script [EqSystem,normalize,2x2] ---------------------";
   285 "----------- script [EqSystem,normalize,2x2] ---------------------";
   285 "----------- script [EqSystem,normalize,2x2] ---------------------";
   676 			   [Correct
   676 			   [Correct
   677 				"equalities\n [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\n  0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
   677 				"equalities\n [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\n  0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
   678 				Correct "solveForVars [c, c_2]"],
   678 				Correct "solveForVars [c, c_2]"],
   679 			   Where = [],
   679 			   Where = [],
   680 			   Relate = []})] => ()
   680 			   Relate = []})] => ()
   681 	      | _ => raise error "eqsystem.sml refine ['normalize','2x2'...]";
   681 	      | _ => error "eqsystem.sml refine ['normalize','2x2'...]";
   682 
   682 
   683 
   683 
   684 val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]", 
   684 val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]", 
   685 	   "solveForVars [c, c_2]", "solution L"];
   685 	   "solveForVars [c, c_2]", "solution L"];
   686 val matches = refine fmz ["linear","system"];
   686 val matches = refine fmz ["linear","system"];
   697 		       [Correct
   697 		       [Correct
   698 			    "tl [c, c_2] from_ [c, c_2] occur_exactly_in nth_ 1\n       [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
   698 			    "tl [c, c_2] from_ [c, c_2] occur_exactly_in nth_ 1\n       [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
   699 			    Correct
   699 			    Correct
   700 				"[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\n    [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"],
   700 				"[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\n    [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"],
   701 		       Relate = []})] => ()
   701 		       Relate = []})] => ()
   702 	      | _ => raise error "eqsystem.sml refine ['triangular','2x2'...]";
   702 	      | _ => error "eqsystem.sml refine ['triangular','2x2'...]";
   703 
   703 
   704 
   704 
   705 (*WN051014---------------------------------------------------------------- 
   705 (*WN051014---------------------------------------------------------------- 
   706   the above 'val matches = refine fmz ["linear","system"]'
   706   the above 'val matches = refine fmz ["linear","system"]'
   707   didn't work anymore; we investigated in these steps:*)
   707   didn't work anymore; we investigated in these steps:*)
   745      NoMatch (["2x2", "linear", "system"], _),
   745      NoMatch (["2x2", "linear", "system"], _),
   746      NoMatch (["3x3", "linear", "system"], _),
   746      NoMatch (["3x3", "linear", "system"], _),
   747      Matches (["4x4", "linear", "system"], _),
   747      Matches (["4x4", "linear", "system"], _),
   748      NoMatch (["triangular", "4x4", "linear", "system"], _),
   748      NoMatch (["triangular", "4x4", "linear", "system"], _),
   749      Matches (["normalize", "4x4", "linear", "system"], _)] => ()
   749      Matches (["normalize", "4x4", "linear", "system"], _)] => ()
   750   | _ => raise error "eqsystem.sml: refine relaxed triangular sys NoMatch";
   750   | _ => error "eqsystem.sml: refine relaxed triangular sys NoMatch";
   751 (*WN060914 does NOT match, because 3rd and 4th equ are not ordered*)
   751 (*WN060914 does NOT match, because 3rd and 4th equ are not ordered*)
   752 
   752 
   753 val fmz = ["equalities [L * q_0 = c,                                       \
   753 val fmz = ["equalities [L * q_0 = c,                                       \
   754 	   \            0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
   754 	   \            0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
   755 	   \            0 = c_3,                           \
   755 	   \            0 = c_3,                           \
   758 val matches = refine fmz ["triangular", "4x4", "linear","system"];
   758 val matches = refine fmz ["triangular", "4x4", "linear","system"];
   759 (* print_depth 11; matches; print_depth 3;
   759 (* print_depth 11; matches; print_depth 3;
   760    *)
   760    *)
   761 case matches of 
   761 case matches of 
   762     [Matches (["triangular", "4x4", "linear", "system"], _)] => ()
   762     [Matches (["triangular", "4x4", "linear", "system"], _)] => ()
   763   | _ => raise error "eqsystem.sml: refine relaxed triangular sys Matches";
   763   | _ => error "eqsystem.sml: refine relaxed triangular sys Matches";
   764 val matches = refine fmz ["linear","system"];
   764 val matches = refine fmz ["linear","system"];
   765 
   765 
   766 
   766 
   767 "----------- refine [2x2,linear,system] search error--------------";
   767 "----------- refine [2x2,linear,system] search error--------------";
   768 "----------- refine [2x2,linear,system] search error--------------";
   768 "----------- refine [2x2,linear,system] search error--------------";
   872 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   872 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   873 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   873 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   874 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   874 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   875 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   875 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   876 case nxt of ("Specify_Method",_) => ()
   876 case nxt of ("Specify_Method",_) => ()
   877 	  | _ => raise error "eqsystem.sml [EqSystem,normalize,2x2] specify";
   877 	  | _ => error "eqsystem.sml [EqSystem,normalize,2x2] specify";
   878 
   878 
   879 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   879 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   880 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   880 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   881 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f(*["(bdv_1, c)", "(bdv_2, hd (tl [c, c_2] ... corrected srls; ran only AFTER use"RCODE-root.sml", store_met was NOT SUFFICIENT*);
   881 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f(*["(bdv_1, c)", "(bdv_2, hd (tl [c, c_2] ... corrected srls; ran only AFTER use"RCODE-root.sml", store_met was NOT SUFFICIENT*);
   882 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   882 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   883 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   883 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   884 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   884 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   885 case nxt of
   885 case nxt of
   886     (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
   886     (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
   887   | _ => raise error "eqsystem.sml me [EqSystem,normalize,2x2] SubProblem";
   887   | _ => error "eqsystem.sml me [EqSystem,normalize,2x2] SubProblem";
   888 
   888 
   889 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   889 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   890 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   890 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   891 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   891 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   892 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   892 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   893 case nxt of
   893 case nxt of
   894     (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
   894     (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
   895   | _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution";
   895   | _ => error "eqsystem.sml me [EqSys...2x2] top_down_substitution";
   896 
   896 
   897 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   897 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   898 val PblObj {probl,...} = get_obj I pt [5];
   898 val PblObj {probl,...} = get_obj I pt [5];
   899     (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
   899     (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
   900 (*[
   900 (*[
   910 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   910 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   911 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   911 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   912 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   912 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   913 case nxt of
   913 case nxt of
   914     (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
   914     (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
   915   | _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished";
   915   | _ => error "eqsystem.sml me Subpbl .[EqSys...2x2] finished";
   916 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   916 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   917 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   917 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   918 if f2str f = "[c = L * q_0 / 2, c_2 = 0]" then ()
   918 if f2str f = "[c = L * q_0 / 2, c_2 = 0]" then ()
   919 else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f";
   919 else error "eqsystem.sml me [EqSys...2x2] finished f2str f";
   920 case nxt of
   920 case nxt of
   921     (_, End_Proof') => ()
   921     (_, End_Proof') => ()
   922   | _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'";
   922   | _ => error "eqsystem.sml me [EqSys...2x2] finished End_Proof'";
   923 
   923 
   924 
   924 
   925 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   925 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   926 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   926 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   927 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   927 "----------- me [linear,system] ..normalize..top_down_sub..-------";
   939 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   939 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   940 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   940 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   941 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   941 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   942 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   942 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   943 case nxt of (_,Specify_Method ["EqSystem", "normalize", "2x2"]) => ()
   943 case nxt of (_,Specify_Method ["EqSystem", "normalize", "2x2"]) => ()
   944 	  | _ => raise error "eqsystem.sml [linear,system] specify b";
   944 	  | _ => error "eqsystem.sml [linear,system] specify b";
   945 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   945 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   946 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   946 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   947 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   947 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   948 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   948 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   949 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   949 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   950 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   950 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   951 if f2str f = 
   951 if f2str f = 
   952 "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
   952 "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
   953 then () else raise error "eqsystem.sml me simpl. before SubProblem b";
   953 then () else error "eqsystem.sml me simpl. before SubProblem b";
   954 case nxt of
   954 case nxt of
   955     (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
   955     (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
   956   | _ => raise error "eqsystem.sml me [linear,system] SubProblem b";
   956   | _ => error "eqsystem.sml me [linear,system] SubProblem b";
   957 
   957 
   958 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   958 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   959 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   959 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   960 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   960 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   961 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   961 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   962 case nxt of
   962 case nxt of
   963     (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
   963     (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
   964   | _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution b";
   964   | _ => error "eqsystem.sml me [EqSys...2x2] top_down_substitution b";
   965 
   965 
   966 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   966 val (p,_,f,nxt,_,pt) = me nxt p c pt;
   967 val PblObj {probl,...} = get_obj I pt [5];
   967 val PblObj {probl,...} = get_obj I pt [5];
   968     (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
   968     (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
   969 (*[
   969 (*[
   979 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   979 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   980 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   980 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   981 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   981 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   982 case nxt of
   982 case nxt of
   983     (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
   983     (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
   984   | _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished b";
   984   | _ => error "eqsystem.sml me Subpbl .[EqSys...2x2] finished b";
   985 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   985 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   986 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   986 val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
   987 if f2str f = 
   987 if f2str f = 
   988 "[c = -1 * q_0 * L ^^^ 4 / (24 * EI * L), c_2 = 0]"
   988 "[c = -1 * q_0 * L ^^^ 4 / (24 * EI * L), c_2 = 0]"
   989 then () else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f b";
   989 then () else error "eqsystem.sml me [EqSys...2x2] finished f2str f b";
   990 case nxt of
   990 case nxt of
   991     (_, End_Proof') => ()
   991     (_, End_Proof') => ()
   992   | _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'" b;
   992   | _ => error "eqsystem.sml me [EqSys...2x2] finished End_Proof'" b;
   993 
   993 
   994 
   994 
   995 "----------- all systems from Biegelinie -------------------------";
   995 "----------- all systems from Biegelinie -------------------------";
   996 "----------- all systems from Biegelinie -------------------------";
   996 "----------- all systems from Biegelinie -------------------------";
   997 "----------- all systems from Biegelinie -------------------------";
   997 "----------- all systems from Biegelinie -------------------------";
  1112     rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
  1112     rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
  1113 
  1113 
  1114 term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_4 = 0, c_3 = 0]";
  1114 term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_4 = 0, c_3 = 0]";
  1115 val SOME (t,_) = rewrite_set_ thy false order_system t;
  1115 val SOME (t,_) = rewrite_set_ thy false order_system t;
  1116 if term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" then ()
  1116 if term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" then ()
  1117 else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by rewrite changed";
  1117 else error "eqsystem.sml: exp 7.70 normalize 4x4 by rewrite changed";
  1118 
  1118 
  1119 
  1119 
  1120 "----- 7.70 with met normalize: ";
  1120 "----- 7.70 with met normalize: ";
  1121 val fmz = ["equalities                                         \
  1121 val fmz = ["equalities                                         \
  1122 	    \[L * q_0 = c,                       \
  1122 	    \[L * q_0 = c,                       \
  1131 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1131 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1132 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1132 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1133 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1133 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1134 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1134 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1135 case nxt of (_,Apply_Method ["EqSystem", "normalize", "4x4"]) => ()
  1135 case nxt of (_,Apply_Method ["EqSystem", "normalize", "4x4"]) => ()
  1136 	  | _ => raise error "eqsystem.sml [EqSystem,normalize,4x4] specify";
  1136 	  | _ => error "eqsystem.sml [EqSystem,normalize,4x4] specify";
  1137 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1137 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1138 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbb outcommented vvvvvvvvvvvvvvvvvvvvvv";
  1138 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbb outcommented vvvvvvvvvvvvvvvvvvvvvv";
  1139 (*vvvWN080102 Exception- Match raised 
  1139 (*vvvWN080102 Exception- Match raised 
  1140   since assod Rewrite .. Rewrite'_Set
  1140   since assod Rewrite .. Rewrite'_Set
  1141 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1141 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1146 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1146 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1147 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1147 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1148 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1148 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1149 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1149 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1150 if f2str f ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" 
  1150 if f2str f ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" 
  1151 then () else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by met changed";
  1151 then () else error "eqsystem.sml: exp 7.70 normalize 4x4 by met changed";
  1152 --------------------------------------------------------------------------*)
  1152 --------------------------------------------------------------------------*)
  1153 
  1153 
  1154 "----- 7.70 with met top_down_: ";
  1154 "----- 7.70 with met top_down_: ";
  1155 "--- scr [EqSystem,top_down_substitution,4x4] -- a saved trial";
  1155 "--- scr [EqSystem,top_down_substitution,4x4] -- a saved trial";
  1156 (*---vvv-this script failed with if ?!?-------------------------------------*) 
  1156 (*---vvv-this script failed with if ?!?-------------------------------------*) 
  1309 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1309 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1310 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1310 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1311 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1311 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1312 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1312 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
  1313 case nxt of (_,Apply_Method ["EqSystem", "top_down_substitution", "4x4"]) => ()
  1313 case nxt of (_,Apply_Method ["EqSystem", "top_down_substitution", "4x4"]) => ()
  1314 	  | _ => raise error "eqsystem.sml [EqSystem,top_down_,4x4] specify";
  1314 	  | _ => error "eqsystem.sml [EqSystem,top_down_,4x4] specify";
  1315 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1315 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1316 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1316 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1317 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1317 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1318 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1318 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1319 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1319 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1320 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1320 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
  1321 if nxt = ("End_Proof'", End_Proof') andalso
  1321 if nxt = ("End_Proof'", End_Proof') andalso
  1322    f2str f = "[c = L * q_0, c_2 = -1 * L ^^^ 2 * q_0 / 2, c_3 = 0, c_4 = 0]"
  1322    f2str f = "[c = L * q_0, c_2 = -1 * L ^^^ 2 * q_0 / 2, c_3 = 0, c_4 = 0]"
  1323 then () else raise error "eqsystem.sml: 7.70 with met top_down_: me";
  1323 then () else error "eqsystem.sml: 7.70 with met top_down_: me";
  1324 
  1324 
  1325 
  1325 
  1326 "------- Bsp 7.71";
  1326 "------- Bsp 7.71";
  1327 states:=[];
  1327 states:=[];
  1328 CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
  1328 CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",