test/Tools/isac/Knowledge/biegelinie.sml
author Walther Neuper <neuper@ist.tugraz.at>
Tue, 28 Sep 2010 09:06:56 +0200
branchisac-update-Isa09-2
changeset 38031 460c24a6a6ba
parent 38014 3e11e3c2dc42
child 38045 ac0f6fd8d129
permissions -rw-r--r--
tuned error and writeln

# raise error --> error
# writeln in atomtyp, atomty, atomt and xmlsrc
neuper@37906
     1
(* tests on biegelinie
neuper@37906
     2
   author: Walther Neuper 050826
neuper@37906
     3
   (c) due to copyright terms
neuper@37906
     4
neuper@37906
     5
use"../smltest/IsacKnowledge/biegelinie.sml";
neuper@37906
     6
use"biegelinie.sml";
neuper@37906
     7
*)
neuper@37906
     8
val thy = Biegelinie.thy;
neuper@37906
     9
neuper@37906
    10
"-----------------------------------------------------------------";
neuper@37906
    11
"table of contents -----------------------------------------------";
neuper@37906
    12
"-----------------------------------------------------------------";
neuper@37906
    13
"----------- the rules -------------------------------------------";
neuper@37906
    14
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
neuper@37906
    15
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
neuper@37906
    16
"----------- simplify_leaf for this script -----------------------";
neuper@37906
    17
"----------- Bsp 7.27 me -----------------------------------------";
neuper@37906
    18
"----------- Bsp 7.27 autoCalculate ------------------------------";
neuper@37906
    19
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
neuper@37906
    20
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
neuper@37906
    21
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
neuper@37906
    22
"----------- method [Biegelinien,setzeRandbedingungenEin]FAST ----";
neuper@37906
    23
"----------- IntegrierenUndKonstanteBestimmen2: Bsp.7.70. --------";
neuper@37906
    24
"----------- investigate normalforms in biegelinien --------------";
neuper@37906
    25
"-----------------------------------------------------------------";
neuper@37906
    26
"-----------------------------------------------------------------";
neuper@37906
    27
"-----------------------------------------------------------------";
neuper@37906
    28
neuper@37906
    29
neuper@37906
    30
"----------- the rules -------------------------------------------";
neuper@37906
    31
"----------- the rules -------------------------------------------";
neuper@37906
    32
"----------- the rules -------------------------------------------";
neuper@37924
    33
fun str2term str = (term_of o the o (parse Biegelinie.thy)) str;
neuper@37934
    34
fun term2s t = Syntax.string_of_term (thy2ctxt' "Biegelinie") t;
neuper@37906
    35
fun rewrit thm str = 
neuper@37906
    36
    fst (the (rewrite_ Biegelinie.thy tless_true e_rls true thm str));
neuper@37906
    37
neuper@37924
    38
val t = rewrit Belastung_Querkraft (str2term "- q_ x = - q_0"); term2s t;
neuper@37906
    39
if term2s t = "Q' x = - q_0" then ()
neuper@38031
    40
else error  "/biegelinie.sml: Belastung_Querkraft";
neuper@37906
    41
neuper@37924
    42
val t = rewrit Querkraft_Moment (str2term "Q x = - q_0 * x + c"); term2s t;
neuper@37906
    43
if term2s t = "M_b' x = - q_0 * x + c" then ()
neuper@38031
    44
else error  "/biegelinie.sml: Querkraft_Moment";
neuper@37906
    45
neuper@37924
    46
val t = rewrit Moment_Neigung (str2term "M_b x = -q_0 * x^^^2/2 + q_0/2 *L*x");
neuper@37906
    47
    term2s t;
neuper@37906
    48
if term2s t = "- EI * y'' x = - q_0 * x ^^^ 2 / 2 + q_0 / 2 * L * x" then ()
neuper@38031
    49
else error  "biegelinie.sml: Moment_Neigung";
neuper@37906
    50
neuper@37906
    51
neuper@37906
    52
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
neuper@37906
    53
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
neuper@37906
    54
"----------- Script [IntegrierenUndKonstanteBestimmen] -----------";
neuper@37906
    55
val str =
neuper@37906
    56
"Script BiegelinieScript                                                  \
neuper@37991
    57
\(l_::real) (q__::real) (v_v::real) (b_::real=>real)                        \
neuper@37906
    58
\(rb_::bool list) (rm_::bool list) =                                      \
neuper@37981
    59
\  (let q___ = Take (q_ v_v = q__);                                           \
neuper@37906
    60
\       q___ = ((Rewrite sym_real_minus_eq_cancel True) @@                 \
neuper@37906
    61
\              (Rewrite Belastung_Querkraft True)) q___;                   \
neuper@37906
    62
\      (Q__:: bool) =                                                     \
neuper@37906
    63
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
    64
\                          [diff,integration,named])                      \
neuper@37984
    65
\                          [REAL (rhs q___), REAL v_v, real_REAL Q]);    \
neuper@37906
    66
\       Q__ = Rewrite Querkraft_Moment True Q__;                          \
neuper@37906
    67
\      (M__::bool) =                                                      \
neuper@37906
    68
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
    69
\                          [diff,integration,named])                      \
neuper@37984
    70
\                          [REAL (rhs Q__), REAL v_v, real_REAL M_b]);  \
neuper@37906
    71
\       e1__ = nth_ 1 rm_;                                                \
neuper@37906
    72
\      (x1__::real) = argument_in (lhs e1__);                             \
neuper@37906
    73
\      (M1__::bool) = (Substitute [v_ = x1__]) M__;                       \
neuper@37906
    74
\       M1__        = (Substitute [e1__]) M1__ ;                          \
neuper@37906
    75
\       M2__ = Take M__;                                                  "^
neuper@37906
    76
(*without this Take 'Substitute [v_ = x2__]' takes _last formula from ctree_*)
neuper@37906
    77
"       e2__ = nth_ 2 rm_;                                                \
neuper@37906
    78
\      (x2__::real) = argument_in (lhs e2__);                             \
neuper@37906
    79
\      (M2__::bool) = ((Substitute [v_ = x2__]) @@                        \
neuper@37906
    80
\                      (Substitute [e2__])) M2__;                         \
neuper@37906
    81
\      (c_1_2__::bool list) =                                             \
neuper@37906
    82
\             (SubProblem (Biegelinie_,[linear,system],[no_met])          \
neuper@37906
    83
\                          [booll_ [M1__, M2__], reall [c,c_2]]);         \
neuper@37906
    84
\       M__ = Take  M__;                                                  \
neuper@37906
    85
\       M__ = ((Substitute c_1_2__) @@                                    \
neuper@37906
    86
\              (Try (Rewrite_Set_Inst [(bdv_1, c),(bdv_2, c_2)]\
neuper@37906
    87
\                                   simplify_System False)) @@ \
neuper@37906
    88
\              (Rewrite Moment_Neigung False) @@ \
neuper@37906
    89
\              (Rewrite make_fun_explicit False)) M__;                    "^
neuper@37906
    90
(*----------------------- and the same once more ------------------------*)
neuper@37906
    91
"      (N__:: bool) =                                                     \
neuper@37906
    92
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
    93
\                          [diff,integration,named])                      \
neuper@37984
    94
\                          [REAL (rhs M__), REAL v_v, real_REAL y']);   \
neuper@37906
    95
\      (B__:: bool) =                                                     \
neuper@37906
    96
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
    97
\                          [diff,integration,named])                      \
neuper@37984
    98
\                          [REAL (rhs N__), REAL v_v, real_REAL y]);    \
neuper@37906
    99
\       e1__ = nth_ 1 rb_;                                                \
neuper@37906
   100
\      (x1__::real) = argument_in (lhs e1__);                             \
neuper@37906
   101
\      (B1__::bool) = (Substitute [v_ = x1__]) B__;                       \
neuper@37906
   102
