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