test/Tools/isac/Knowledge/eqsystem.sml
author Walther Neuper <neuper@ist.tugraz.at>
Wed, 08 Sep 2010 16:47:22 +0200
branchisac-update-Isa09-2
changeset 37991 028442673981
parent 37984 972a73d7c50b
child 37995 fac82f29f143
permissions -rw-r--r--
tuned src + test

find . -type f -exec sed -i s/nadd_divide_distrib/add_divide_distrib/g {} \;
find . -type f -exec sed -i s/"\.thy\""/"\""/g {} \;
find . -type f -exec sed -i s/" indexname_ord"/" Term_Ord.indexname_ord"/g {} \;
find . -type f -exec sed -i s/"(string_of_cterm o cterm_of(sign_of thy))"/"(Syntax.string_of_term (thy2ctxt thy))"/g {} \;
find . -type f -exec sed -i s/" L_"/" L_L"/g {} \;
find . -type f -exec sed -i s/" L_:"/" L_L:"/g {} \;
find . -type f -exec sed -i s/"e_;"/"e_e;"/g {} \;
find . -type f -exec sed -i s/"v_)"/"v_v)"/g {} \;
find . -type f -exec sed -i s/"v_:"/"v_v:"/g {} \;
neuper@37906
     1
(* tests on systems of equations
neuper@37906
     2
   author: Walther Neuper
neuper@37906
     3
   050826,
neuper@37906
     4
   (c) due to copyright terms
neuper@37906
     5
neuper@37906
     6
use"../smltest/IsacKnowledge/eqsystem.sml";
neuper@37906
     7
use"eqsystem.sml";
neuper@37906
     8
*)
neuper@37906
     9
val thy = EqSystem.thy;
neuper@37906
    10
neuper@37906
    11
"-----------------------------------------------------------------";
neuper@37906
    12
"table of contents -----------------------------------------------";
neuper@37906
    13
"-----------------------------------------------------------------";
neuper@37906
    14
"----------- occur_exactly_in ------------------------------------";
neuper@37906
    15
"----------- problems --------------------------------------------";
neuper@37906
    16
"----------- rewrite-order ord_simplify_System -------------------";
neuper@37906
    17
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
neuper@37906
    18
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
neuper@37906
    19
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
neuper@37906
    20
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
neuper@37906
    21
"----------- script [EqSystem,normalize,2x2] ---------------------";
neuper@37906
    22
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
neuper@37906
    23
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
neuper@37906
    24
"----------- refine [linear,system]-------------------------------";
neuper@37906
    25
"----------- refine [2x2,linear,system] search error--------------";
neuper@37906
    26
"----------- me [EqSystem,normalize,2x2] -------------------------";
neuper@37906
    27
"----------- me [linear,system] ..normalize..top_down_sub..-------";
neuper@37906
    28
"----------- all systems from Biegelinie -------------------------";
neuper@37906
    29
"----------- 4x4 systems from Biegelinie -------------------------";
neuper@37906
    30
"-----------------------------------------------------------------";
neuper@37906
    31
"-----------------------------------------------------------------";
neuper@37906
    32
"-----------------------------------------------------------------";
neuper@37906
    33
neuper@37906
    34
neuper@37906
    35
"----------- occur_exactly_in ------------------------------------";
neuper@37906
    36
"----------- occur_exactly_in ------------------------------------";
neuper@37906
    37
"----------- occur_exactly_in ------------------------------------";
neuper@37906
    38
val all = [str2term"c", str2term"c_2", str2term"c_3"];
neuper@37906
    39
val t = str2term"0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
neuper@37906
    40
neuper@37906
    41
if occur_exactly_in [str2term"c", str2term"c_2"] all t
neuper@37906
    42
then () else raise error "eqsystem.sml occur_exactly_in 1";
neuper@37906
    43
neuper@37906
    44
if not (occur_exactly_in [str2term"c", str2term"c_2", str2term"c_3"] all t)
neuper@37906
    45
then () else raise error "eqsystem.sml occur_exactly_in 2";
neuper@37906
    46
neuper@37906
    47
if not (occur_exactly_in [str2term"c_2"] all t)
neuper@37906
    48
then () else raise error "eqsystem.sml occur_exactly_in 3";
neuper@37906
    49
neuper@37906
    50
neuper@37906
    51
val t = str2term"[c,c_2] from_ [c,c_2,c_3] occur_exactly_in \
neuper@37906
    52
		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
neuper@37926
    53
val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
neuper@37906
    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 ()
neuper@37906
    55
else raise error "eval_occur_exactly_in [c, c_2]";
neuper@37906
    56
neuper@37906
    57
val t = str2term"[c,c_2,c_3] from_ [c,c_2,c_3] occur_exactly_in \
neuper@37906
    58
		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
neuper@37926
    59
val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
neuper@37906
    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 ()
neuper@37906
    61
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
neuper@37906
    62
neuper@37906
    63
val t = str2term"[c_2] from_ [c,c_2,c_3] occur_exactly_in \
neuper@37906
    64
		\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
neuper@37926
    65
val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
neuper@37906
    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 ()
neuper@37906
    67
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
neuper@37906
    68
neuper@37906
    69
val t = str2term"[] from_ [c,c_2,c_3] occur_exactly_in 0";
neuper@37926
    70
val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
neuper@37906
    71
if str = "[] from_ [c, c_2, c_3] occur_exactly_in 0 = True" then ()
neuper@37906
    72
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
neuper@37906
    73
neuper@37906
    74
val t = 
neuper@37906
    75
    str2term
neuper@37906
    76
	"[] from_ [c, c_2, c_3, c_4] occur_exactly_in -1 * (q_0 * L ^^^ 2) /2";
neuper@37926
    77
val SOME (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
neuper@37906
    78
if str = "[] from_ [c, c_2, c_3, c_4] occur_exactly_in \
neuper@37906
    79
	 \-1 * (q_0 * L ^^^ 2) / 2 = True" then ()
neuper@37906
    80
else raise error "eval_occur_exactly_in [c, c_2, c_3, c_4]";
neuper@37906
    81
neuper@37906
    82
neuper@37906
    83
"----------- problems --------------------------------------------";
neuper@37906
    84
"----------- problems --------------------------------------------";
neuper@37906
    85
"----------- problems --------------------------------------------";
neuper@37906
    86
val t = str2term "length_ [x+y=1,y=2] = 2";
neuper@37906
    87
atomty t;
neuper@37906
    88
val testrls = append_rls "testrls" e_rls 
neuper@37970
    89
			 [(Thm ("length_Nil_",num_str @{thm length_Nil_})),
neuper@37970
    90
			  (Thm ("length_Cons_",num_str @{thm length_Cons_})),
neuper@37906
    91
			  Calc ("op +", eval_binop "#add_"),
neuper@37906
    92
			  Calc ("op =",eval_equal "#equal_")
neuper@37906
    93
			  ];
neuper@37926
    94
val SOME (t',_) = rewrite_set_ thy false testrls t;
neuper@37906
    95
if term2str t' = "True" then () 
neuper@37906
    96
else raise error "eqsystem.sml: length_ [x+y=1,y=2] = 2";
neuper@37906
    97
neuper@37926
    98
val SOME t = parse EqSystem.thy "solution L";
neuper@37906
    99
atomty (term_of t);
neuper@37926
   100
val SOME t = parse Biegelinie.thy "solution L";
neuper@37906
   101
atomty (term_of t);
neuper@37906
   102
neuper@37906
   103
val t = str2term 
neuper@37906
   104
"(tl (tl (tl vs_))) from_ vs_ occur_exactly_in (nth_ 1 (es_::bool list))";
neuper@37906
   105
atomty t;
neuper@37906
   106
val t = str2term 
neuper@37906
   107
"(tl (tl (tl [c,c_2,c_3,c_4]))) from_ [c,c_2,c_3,c_4] occur_exactly_in \
neuper@37906
   108
\(nth_ 1 [c_4 = 1, 2=2,3=3,4=4])";
neuper@37926
   109
val SOME (t,_) = 
neuper@37906
   110
    rewrite_set_ thy true 
neuper@37906
   111
		 (append_rls "prls_" e_rls 
neuper@37970
   112
			     [Thm ("nth_Cons_",num_str @{thm nth_Cons_}),
neuper@37970
   113
			      Thm ("nth_Nil_",num_str @{thm nth_Nil_}),
neuper@37970
   114
			      Thm ("tl_Cons",num_str @{thm tl_Cons}),
neuper@37970
   115
			      Thm ("tl_Nil",num_str @{thm tl_Nil}),
neuper@37906
   116
			      Calc ("EqSystem.occur'_exactly'_in", 
neuper@37906
   117
				    eval_occur_exactly_in 
neuper@37906
   118
					"#eval_occur_exactly_in_")
neuper@37906
   119
			      ]) t;
neuper@37906
   120
if t = HOLogic.true_const then () 
neuper@37906
   121
else raise error "eqsystem.sml ..occur_exactly_in (nth_ 1 [c_4..";
neuper@37906
   122
neuper@37906
   123
neuper@37906
   124
"----------- rewrite-order ord_simplify_System -------------------";
neuper@37906
   125
"----------- rewrite-order ord_simplify_System -------------------";
neuper@37906
   126
"----------- rewrite-order ord_simplify_System -------------------";
neuper@37906
   127
"M_b x = c * x + -1 * q_0 * (x ^^^ 2 / 2) + c_2";
neuper@37906
   128
"--- add_commute ---";
neuper@37906
   129
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
neuper@37906
   130
				       str2term"c * x") then ()
neuper@37906
   131
else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c * x) not#1";
neuper@37906
   132
neuper@37906
   133
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)", 
neuper@37906
   134
				       str2term"c_2") then ()
neuper@37906
   135
else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c_2) not#2";
neuper@37906
   136
neuper@37906
   137
if ord_simplify_System false thy [] (str2term"c * x", 
neuper@37906
   138
				       str2term"c_2") then ()
neuper@37906
   139
else raise error "integrate.sml, (c * x) < (c_2) not#3";
neuper@37906
   140
neuper@37906
   141
