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