\       B1__        = (Substitute [e1__]) B1__ ;                          \
neuper@37906
   103
\       B2__ = Take B__;                                                  \
neuper@37906
   104
\       e2__ = nth_ 2 rb_;                                                \
neuper@37906
   105
\      (x2__::real) = argument_in (lhs e2__);                             \
neuper@37906
   106
\      (B2__::bool) = ((Substitute [v_ = x2__]) @@                        \
neuper@37906
   107
\                      (Substitute [e2__])) B2__;                         \
neuper@37906
   108
\      (c_1_2__::bool list) =                                             \
neuper@37906
   109
\             (SubProblem (Biegelinie_,[linear,system],[no_met])          \
neuper@37906
   110
\                          [booll_ [B1__, B2__], reall [c,c_2]]);         \
neuper@37906
   111
\       B__ = Take  B__;                                                  \
neuper@37906
   112
\       B__ = ((Substitute c_1_2__) @@                                    \
neuper@37906
   113
\              (Rewrite_Set_Inst [(bdv, x)] make_ratpoly_in False)) B__   \
neuper@37906
   114
\ in B__)"
neuper@37906
   115
;
neuper@37906
   116
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   117
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   118
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   119
atomty sc;
neuper@37906
   120
atomt sc;
neuper@37906
   121
neuper@37906
   122
(* use"../smltest/IsacKnowledge/biegelinie.sml";
neuper@37906
   123
   *)
neuper@37906
   124
neuper@37906
   125
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
neuper@37906
   126
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
neuper@37906
   127
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
neuper@37924
   128
val t = str2term "M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2";
neuper@37906
   129
val t = rewrit Moment_Neigung t; term2s t;
neuper@37906
   130
(*was "EI * ?y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2"
neuper@37906
   131
           ### before declaring "y''" as a constant *)
neuper@37906
   132
val t = rewrit make_fun_explicit t; term2s t;
neuper@37906
   133
neuper@37906
   134
neuper@37906
   135
"----------- simplify_leaf for this script -----------------------";
neuper@37906
   136
"----------- simplify_leaf for this script -----------------------";
neuper@37906
   137
"----------- simplify_leaf for this script -----------------------";
neuper@37906
   138
val srls = Rls {id="srls_IntegrierenUnd..", 
neuper@37906
   139
		preconds = [], 
neuper@37906
   140
		rew_ord = ("termlessI",termlessI), 
neuper@37906
   141
		erls = append_rls "erls_in_srls_IntegrierenUnd.." e_rls
neuper@37906
   142
				  [(*for asm in nth_Cons_ ...*)
neuper@37906
   143
				   Calc ("op <",eval_equ "#less_"),
neuper@37906
   144
				   (*2nd nth_Cons_ pushes n+-1 into asms*)
neuper@38014
   145
				   Calc("Groups.plus_class.plus", eval_binop "#add_")
neuper@37906
   146
				   ], 
neuper@37906
   147
		srls = Erls, calc = [],
neuper@37970
   148
		rules = [Thm ("nth_Cons_",num_str @{thm nth_Cons_}),
neuper@38014
   149
			 Calc("Groups.plus_class.plus", eval_binop "#add_"),
neuper@37970
   150
			 Thm ("nth_Nil_",num_str @{thm nth_Nil_}),
neuper@37906
   151
			 Calc("Tools.lhs", eval_lhs"eval_lhs_"),
neuper@37906
   152
			 Calc("Tools.rhs", eval_rhs"eval_rhs_"),
neuper@37906
   153
			 Calc("Atools.argument'_in",
neuper@37906
   154
			      eval_argument_in "Atools.argument'_in")
neuper@37906
   155
			 ],
neuper@37906
   156
		scr = EmptyScr};
neuper@37906
   157
val rm_ = str2term"[M_b 0 = 0, M_b L = 0]";
neuper@37906
   158
val M__ = str2term"M_b x = -1 * x ^^^ 2 / 2 + x * c + c_2";
neuper@37926
   159
val SOME (e1__,_) = 
neuper@37906
   160
    rewrite_set_ thy false srls 
neuper@37906
   161
		 (str2term"(nth_::[real,bool list]=>bool) 1 " $ rm_);
neuper@37906
   162
if term2str e1__ = "M_b 0 = 0" then ()
neuper@38031
   163
else error "biegelinie.sml simplify nth_ 1 rm_";
neuper@37906
   164
neuper@37926
   165
val SOME (x1__,_) = 
neuper@37906
   166
    rewrite_set_ thy false srls 
neuper@37906
   167
		 (str2term"argument_in (lhs (M_b 0 = 0))");
neuper@37906
   168
if term2str x1__ = "0" then ()
neuper@38031
   169
else error "biegelinie.sml simplify argument_in (lhs (M_b 0 = 0)";
neuper@37906
   170
neuper@37906
   171
trace_rewrite:=true;
neuper@37906
   172
trace_rewrite:=false;
neuper@37906
   173
neuper@37906
   174
neuper@37906
   175
neuper@37906
   176
"----------- Bsp 7.27 me -----------------------------------------";
neuper@37906
   177
"----------- Bsp 7.27 me -----------------------------------------";
neuper@37906
   178
"----------- Bsp 7.27 me -----------------------------------------";
neuper@37906
   179
val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
   180
	   "RandbedingungenBiegung [y 0 = 0, y L = 0]",
neuper@37906
   181
	   "RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
neuper@37906
   182
	   "FunktionsVariable x"];
neuper@37906
   183