"--- mult_commute ---";
neuper@37906
   142
if ord_simplify_System false thy [] (str2term"x * c", 
neuper@37906
   143
				       str2term"c * x") then ()
neuper@37906
   144
else raise error "integrate.sml, (x * c) < (c * x) not#4";
neuper@37906
   145
neuper@37906
   146
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
neuper@37906
   147
				       str2term"-1 * q_0 * c * (x ^^^ 2 / 2)") 
neuper@37906
   148
then () else raise error "integrate.sml, (. * .) < (. * .) not#5";
neuper@37906
   149
neuper@37906
   150
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c", 
neuper@37906
   151
				       str2term"c * -1 * q_0 * (x ^^^ 2 / 2)") 
neuper@37906
   152
then () else raise error "integrate.sml, (. * .) < (. * .) not#6";
neuper@37906
   153
neuper@37906
   154
neuper@37906
   155
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
neuper@37906
   156
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
neuper@37906
   157
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
neuper@37906
   158
val t = str2term"[0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2,\
neuper@37906
   159
	        \0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2]";
neuper@37906
   160
val bdvs = [(str2term"bdv_1",str2term"c"),
neuper@37906
   161
	    (str2term"bdv_2",str2term"c_2")];
neuper@37926
   162
val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
neuper@37906
   163
if term2str t = "[0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2), 0 = c_2]"
neuper@37906
   164
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1";
neuper@37906
   165
neuper@37926
   166
val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
neuper@37906
   167
if term2str t = "[L * c + c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2), c_2 = 0]"
neuper@37906
   168
then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs";
neuper@37906
   169
neuper@37926
   170
val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
neuper@37906
   171
if term2str t = "[L * c + c_2 = q_0 * L ^^^ 2 / 2, c_2 = 0]"
neuper@37906
   172
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.2";
neuper@37906
   173
neuper@37926
   174
val SOME (t,_) = rewrite_set_ thy true order_system t;
neuper@37906
   175
if term2str t = "[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"
neuper@37906
   176
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.3";
neuper@37906
   177
neuper@37906
   178
neuper@37906
   179
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
neuper@37906
   180
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
neuper@37906
   181
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
neuper@37906
   182
val thy = Isac.thy (*because of Undeclared constant "Biegelinie.EI*);
neuper@37906
   183
val t = 
neuper@37906
   184
    str2term"[0 = c_2 + c * 0 + 1 / EI * (L * q_0 / 12 * 0 ^^^ 3 +         \
neuper@37906
   185
	    \                                     -1 * q_0 / 24 * 0 ^^^ 4),\
neuper@37906
   186
	    \ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 +         \
neuper@37906
   187
	    \                                     -1 * q_0 / 24 * L ^^^ 4)]";
neuper@37926
   188
val SOME (t,_) = rewrite_set_ thy true norm_Rational t;
neuper@37906
   189
if term2str t="[0 = c_2, 0 = c_2 + L * c + L ^^^ 4 * q_0 / (EI * 24)]"
neuper@37906
   190
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.0b";
neuper@37906
   191
neuper@37926
   192
val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
neuper@37906
   193
if term2str t = "[0 = c_2, 0 = q_0 * L ^^^ 4 / (24 * EI) + (L * c + c_2)]"
neuper@37906
   194
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1b";
neuper@37906
   195
neuper@37926
   196
val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
neuper@37906
   197
if term2str t = "[c_2 = 0, L * c + c_2 = 0 + -1 * (q_0 * L ^^^ 4 / (24 * EI))]"
neuper@37906
   198
then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs b";
neuper@37906
   199
neuper@37926
   200
val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
neuper@37906
   201
if term2str t = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
neuper@37906
   202
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.2b";
neuper@37906
   203
neuper@37906
   204
val xxx = rewrite_set_ thy true order_system t;
neuper@37906
   205
if is_none xxx
neuper@37906
   206
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.3b";
neuper@37906
   207
neuper@37906
   208
neuper@37906
   209
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
neuper@37906
   210
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
neuper@37906
   211
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
neuper@37906
   212
val e1__ = str2term "c_2 = 77";
neuper@37906
   213
val e2__ = str2term "L * c + c_2 = q_0 * L ^^^ 2 / 2";
neuper@37906
   214
val bdvs = [(str2term"bdv_1",str2term"c"),
neuper@37906
   215
	    (str2term"bdv_2",str2term"c_2")];
neuper@37926
   216
val SOME (e2__,_) = rewrite_terms_ thy dummy_ord Erls [e1__] e2__;
neuper@37906
   217
if term2str e2__ = "L * c + 77 = q_0 * L ^^^ 2 / 2" then ()
neuper@37906
   218
else raise error "eqsystem.sml top_down_substitution,2x2] subst";
neuper@37906
   219
neuper@37926
   220
val SOME (e2__,_) = 
neuper@37906
   221
    rewrite_set_inst_ thy true bdvs simplify_System_parenthesized e2__;
neuper@37906
   222
if term2str e2__ = "77 + L * c = q_0 * L ^^^ 2 / 2" then ()
neuper@37906
   223
else raise error "eqsystem.sml top_down_substitution,2x2] simpl_par";
neuper@37906
   224
neuper@37926
   225
val SOME (e2__,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs e2__;
neuper@37906
   226
if term2str e2__ = "c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L" then ()
neuper@37906
   227
else raise error "eqsystem.sml top_down_substitution,2x2] isolate";
neuper@37906
   228
neuper@37906
   229
val t = str2term "[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]";
neuper@37926
   230
val SOME (t,_) = rewrite_set_ thy true order_system t;
neuper@37906
   231
if term2str t = "[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]" then ()
neuper@37906
   232
else raise error "eqsystem.sml top_down_substitution,2x2] order_system";
neuper@37906
   233
neuper@37906
   234
if not (ord_simplify_System
neuper@37906
   235
	    false thy [] 
neuper@37906
   236
	    (str2term"[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]", 
neuper@37906
   237
	     str2term"[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]")) 
neuper@37906
   238
then () else raise error "eqsystem.sml, order_result rew_ord";
neuper@37906
   239
neuper@37906
   240
trace_rewrite:=true;
neuper@37906
   241
trace_rewrite:=false;
neuper@37906
   242
neuper@37906
   243
neuper@37906
   244
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
neuper@37906
   245
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
neuper@37906
   246
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
neuper@37906
   247
(*GOON??: revise rewrite in [EqSystem,normalize,4x4] from before 0609*)
neuper@37906
   248
val t = str2term"[0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c_3 + c_4,\
neuper@37906
   249
	        \0 = -1 * q_0 * L ^^^ 2 / 2 + L * c_3 + c_4,\
neuper@37906
   250
		\c + c_2 + c_3 + c_4 = 0,\
neuper@37906
   251
		\c_2 + c_3 + c_4 = 0]";
neuper@37906
   252
val bdvs = [(str2term"bdv_1",str2term"c"),
neuper@37906
   253
	    (str2term"bdv_2",str2term"c_2"),
neuper@37906
   254
	    (str2term"bdv_3",str2term"c_3"),
neuper@37906
   255
	    (str2term"bdv_4",str2term"c_4")];
neuper@37926
   256
val SOME (t,_) = 
neuper@37906
   257
    rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
neuper@37906
   258
if term2str t = "[0 = c_4, 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c_3 + c_4),\n\
neuper@37906
   259
	        \ c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
neuper@37906
   260
then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_paren";
neuper@37906
   261
neuper@37926
   262
val SOME (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
neuper@37906
   263
if term2str t = "[c_4 = 0, \
neuper@37906
   264
	        \L * c_3 + c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2),\n \
neuper@37906
   265
		\c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
neuper@37906
   266
then () else raise error "eqsystem.sml rewrite in 4x4 isolate_bdvs";
neuper@37906
   267
neuper@37926
   268
val SOME(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
neuper@37906
   269
if term2str t = "[c_4 = 0,\
neuper@37906
   270
		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
neuper@37906
   271
		\ c + (c_2 + (c_3 + c_4)) = 0,\n\
neuper@37906
   272
		\ c_2 + (c_3 + c_4) = 0]"
neuper@37906
   273
then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_p..2";
neuper@37906
   274
neuper@37926
   275
val SOME (t,_) = rewrite_set_ thy true order_system t;
neuper@37906
   276
if term2str t = "[c_4 = 0,\
neuper@37906
   277
		\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
neuper@37906
   278
		\ c_2 + (c_3 + c_4) = 0,\n\
neuper@37906
   279
		\ c + (c_2 + (c_3 + c_4)) = 0]"
neuper@37906
   280
then () else raise error "eqsystem.sml rewrite in 4x4 order_system";
neuper@37906
   281
neuper@37906
   282
neuper@37906
   283
"----------- script [EqSystem,normalize,2x2] ---------------------";
neuper@37906
   284
"----------- script [EqSystem,normalize,2x2] ---------------------";
neuper@37906
   285
"----------- script [EqSystem,normalize,2x2] ---------------------";
neuper@37906
   286
val str = 
neuper@37906
   287
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   288
\  (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   289
\                                simplify_System_parenthesized False) es_  \
neuper@37906
   290
\   in ([]))";
neuper@37906
   291
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   292
val str = 
neuper@37906
   293
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   294
\  (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   295
\                                 simplify_System_parenthesized False) es_  \
neuper@37906
   296
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37906
   297
\                  []))";
neuper@37906
   298
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   299
val str = 
neuper@37906
   300
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   301
\  (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   302
\                                 simplify_System_parenthesized False) es_  \
neuper@37906
   303
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   304
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   305
;
neuper@37906
   306
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   307
val str = 
neuper@37906
   308
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   309
\  (let es__ = Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   310
\                                 simplify_System_parenthesized False) es_  \
neuper@37906
   311
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   312
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   313
;
neuper@37906
   314
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   315
val str = 
neuper@37906
   316
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   317
\  (let es__ = (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   318
\                                 simplify_System_parenthesized False)) es_  \
neuper@37906
   319
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   320
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   321
;
neuper@37906
   322
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   323
val str = 
neuper@37906
   324
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   325
\  (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   326
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   327
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   328
\                                 simplify_System_parenthesized False))) es_\
neuper@37906
   329
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   330
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   331
;
neuper@37906
   332
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   333
val str = 
neuper@37906
   334
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   335
\  (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   336
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   337
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   338
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   339
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   340
\                                 simplify_System_parenthesized False))) es_\
neuper@37906
   341
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   342
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   343
;
neuper@37906
   344
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   345
val str = 
neuper@37906
   346
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   347
\  (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   348
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   349
\               (Try (Rewrite_Set_Inst [] isolate_bdvs False)) @@\
neuper@37906
   350
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   351
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   352
\               (Try (Rewrite_Set order_system False))) es_\
neuper@37906
   353
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   354
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   355
;
neuper@37906
   356
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   357
val str = 
neuper@37906
   358
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   359
\  (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   360
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   361
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_)]\
neuper@37906
   362
\                                                    isolate_bdvs False)) @@\
neuper@37906
   363
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   364
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   365
\               (Try (Rewrite_Set order_system False))) es_\
neuper@37906
   366
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   367
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   368
;
neuper@37906
   369
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   370
val str = 
neuper@37906
   371
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   372
\  (let es__ = ((Try (Rewrite_Set simplify_System_parenthesized False)) @@\
neuper@37906
   373
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   374
\                                                    isolate_bdvs False)) @@\
neuper@37906
   375
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   376
\                                 simplify_System_parenthesized False)) @@\
neuper@37906
   377
\               (Try (Rewrite_Set order_system False))) es_\
neuper@37906
   378
\   in (SubProblem (Biegelinie_,[linear,system],[no_met])\
neuper@37984
   379
\                  [BOOL_LIST es__, REAL_LIST vs_]))"
neuper@37906
   380
;
neuper@37906
   381
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   382
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   383
(*---vvv-NOT ok-------------------------------------------------------------*)
neuper@37906
   384
neuper@37906
   385
neuper@37906
   386
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
neuper@37906
   387
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
neuper@37906
   388
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
neuper@37906
   389
val str = 
neuper@37906
   390
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   391
\  (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   392
\                                 simplify_System_parenthesized False) es_  \
neuper@37906
   393
\   in ([]))";
neuper@37906
   394
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   395
val str = 
neuper@37906
   396
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   397
\  (let e1__ = Take (hd es_)                \
neuper@37906
   398
\   in ([]))";
neuper@37906
   399
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   400
val str = 
neuper@37906
   401
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   402
\  (let e1__ = Take (hd es_);               \
neuper@37906
   403
\       e1__ = Take (hd es_)                \
neuper@37906
   404
\   in ([]))";
neuper@37906
   405
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   406
val str = 
neuper@37906
   407
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   408
\  (let e1__ = Take (hd es_);               \
neuper@37906
   409
\       e1__ = (Take (hd es_))\
neuper@37906
   410
\   in ([]))";
neuper@37906
   411
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   412
val str = 
neuper@37906
   413
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   414
\  (let e1__ = Take (hd es_);               \
neuper@37906
   415
\       e1__ = ((Rewrite_Set order_system False)) e1__\
neuper@37906
   416
\   in ([]))";
neuper@37906
   417
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   418
(*--------------------------------------------------------------------------*)
neuper@37906
   419
val str = 
neuper@37906
   420
"(Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   421
\                                           isolate_bdvs False) (e1__::bool)";
neuper@37906
   422
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   423
(*--------------------------------------------------------------------------*)
neuper@37906
   424
val str = 
neuper@37906
   425
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   426
\  (let e1__ = Take (hd es_);               \
neuper@37906
   427
\       e1__ = ((Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   428
\                                           isolate_bdvs False)) e1__\
neuper@37906
   429
\   in ([]))";
neuper@37906
   430
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   431
val str = 
neuper@37906
   432
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   433
\  (let e1__ = Take (hd es_);               \
neuper@37906
   434
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   435
\                                           isolate_bdvs False)) @@\
neuper@37906
   436
\               (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   437
\                                 simplify_System False)) e1__\
neuper@37906
   438
\   in ([]))";
neuper@37906
   439
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   440
val str = 
neuper@37906
   441
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   442
\  (let e1__ = Take (hd es_);               \
neuper@37906
   443
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   444
\                                           isolate_bdvs False)) @@\
neuper@37906
   445
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   446
\                                 simplify_System False))) e1__\
neuper@37906
   447
\   in ([]))";
neuper@37906
   448
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   449
val str = 
neuper@37906
   450
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   451
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   452
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   453
\                                           isolate_bdvs False)) @@          \
neuper@37906
   454
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   455
\                                 simplify_System False))) e1__;           \
neuper@37906
   456
\       e2__ = Take (hd (tl es_))                                            \
neuper@37906
   457
\   in ([]))";
neuper@37906
   458
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   459
val str = 
neuper@37906
   460
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   461
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   462
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   463
\                                           isolate_bdvs False)) @@          \
neuper@37906
   464
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   465
\                                 simplify_System False))) e1__;           \
neuper@37906
   466
\       e2__ = Take (hd (tl es_));                                           \
neuper@37906
   467
\       e2__ = Substitute [e1__] e2__                                       \
neuper@37906
   468
\   in ([]))";
neuper@37906
   469
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   470
val str = 
neuper@37906
   471
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   472
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   473
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   474
\                                           isolate_bdvs False)) @@          \
neuper@37906
   475
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   476
\                                 simplify_System False))) e1__;           \
neuper@37906
   477
\       e2__ = Take (hd (tl es_));                                           \
neuper@37906
   478
\       e2__ = ((Substitute [e1__])) e2__                                  \
neuper@37906
   479
\   in ([]))";
neuper@37906
   480
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   481
val str = 
neuper@37906
   482
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   483
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   484
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   485
\                                      isolate_bdvs False)) @@               \
neuper@37906
   486
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   487
\                                 simplify_System False))) e1__;           \
neuper@37906
   488
\       e2__ = Take (hd (tl es_));                                           \
neuper@37906
   489
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
   490
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   491
\                                      isolate_bdvs False)) @@               \
neuper@37906
   492
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   493
\                                 simplify_System False))) e2__            \
neuper@37906
   494
\   in [e1__, e2__])"
neuper@37906
   495
;
neuper@37906
   496
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   497
val str = 
neuper@37906
   498
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   499
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   500
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   501
\                                      isolate_bdvs False)) @@               \
neuper@37906
   502
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   503
\                                 simplify_System False))) e1__;           \
neuper@37906
   504
\       e2__ = Take (hd (tl es_));                                           \
neuper@37906
   505
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
   506
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   507
\                                 simplify_System_parenthesized False)) @@ \
neuper@37906
   508
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   509
\                                      isolate_bdvs False)) @@               \
neuper@37906
   510
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   511
\                                 simplify_System False)) @@               \
neuper@37906
   512
\               (Try (Rewrite_Set order_system False))) e2__                 \
neuper@37906
   513
\   in [e1__, e2__])"
neuper@37906
   514
;
neuper@37906
   515
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   516
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   517
val str = 
neuper@37906
   518
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
   519
\  (let e1__ = Take (hd es_);                                                \
neuper@37906
   520
\       e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   521
\                                      isolate_bdvs False)) @@               \
neuper@37906
   522
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   523
\                                 simplify_System False))) e1__;           \
neuper@37906
   524
\       e2__ = Take (hd (tl es_));                                           \
neuper@37906
   525
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
   526
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   527
\                                 simplify_System_parenthesized False)) @@ \
neuper@37906
   528
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   529
\                                      isolate_bdvs False)) @@               \
neuper@37906
   530
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   531
\                                 simplify_System False))) e2__;           \
neuper@37906
   532
\       es__ = Take [e1__, e2__]\
neuper@37906
   533
\   in (Try (Rewrite_Set order_system False)) es__)"
neuper@37906
   534
;
neuper@37906
   535
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   536
(*---vvv-NOT ok-------------------------------------------------------------*)
neuper@37906
   537
atomty sc;
neuper@37906
   538
neuper@37906
   539
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
neuper@37906
   540
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
neuper@37906
   541
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
neuper@37906
   542
val str = 
neuper@37906
   543
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   544
\  (let es__ = Take es_;   \
neuper@37906
   545
\       e1__ = hd es__\
neuper@37906
   546
\   in ([]))"
neuper@37906
   547
;
neuper@37906
   548
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   549
val str = 
neuper@37906
   550
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   551
\  (let es__ = Take es_;   \
neuper@37906
   552
\       e1__ = hd es__;    \
neuper@37906
   553
\       e2__ = hd (tl es__)\
neuper@37906
   554
\   in ([]))"
neuper@37906
   555
;
neuper@37906
   556
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   557
val str = 
neuper@37906
   558
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   559
\  (let es__ = Take es_;   \
neuper@37906
   560
\       e1__ = hd es__;    \
neuper@37906
   561
\       e2__ = hd (tl es__);\
neuper@37906
   562
\       es__ = [1=2,3=4]\
neuper@37906
   563
\   in ([]))"
neuper@37906
   564
;
neuper@37906
   565
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   566
val str = 
neuper@37906
   567
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   568
\  (let es__ = Take es_;   \
neuper@37906
   569
\       e1__ = hd es__;    \
neuper@37906
   570
\       e2__ = hd (tl es__);\
neuper@37906
   571
\       es__ = [e1__,e2__]\
neuper@37906
   572
\   in ([]))"
neuper@37906
   573
;
neuper@37906
   574
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   575
val str = 
neuper@37906
   576
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   577
\  (let es__ = Take es_;   \
neuper@37906
   578
\       e1__ = hd es__;    \
neuper@37906
   579
\       e2__ = hd (tl es__);\
neuper@37906
   580
\       es__ = [e1__, Substitute [e1__] e2__];\
neuper@37906
   581
\       es__ = (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   582
\                                 simplify_System False)) es__            \
neuper@37906
   583
\   in ([]))"
neuper@37906
   584