val (dI',pI',mI') =
neuper@37991
   184
  ("Biegelinie",["MomentBestimmte","Biegelinien"],
neuper@37906
   185
   ["IntegrierenUndKonstanteBestimmen"]);
neuper@37906
   186
val p = e_pos'; val c = [];
neuper@37906
   187
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   188
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   189
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   190
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   191
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   192
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   193
neuper@37924
   194
val pits = get_obj g_pbl pt (fst p);writeln (itms2str_ ctxt pits);
neuper@37924
   195
(*if itms2str_ ctxt pits = ... all 5 model-items*)
neuper@37924
   196
val mits = get_obj g_met pt (fst p); writeln (itms2str_ ctxt mits);
neuper@37924
   197
if itms2str_ ctxt mits = "[]" then ()
neuper@38031
   198
else error  "biegelinie.sml: Bsp 7.27 #2";
neuper@37906
   199
neuper@37906
   200
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   201
case nxt of (_,Add_Given "FunktionsVariable x") => ()
neuper@38031
   202
	  | _ => error  "biegelinie.sml: Bsp 7.27 #4a";
neuper@37906
   203
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37924
   204
val mits = get_obj g_met pt (fst p);writeln (itms2str_ ctxt mits);
neuper@37924
   205
(*if itms2str_ ctxt mits = ... all 6 guard-items*)
neuper@37906
   206
case nxt of (_, Apply_Method ["IntegrierenUndKonstanteBestimmen"]) => ()
neuper@38031
   207
	  | _ => error  "biegelinie.sml: Bsp 7.27 #4b";
neuper@37906
   208
neuper@37906
   209
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   210
case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
neuper@38031
   211
	  | _ => error  "biegelinie.sml: Bsp 7.27 #4c";
neuper@37906
   212
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   213
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   214
neuper@37906
   215
case nxt of 
neuper@37991
   216
    (_,Subproblem ("Biegelinie", ["named", "integrate", "function"])) => ()
neuper@38031
   217
	  | _ => error  "biegelinie.sml: Bsp 7.27 #4c";
neuper@37906
   218
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   219
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   220
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   221
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   222
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
neuper@38031
   223
	  | _ => error  "biegelinie.sml: Bsp 7.27 #5";
neuper@37906
   224
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   225
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   226
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   227
case nxt of 
neuper@37906
   228
    ("Check_Postcond", Check_Postcond ["named", "integrate", "function"]) => ()
neuper@38031
   229
	  | _ => error  "biegelinie.sml: Bsp 7.27 #5a";
neuper@37906
   230
neuper@37906
   231
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   232
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   233
case nxt of 
neuper@37991
   234
    (_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
neuper@38031
   235
  | _ => error "biegelinie.sml: Bsp 7.27 #5b";
neuper@37906
   236
neuper@37906
   237
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   238
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   239
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   240
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   241
case nxt of (_, Apply_Method ["diff", "integration","named"]) => ()
neuper@38031
   242
	  | _ => error  "biegelinie.sml: Bsp 7.27 #6";
neuper@37906
   243
neuper@37906
   244
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   245
val (p,_,f,nxt,_,pt) = me nxt p c pt(*nxt = Check_Postcond ["named", "int..*);
neuper@37906
   246
f2str f;
neuper@37906
   247
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   248
case nxt of (_, Substitute ["x = 0"]) => ()
neuper@38031
   249
	  | _ => error  "biegelinie.sml: Bsp 7.27 #7";
neuper@37906
   250
neuper@37906
   251
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   252
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   253
if f2str f = "0 = c_2 + c * 0 + -1 * q_0 / 2 * 0 ^^^ 2" then ()
neuper@38031
   254
else error  "biegelinie.sml: Bsp 7.27 #8";
neuper@37906
   255
neuper@37906
   256
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   257
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   258
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   259
if f2str f = "0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2" then ()
neuper@38031
   260
else error  "biegelinie.sml: Bsp 7.27 #9";
neuper@37906
   261
neuper@37991
   262
(*val nxt = (+, Subproblem ("Biegelinie", ["normalize", ..lin..sys]))*)
neuper@37906
   263
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   264
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   265
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   266
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   267
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   268
case nxt of (_, Apply_Method ["EqSystem", "normalize", "2x2"]) => ()
neuper@38031
   269
	  | _ => error  "biegelinie.sml: Bsp 7.27 #10";
neuper@37906
   270
neuper@37906
   271
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   272
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   273
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   274
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   275
(*val nxt = Subproblem ["triangular", "2x2", "linear", "system"]*)
neuper@37906
   276
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   277
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   278
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   279
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   280
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   281
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
neuper@38031
   282
	  | _ => error  "biegelinie.sml: Bsp 7.27 #11";
neuper@37906
   283
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   284
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   285
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   286
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   287
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   288
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   289
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   290
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   291
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   292
case nxt of (_, Check_Postcond ["normalize", "2x2", "linear", "system"]) => ()
neuper@38031
   293
	  | _ => error  "biegelinie.sml: Bsp 7.27 #12";
neuper@37906
   294
neuper@37906
   295
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   296
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   297
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   298
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   299
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   300
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   301
case nxt of
neuper@37991
   302
    (_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
neuper@38031
   303
	  | _ => error  "biegelinie.sml: Bsp 7.27 #13";
neuper@37906
   304
neuper@37906
   305
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   306
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   307
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   308
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   309
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
neuper@38031
   310
	  | _ => error  "biegelinie.sml: Bsp 7.27 #14";
neuper@37906
   311
neuper@37906
   312
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   313
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   314
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   315
case nxt of
neuper@37906
   316
    (_, Check_Postcond ["named", "integrate", "function"]) => ()
neuper@38031
   317
  | _ => error  "biegelinie.sml: Bsp 7.27 #15";
neuper@37906
   318
neuper@37906
   319
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   320
if f2str f =
neuper@37906
   321
  "y' x = c + 1 / (-1 * EI) * (L * q_0 / 4 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)"
neuper@38031
   322
then () else error  "biegelinie.sml: Bsp 7.27 #16 f";
neuper@37906
   323
case nxt of
neuper@37991
   324
    (_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
neuper@38031
   325
	  | _ => error  "biegelinie.sml: Bsp 7.27 #16";
neuper@37906
   326
neuper@37906
   327
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   328
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   329
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   330
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   331
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
neuper@38031
   332
	  | _ => error  "biegelinie.sml: Bsp 7.27 #17";
neuper@37906
   333
neuper@37906
   334
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   335
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   336
if f2str f = 
neuper@37906
   337
   "y x =\nc_2 + c * x +\n\
neuper@37906
   338
   \1 / (-1 * EI) * (L * q_0 / 12 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)"
neuper@38031
   339
then () else error  "biegelinie.sml: Bsp 7.27 #18 f";
neuper@37906
   340
case nxt of
neuper@37906
   341
    (_, Check_Postcond ["named", "integrate", "function"]) => ()
neuper@38031
   342
  | _ => error  "biegelinie.sml: Bsp 7.27 #18";
neuper@37906
   343
neuper@37906
   344
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   345
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   346
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   347
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   348
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   349
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   350
case nxt of
neuper@37906
   351
    (_, Subproblem
neuper@37991
   352
            ("Biegelinie", ["normalize", "2x2", "linear", "system"])) => ()
neuper@38031
   353
  | _ => error  "biegelinie.sml: Bsp 7.27 #19";
neuper@37906
   354
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   355
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   356
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   357
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   358
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   359
case nxt of (_, Apply_Method ["EqSystem", "normalize", "2x2"]) => ()
neuper@38031
   360
	  | _ => error  "biegelinie.sml: Bsp 7.27 #20";
neuper@37906
   361
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   362
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   363
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   364
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   365
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   366
if f2str f = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (-24 * EI)]" then ()
neuper@38031
   367
else error  "biegelinie.sml: Bsp 7.27 #21 f";
neuper@37906
   368
case nxt of
neuper@37906
   369
    (_, Subproblem
neuper@37991
   370
            ("Biegelinie", ["triangular", "2x2", "linear", "system"])) =>()
neuper@38031
   371
  | _ => error  "biegelinie.sml: Bsp 7.27 #21";
neuper@37906
   372
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   373
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   374
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   375
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   376
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   377
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
neuper@38031
   378
	  | _ => error  "biegelinie.sml: Bsp 7.27 #22";
neuper@37906
   379
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   380
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   381
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   382
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   383
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   384
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   385
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   386
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   387
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   388
case nxt of (_, Check_Postcond ["normalize", "2x2", "linear", "system"]) => ()
neuper@38031
   389
	  | _ => error  "biegelinie.sml: Bsp 7.27 #23";
neuper@37906
   390
neuper@37906
   391
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   392
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   393
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   394
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   395
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   396
if f2str f = 
neuper@37906
   397
"y x =\n-1 * q_0 * L ^^^ 4 / (-24 * EI * L) * x +\n\
neuper@37906
   398
 \(2 * L * q_0 / (-1 * 24 * EI) * x ^^^ 3 +\n\
neuper@37906
   399
 \ -1 * q_0 / (-1 * 24 * EI) * x ^^^ 4)" then ()
neuper@38031
   400
else error  "biegelinie.sml: Bsp 7.27 #24 f";
neuper@37906
   401
case nxt of ("End_Proof'", End_Proof') => ()
neuper@38031
   402
	  | _ => error  "biegelinie.sml: Bsp 7.27 #24";
neuper@37906
   403
neuper@37906
   404
(* use"../smltest/IsacKnowledge/biegelinie.sml";
neuper@37906
   405
   *)
neuper@37906
   406
show_pt pt;
neuper@37906
   407
(*(([], Frm), Problem (Biegelinie.thy, [MomentBestimmte, Biegelinien])),
neuper@37906
   408
(([1], Frm), q_ x = q_0),
neuper@37906
   409
(([1], Res), - q_ x = - q_0),
neuper@37906
   410
(([2], Res), Q' x = - q_0),
neuper@37906
   411
(([3], Pbl), Integrate (- q_0, x)),
neuper@37906
   412
(([3,1], Frm), Q x = Integral - q_0 D x),
neuper@37906
   413
(([3,1], Res), Q x = -1 * q_0 * x + c),
neuper@37906
   414
(([3], Res), Q x = -1 * q_0 * x + c),
neuper@37906
   415
(([4], Res), M_b' x = -1 * q_0 * x + c),
neuper@37906
   416
(([5], Pbl), Integrate (-1 * q_0 * x + c, x)),
neuper@37906
   417
(([5,1], Frm), M_b x = Integral -1 * q_0 * x + c D x),
neuper@37906
   418
(([5,1], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
neuper@37906
   419
(([5], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
neuper@37906
   420
(([6], Res), M_b 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
neuper@37906
   421
(([7], Res), 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
neuper@37906
   422
(([8], Res), M_b L = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
neuper@37906
   423
(([9], Res), 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
neuper@37906
   424
(([10], Pbl), solveSystem [0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2] [c_2]),
neuper@37906
   425
(([10,1], Frm), [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
neuper@37906
   426
 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]),
neuper@37906
   427
(([10,1], Res), [0 = c_2, 0 = -1 * (q_0 * L ^^^ 2) / 2 + (L * c + c_2)]),
neuper@37906
   428
(([10,2], Res), [c_2 = 0, L * c + c_2 = 0 + -1 * (-1 * (q_0 * L ^^^ 2) / 2)]),
neuper@37906
   429
(([10,3], Res), [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]),
neuper@37906
   430
(([10,4], Pbl), solveSystem [L * c + c_2 = q_0 * L ^^^ 2 / 2] [c_2]),
neuper@37906
   431
(([10,4,1], Frm), L * c + c_2 = q_0 * L ^^^ 2 / 2),
neuper@37906
   432
(([10,4,1], Res), L * c + 0 = q_0 * L ^^^ 2 / 2),
neuper@37906
   433
(([10,4,2], Res), L * c = q_0 * L ^^^ 2 / 2),
neuper@37906
   434
(([10,4,3], Res), c = q_0 * L ^^^ 2 / 2 / L),
neuper@37906
   435
(([10,4,4], Res), c = L * q_0 / 2),
neuper@37906
   436
(([10,4,5], Res), [c = L * q_0 / 2, c_2 = 0]),
neuper@37906
   437
(([10,4], Res), [c = L * q_0 / 2, c_2 = 0]),
neuper@37906
   438
(([10], Res), [c = L * q_0 / 2, c_2 = 0]),
neuper@37906
   439
(([11], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * (L * q_0 / 2) + 0),
neuper@37906
   440
(([12], Res), M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
neuper@37906
   441
(([13], Res), EI * y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
neuper@37906
   442
(([14], Res), y'' x = 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2)),
neuper@37906
   443
(([15], Pbl), Integrate (1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2), x)),
neuper@37906
   444
(([15,1], Frm), y' x = Integral 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2) D x),
neuper@37906
   445
(([15,1], Res), y' x =
neuper@37906
   446
(Integral L * q_0 * x / 2 D x + Integral -1 * q_0 * x ^^^ 2 / 2 D x) / EI +
neuper@37906
   447
c)]*)
neuper@37906
   448
neuper@37906
   449
"----------- Bsp 7.27 autoCalculate ------------------------------";
neuper@37906
   450
"----------- Bsp 7.27 autoCalculate ------------------------------";
neuper@37906
   451
"----------- Bsp 7.27 autoCalculate ------------------------------";
neuper@37906
   452
 states:=[];
neuper@37906
   453
 CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
   454
	     "RandbedingungenBiegung [y 0 = 0, y L = 0]",
neuper@37906
   455
	     "RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
neuper@37906
   456
	     "FunktionsVariable x"],
neuper@37991
   457
	    ("Biegelinie",
neuper@37906
   458
	     ["MomentBestimmte","Biegelinien"],
neuper@37906
   459
	     ["IntegrierenUndKonstanteBestimmen"]))];
neuper@37906
   460
 moveActiveRoot 1;
neuper@37906
   461
 autoCalculate 1 CompleteCalcHead; 
neuper@37906
   462
neuper@37906
   463
 fetchProposedTactic 1 (*->"Apply_Method" IntegrierenUndKonstanteBestimmen*);
neuper@37906
   464
(*
neuper@37926
   465
> val (_,Apply_Method' (_, NONE, ScrState is), _)::_ = tacis;
neuper@37906
   466
> is = e_scrstate;
neuper@37906
   467
val it = true : bool
neuper@37906
   468
*)
neuper@37906
   469
 autoCalculate 1 (Step 1) (*->GENERATED ([1], Frm)*);
neuper@37906
   470
 val ((pt,_),_) = get_calc 1;
neuper@37906
   471
 case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
neuper@38031
   472
	  | _ => error  "biegelinie.sml: Bsp 7.27 autoCalculate#4c";
neuper@37906
   473
neuper@37906
   474
 autoCalculate 1 CompleteCalc;  
neuper@37906
   475
val ((pt,p),_) = get_calc 1;
neuper@37906
   476
if p = ([], Res) andalso length (children pt) = 23 andalso 
neuper@37906
   477
term2str (get_obj g_res pt (fst p)) = 
neuper@37906
   478
"y x =\n-1 * q_0 * L ^^^ 4 / (-24 * EI * L) * x +\n(2 * L * q_0 / (-1 * 24 * EI) * x ^^^ 3 +\n -1 * q_0 / (-1 * 24 * EI) * x ^^^ 4)"
neuper@38031
   479
then () else error "biegelinie.sml: 1st biegelin.7.27 changed";
neuper@37906
   480
neuper@37906
   481
 val (unc, del, gen) = (([],Pbl), ([],Pbl), ([],Res));
neuper@37906
   482
 getFormulaeFromTo 1 unc gen 1 (*only level 1*) false;
neuper@37906
   483
 show_pt pt;
neuper@37906
   484
neuper@37906
   485
(*check all formulae for getTactic*)
neuper@37906
   486
 getTactic 1 ([1],Frm) (*see smltest/../reverse-rew.sml*);
neuper@37906
   487
 getTactic 1 ([5],Res) (*tac2xml: not impl. for Substitute ["x = 0"]*);
neuper@37906
   488
 getTactic 1 ([6],Res) (* ---"---                      ["M_b 0 = 0"]*);
neuper@37906
   489
 getTactic 1 ([7],Res) (*!!!!!Take!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*);
neuper@37906
   490
 getTactic 1 ([8],Frm) (*tac2xml: not impl. for Substitute ["x = L"]*);
neuper@37906
   491
 getTactic 1 ([8],Res) (* ---"---                      ["M_b L = 0"]*);
neuper@37906
   492
neuper@37906
   493
neuper@37906
   494
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
neuper@37906
   495
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
neuper@37906
   496
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
neuper@37906
   497
val fmz = 
neuper@37906
   498
    ["Streckenlast q_0","FunktionsVariable x",
neuper@37906
   499
     "Funktionen [Q x = c + -1 * q_0 * x, \
neuper@37906
   500
     \M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
neuper@37906
   501
     \ y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
neuper@37906
   502
     \ y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]"];
neuper@37991
   503
val (dI',pI',mI') = ("Biegelinie", ["vonBelastungZu","Biegelinien"],
neuper@37906
   504
		     ["Biegelinien","ausBelastung"]);
neuper@37906
   505
val p = e_pos'; val c = [];
neuper@37906
   506
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   507
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   508
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   509
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   510
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   511
if nxt = ("Apply_Method", Apply_Method ["Biegelinien", "ausBelastung"])
neuper@38031
   512
then () else error "biegelinie.sml met2 b";
neuper@37906
   513
neuper@37906
   514
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =   "q_ x = q_0";
neuper@37906
   515
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "- q_ x = - q_0";
neuper@37906
   516
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =  "Q' x = - q_0";
neuper@37906
   517
case nxt of (_, Subproblem (_, ["named", "integrate", "function"])) => ()
neuper@38031
   518
| _ => error "biegelinie.sml met2 c";
neuper@37906
   519
neuper@37906
   520
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   521
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   522
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   523
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   524
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   525
neuper@37906
   526
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
neuper@37906
   527
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
neuper@37906
   528
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b' x = c + -1 * q_0 * x";
neuper@37906
   529
case nxt of (_,Subproblem (_, ["named", "integrate", "function"])) => ()
neuper@38031
   530
| _ => error "biegelinie.sml met2 d";
neuper@37906
   531
neuper@37906
   532
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   533
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   534
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   535
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   536
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = 
neuper@37906
   537
		   "M_b x = Integral c + -1 * q_0 * x D x";
neuper@37906
   538
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = 
neuper@37906
   539
		   "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
   540
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   541
		   "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
   542
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   543
		   "- EI * y'' x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
   544
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   545
		   "y'' x = 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)";
neuper@37906
   546
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   547
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   548
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   549
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   550
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   551
    "y' x = Integral 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
neuper@37906
   552
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   553
"y' x = Integral 1 / (-1 * EI) * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
neuper@37906
   554
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   555
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
neuper@37906
   556
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   557
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
neuper@37906
   558
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   559
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   560
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   561
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   562
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   563
"y x =\nIntegral c_3 +\n         1 / (-1 * EI) *\n         (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3) D x";
neuper@37906
   564
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   565
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
neuper@37906
   566
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   567
   "y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
neuper@37906
   568
val (p,_,f,nxt,_,pt) = me nxt p c pt; 
neuper@37906
   569
if nxt = ("End_Proof'", End_Proof') andalso f2str f =
neuper@37906
   570
   "[Q x = c + -1 * q_0 * x, M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\n y' x =\n c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\n y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]" then ()
neuper@38031
   571
else error "biegelinie.sml met2 e";
neuper@37906
   572
neuper@37906
   573
neuper@37906
   574
neuper@37906
   575
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
neuper@37906
   576
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
neuper@37906
   577
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
neuper@37906
   578
val str =
neuper@37906
   579
"Script Function2Equality (fun_::bool) (sub_::bool) =\
neuper@37906
   580
\(equ___::bool)"
neuper@37906
   581
;
neuper@37906
   582
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   583
val str =
neuper@37906
   584
"Script Function2Equality (fun_::bool) (sub_::bool) =\
neuper@37981
   585
\ (let v_v = argument_in (lhs fun_)\
neuper@37906
   586
\ in (equ___::bool))"
neuper@37906
   587
;
neuper@37906
   588
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   589
val str =
neuper@37906
   590
"Script Function2Equality (fun_::bool) (sub_::bool) =\
neuper@37981
   591
\ (let v_v = argument_in (lhs fun_);\
neuper@37906
   592
\     (equ_) = (Substitute [sub_]) fun_\
neuper@37906
   593
\ in (equ_::bool))"
neuper@37906
   594
;
neuper@37906
   595
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   596
val str =
neuper@37906
   597
"Script Function2Equality (fun_::bool) (sub_::bool) =\
neuper@37981
   598
\ (let v_v = argument_in (lhs fun_);\
neuper@37906
   599
\      equ_ = (Substitute [sub_]) fun_\
neuper@37981
   600
\ in (Rewrite_Set_Inst [(bdv, v_v)] make_ratpoly_in False) equ_)"
neuper@37906
   601
;
neuper@37906
   602
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   603
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   604
val str =
neuper@37906
   605
(*(M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) (M_b L = 0) -->
neuper@37906
   606
       0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2*)
neuper@37906
   607
"Script Function2Equality (fun_::bool) (sub_::bool) =\
neuper@37906
   608
\ (let bdv_ = argument_in (lhs fun_);\
neuper@37906
   609
\      val_ = argument_in (lhs sub_);\
neuper@37906
   610
\      equ_ = (Substitute [bdv_ = val_]) fun_;\
neuper@37906
   611
\      equ_ = (Substitute [sub_]) fun_\
neuper@37981
   612
\ in (Rewrite_Set_Inst [(bdv_, v_v)] make_ratpoly_in False) equ_)"
neuper@37906
   613
;
neuper@37906
   614
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   615
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   616
atomty sc;
neuper@37906
   617
neuper@37906
   618
val fmz = ["functionEq (M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)", 
neuper@37906
   619
	   "substitution (M_b L = 0)", 
neuper@37906
   620
	   "equality equ___"];
neuper@37991
   621
val (dI',pI',mI') = ("Biegelinie", ["makeFunctionTo","equation"],
neuper@37906
   622
		     ["Equation","fromFunction"]);
neuper@37906
   623
val p = e_pos'; val c = [];
neuper@37906
   624
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   625
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   626
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   627
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   628
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   629
neuper@37906
   630
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = 
neuper@37906
   631
			"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
   632
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = 
neuper@37906
   633
                        "M_b L = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
neuper@37906
   634
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = 
neuper@37906
   635
			"0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
neuper@37906
   636
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   637
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   638
if nxt = ("End_Proof'", End_Proof') andalso
neuper@37906
   639
(*   f2str f = "0 = c_2 + L * c + -1 * q_0 / 2 * L ^^^ 2"
neuper@37906
   640
CHANGE NOT considered, already on leave*)
neuper@37906
   641
   f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2"
neuper@38031
   642
then () else error "biegelinie.sml: SubProblem (_,[setzeRandbed";
neuper@37906
   643
neuper@37906
   644
neuper@37906
   645
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
neuper@37906
   646
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
neuper@37906
   647
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
neuper@37906
   648
"----- check the scripts syntax";
neuper@37906
   649
val str =
neuper@37906
   650
"Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
neuper@37906
   651
\ (let b1 = Take (nth_ 1 beds_)\
neuper@37906
   652
\ in (equs_::bool list))"
neuper@37906
   653
;
neuper@37906
   654
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   655
val str =
neuper@37906
   656
"Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
neuper@37906
   657
\ (let b1_ = Take (nth_ 1 beds_);   \
neuper@37906
   658
\      fs_ = filter (sameFunId (lhs b1_)) funs_;  \
neuper@37906
   659
\      f1_ = hd fs_             \
neuper@37906
   660
\ in (equs_::bool list))"
neuper@37906
   661
;
neuper@37906
   662
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   663
neuper@37906
   664
val ttt = str2term "sameFunId (lhs b1_) fun___"; atomty ttt;
neuper@37906
   665
val ttt = str2term "filter"; atomty ttt;
neuper@37906
   666
val ttt = str2term "filter::[real => bool, real list] => real list";atomty ttt;
neuper@37906
   667
val ttt = str2term "filter::[bool => bool, bool list] => bool list";
neuper@37906
   668
val ttt = str2term "filter (sameFunId (lhs b1_)) funs_"; atomty ttt;
neuper@37906
   669
neuper@37906
   670
val str =
neuper@37906
   671
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
neuper@37906
   672
\ (let beds_ = rev beds_;                                       \
neuper@37906
   673
\      b1_ = Take (nth_ 1 beds_);                               \
neuper@37906
   674
\      fs_ = filter (sameFunId (lhs b1_)) funs_;              \
neuper@37906
   675
\      f1_ = hd fs_                                           \
neuper@37906
   676
\ in (equs_::bool list))"
neuper@37906
   677
;
neuper@37906
   678
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   679
val str =
neuper@37906
   680
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
neuper@37906
   681
\ (let b1_ = Take (nth_ 1 rb_);                               \
neuper@37906
   682
\      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
neuper@37906
   683
\      (equ_::bool) =                                               \
neuper@37906
   684
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   685
\                          [Equation,fromFunction])         \
neuper@37984
   686
\                          [BOOL (hd fs_), BOOL b1_])                    \
neuper@37906
   687
\ in [equ_])"
neuper@37906
   688
;
neuper@37906
   689
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   690
val str =
neuper@37906
   691
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
neuper@37906
   692
\ (let b1_ = Take (nth_ 1 rb_);                               \
neuper@37906
   693
\      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
neuper@37906
   694
\      (e1_::bool) =                                               \
neuper@37906
   695
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   696
\                          [Equation,fromFunction])         \
neuper@37984
   697
\                          [BOOL (hd fs_), BOOL b1_]);                    \
neuper@37906
   698
\      b2_ = Take (nth_ 2 rb_);                               \
neuper@37906
   699
\      fs_ = filter (sameFunId (lhs b2_)) funs_;                \
neuper@37906
   700
\      (e2_::bool) =                                               \
neuper@37906
   701
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   702
\                          [Equation,fromFunction])         \
neuper@37984
   703
\                          [BOOL (hd fs_), BOOL b2_])                    \
neuper@37906
   704
\ in [e1_,e1_])"
neuper@37906
   705
;
neuper@37906
   706
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   707
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   708
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   709
atomty sc;
neuper@37906
   710
neuper@37906
   711
"----- execute script by manual rewriting";
neuper@37906
   712
(*show_types := true;*)
neuper@37906
   713
val funs_ = str2term "funs_::bool list";
neuper@37906
   714
val funs = str2term
neuper@37906
   715
    "[Q x = c + -1 * q_0 * x,\
neuper@37906
   716
    \M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
neuper@37906
   717
    \y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
neuper@37906
   718
    \y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]";
neuper@37906
   719
val rb_ = str2term "rb_::bool list";
neuper@37906
   720
val rb = str2term "[y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]";
neuper@37906
   721
neuper@37906
   722
"--- script expression 1";
neuper@37906
   723
val screxp1_ = str2term "Take (nth_ 1 (rb_::bool list))";
neuper@37906
   724
val screxp1  = subst_atomic [(rb_, rb)] screxp1_; term2str screxp1;
neuper@37926
   725
val SOME (b1,_) = rewrite_set_ Isac.thy false srls2 screxp1; term2str b1;
neuper@37906
   726
if term2str b1 = "Take (y 0 = 0)" then ()
neuper@38031
   727
else error "biegelinie.sml: rew. Bieglie2 --1";
neuper@37906
   728
val b1 = str2term "(y 0 = 0)";
neuper@37906
   729
neuper@37906
   730
"--- script expression 2";
neuper@37906
   731
val screxp2_ = str2term "filter (sameFunId (lhs b1_)) funs_";
neuper@37906
   732
val b1_ = str2term "b1_::bool";
neuper@37906
   733
val screxp2 = subst_atomic [(b1_,b1),(funs_,funs)] screxp2_; term2str screxp2;
neuper@37926
   734
val SOME (fs,_) = rewrite_set_ Isac.thy false srls2 screxp2; term2str fs;
neuper@37906
   735
if term2str fs =  "[y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]" then ()
neuper@38031
   736
else error "biegelinie.sml: rew. Bieglie2 --2";
neuper@37906
   737
neuper@37906
   738
"--- script expression 3";
neuper@37906
   739
val screxp3_ = str2term "SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   740
\                          [Equation,fromFunction])         \
neuper@37984
   741
\                          [BOOL (hd fs_), BOOL b1_]";
neuper@37906
   742
val fs_ = str2term "fs_::bool list";
neuper@37906
   743
val screxp3 = subst_atomic [(fs_,fs),(b1_,b1)] screxp3_; 
neuper@37906
   744
writeln (term2str screxp3);
neuper@37926
   745
val SOME (equ,_) = rewrite_set_ Isac.thy false srls2 screxp3; 
neuper@37984
   746
if term2str equ = "SubProblem\n (Biegelinie_, [makeFunctionTo, equation], [Equation, fromFunction])\n [BOOL\n   (y x =\n    c_4 + c_3 * x +\n    1 / (-1 * EI) *\n    (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)),\n  BOOL (y 0 = 0)]" then ()
neuper@38031
   747
else error "biegelinie.sml: rew. Bieglie2 --3";
neuper@37906
   748
writeln (term2str equ);
neuper@37906
   749
(*SubProblem
neuper@37906
   750
 (Biegelinie_, [makeFunctionTo, equation], [Equation, fromFunction])
neuper@37984
   751
 [BOOL
neuper@37906
   752
   (y x =
neuper@37906
   753
    c_4 + c_3 * x +
neuper@37906
   754
    1 / (-1 * EI) *
neuper@37906
   755
    (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)),
neuper@37984
   756
  BOOL (y 0 = 0)]*)
neuper@37906
   757
show_types := false;
neuper@37906
   758
neuper@37906
   759
neuper@37906
   760
"----- execute script by interpreter: setzeRandbedingungenEin";
neuper@37906
   761
val fmz = ["Funktionen [Q x = c + -1 * q_0 * x,\
neuper@37906
   762
    \M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
neuper@37906
   763
    \y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
neuper@37906
   764
    \y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]",
neuper@37906
   765
	   "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
neuper@37906
   766
	   "Gleichungen equs___"];
neuper@37991
   767
val (dI',pI',mI') = ("Biegelinie", ["setzeRandbedingungen","Biegelinien"],
neuper@37906
   768
		     ["Biegelinien","setzeRandbedingungenEin"]);
neuper@37906
   769
val p = e_pos'; val c = [];
neuper@37906
   770
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   771
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   772
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   773
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   774
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   775
neuper@37906
   776
"--- before 1.subpbl [Equation, fromFunction]";
neuper@37906
   777
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   778
case nxt of (_, Apply_Method ["Biegelinien", "setzeRandbedingungenEin"])=>()
neuper@38031
   779
| _ => error "biegelinie.sml: met setzeRandbed*Ein aa";
neuper@37906
   780
"----- Randbedingung y 0 = 0 in SUBpbl with met [Equation, fromFunction]";
neuper@37906
   781
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   782
if (#1 o (get_obj g_fmz pt)) (fst p) =
neuper@37906
   783
   ["functionEq\n (y x =\n  c_4 + c_3 * x +\n  1 / (-1 * EI) *\n  (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4))",
neuper@37906
   784
      "substitution (y 0 = 0)", "equality equ___"] then ()
neuper@38031
   785
else error "biegelinie.sml met setzeRandbed*Ein bb";
neuper@37906
   786
(writeln o istate2str) (get_istate pt p);
neuper@37906
   787
"--- after 1.subpbl [Equation, fromFunction]";
neuper@37906
   788
neuper@37906
   789
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   790
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   791
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   792
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   793
case nxt of (_, Apply_Method["Equation", "fromFunction"]) => ()
neuper@38031
   794
| _ => error "biegelinie.sml met2 ff";
neuper@37906
   795
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
neuper@37906
   796
   "y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
neuper@37906
   797
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   798
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   799
case nxt of (_, Check_Postcond ["makeFunctionTo", "equation"]) => ()
neuper@38031
   800
| _ => error "biegelinie.sml met2 gg";
neuper@37906
   801
neuper@37906
   802
"--- before 2.subpbl [Equation, fromFunction]";
neuper@37906
   803
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)" ;
neuper@37906
   804
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
neuper@38031
   805
| _ => error "biegelinie.sml met2 hh";
neuper@37906
   806
"--- after 1st arrival at 2.subpbl [Equation, fromFunction]";
neuper@37906
   807
neuper@37906
   808
val (p,_,f,nxt,_,pt) = me nxt p c pt; 
neuper@37906
   809
if (#1 o (get_obj g_fmz pt)) (fst p) =
neuper@37906
   810
    ["functionEq\n (y x =\n  c_4 + c_3 * x +\n  1 / (-1 * EI) *\n  (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4))",
neuper@37906
   811
      "substitution (y L = 0)", "equality equ___"] then ()
neuper@38031
   812
else error "biegelinie.sml metsetzeRandbed*Ein bb ";
neuper@37906
   813
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   814
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   815
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   816
neuper@37906
   817
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   818
case nxt of (_, Apply_Method["Equation", "fromFunction"]) => ()
neuper@38031
   819
| _ => error "biegelinie.sml met2 ii";
neuper@37906
   820
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
neuper@37906
   821
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y L =\nc_4 + c_3 * L +\n1 / (-1 * EI) *\n(c_2 / 2 * L ^^^ 2 + c / 6 * L ^^^ 3 + -1 * q_0 / 24 * L ^^^ 4)";
neuper@37906
   822
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + c_3 * L +\n1 / (-1 * EI) *\n(c_2 / 2 * L ^^^ 2 + c / 6 * L ^^^ 3 + -1 * q_0 / 24 * L ^^^ 4)";
neuper@37906
   823
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + L * c_3 +\n(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI)" ;
neuper@37906
   824
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 =\nc_4 + L * c_3 +\n(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI)";
neuper@37906
   825
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
neuper@38031
   826
| _ => error "biegelinie.sml met2 jj";
neuper@37906
   827
neuper@37906
   828
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   829
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   830
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   831
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   832
case nxt of (_, Apply_Method ["Equation", "fromFunction"])=>()
neuper@38031
   833
| _ => error "biegelinie.sml met2 kk";
neuper@37906
   834
neuper@37906
   835
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2"(*true*);
neuper@37906
   836
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2 + c * 0 + -1 * q_0 / 2 * 0 ^^^ 2";
neuper@37906
   837
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2";
neuper@37906
   838
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2";
neuper@37906
   839
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   840
case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
neuper@38031
   841
| _ => error "biegelinie.sml met2 ll";
neuper@37906
   842
neuper@37906
   843
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   844
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   845
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   846
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   847
case nxt of (_, Apply_Method ["Equation", "fromFunction"])=>()
neuper@38031
   848
| _ => error "biegelinie.sml met2 mm";
neuper@37906
   849
neuper@37906
   850
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
   851
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b L = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
neuper@37906
   852
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
neuper@37906
   853
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
neuper@37906
   854
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
neuper@37906
   855
case nxt of (_, Check_Postcond ["setzeRandbedingungen", "Biegelinien"]) => ()
neuper@38031
   856
| _ => error "biegelinie.sml met2 nn";
neuper@37906
   857
val (p,_,f,nxt,_,pt) = me nxt p c pt; 
neuper@37906
   858
if nxt = ("End_Proof'", End_Proof') andalso f2str f =
neuper@37906
   859
(* "[0 = c_4,\n 0 =\n c_4 + L * c_3 +\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI),\n 0 = c_2, 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]" *)
neuper@37906
   860
"[0 = c_4,\n 0 =\n c_4 + L * c_3 +\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) /\n (-1 * EI * 24),\n 0 = c_2, 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]"
neuper@38031
   861
then () else error "biegelinie.sml met2 oo";
neuper@37906
   862
neuper@37906
   863
(*
neuper@37906
   864
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
neuper@37906
   865
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   866
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   867
*)
neuper@37906
   868
neuper@37906
   869
"----------- method [Biegelinien,setzeRandbedingungenEin]FAST ----";
neuper@37906
   870
"----------- method [Biegelinien,setzeRandbedingungenEin]FAST ----";
neuper@37906
   871
"----------- method [Biegelinien,setzeRandbedingungenEin]FAST ----";
neuper@37906
   872
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   873
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   874
val str = 
neuper@37906
   875
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) = \
neuper@37906
   876
\ (let b1_ = nth_ 1 rb_;                                         \
neuper@37906
   877
\      (fs_::bool list) = filter_sameFunId (lhs b1_) funs_;         \
neuper@37906
   878
\      (e1_::bool) =                                             \
neuper@37906
   879
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   880
\                          [Equation,fromFunction])              \
neuper@37984
   881
\                          [BOOL (hd fs_), BOOL b1_])         \
neuper@37906
   882
\ in [e1_,e2_,e3_,e4_])"
neuper@37906
   883
;
neuper@37906
   884
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   885
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   886
val str = 
neuper@37906
   887
"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) = \
neuper@37906
   888
\ (let b1_ = nth_ 1 rb_;                                         \
neuper@37906
   889
\      fs_ = filter_sameFunId (lhs b1_) funs_;                   \
neuper@37906
   890
\      (e1_::bool) =                                             \
neuper@37906
   891
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   892
\                          [Equation,fromFunction])              \
neuper@37984
   893
\                          [BOOL (hd fs_), BOOL b1_]);         \
neuper@37906
   894
\      b2_ = nth_ 2 rb_;                                         \
neuper@37906
   895
\      fs_ = filter_sameFunId (lhs b2_) funs_;                   \
neuper@37906
   896
\      (e2_::bool) =                                             \
neuper@37906
   897
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   898
\                          [Equation,fromFunction])              \
neuper@37984
   899
\                          [BOOL (hd fs_), BOOL b2_]);         \
neuper@37906
   900
\      b3_ = nth_ 3 rb_;                                         \
neuper@37906
   901
\      fs_ = filter_sameFunId (lhs b3_) funs_;                   \
neuper@37906
   902
\      (e3_::bool) =                                             \
neuper@37906
   903
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   904
\                          [Equation,fromFunction])              \
neuper@37984
   905
\                          [BOOL (hd fs_), BOOL b3_]);         \
neuper@37906
   906
\      b4_ = nth_ 4 rb_;                                         \
neuper@37906
   907
\      fs_ = filter_sameFunId (lhs b4_) funs_;                   \
neuper@37906
   908
\      (e4_::bool) =                                             \
neuper@37906
   909
\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
neuper@37906
   910
\                          [Equation,fromFunction])              \
neuper@37984
   911
\                          [BOOL (hd fs_), BOOL b4_])          \
neuper@37906
   912
\ in [e1_,e2_,e3_,e4_])"
neuper@37906
   913
;
neuper@37906
   914
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   915
neuper@37906
   916
neuper@37906
   917
neuper@37906
   918
"----------- IntegrierenUndKonstanteBestimmen2: Bsp.7.70. --------";
neuper@37906
   919
"----------- IntegrierenUndKonstanteBestimmen2: Bsp.7.70. --------";
neuper@37906
   920
"----------- IntegrierenUndKonstanteBestimmen2: Bsp.7.70. --------";
neuper@37906
   921
"----- script ";
neuper@37906
   922
val str = 
neuper@37991
   923
"Script Belastung2BiegelScript (q__::real) (v_v::real) =                    \
neuper@37981
   924
\  (let q___ = Take (q_ v_v = q__);                                           \
neuper@37906
   925
\       q___ = ((Rewrite sym_real_minus_eq_cancel True) @@                 \
neuper@37906
   926
\              (Rewrite Belastung_Querkraft True)) q___;                   \
neuper@37906
   927
\      (Q__:: bool) =                                                     \
neuper@37906
   928
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
   929
\                          [diff,integration,named])                      \
neuper@37984
   930
\                          [REAL (rhs q___), REAL v_v, real_REAL Q]);    \
neuper@37906
   931