;
neuper@37906
   585
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   586
val str = 
neuper@37906
   587
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   588
\  (let es__ = Take es_;   \
neuper@37906
   589
\       e1__ = hd es__;    \
neuper@37906
   590
\       e2__ = hd (tl es__);\
neuper@37906
   591
\       es__ = [e1__, Substitute [e1__] e2__];\
neuper@37906
   592
\       es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   593
\                                      isolate_bdvs False)) @@               \
neuper@37906
   594
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   595
\                                 simplify_System False))) es__            \
neuper@37906
   596
\   in ([]))"
neuper@37906
   597
;
neuper@37906
   598
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   599
val str = 
neuper@37906
   600
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   601
\  (let es__ = Take es_;   \
neuper@37906
   602
\       e1__ = hd es__;    \
neuper@37906
   603
\       e2__ = hd (tl es__);\
neuper@37906
   604
\       es__ = [e1__, Substitute [e1__] e2__];\
neuper@37906
   605
\       es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   606
\                                 simplify_System_parenthesized False)) @@  \
neuper@37906
   607
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   608
\                                      isolate_bdvs False)) @@               \
neuper@37906
   609
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   610
\                                 simplify_System False))) es__            \
neuper@37906
   611
\   in ([]))"
neuper@37906
   612
;
neuper@37906
   613
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   614
val str = 
neuper@37906
   615
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
neuper@37906
   616
\  (let es__ = Take es_;                                                     \
neuper@37906
   617
\       e1__ = hd es__;                                                      \
neuper@37906
   618
\       e2__ = hd (tl es__);                                                 \
neuper@37906
   619
\       es__ = [e1__, Substitute [e1__] e2__];                               \
neuper@37906
   620
\       es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   621
\                                 simplify_System_parenthesized False)) @@  \
neuper@37906
   622
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   623
\                                      isolate_bdvs False))              @@  \
neuper@37906
   624
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   625
\                                 simplify_System False))) es__            \
neuper@37906
   626
\   in es__)"
neuper@37906
   627
;
neuper@37906
   628
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   629
val str = 
neuper@37906
   630
"Script SolveSystemScript (es_::bool list) (vs_::real list) =         \
neuper@37906
   631
\  (let es__ = Take es_;                                              \
neuper@37906
   632
\       e1__ = hd es__;                                               \
neuper@37906
   633
\       e2__ = hd (tl es__);                                          \
neuper@37906
   634
\       es__ = [e1__, Substitute [e1__] e2__]                         \
neuper@37906
   635
\   in ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   636
\                                 simplify_System_parenthesized False)) @@   \
neuper@37906
   637
\       (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))] \
neuper@37906
   638
\                              isolate_bdvs False))              @@   \
neuper@37906
   639
\       (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   640
\                                 simplify_System False))) es__)"
neuper@37906
   641
;
neuper@37906
   642
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   643
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   644
val str = 
neuper@37906
   645
"Script SolveSystemScript (es_::bool list) (vs_::real list) =         \
neuper@37906
   646
\  (let es__ = Take es_;                                              \
neuper@37906
   647
\       e1__ = hd es__;                                               \
neuper@37906
   648
\       e2__ = hd (tl es__);                                          \
neuper@37906
   649
\       es__ = [e1__, Substitute [e1__] e2__]                         "^
neuper@37906
   650
(* this        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is a script-'Expr'
neuper@37906
   651
   which is not yet searched for 'STac's; thus this script does not yet work*)
neuper@37906
   652
"   in ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   653
\                                 simplify_System_parenthesized False)) @@   \
neuper@37906
   654
\       (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))] \
neuper@37906
   655
\                              isolate_bdvs False))              @@   \
neuper@37906
   656
\       (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
   657
\                                 simplify_System False))) es__)"
neuper@37906
   658
;
neuper@37906
   659
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   660
(*---vvv-NOT ok-------------------------------------------------------------*)
neuper@37906
   661
atomty sc;
neuper@37906
   662
neuper@37906
   663
neuper@37906
   664
"----------- refine [linear,system]-------------------------------";
neuper@37906
   665
"----------- refine [linear,system]-------------------------------";
neuper@37906
   666
"----------- refine [linear,system]-------------------------------";
neuper@37906
   667
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
neuper@37906
   668
	               \0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]", 
neuper@37906
   669
	   "solveForVars [c, c_2]", "solution L"];
neuper@37906
   670
val matches = refine fmz ["linear","system"];
neuper@37906
   671
case matches of [_,_,_,
neuper@37906
   672
		 Matches (["normalize", "2x2", "linear", "system"],
neuper@37906
   673
			  {Find = [Correct "solution L"],
neuper@37906
   674
			   With = [],
neuper@37906
   675
			   Given =
neuper@37906
   676
			   [Correct
neuper@37906
   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]",
neuper@37906
   678
				Correct "solveForVars [c, c_2]"],
neuper@37906
   679
			   Where = [],
neuper@37906
   680
			   Relate = []})] => ()
neuper@37906
   681
	      | _ => raise error "eqsystem.sml refine ['normalize','2x2'...]";
neuper@37906
   682
neuper@37906
   683
neuper@37906
   684
val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]", 
neuper@37906
   685
	   "solveForVars [c, c_2]", "solution L"];
neuper@37906
   686
val matches = refine fmz ["linear","system"];
neuper@37906
   687
case matches of [_,_,
neuper@37906
   688
		 Matches
neuper@37906
   689
		     (["triangular", "2x2", "linear", "system"],
neuper@37906
   690
		      {Find = [Correct "solution L"],
neuper@37906
   691
		       With = [],
neuper@37906
   692
		       Given =
neuper@37906
   693
		       [Correct
neuper@37906
   694
			    "equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
neuper@37906
   695
			    Correct "solveForVars [c, c_2]"],
neuper@37906
   696
		       Where =
neuper@37906
   697
		       [Correct
neuper@37906
   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]",
neuper@37906
   699
			    Correct
neuper@37906
   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]"],
neuper@37906
   701
		       Relate = []})] => ()
neuper@37906
   702
	      | _ => raise error "eqsystem.sml refine ['triangular','2x2'...]";
neuper@37906
   703
neuper@37906
   704
neuper@37906
   705
(*WN051014---------------------------------------------------------------- 
neuper@37906
   706
  the above 'val matches = refine fmz ["linear","system"]'
neuper@37906
   707
  didn't work anymore; we investigated in these steps:*)
neuper@37906
   708
val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]", 
neuper@37906
   709
	   "solveForVars [c, c_2]", "solution L"];
neuper@37906
   710
val matches = refine fmz ["triangular", "2x2", "linear","system"];
neuper@37906
   711
(*... resulted in 
neuper@37906
   712
   False "[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\n    
neuper@37906
   713
          [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"]*)
neuper@37906
   714
neuper@37906
   715
val t = str2term"[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\   
neuper@37906
   716
		\[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]";
neuper@37906
   717
trace_rewrite:=true;
neuper@37926
   718
val SOME (t',_) = rewrite_set_ thy false prls_triangular t;
neuper@37906
   719
(*found:...
neuper@37906
   720
##  try thm: nth_Cons_
neuper@37906
   721
###  eval asms: 1 < 2 + - 1
neuper@37906
   722
==> nth_ (2 + - 1) [L * c + c_2 = q_0 * L ^^^ 2 / 2] =
neuper@37906
   723
    nth_ (2 + - 1 + - 1) []
neuper@37906
   724
####  rls: erls_prls_triangular on: 1 < 2 + - 1
neuper@37906
   725
#####  try calc: op <'
neuper@37906
   726
###  asms accepted: ["1 < 2 + - 1"]   stored: ["1 < 2 + -1"]
neuper@37906
   727
neuper@37906
   728
... i.e Calc ("op +", eval_binop "#add_") was missing in erls_prls_triangular*)
neuper@37906
   729
trace_rewrite:=false;
neuper@37906
   730
(*WN051014------------------------------------------------------------------*)
neuper@37906
   731
neuper@37906
   732
"----- relaxed preconditions for triangular system";
neuper@37906
   733
val fmz = ["equalities [L * q_0 = c,                                       \
neuper@37906
   734
	   \            0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
neuper@37906
   735
	   \            0 = c_4,                           \
neuper@37906
   736
	   \            0 = c_3]", 
neuper@37906
   737
	   "solveForVars [c, c_2, c_3, c_4]", "solution L"];
neuper@37906
   738
val matches = refine fmz ["linear","system"];
neuper@37906
   739
(* trace_rewrite := true;
neuper@37906
   740
   trace_rewrite := false;
neuper@37906
   741
   *)
neuper@37906
   742
(*print_depth 6; matches; print_depth 3;*)
neuper@37906
   743
case matches of 
neuper@37906
   744
    [Matches (["linear", "system"], _),
neuper@37906
   745
     NoMatch (["2x2", "linear", "system"], _),
neuper@37906
   746
     NoMatch (["3x3", "linear", "system"], _),
neuper@37906
   747
     Matches (["4x4", "linear", "system"], _),
neuper@37906
   748
     NoMatch (["triangular", "4x4", "linear", "system"], _),
neuper@37906
   749
     Matches (["normalize", "4x4", "linear", "system"], _)] => ()
neuper@37906
   750
  | _ => raise error "eqsystem.sml: refine relaxed triangular sys NoMatch";
neuper@37906
   751
(*WN060914 does NOT match, because 3rd and 4th equ are not ordered*)
neuper@37906
   752
neuper@37906
   753
val fmz = ["equalities [L * q_0 = c,                                       \
neuper@37906
   754
	   \            0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
neuper@37906
   755
	   \            0 = c_3,                           \
neuper@37906
   756
	   \            0 = c_4]", 
neuper@37906
   757
	   "solveForVars [c, c_2, c_3, c_4]", "solution L"];
neuper@37906
   758
val matches = refine fmz ["triangular", "4x4", "linear","system"];
neuper@37906
   759
(* print_depth 11; matches; print_depth 3;
neuper@37906
   760
   *)
neuper@37906
   761
case matches of 
neuper@37906
   762
    [Matches (["triangular", "4x4", "linear", "system"], _)] => ()
neuper@37906
   763
  | _ => raise error "eqsystem.sml: refine relaxed triangular sys Matches";
neuper@37906
   764
val matches = refine fmz ["linear","system"];
neuper@37906
   765
neuper@37906
   766
neuper@37906
   767
"----------- refine [2x2,linear,system] search error--------------";
neuper@37906
   768
"----------- refine [2x2,linear,system] search error--------------";
neuper@37906
   769
"----------- refine [2x2,linear,system] search error--------------";
neuper@37906
   770
(*didn't go into ["2x2", "linear", "system"]; 
neuper@37906
   771
  we investigated in these steps:*)
neuper@37906
   772
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
neuper@37906
   773
	               \0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]", 
neuper@37906
   774
	   "solveForVars [c, c_2]", "solution L"];
neuper@37906
   775
trace_rewrite:=true;
neuper@37906
   776
val matches = refine fmz ["2x2", "linear","system"];
neuper@37906
   777
trace_rewrite:=false;
neuper@37906
   778
print_depth 11; matches; print_depth 3;
neuper@37906
   779
(*brought: 'False "length_ es_ = 2"'*)
neuper@37906
   780
neuper@37906
   781
(*-----fun refin' (pblRD:pblRD) fmz pbls ((Ptyp (pI,[py],[])):pbt ptyp) =
neuper@37906
   782
(* val ((pblRD:pblRD), fmz, pbls, ((Ptyp (pI,[py],[])):pbt ptyp)) =
neuper@37906
   783
       (rev ["linear","system"], fmz, [(*match list*)],
neuper@37906
   784
	((Ptyp ("2x2",[get_pbt ["2x2","linear","system"]],[])):pbt ptyp));
neuper@37906
   785
   *)
neuper@37906
   786
> show_types:=true; term2str (hd where_); show_types:=false;
neuper@37906
   787
val it = "length_ (es_::real list) = (2::real)" : string
neuper@37906
   788
neuper@37906
   789
=========================================================================\
neuper@37906
   790
-------fun prep_pbt
neuper@37906
   791
(* val (thy, (pblID, dsc_dats: (string * (string list)) list, 
neuper@37906
   792
		  ev:rls, ca: string option, metIDs:metID list)) =
neuper@37906
   793
       (EqSystem.thy, (["system"],
neuper@37906
   794
		       [("#Given" ,["equalities es_", "solveForVars vs_"]),
neuper@37906
   795
			("#Find"  ,["solution ss___"](*___ is copy-named*))
neuper@37906
   796
			],
neuper@37906
   797
		       append_rls "e_rls" e_rls [(*for preds in where_*)], 
neuper@37926
   798
		       SOME "solveSystem es_ vs_", 
neuper@37906
   799
		       []));
neuper@37906
   800
   *)
neuper@37906
   801
> val [("#Given", [equalities_es_, "solveForVars vs_"])] = gi;
neuper@37906
   802
val equalities_es_ = "equalities es_" : string
neuper@37906
   803
> val (dd, ii) = (split_did o term_of o the o (parse thy)) equalities_es_;
neuper@37906
   804
> show_types:=true; term2str ii; show_types:=false;
neuper@37906
   805
val it = "es_::bool list" : string
neuper@37906
   806
~~~~~~~~~~~~~~~^^^^^^^^^ OK~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
neuper@37906
   807
neuper@37906
   808
> val {where_,...} = get_pbt ["2x2", "linear","system"];
neuper@37906
   809
> show_types:=true; term2str (hd where_); show_types:=false;
neuper@37906
   810
neuper@37906
   811
=========================================================================/
neuper@37906
   812
neuper@37906
   813
neuper@37906
   814
neuper@37906
   815
-----fun refin' ff:
neuper@37924
   816
> (writeln o (itms2str_ (thy2ctxt "Isac"))) itms;
neuper@37906
   817
[
neuper@37906
   818
(1 ,[1] ,true ,#Given ,Cor equalities
neuper@37906
   819
 [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
neuper@37906
   820
  0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2] ,(es_, [[0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
neuper@37906
   821
 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]])),
neuper@37906
   822
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
neuper@37906
   823
(3 ,[1] ,true ,#Find ,Cor solution L ,(ss___, [L]))]
neuper@37906
   824
neuper@37906
   825
> (writeln o pres2str) pre';
neuper@37906
   826
[
neuper@37906
   827
(false, length_ es_ = 2),
neuper@37906
   828
(true, length_ [c, c_2] = 2)]
neuper@37906
   829
neuper@37906
   830
----- fun match_oris':
neuper@37924
   831
> (writeln o (itms2str_ (thy2ctxt "Isac"))) itms;
neuper@37906
   832
> (writeln o pres2str) pre';
neuper@37906
   833
..as in refin'
neuper@37906
   834
neuper@37906
   835
----- fun check_preconds'
neuper@37906
   836
> (writeln o env2str) env;
neuper@37906
   837
["
neuper@37906
   838
(es_, [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
neuper@37906
   839
 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2])","
neuper@37906
   840
(vs_, [c, c_2])","
neuper@37906
   841
(ss___, L)"]
neuper@37906
   842
neuper@37906
   843
> val es_ = (fst o hd) env;
neuper@37906
   844
val es_ = Free ("es_", "bool List.list") : Term.term
neuper@37906
   845
neuper@37906
   846
> val pre1 = hd pres;
neuper@37906
   847
atomty pre1;
neuper@37906
   848
***
neuper@37906
   849
*** Const (op =, [real, real] => bool)
neuper@37906
   850
*** . Const (ListG.length_, real list => real)
neuper@37906
   851
*** . . Free (es_, real list)
neuper@37906
   852
~~~~~~~~~~~~~~~~~~~^^^^^^^^^ should be bool list~~~~~~~~~~~~~~~~~~~
neuper@37906
   853
*** . Free (2, real)
neuper@37906
   854
***
neuper@37906
   855
neuper@37906
   856
THE REASON WAS A non-type-constrained variable IN #WHERE OF PROBLEM
neuper@37906
   857
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
neuper@37906
   858
*)
neuper@37906
   859
neuper@37906
   860
neuper@37906
   861
"----------- me [EqSystem,normalize,2x2] -------------------------";
neuper@37906
   862
"----------- me [EqSystem,normalize,2x2] -------------------------";
neuper@37906
   863
"----------- me [EqSystem,normalize,2x2] -------------------------";
neuper@37906
   864
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
neuper@37906
   865
	               \0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]", 
neuper@37906
   866
	   "solveForVars [c, c_2]", "solution L"];
neuper@37906
   867
val (dI',pI',mI') =
neuper@37991
   868
  ("Biegelinie",["normalize", "2x2", "linear", "system"],
neuper@37906
   869
   ["EqSystem","normalize","2x2"]);
neuper@37906
   870
val p = e_pos'; val c = []; 
neuper@37906
   871
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   872
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   873
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   874
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   875
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   876
case nxt of ("Specify_Method",_) => ()
neuper@37906
   877
	  | _ => raise error "eqsystem.sml [EqSystem,normalize,2x2] specify";
neuper@37906
   878
neuper@37906
   879
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   880
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   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*);
neuper@37906
   882
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   883
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   884
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   885
case nxt of
neuper@37991
   886
    (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
neuper@37906
   887
  | _ => raise error "eqsystem.sml me [EqSystem,normalize,2x2] SubProblem";
neuper@37906
   888
neuper@37906
   889
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   890
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   891
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   892
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   893
case nxt of
neuper@37906
   894
    (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
neuper@37906
   895
  | _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution";
neuper@37906
   896
neuper@37906
   897
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37924
   898
val PblObj {probl,...} = get_obj I pt [5];
neuper@37924
   899
    (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
neuper@37906
   900
(*[
neuper@37906
   901
(1 ,[1] ,true ,#Given ,Cor equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2] ,(es_, [[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]])),
neuper@37906
   902
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
neuper@37906
   903
(3 ,[1] ,true ,#Find ,Cor solution ss___ ,(ss___, [ss___]))]
neuper@37906
   904
*)
neuper@37906
   905
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   906
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   907
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   908
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   909
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   910
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   911
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   912
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   913
case nxt of
neuper@37906
   914
    (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
neuper@37906
   915
  | _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished";
neuper@37906
   916
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   917
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   918
if f2str f = "[c = L * q_0 / 2, c_2 = 0]" then ()
neuper@37906
   919
else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f";
neuper@37906
   920
case nxt of
neuper@37906
   921
    (_, End_Proof') => ()
neuper@37906
   922
  | _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'";
neuper@37906
   923
neuper@37906
   924
neuper@37906
   925
"----------- me [linear,system] ..normalize..top_down_sub..-------";
neuper@37906
   926
"----------- me [linear,system] ..normalize..top_down_sub..-------";
neuper@37906
   927
"----------- me [linear,system] ..normalize..top_down_sub..-------";
neuper@37906
   928
val fmz = 
neuper@37906
   929
    ["equalities\
neuper@37906
   930
     \[0 = c_2 + c * 0 + 1 / EI * (L * q_0 / 12 * 0 ^^^ 3 +                \
neuper@37906
   931
     \                                            -1 * q_0 / 24 * 0 ^^^ 4),\
neuper@37906
   932
     \ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 +                \
neuper@37906
   933
     \                                            -1 * q_0 / 24 * L ^^^ 4)]",
neuper@37906
   934
     "solveForVars [c, c_2]", "solution L"];
neuper@37906
   935
val (dI',pI',mI') =
neuper@37991
   936
  ("Biegelinie",["linear", "system"], ["no_met"]);
neuper@37906
   937
val p = e_pos'; val c = []; 
neuper@37906
   938
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   939
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   940
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   941
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   942
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   943
case nxt of (_,Specify_Method ["EqSystem", "normalize", "2x2"]) => ()
neuper@37906
   944
	  | _ => raise error "eqsystem.sml [linear,system] specify b";
neuper@37906
   945
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   946
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   947
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   948
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   949
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   950
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   951
if f2str f = 
neuper@37906
   952
"[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
neuper@37906
   953
then () else raise error "eqsystem.sml me simpl. before SubProblem b";
neuper@37906
   954
case nxt of
neuper@37991
   955
    (_, Subproblem ("Biegelinie", ["triangular", "2x2", "linear",_])) => ()
neuper@37906
   956
  | _ => raise error "eqsystem.sml me [linear,system] SubProblem b";
neuper@37906
   957
neuper@37906
   958
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   959
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   960
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   961
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   962
case nxt of
neuper@37906
   963
    (_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
neuper@37906
   964
  | _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution b";
neuper@37906
   965
neuper@37906
   966
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37924
   967
val PblObj {probl,...} = get_obj I pt [5];
neuper@37924
   968
    (writeln o (itms2str_ (thy2ctxt "Isac"))) probl;
neuper@37906
   969
(*[
neuper@37906
   970
(1 ,[1] ,true ,#Given ,Cor equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2] ,(es_, [[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]])),
neuper@37906
   971
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
neuper@37906
   972
(3 ,[1] ,true ,#Find ,Cor solution ss___ ,(ss___, [ss___]))]
neuper@37906
   973
*)
neuper@37906
   974
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   975
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   976
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   977
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   978
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   979
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   980
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   981
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   982
case nxt of
neuper@37906
   983
    (_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
neuper@37906
   984
  | _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished b";
neuper@37906
   985
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   986
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
neuper@37906
   987
if f2str f = 
neuper@37906
   988
"[c = -1 * q_0 * L ^^^ 4 / (24 * EI * L), c_2 = 0]"
neuper@37906
   989
then () else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f b";
neuper@37906
   990
case nxt of
neuper@37906
   991
    (_, End_Proof') => ()
neuper@37906
   992
  | _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'" b;
neuper@37906
   993
neuper@37906
   994
neuper@37906
   995
"----------- all systems from Biegelinie -------------------------";
neuper@37906
   996
"----------- all systems from Biegelinie -------------------------";
neuper@37906
   997
"----------- all systems from Biegelinie -------------------------";
neuper@37906
   998
val subst = [(str2term "bdv_1", str2term "c"),
neuper@37906
   999
	     (str2term "bdv_2", str2term "c_2"),
neuper@37906
  1000
	     (str2term "bdv_3", str2term "c_3"),
neuper@37906
  1001
	     (str2term "bdv_4", str2term "c_4")]; 
neuper@37906
  1002
"------- Bsp 7.27";
neuper@37906
  1003
states:=[];
neuper@37906
  1004
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
  1005
	     "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
neuper@37906
  1006
	     "FunktionsVariable x"],
neuper@37991
  1007
	    ("Biegelinie", ["Biegelinien"],
neuper@37906
  1008
		     ["IntegrierenUndKonstanteBestimmen2"]))];
neuper@37906
  1009
moveActiveRoot 1;
neuper@37906
  1010
(*
neuper@37906
  1011
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1012
##7.27##          ordered           substs
neuper@37906
  1013
          c_4       c_2           
neuper@37906
  1014
c c_2 c_3 c_4     c c_2             1->2: c
neuper@37906
  1015
  c_2                       c_4	  
neuper@37906
  1016
c c_2             c c_2 c_3 c_4     [2':c, 1:c_2, 3:c_4] -> 4:c_3*)
neuper@37906
  1017
val t = str2term"[0 = c_4,                           \
neuper@37906
  1018
\ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),                                       \
neuper@37906
  1019
\ 0 = c_2,                                           \
neuper@37906
  1020
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]";
neuper@37926
  1021
val SOME (t',_) = rewrite_set_ thy false isolate_bdvs_4x4 t;
neuper@37906
  1022
term2str t';
neuper@37906
  1023
"[c_4 = 0,\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI) =\n 0 + -1 * (c_4 + L * c_3),\n c_2 = 0, (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2 = 0]";
neuper@37906
  1024
neuper@37906
  1025
neuper@37906
  1026
"----- 7.27 go through the rewrites in met_eqsys_norm_4x4";
neuper@37906
  1027
val t = str2term "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
neuper@37926
  1028
val NONE = rewrite_set_ thy false norm_Rational t;
neuper@37926
  1029
val SOME (t,_) = 
neuper@37906
  1030
    rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
neuper@37906
  1031
term2str t = "0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2)";
neuper@37906
  1032
"--- isolate_bdvs_4x4";
neuper@37906
  1033
(*
neuper@37926
  1034
val SOME (t,_) = rewrite_set_inst_ thy false subst isolate_bdvs_4x4 t;
neuper@37906
  1035
term2str t;
neuper@37926
  1036
val SOME (t,_) = rewrite_set_inst_ thy false subst simplify_System t;
neuper@37906
  1037
term2str t;
neuper@37926
  1038
val SOME (t,_) = rewrite_set_ thy false order_system t;
neuper@37906
  1039
term2str t;
neuper@37906
  1040
*)
neuper@37906
  1041
neuper@37906
  1042
"------- Bsp 7.28 ---------------vvvvvvvvvvvvv Momentenlinie postponed";
neuper@37906
  1043
states:=[];
neuper@37906
  1044
CalcTree [(["Traegerlaenge L","Momentenlinie (-q_0 / L * x^3 / 6)",
neuper@37906
  1045
	    "Biegelinie y",
neuper@37906
  1046
	    "Randbedingungen [y L = 0, y' L = 0]",
neuper@37906
  1047
	    "FunktionsVariable x"],
neuper@37991
  1048
	   ("Biegelinie", ["vonMomentenlinieZu","Biegelinien"],
neuper@37906
  1049
	    ["Biegelinien", "AusMomentenlinie"]))];
neuper@37906
  1050
moveActiveRoot 1;
neuper@37906
  1051
(*
neuper@37906
  1052
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1053
*)
neuper@37906
  1054
neuper@37906
  1055
"------- Bsp 7.69";
neuper@37906
  1056
states:=[];
neuper@37906
  1057
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
  1058
	     "Randbedingungen [y 0 = 0, y L = 0, y' 0 = 0, y' L = 0]",
neuper@37906
  1059
	     "FunktionsVariable x"],
neuper@37991
  1060
	    ("Biegelinie", ["Biegelinien"],
neuper@37906
  1061
	     ["IntegrierenUndKonstanteBestimmen2"] ))];
neuper@37906
  1062
moveActiveRoot 1;
neuper@37906
  1063
(*
neuper@37906
  1064
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1065
##7.69##          ordered           subst                   2x2
neuper@37906
  1066
          c_4           c_3         
neuper@37906
  1067
c c_2 c_3 c_4     c c_2 c_3	    1:c_3 -> 2:c c_2        2:         c c_2
neuper@37906
  1068
      c_3                   c_4	 			   
neuper@37906
  1069
c c_2 c_3         c c_2 c_3 c_4     3:c_4 -> 4:c c_2 c_3    1:c_3 -> 4:c c_2*)
neuper@37906
  1070
val t = str2term"[0 = c_4 + 0 / (-1 * EI),                                   \
neuper@37906
  1071
\ 0 = c_4 + L * c_3 + (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),                                                              \
neuper@37906
  1072
\ 0 = c_3 + 0 / (-1 * EI),                                                   \
neuper@37906
  1073
\ 0 = c_3 + (6 * L * c_2 + 3 * L ^^^ 2 * c + -1 * L ^^^ 3 * q_0) / (-6 * EI)]";
neuper@37906
  1074
neuper@37906
  1075
"------- Bsp 7.70";
neuper@37906
  1076
states:=[];
neuper@37906
  1077
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
  1078
	     "Randbedingungen [Q 0 = q_0 * L, M_b L = 0, y 0 = 0, y' 0 = 0]",
neuper@37906
  1079
	     "FunktionsVariable x"],
neuper@37991
  1080
	    ("Biegelinie", ["Biegelinien"],
neuper@37906
  1081
	     ["IntegrierenUndKonstanteBestimmen2"] ))];
neuper@37906
  1082
moveActiveRoot 1;
neuper@37906
  1083
(*
neuper@37906
  1084
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1085
##7.70##        |subst
neuper@37906
  1086
c		|
neuper@37906
  1087
c c_2           |1:c -> 2:c_2
neuper@37906
  1088
      c_3	|
neuper@37906
  1089
          c_4   |            GOON test methods @@@@@@@@@@@@@@@@@@@@@@@@@@@*)
neuper@37906
  1090
neuper@37906
  1091
"----- 7.70 go through the rewrites in met_eqsys_norm_4x4";
neuper@37906
  1092
val t = str2term"[L * q_0 = c,                       \
neuper@37906
  1093
		\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
neuper@37906
  1094
		\ 0 = c_4,                           \
neuper@37906
  1095
		\ 0 = c_3]";
neuper@37926
  1096
val SOME (t,_) =
neuper@37970
  1097
    rewrite_ thy e_rew_ord e_rls false (num_str @{thm commute_0_equality}) t;
neuper@37926
  1098
val SOME (t,_) =
neuper@37970
  1099
    rewrite_ thy e_rew_ord e_rls false (num_str @{thm commute_0_equality}) t;
neuper@37926
  1100
val SOME (t,_) =
neuper@37970
  1101
    rewrite_ thy e_rew_ord e_rls false (num_str @{thm commute_0_equality}) t;
neuper@37906
  1102
term2str t =
neuper@37906
  1103
   "[L * q_0 = c, (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2 = 0, c_4 = 0,\n c_3 = 0]";
neuper@37926
  1104
val SOME (t,_) = 
neuper@37906
  1105
    rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
neuper@37906
  1106
term2str t =
neuper@37906
  1107
"[L * q_0 = c, -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2) = 0, c_4 = 0, c_3 = 0]";
neuper@37926
  1108
val SOME (t,_) = rewrite_set_inst_ thy false subst isolate_bdvs_4x4 t;
neuper@37906
  1109
term2str t =
neuper@37906
  1110
   "[c = (-1 * (L * q_0) + 0) / -1,\n L * c + c_2 = -1 * (-1 * q_0 * L ^^^ 2 / 2) + 0, c_4 = 0, c_3 = 0]";
neuper@37926
  1111
val SOME (t,_) = 
neuper@37906
  1112
    rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
neuper@37906
  1113
neuper@37906
  1114
term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_4 = 0, c_3 = 0]";
neuper@37926
  1115
val SOME (t,_) = rewrite_set_ thy false order_system t;
neuper@37906
  1116
if term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" then ()
neuper@37906
  1117
else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by rewrite changed";
neuper@37906
  1118
neuper@37906
  1119
neuper@37906
  1120
"----- 7.70 with met normalize: ";
neuper@37906
  1121
val fmz = ["equalities                                         \
neuper@37906
  1122
	    \[L * q_0 = c,                       \
neuper@37906
  1123
		\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
neuper@37906
  1124
		\ 0 = c_4,                           \
neuper@37906
  1125
		\ 0 = c_3]", 
neuper@37906
  1126
	    "solveForVars [c, c_2, c_3, c_4]", "solution L"];
neuper@37906
  1127
val (dI',pI',mI') =
neuper@37991
  1128
  ("Biegelinie",["linear", "system"],["no_met"]);
neuper@37906
  1129
val p = e_pos'; val c = []; 
neuper@37906
  1130
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
  1131
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1132
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1133
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1134
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1135
case nxt of (_,Apply_Method ["EqSystem", "normalize", "4x4"]) => ()
neuper@37906
  1136
	  | _ => raise error "eqsystem.sml [EqSystem,normalize,4x4] specify";
neuper@37906
  1137
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1138
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbb outcommented vvvvvvvvvvvvvvvvvvvvvv";
neuper@37906
  1139
(*vvvWN080102 Exception- Match raised 
neuper@37906
  1140
  since assod Rewrite .. Rewrite'_Set
neuper@37906
  1141
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1142
neuper@37906
  1143
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1144
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1145
neuper@37906
  1146
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1147
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1148
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1149
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1150
if f2str f ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" 
neuper@37906
  1151
then () else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by met changed";
neuper@37906
  1152
--------------------------------------------------------------------------*)
neuper@37906
  1153
neuper@37906
  1154
"----- 7.70 with met top_down_: ";
neuper@37906
  1155
"--- scr [EqSystem,top_down_substitution,4x4] -- a saved trial";
neuper@37906
  1156
(*---vvv-this script failed with if ?!?-------------------------------------*) 
neuper@37906
  1157
val str = 
neuper@37906
  1158
"Script SolveSystemScript (es_::bool list) (vs_::real list) =          \
neuper@37906
  1159
\  (let e1_ = hd es_;                                                  \
neuper@37906
  1160
\       v1_ = hd vs_;                                                  \
neuper@37906
  1161
\       xxx = if lhs e1_ =!= v1_                                       \
neuper@37906
  1162
\             then 0=0                                                 \
neuper@37906
  1163
\             else let e1_ = Take e1_;                                 \
neuper@37906
  1164
\                      e1_ = (Rewrite_Set_Inst [(bdv_1, hd vs_),       \
neuper@37906
  1165
\                                               (bdv_2, hd (tl vs_))]  \
neuper@37906
  1166
\                                  isolate_bdvs False) e1_;            \
neuper@37906
  1167
\       e2_ = Take (hd (tl es_));                                      \
neuper@37906
  1168
\       e2_ = (Substitute [e1__]) e2_                                  \
neuper@37906
  1169
\    in [e1_, e2_])";
neuper@37906
  1170
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
neuper@37906
  1171
val str = 
neuper@37906
  1172
"Script SolveSystemScript (es_::bool list) (vs_::real list) =          \
neuper@37906
  1173
\  (let e1_ = hd es_;                                                  \
neuper@37906
  1174
\       v1_ = hd vs_;                                                  \
neuper@37906
  1175
\       e2_ = Take (hd (tl es_));                                      \
neuper@37906
  1176
\       e2_ = (Substitute [e1__]) e2_                                  \
neuper@37906
  1177
\    in [e1_, e2_])";
neuper@37906
  1178
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1179
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
  1180
(*---vvv-NOT ok-------------------------------------------------------------*)
neuper@37906
  1181
val str = 
neuper@37906
  1182
"Script SolveSystemScript (es_::bool list) (vs_::real list) =          \
neuper@37906
  1183
\  (let e1_ = hd es_;                                                  \
neuper@37906
  1184
\       v1_ = hd vs_;                                                  \
neuper@37906
  1185
\       xxx = if ((lhs e1_) =!= v1_) then 1 else 2; \
neuper@37906
  1186
\       e2_ = Take (hd (tl es_));                                      \
neuper@37906
  1187
\       e2_ = (Substitute [e1__]) e2_                                  \
neuper@37906
  1188
\    in [e1_, e2_])";
neuper@37906
  1189
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
neuper@37906
  1190
val str = "if lhs e1_ =!= v1_ then 1 else 2";
neuper@37906
  1191
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1192
neuper@37906
  1193
val str = "let xxx = (if lhs e1_ =!= v1_ then 1 else 2) in xxx";
neuper@37906
  1194
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
neuper@37906
  1195
atomty sc; term2str sc;
neuper@37906
  1196
neuper@37906
  1197
"--- scr [EqSystem,top_down_substitution,4x4] -- adapted only to 7.70";
neuper@37906
  1198
val str = 
neuper@37906
  1199
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
  1200
\  (let e2__ = Take (hd (tl es_));                                           \
neuper@37906
  1201
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
  1202
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1203
\                                  simplify_System_parenthesized False)) @@  \
neuper@37906
  1204
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1205
\                                  isolate_bdvs False))                  @@  \
neuper@37906
  1206
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1207
\                                  simplify_System False)))             e2__;\
neuper@37906
  1208