\       M__ = Rewrite Querkraft_Moment True Q__;                          \
neuper@37906
   932
\      (M__::bool) =                                                      \
neuper@37906
   933
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
   934
\                          [diff,integration,named])                      \
neuper@37984
   935
\                          [REAL (rhs M__), REAL v_v, real_REAL M_b]);  \
neuper@37906
   936
\       N__ = ((Rewrite Moment_Neigung False) @@                          \
neuper@37906
   937
\              (Rewrite make_fun_explicit False)) M__;                    \
neuper@37906
   938
\      (N__:: bool) =                                                     \
neuper@37906
   939
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
   940
\                          [diff,integration,named])                      \
neuper@37984
   941
\                          [REAL (rhs N__), REAL v_v, real_REAL y']);   \
neuper@37906
   942
\      (B__:: bool) =                                                     \
neuper@37906
   943
\             (SubProblem (Biegelinie_,[named,integrate,function],        \
neuper@37906
   944
\                          [diff,integration,named])                      \
neuper@37984
   945
\                          [REAL (rhs N__), REAL v_v, real_REAL y])    \
neuper@37906
   946
\ in [Q__, M__, N__, B__])"
neuper@37906
   947
;
neuper@37906
   948
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
neuper@37906
   949
(*---^^^-OK-----------------------------------------------------------------*)
neuper@37906
   950
(*---vvv-NOTok--------------------------------------------------------------*)
neuper@37906
   951
neuper@37906
   952
neuper@37906
   953
"----- Bsp 7.70 with me";
neuper@37906
   954
val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
   955
	     "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
neuper@37906
   956
	     "FunktionsVariable x"];
neuper@37991
   957
val (dI',pI',mI') = ("Biegelinie", ["Biegelinien"],
neuper@37906
   958
		     ["IntegrierenUndKonstanteBestimmen2"]);
neuper@37906
   959
val p = e_pos'; val c = [];
neuper@37906
   960
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
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
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   963
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   964
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   965
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   966
if nxt = ("Apply_Method", Apply_Method ["IntegrierenUndKonstanteBestimmen2"])
neuper@38031
   967
then () else error "biegelinie.sml met2 a";
neuper@37906
   968
neuper@37906
   969
(*** actual arg(s) missing for '["(#Find, (Funktionen, funs_))"]' i.e. should be 'copy-named' by '*_._'
neuper@37906
   970
... THIS MEANS: 
neuper@37906
   971
#a# "Script Biegelinie2Script ..
neuper@37906
   972
\         ... (SubProblem (Biegelinie_,[vonBelastungZu,Biegelinien],      \
neuper@37906
   973
\                          [Biegelinien,ausBelastung])                    \
neuper@37984
   974
\                          [REAL q__, REAL v_]);                         \
neuper@37906
   975
neuper@37906
   976
#b# prep_met ... (["Biegelinien","ausBelastung"],
neuper@37981
   977
              ... ("#Given" ,["Streckenlast q__","FunktionsVariable v_v"]),
neuper@37991
   978
   "Script Belastung2BiegelScript (q__::real) (v_v::real) =                 \
neuper@37906
   979
neuper@37981
   980
#a#b# BOTH HAVE 2 ARGUMENTS q__ and v_v ...OK
neuper@37906
   981
##########################################################################
neuper@37906
   982
BUT THE (#Find, (Funktionen, funs_)) IS NOT COPYNAMED BY funs___ !!!3*_!!!
neuper@37906
   983
##########################################################################*)
neuper@37906
   984
"further 'me' see ----- SubProblem (_,[vonBelastungZu,Biegelinien] -------\
neuper@37906
   985
\                 ----- SubProblem (_,[setzeRandbedingungen,Biegelinien] -";
neuper@37906
   986
neuper@37906
   987
"----- Bsp 7.70 with autoCalculate";
neuper@37906
   988
states:=[];
neuper@37906
   989
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
neuper@37906
   990
	     "Randbedingungen [Q 0 = q_0 * L, M_b L = 0, y 0 = 0, y' 0 = 0]",
neuper@37906
   991
	     "FunktionsVariable x"],
neuper@37991
   992
	    ("Biegelinie", ["Biegelinien"],
neuper@37906
   993
		     ["IntegrierenUndKonstanteBestimmen2"]))];