\       es__ = Take [e1__, e2__]                                             \
neuper@37906
  1209
\   in (Try (Rewrite_Set order_system False)) es__)"
neuper@37906
  1210
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1211
val str = 
neuper@37906
  1212
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
  1213
\  (let e2__ = Take (nth_ 2 es_);                                           \
neuper@37906
  1214
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
  1215
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1216
\                                  simplify_System_parenthesized False)) @@  \
neuper@37906
  1217
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1218
\                                  isolate_bdvs False))                  @@  \
neuper@37906
  1219
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
neuper@37906
  1220
\                                  simplify_System False)))             e2__;\
neuper@37906
  1221
\       es__ = Take [e1__, e2__]                                             \
neuper@37906
  1222
\   in (Try (Rewrite_Set order_system False)) es__)"
neuper@37906
  1223
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1224
val str = 
neuper@37906
  1225
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                \
neuper@37906
  1226
\  (let e2__ = Take (nth_ 2 es_);                                            \
neuper@37906
  1227
\       e2__ = ((Substitute [e1__]) @@                                       \
neuper@37906
  1228
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
neuper@37906
  1229
\                                  simplify_System_parenthesized False)) @@  \
neuper@37906
  1230
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]\
neuper@37906
  1231
\                                  isolate_bdvs False))                  @@  \
neuper@37906
  1232
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]\
neuper@37906
  1233
\                                  simplify_System False)))             e2__;\
neuper@37906
  1234
\       es__ = Take [e1__, e2__]                                             \
neuper@37906
  1235
\   in (Try (Rewrite_Set order_system False)) es__)"
neuper@37906
  1236
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1237
val str = 
neuper@37906
  1238
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                 \
neuper@37906
  1239
\  (let e2__ = Take (nth_ 2 es_);                                             \
neuper@37906
  1240
\       e2__ = ((Substitute [e1__]) @@                                        \
neuper@37906
  1241
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1242
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1243
\                                  simplify_System_parenthesized False)) @@   \
neuper@37906
  1244
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]  \
neuper@37906
  1245
\                                  isolate_bdvs False))                  @@   \
neuper@37906
  1246
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]  \
neuper@37906
  1247
\                                  norm_Rational False)))             e2__;   \
neuper@37906
  1248
\       es__ = Take [e1__, e2__]                                              \
neuper@37906
  1249
\   in [])"
neuper@37906
  1250
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1251
val str = 
neuper@37906
  1252
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                 \
neuper@37906
  1253
\  (let e2_ = Take (nth_ 2 es_);                                             \
neuper@37906
  1254
\       e2_ = ((Substitute [e1_]) @@                                        \
neuper@37906
  1255
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1256
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1257
\                                  simplify_System_parenthesized False)) @@   \
neuper@37906
  1258
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]  \
neuper@37906
  1259
\                                  isolate_bdvs False))                  @@   \
neuper@37906
  1260
\               (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]  \
neuper@37906
  1261
\                                  norm_Rational False)))             e2_;   \
neuper@37906
  1262
\       es_ = Take [e1_, e2_]                                              \
neuper@37906
  1263
\   in [e1_, e2_,e3_, e4_])"
neuper@37906
  1264
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1265
val str = 
neuper@37906
  1266
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                 \
neuper@37906
  1267
\  (let e2_ = Take (nth_ 2 es_);                                              \
neuper@37906
  1268
\       e2_ = ((Substitute [e1_]) @@                                          \
neuper@37906
  1269
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1270
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1271
\                                  simplify_System_parenthesized False)) @@   \
neuper@37906
  1272
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1273
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1274
\                                  isolate_bdvs False))                  @@   \
neuper@37906
  1275
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1276
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1277
\                                  norm_Rational False)))             e2_;    \
neuper@37906
  1278
\       es_ = Take [e1_, e2_]                                                 \
neuper@37906
  1279
\   in [e1_, e2_,e3_, e4_])"
neuper@37906
  1280
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1281
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
  1282
val str = 
neuper@37906
  1283
"Script SolveSystemScript (es_::bool list) (vs_::real list) =                 \
neuper@37906
  1284
\  (let e2_ = Take (nth_ 2 es_);                                              \
neuper@37906
  1285
\       e2_ = ((Substitute [e1_]) @@                                          \
neuper@37906
  1286
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1287
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1288
\                                  simplify_System_parenthesized False)) @@   \
neuper@37906
  1289
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1290
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1291
\                                  isolate_bdvs False))                  @@   \
neuper@37906
  1292
\               (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
neuper@37906
  1293
\                                       (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
neuper@37906
  1294
\                                  norm_Rational False)))             e2_     \
neuper@37906
  1295