neuper@37906
   994
moveActiveRoot 1;
neuper@37906
   995
autoCalculate 1 CompleteCalc;
neuper@37906
   996
val ((pt,p),_) = get_calc 1; show_pt pt;
neuper@37906
   997
if p = ([], Res) andalso term2str (get_obj g_res pt (fst p)) =
neuper@37906
   998
"y x =\n-6 * q_0 * L ^^^ 2 / (-24 * EI) * x ^^^ 2 +\n4 * L * q_0 / (-24 * EI) * x ^^^ 3 +\n-1 * q_0 / (-24 * EI) * x ^^^ 4" then ()
neuper@38031
   999
else error "biegelinie.sml: diff.behav.7.70 with autoCalculate";
neuper@37906
  1000
neuper@37906
  1001
val is = get_istate pt ([],Res); writeln (istate2str is);
neuper@37906
  1002
val t = str2term " last                                                     \
neuper@37906
  1003
\[Q x = L * q_0 + -1 * q_0 * x,                                              \
neuper@37906
  1004
\ M_b x = -1 * q_0 * L ^^^ 2 / 2 + q_0 * L / 1 * x + -1 * q_0 / 2 * x ^^^ 2,\
neuper@37906
  1005
\ y' x =                                                                    \
neuper@37906
  1006
\  -3 * q_0 * L ^^^ 2 / (-6 * EI) * x + 3 * L * q_0 / (-6 * EI) * x ^^^ 2 +\
neuper@37906
  1007
\  -1 * q_0 / (-6 * EI) * x ^^^ 3,                                         \
neuper@37906
  1008
\ y x =                                                                    \
neuper@37906
  1009
\  -6 * q_0 * L ^^^ 2 / (-24 * EI) * x ^^^ 2 +                              \
neuper@37906
  1010
\  4 * L * q_0 / (-24 * EI) * x ^^^ 3 +                                     \
neuper@37906
  1011
\  -1 * q_0 / (-24 * EI) * x ^^^ 4]";
neuper@37906
  1012