\   in [e1_, e2_, nth_ 3 es_, nth_ 4 es_])"
neuper@37906
  1296
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
  1297
(*---vvv-NOT ok-------------------------------------------------------------*)
neuper@37906
  1298
atomty sc; term2str sc;
neuper@37906
  1299
neuper@37906
  1300
neuper@37906
  1301
"----- 7.70 with met top_down_: me";
neuper@37906
  1302
val fmz = ["equalities                                         \
neuper@37906
  1303
	    \[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]",
neuper@37906
  1304
	    "solveForVars [c, c_2, c_3, c_4]", "solution L"];
neuper@37906
  1305
val (dI',pI',mI') =
neuper@37991
  1306
  ("Biegelinie",["linear", "system"],["no_met"]);
neuper@37906
  1307
val p = e_pos'; val c = []; 
neuper@37906
  1308
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
  1309
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1310
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1311
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1312
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1313
case nxt of (_,Apply_Method ["EqSystem", "top_down_substitution", "4x4"]) => ()
neuper@37906
  1314
	  | _ => raise error "eqsystem.sml [EqSystem,top_down_,4x4] specify";
neuper@37906
  1315
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1316
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1317
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1318
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1319
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1320
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1321
if nxt = ("End_Proof'", End_Proof') andalso
neuper@37906
  1322
   f2str f = "[c = L * q_0, c_2 = -1 * L ^^^ 2 * q_0 / 2, c_3 = 0, c_4 = 0]"
neuper@37906
  1323
then () else raise error "eqsystem.sml: 7.70 with met top_down_: me";
neuper@37906
  1324
neuper@37906
  1325
neuper@37906
  1326
"------- Bsp 7.71";
neuper@37906
  1327
states:=[];
neuper@37906
  1328
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
  1329
	     "Randbedingungen [M_b L = 0, y 0 = 0, y L = 0, y' 0 = 0]",
neuper@37906
  1330
	     "FunktionsVariable x"],
neuper@37991
  1331
	    ("Biegelinie", ["Biegelinien"],
neuper@37906
  1332
	     ["IntegrierenUndKonstanteBestimmen2"] ))];
neuper@37906
  1333
moveActiveRoot 1;
neuper@37906
  1334
(*
neuper@37906
  1335
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1336
##7.71##       |ordered       |subst.singles (recurs) |2x2       |diagonal
neuper@37906
  1337
c c_2          |c c_2	      |1'		      |1': c c_2 |
neuper@37906
  1338
          c_4  |      c_3     |2:c_3 -> 4' :c c_2 c_4 |	         |
neuper@37906
  1339
c c_2 c_3 c_4  |          c_4 |3'                     |	         |
neuper@37906
  1340
      c_3      |c c_2 c_3 c_4 |3:c_4 -> 4'':c c_2     |4'':c c_2 |      *)
neuper@37906
  1341
val t = str2term"[0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2, \
neuper@37906
  1342
\ 0 = c_4 + 0 / (-1 * EI),                            \
neuper@37906
  1343
\ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) /(-24 * EI),\
neuper@37906
  1344
\ 0 = c_3 + 0 / (-1 * EI)]";
neuper@37906
  1345
neuper@37906
  1346
"------- Bsp 7.72a ---------------vvvvvvvvvvvvv Momentenlinie postponed";
neuper@37906
  1347
states:=[];
neuper@37906
  1348
CalcTree [(["Traegerlaenge L",
neuper@37906
  1349
	    "Momentenlinie ((q_0 * L)/ 6 * x - q_0 /(6 * L) * x^3)",
neuper@37906
  1350
	    "Biegelinie y",
neuper@37906
  1351
	    "Randbedingungen [y 0 = 0, y L = 0]",
neuper@37906
  1352
	    "FunktionsVariable x"],
neuper@37991
  1353
	   ("Biegelinie", ["vonMomentenlinieZu","Biegelinien"],
neuper@37906
  1354
	    ["Biegelinien", "AusMomentenlinie"]))];
neuper@37906
  1355
moveActiveRoot 1;
neuper@37906
  1356
(*
neuper@37906
  1357
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1358
*)
neuper@37906
  1359
neuper@37906
  1360
"------- Bsp 7.72b";
neuper@37906
  1361
states:=[];
neuper@37906
  1362
CalcTree [(["Traegerlaenge L","Streckenlast (q_0 / L * x)","Biegelinie y",
neuper@37906
  1363
	    "Randbedingungen [M_b 0 = 0, M_b L = 0, y 0 = 0, y L = 0]",
neuper@37906
  1364
	    "FunktionsVariable x"],
neuper@37991
  1365
	   ("Biegelinie", ["Biegelinien"],
neuper@37906
  1366
	    ["IntegrierenUndKonstanteBestimmen2"] ))];
neuper@37906
  1367
moveActiveRoot 1;
neuper@37906
  1368
(*
neuper@37906
  1369
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1370
##7.72b##      |ord. |subst.singles         |ord.triang.
neuper@37906
  1371
  c_2          |     |			    |c_2  
neuper@37906
  1372
c c_2	       |     |1:c_2 -> 2':c	    |c_2 c
neuper@37906
  1373
          c_4  |     |			    |
neuper@37906
  1374
c c_2 c_3 c_4  |     |3:c_4 -> 4':c c_2 c_3 |c_2 c c_3*)
neuper@37906
  1375
val t = str2term"[0 = c_2,                                            \
neuper@37906
  1376
\ 0 = (6 * c_2 + 6 * L * c + -1 * L ^^^ 2 * q_0) / 6, \
neuper@37906
  1377
\ 0 = c_4 + 0 / (-1 * EI),                            \
neuper@37906
  1378
\ 0 = c_4 + L * c_3 + (60 * L ^^^ 2 * c_2 + 20 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-120 * EI)]";
neuper@37906
  1379
neuper@37906
  1380
"------- Bsp 7.73 ---------------vvvvvvvvvvvvv Momentenlinie postponed";
neuper@37906
  1381
states:=[];
neuper@37906
  1382
CalcTree [(["Traegerlaenge L","Momentenlinie ???",(*description unclear*)
neuper@37906
  1383
	    "Biegelinie y",
neuper@37906
  1384
	    "Randbedingungen [y L = 0, y' L = 0]",
neuper@37906
  1385
	    "FunktionsVariable x"],
neuper@37991
  1386
	   ("Biegelinie", ["vonMomentenlinieZu","Biegelinien"],
neuper@37906
  1387
	    ["Biegelinien", "AusMomentenlinie"]))];
neuper@37906
  1388
moveActiveRoot 1;
neuper@37906
  1389
(*
neuper@37906
  1390
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
neuper@37906
  1391
*)
neuper@37906
  1392
neuper@37906
  1393
neuper@37906
  1394
"----------- 4x4 systems from Biegelinie -------------------------";
neuper@37906
  1395
"----------- 4x4 systems from Biegelinie -------------------------";
neuper@37906
  1396
"----------- 4x4 systems from Biegelinie -------------------------";
neuper@37906
  1397
(*GOON replace this test with 7.70 *)
neuper@37906
  1398
"----- Bsp 7.27";
neuper@37906
  1399
val fmz = ["equalities \
neuper@37906
  1400
	   \[0 = c_4,                           \
neuper@37906
  1401
	   \ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),                                       \
neuper@37906
  1402
	   \ 0 = c_2,                                           \
neuper@37906
  1403
	   \ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]", 
neuper@37906
  1404
	   "solveForVars [c, c_2, c_3, c_4]", "solution L"];
neuper@37906
  1405
val (dI',pI',mI') =
neuper@37991
  1406
  ("Biegelinie",["normalize", "4x4", "linear", "system"],
neuper@37906
  1407
   ["EqSystem","normalize","4x4"]);
neuper@37906
  1408
val p = e_pos'; val c = []; 
neuper@37906
  1409
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
  1410
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1411
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1412
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1413
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
  1414
"------------------------------------------- Apply_Method...";
neuper@37906
  1415
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1416
"[0 = c_4,                                          \
neuper@37906
  1417
\ 0 = c_4 + L * c_3 +\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),                                   \
neuper@37906
  1418
\ 0 = c_2,                                          \
neuper@37906
  1419
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]";
neuper@37906
  1420
(*vvvWN080102 Exception- Match raised 
neuper@37906
  1421
  since assod Rewrite .. Rewrite'_Set
neuper@37906
  1422
"------------------------------------------- simplify_System_parenthesized...";
neuper@37906
  1423
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1424
"[0 = c_4,                                  \
neuper@37906
  1425
\ 0 = -1 * q_0 * L ^^^ 4 / (-24 * EI) +     \
neuper@37906
  1426
\     (4 * L ^^^ 3 * c / (-24 * EI) +       \
neuper@37906
  1427
\     (12 * L ^^^ 2 * c_2 / (-24 * EI) +    \
neuper@37906
  1428
\     (L * c_3 + c_4))),                    \
neuper@37906
  1429
\ 0 = c_2,                                  \
neuper@37906
  1430
\ 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2)]";
neuper@37906
  1431
(*? "(4 * L ^^^ 3 / (-24 * EI) * c" statt "(4 * L ^^^ 3 * c / (-24 * EI)" ?*)
neuper@37906
  1432
"------------------------------------------- isolate_bdvs...";
neuper@37906
  1433
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1434
"[c_4 = 0,\
neuper@37906
  1435
\ c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 4 / (-24 * EI)) + -1 * (4 * L ^^^ 3 * c / (-24 * EI)) + -1 * (12 * L ^^^ 2 * c_2 / (-24 * EI)) + -1 * (L * c_3),\
neuper@37906
  1436
\ c_2 = 0, \
neuper@37906
  1437
\ c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2) + -1 * (L * c)]";
neuper@37906
  1438
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
  1439
neuper@37906
  1440
---------------------------------------------------------------------*)
neuper@37906
  1441
neuper@37906
  1442
(*
neuper@37906
  1443
use"../smltest/IsacKnowledge/eqsystem.sml";
neuper@37906
  1444
use"eqsystem.sml";
neuper@37906
  1445
*)