val srls = append_rls "erls_IntegrierenUndK.." e_rls 
neuper@37906
  1013
		      [Calc("Tools.rhs", eval_rhs"eval_rhs_"),
neuper@37906
  1014
		       Calc ("Atools.ident",eval_ident "#ident_"),
neuper@37970
  1015
		       Thm ("last_thmI",num_str @{thm last_thmI}),
neuper@37970
  1016
		       Thm ("if_True",num_str @{thm if_True}),
neuper@37970
  1017
		       Thm ("if_False",num_str @{thm if_False})
neuper@37906
  1018
		       ]
neuper@37906
  1019
		      ;
neuper@37906
  1020
val t = str2term "last [1,2,3,4]";
neuper@37906
  1021
trace_rewrite := true;
neuper@37926
  1022
val SOME (e1__,_) = rewrite_set_ thy false srls t;
neuper@37906
  1023
trace_rewrite := false;
neuper@37906
  1024
term2str e1__;
neuper@37906
  1025
neuper@37906
  1026
trace_script := true;
neuper@37906
  1027
trace_script := false;
neuper@37906
  1028
neuper@37906
  1029
neuper@37906
  1030
"----------- investigate normalforms in biegelinien --------------";
neuper@37906
  1031
"----------- investigate normalforms in biegelinien --------------";
neuper@37906
  1032
"----------- investigate normalforms in biegelinien --------------";
neuper@37906
  1033
"----- coming from integration:";
neuper@37906
  1034
val Q = str2term "Q x = c + -1 * q_0 * x";
neuper@37906
  1035
val M_b = str2term "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
neuper@37906
  1036
val y' = str2term "y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
neuper@37906
  1037
val y = str2term "y x = c_4 + c_3 * x +\n1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
neuper@37906
  1038
(*^^^  1 / (-1 * EI) NOT distributed - ok! ^^^^^^^^^^^^^^^^^^^^^^^*)
neuper@37906
  1039
neuper@37906
  1040
"----- functions comming from:";