Biegelinie2, intermediate state: error in setzeRandb*Ein start_Take
authorwneuper
Sat, 02 Sep 2006 17:13:31 +0200
branchstart_Take
changeset 642d7eff76dcc1e
parent 641 29c5e20735ba
child 643 de188f2995c6
Biegelinie2, intermediate state: error in setzeRandb*Ein
src/sml/IsacKnowledge/Biegelinie.ML
src/smltest/IsacKnowledge/biegelinie.sml
     1.1 --- a/src/sml/IsacKnowledge/Biegelinie.ML	Fri Sep 01 19:14:43 2006 +0200
     1.2 +++ b/src/sml/IsacKnowledge/Biegelinie.ML	Sat Sep 02 17:13:31 2006 +0200
     1.3 @@ -156,10 +156,17 @@
     1.4  		  Calc("Tools.lhs", eval_lhs "eval_lhs_"),
     1.5  		  Calc("Atools.sameFunId",
     1.6  		       eval_sameFunId "Atools.sameFunId"),
     1.7 +		  Thm ("filter_Cons", num_str filter_Cons),
     1.8 +		  Thm ("filter_Nil", num_str filter_Nil),
     1.9 +		  Thm ("if_True", num_str if_True),
    1.10 +		  Thm ("if_False", num_str if_False),
    1.11  		  Thm ("hd_thm", num_str hd_thm)
    1.12  		  ],
    1.13  	 scr = EmptyScr};
    1.14 -    
    1.15 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*)
    1.16 +(* use"IsacKnowledge/Biegelinie.ML";
    1.17 +   *)
    1.18 + 
    1.19  store_met
    1.20      (prep_met Biegelinie.thy "met_biege" [] e_metID
    1.21  	      (["IntegrierenUndKonstanteBestimmen"],
    1.22 @@ -342,22 +349,22 @@
    1.23  \             (SubProblem (Biegelinie_,[named,integrate,function],        \
    1.24  \                          [Diff,integration,named])                      \
    1.25  \                          [real_ (rhs q__), real_ v_, real_real_ Q]);    \
    1.26 -\       Q__ = Rewrite Querkraft_Moment True Q__;                          \
    1.27 +\       M__ = Rewrite Querkraft_Moment True Q__;                          \
    1.28  \      (M__::bool) =                                                      \
    1.29  \             (SubProblem (Biegelinie_,[named,integrate,function],        \
    1.30  \                          [Diff,integration,named])                      \
    1.31 -\                          [real_ (rhs Q__), real_ v_, real_real_ M_b]);  \
    1.32 -\       M__ = ((Rewrite Moment_Neigung False) @@                          \
    1.33 +\                          [real_ (rhs M__), real_ v_, real_real_ M_b]);  \
    1.34 +\       N__ = ((Rewrite Moment_Neigung False) @@                          \
    1.35  \              (Rewrite make_fun_explicit False)) M__;                    \
    1.36  \      (N__:: bool) =                                                     \
    1.37  \             (SubProblem (Biegelinie_,[named,integrate,function],        \
    1.38  \                          [Diff,integration,named])                      \
    1.39 -\                          [real_ (rhs M__), real_ v_, real_real_ y']);   \
    1.40 +\                          [real_ (rhs N__), real_ v_, real_real_ y']);   \
    1.41  \      (B__:: bool) =                                                     \
    1.42  \             (SubProblem (Biegelinie_,[named,integrate,function],        \
    1.43  \                          [Diff,integration,named])                      \
    1.44  \                          [real_ (rhs N__), real_ v_, real_real_ y])    \
    1.45 -\ in [q__, Q__, M__, N__, B__])"
    1.46 +\ in [Q__, M__, N__, B__])"
    1.47  ));
    1.48  
    1.49  store_met
    1.50 @@ -369,18 +376,32 @@
    1.51  		srls = srls2, 
    1.52  		prls=e_rls,
    1.53  	     crls = Atools_erls, nrls = e_rls},
    1.54 -(*rev [Q, M_b, y', y] --> [y, ..., Q] because "matches_lhs (y L)" 
    1.55 -  matches all funs_ (while Q, M_b, y' defined as Consts do NOT match)*)
    1.56 -"empty_script"
    1.57 -(*
    1.58  "Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
    1.59 -\ (let funs_ = rev funs_;                                       \
    1.60 -\      b1_ = Take (nth_ 1 beds_);                               \
    1.61 +\ (let b1_ = Take (nth_ 1 rb_);                               \
    1.62  \      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
    1.63 -\      f1_ = hd fs_                                           \
    1.64 -\ in (equs_::bool list))"
    1.65 -*)
    1.66 -(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*)
    1.67 +\      (e1_::bool) =                                               \
    1.68 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    1.69 +\                          [Equation,fromFunction])         \
    1.70 +\                          [bool_ (hd fs_), bool_ b1_]);                    \
    1.71 +\      b2_ = Take (nth_ 2 rb_);                               \
    1.72 +\      fs_ = filter (sameFunId (lhs b2_)) funs_;                \
    1.73 +\      (e2_::bool) =                                               \
    1.74 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    1.75 +\                          [Equation,fromFunction])         \
    1.76 +\                          [bool_ (hd fs_), bool_ b2_])                    \
    1.77 +\      b3_ = Take (nth_ 3 rb_);                               \
    1.78 +\      fs_ = filter (sameFunId (lhs b3_)) funs_;                \
    1.79 +\      (e3_::bool) =                                               \
    1.80 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    1.81 +\                          [Equation,fromFunction])         \
    1.82 +\                          [bool_ (hd fs_), bool_ b3_])                    \
    1.83 +\      b4_ = Take (nth_ 4 rb_);                               \
    1.84 +\      fs_ = filter (sameFunId (lhs b4_)) funs_;                \
    1.85 +\      (e4_::bool) =                                               \
    1.86 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    1.87 +\                          [Equation,fromFunction])         \
    1.88 +\                          [bool_ (hd fs_), bool_ b4_])                    \
    1.89 +\ in [e1_,e2_,e3_,e4_])"
    1.90  ));
    1.91  
    1.92  store_met
    1.93 @@ -415,11 +436,11 @@
    1.94  \      val_ = argument_in (lhs sub_);                \
    1.95  \      equ_ = (Substitute [bdv_ = val_]) fun_;       \
    1.96  \      equ_ = (Substitute [sub_]) fun_               \
    1.97 -\ in (Rewrite_Set norm_Poly False) equ_)             "
    1.98 -(*FIXME.WN060901.ERROR in nxt_tac without Take above !?!*)
    1.99 +\ in (Rewrite_Set norm_Rational False) equ_)             "
   1.100 +(*FIXME.WN060901. scr-interpreter ERROR in nxt_tac without Take above !*)
   1.101  ));
   1.102  
   1.103  
   1.104  
   1.105 -(* use"Biegelinie.ML";
   1.106 +(* use"IsacKnowledge/Biegelinie.ML";
   1.107     *)
   1.108 \ No newline at end of file
     2.1 --- a/src/smltest/IsacKnowledge/biegelinie.sml	Fri Sep 01 19:14:43 2006 +0200
     2.2 +++ b/src/smltest/IsacKnowledge/biegelinie.sml	Sat Sep 02 17:13:31 2006 +0200
     2.3 @@ -19,6 +19,7 @@
     2.4  "----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
     2.5  "----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
     2.6  "----------- IntegrierenUndKonstanteBestimmen2 -------------------";
     2.7 +"----------- investigate normalforms -----------------------------";
     2.8  "-----------------------------------------------------------------";
     2.9  "-----------------------------------------------------------------";
    2.10  "-----------------------------------------------------------------";
    2.11 @@ -119,7 +120,6 @@
    2.12  (* use"../smltest/IsacKnowledge/biegelinie.sml";
    2.13     *)
    2.14  
    2.15 -
    2.16  "----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
    2.17  "----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
    2.18  "----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
    2.19 @@ -129,9 +129,6 @@
    2.20             ### before declaring "y''" as a constant *)
    2.21  val t = rewrit make_fun_explicit t; term2s t;
    2.22  
    2.23 -(* use"../smltest/IsacKnowledge/biegelinie.sml";
    2.24 -   *)
    2.25 -
    2.26  
    2.27  "----------- simplify_leaf for this script -----------------------";
    2.28  "----------- simplify_leaf for this script -----------------------";
    2.29 @@ -532,13 +529,16 @@
    2.30  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
    2.31  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
    2.32  if nxt = ("End_Proof'", End_Proof') andalso
    2.33 -   f2str f = "0 = c_2 + L * c + -1 * q_0 / 2 * L ^^^ 2"
    2.34 +(*   f2str f = "0 = c_2 + L * c + -1 * q_0 / 2 * L ^^^ 2"
    2.35 +CHANGE NOT considered, already on leave*)
    2.36 +   f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2"
    2.37  then () else raise error "biegelinie.sml: SubProblem (_,[setzeRandbed";
    2.38  
    2.39  
    2.40  "----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
    2.41  "----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
    2.42  "----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
    2.43 +"----- check the scripts syntax";
    2.44  val str =
    2.45  "Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
    2.46  \ (let b1 = Take (nth_ 1 beds_)\
    2.47 @@ -548,7 +548,7 @@
    2.48  val str =
    2.49  "Script SetzeRandbedScript (funs_::bool list) (beds_::bool list) =\
    2.50  \ (let b1_ = Take (nth_ 1 beds_);   \
    2.51 -\      fs_ = filter (same_funid (lhs b1_)) funs_;  \
    2.52 +\      fs_ = filter (sameFunId (lhs b1_)) funs_;  \
    2.53  \      f1_ = hd fs_             \
    2.54  \ in (equs_::bool list))"
    2.55  ;
    2.56 @@ -569,19 +569,199 @@
    2.57  \ in (equs_::bool list))"
    2.58  ;
    2.59  val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
    2.60 +val str =
    2.61 +"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
    2.62 +\ (let b1_ = Take (nth_ 1 rb_);                               \
    2.63 +\      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
    2.64 +\      (equ_::bool) =                                               \
    2.65 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    2.66 +\                          [Equation,fromFunction])         \
    2.67 +\                          [bool_ (hd fs_), bool_ b1_])                    \
    2.68 +\ in [equ_])"
    2.69 +;
    2.70 +val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
    2.71 +val str =
    2.72 +"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
    2.73 +\ (let b1_ = Take (nth_ 1 rb_);                               \
    2.74 +\      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
    2.75 +\      (e1_::bool) =                                               \
    2.76 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    2.77 +\                          [Equation,fromFunction])         \
    2.78 +\                          [bool_ (hd fs_), bool_ b1_]);                    \
    2.79 +\      b2_ = Take (nth_ 2 rb_);                               \
    2.80 +\      fs_ = filter (sameFunId (lhs b2_)) funs_;                \
    2.81 +\      (e2_::bool) =                                               \
    2.82 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    2.83 +\                          [Equation,fromFunction])         \
    2.84 +\                          [bool_ (hd fs_), bool_ b2_])                    \
    2.85 +\ in [e1_,e1_])"
    2.86 +;
    2.87 +val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
    2.88 +(*---vvv-NOTok--------------------------------------------------------------*)
    2.89 +val str =
    2.90 +"Script SetzeRandbedScript (funs_::bool list) (rb_::bool list) =\
    2.91 +\ (let b1_ = Take (nth_ 1 rb_);                               \
    2.92 +\      fs_ = filter (sameFunId (lhs b1_)) funs_;                \
    2.93 +\      (e1_::bool) =                                               \
    2.94 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
    2.95 +\                          [Equation,fromFunction])         \
    2.96 +\                          [bool_ (hd fs_), bool_ b1_]);                    \
    2.97 +\      b2_ = Take (nth_ 2 rb_);                               \
    2.98 +\      fs_ = filter (sameFunId (lhs b2_)) funs_;                \
    2.99 +\      (e2_::bool) =                                               \
   2.100 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
   2.101 +\                          [Equation,fromFunction])         \
   2.102 +\                          [bool_ (hd fs_), bool_ b2_])                    \
   2.103 +\      b3_ = Take (nth_ 3 rb_);                               \
   2.104 +\      fs_ = filter (sameFunId (lhs b3_)) funs_;                \
   2.105 +\      (e3_::bool) =                                               \
   2.106 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
   2.107 +\                          [Equation,fromFunction])         \
   2.108 +\                          [bool_ (hd fs_), bool_ b3_])                    \
   2.109 +\      b4_ = Take (nth_ 4 rb_);                               \
   2.110 +\      fs_ = filter (sameFunId (lhs b4_)) funs_;                \
   2.111 +\      (e4_::bool) =                                               \
   2.112 +\             (SubProblem (Biegelinie_,[makeFunctionTo,equation],\
   2.113 +\                          [Equation,fromFunction])         \
   2.114 +\                          [bool_ (hd fs_), bool_ b4_])                    \
   2.115 +\ in [e1_,e2_,e3_,e4_])"
   2.116 +;
   2.117 +val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
   2.118 +(*---^^^-OK-----------------------------------------------------------------*)
   2.119 +atomty sc;
   2.120 +
   2.121 +"----- execute script by manual rewriting";
   2.122 +(*show_types := true;*)
   2.123 +val funs_ = str2term "funs_::bool list";
   2.124 +val funs = str2term
   2.125 +    "[Q x = c + -1 * q_0 * x,\
   2.126 +    \M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
   2.127 +    \y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
   2.128 +    \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)]";
   2.129 +val rb_ = str2term "rb_::bool list";
   2.130 +val rb = str2term "[y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]";
   2.131 +
   2.132 +"--- script expression 1";
   2.133 +val screxp1_ = str2term "Take (nth_ 1 (rb_::bool list))";
   2.134 +val screxp1  = subst_atomic [(rb_, rb)] screxp1_; term2str screxp1;
   2.135 +val Some (b1,_) = rewrite_set_ Isac.thy false srls2 screxp1; term2str b1;
   2.136 +if term2str b1 = "Take (y 0 = 0)" then ()
   2.137 +else raise error "biegelinie.sml: rew. Bieglie2 --1";
   2.138 +val b1 = str2term "(y 0 = 0)";
   2.139 +
   2.140 +"--- script expression 2";
   2.141 +val screxp2_ = str2term "filter (sameFunId (lhs b1_)) funs_";
   2.142 +val b1_ = str2term "b1_::bool";
   2.143 +val screxp2 = subst_atomic [(b1_,b1),(funs_,funs)] screxp2_; term2str screxp2;
   2.144 +val Some (fs,_) = rewrite_set_ Isac.thy false srls2 screxp2; term2str fs;
   2.145 +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 ()
   2.146 +else raise error "biegelinie.sml: rew. Bieglie2 --2";
   2.147 +
   2.148 +"--- script expression 3";
   2.149 +val screxp3_ = str2term "SubProblem (Biegelinie_,[makeFunctionTo,equation],\
   2.150 +\                          [Equation,fromFunction])         \
   2.151 +\                          [bool_ (hd fs_), bool_ b1_]";
   2.152 +val fs_ = str2term "fs_::bool list";
   2.153 +val screxp3 = subst_atomic [(fs_,fs),(b1_,b1)] screxp3_; 
   2.154 +writeln (term2str screxp3);
   2.155 +val Some (equ,_) = rewrite_set_ Isac.thy false srls2 screxp3; 
   2.156 +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 ()
   2.157 +else raise error "biegelinie.sml: rew. Bieglie2 --3";
   2.158 +writeln (term2str equ);
   2.159 +(*SubProblem
   2.160 + (Biegelinie_, [makeFunctionTo, equation], [Equation, fromFunction])
   2.161 + [bool_
   2.162 +   (y x =
   2.163 +    c_4 + c_3 * x +
   2.164 +    1 / (-1 * EI) *
   2.165 +    (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)),
   2.166 +  bool_ (y 0 = 0)]*)
   2.167 +show_types := false;
   2.168 +
   2.169 +
   2.170 +"----- execute script by interpreter";
   2.171 +val fmz = ["Funktionen [Q x = c + -1 * q_0 * x,\
   2.172 +    \M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
   2.173 +    \y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
   2.174 +    \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)]",
   2.175 +	   "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
   2.176 +	   "Gleichungen equs___"];
   2.177 +val (dI',pI',mI') = ("Biegelinie.thy", ["setzeRandbedingungen","Biegelinien"],
   2.178 +		     ["Biegelinien","setzeRandbedingungenEin"]);
   2.179 +val p = e_pos'; val c = [];
   2.180 +val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
   2.181 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.182 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.183 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.184 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.185 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y 0 = 0";
   2.186 +(*WN060902??? missing Substitute ???*)
   2.187 +case nxt of (_,Subproblem (_, ["makeFunctionTo", "equation"])) => ()
   2.188 +| _ => raise error "biegelinie.sml: met setzeRandbed*Ein 1";
   2.189 +
   2.190 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.191 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.192 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.193 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.194 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
   2.195 +   "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)";
   2.196 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
   2.197 +   "y 0 =\nc_4 + c_3 * 0 +\n1 / (-1 * EI) *\n(c_2 / 2 * 0 ^^^ 2 + c / 6 * 0 ^^^ 3 + -1 * q_0 / 24 * 0 ^^^ 4)";
   2.198 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
   2.199 +   "0 =\nc_4 + c_3 * 0 +\n1 / (-1 * EI) *\n(c_2 / 2 * 0 ^^^ 2 + c / 6 * 0 ^^^ 3 + -1 * q_0 / 24 * 0 ^^^ 4)"
   2.200 +;
   2.201 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)";
   2.202 +(*WN060902 thm real_0_divide in rls reduce_0_1_2 in rls norm_Rational^^^notap*)
   2.203 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)";
   2.204 +(*end of 1st "Randbedingung einsetzen"*)
   2.205 +
   2.206 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y L = 0";
   2.207 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.208 +(*WN060902 strange msgs also here !!!! GOON*)
   2.209 +
   2.210 +
   2.211 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*)
   2.212 +(*
   2.213 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
   2.214 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.215 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.216 +*)
   2.217 +
   2.218 +"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.219 +"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.220 +"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.221 +"----- script ";
   2.222 +val str = 
   2.223 +"Script Belastung2BiegelScript (q_::real) (v_::real) =                    \
   2.224 +\  (let q__ = Take (q v_ = q_);                                           \
   2.225 +\       q__ = ((Rewrite sym_real_minus_eq_cancel True) @@                 \
   2.226 +\              (Rewrite Belastung_Querkraft True)) q__;                   \
   2.227 +\      (Q__:: bool) =                                                     \
   2.228 +\             (SubProblem (Biegelinie_,[named,integrate,function],        \
   2.229 +\                          [Diff,integration,named])                      \
   2.230 +\                          [real_ (rhs q__), real_ v_, real_real_ Q]);    \
   2.231 +\       M__ = Rewrite Querkraft_Moment True Q__;                          \
   2.232 +\      (M__::bool) =                                                      \
   2.233 +\             (SubProblem (Biegelinie_,[named,integrate,function],        \
   2.234 +\                          [Diff,integration,named])                      \
   2.235 +\                          [real_ (rhs M__), real_ v_, real_real_ M_b]);  \
   2.236 +\       N__ = ((Rewrite Moment_Neigung False) @@                          \
   2.237 +\              (Rewrite make_fun_explicit False)) M__;                    \
   2.238 +\      (N__:: bool) =                                                     \
   2.239 +\             (SubProblem (Biegelinie_,[named,integrate,function],        \
   2.240 +\                          [Diff,integration,named])                      \
   2.241 +\                          [real_ (rhs N__), real_ v_, real_real_ y']);   \
   2.242 +\      (B__:: bool) =                                                     \
   2.243 +\             (SubProblem (Biegelinie_,[named,integrate,function],        \
   2.244 +\                          [Diff,integration,named])                      \
   2.245 +\                          [real_ (rhs N__), real_ v_, real_real_ y])    \
   2.246 +\ in [Q__, M__, N__, B__])"
   2.247 +;
   2.248 +val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
   2.249  (*---^^^-OK-----------------------------------------------------------------*)
   2.250  (*---vvv-NOTok--------------------------------------------------------------*)
   2.251 -atomty sc;
   2.252  
   2.253 -(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*)
   2.254  
   2.255 -
   2.256 -
   2.257 -
   2.258 -
   2.259 -"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.260 -"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.261 -"----------- IntegrierenUndKonstanteBestimmen2 -------------------";
   2.262  "----- met [Biegelinien,ausBelastung]";
   2.263  val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
   2.264  	     "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
   2.265 @@ -597,6 +777,7 @@
   2.266  val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.267  if nxt = ("Apply_Method", Apply_Method ["IntegrierenUndKonstanteBestimmen2"])
   2.268  then () else raise error "biegelinie.sml met2 a";
   2.269 +
   2.270  (*** actual arg(s) missing for '["(#Find, (Funktionen, funs_))"]' i.e. should be 'copy-named' by '*_._'
   2.271  ... THIS MEANS: 
   2.272  #a# "Script Biegelinie2Script ..
   2.273 @@ -618,6 +799,7 @@
   2.274  val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.275  if nxt = ("Apply_Method", Apply_Method ["Biegelinien", "ausBelastung"])
   2.276  then () else raise error "biegelinie.sml met2 b";
   2.277 +
   2.278  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =   "q x = q_0";
   2.279  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "- q x = - q_0";
   2.280  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =  "Q' x = - q_0";
   2.281 @@ -673,21 +855,62 @@
   2.282  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
   2.283     "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)";
   2.284  val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
   2.285 -   "[Q' x = - q_0, M_b' x = c + -1 * q_0 * x,\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 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)]";
   2.286 +   "[Q x = c + -1 * q_0 * x,\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 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)]";
   2.287  case nxt of (_,Subproblem (_, ["setzeRandbedingungen", "Biegelinien"])) => ()
   2.288  | _ => raise error "biegelinie.sml met2 d";
   2.289   
   2.290 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.291 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.292 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.293 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.294 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.295 +case nxt of (_, Apply_Method ["Biegelinien", "setzeRandbedingungenEin"]) => ()
   2.296 +| _ => raise error "biegelinie.sml met2 e";
   2.297  
   2.298 -(* WRONG returnvalue from (SubProblem (Biegelinie_,[vonBelastungZu,Biegelinien],      [Biegelinien,ausBelastung])....
   2.299 -"
   2.300 -[Q' x = - q_0, 
   2.301 -M_b' x = c + -1 * q_0 * x,\n 
   2.302 -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 
   2.303 -y' x =\n c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\n 
   2.304 -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)
   2.305 -]"
   2.306 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y 0 = 0";
   2.307 +(*WN060902 is the ctree ok here?: Take -> SubProblem !*)
   2.308 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.309 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.310 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.311 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.312 +case nxt of (_, Apply_Method ["Equation", "fromFunction"]) => ()
   2.313 +| _ => raise error "biegelinie.sml met2 f";
   2.314 +
   2.315 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.316 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.317 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)";
   2.318 +
   2.319 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y L = 0";
   2.320 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.321 +(*WN060902 strange msgs *** upd_env_opt: (None,SubProblem (Biegelinie_, [m..*)
   2.322 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.323 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.324 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.325 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.326 +case nxt of (_, Apply_Method ["Equation", "fromFunction"]) => ()
   2.327 +| _ => raise error "biegelinie.sml met2 g";
   2.328 +
   2.329 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2*)
   2.330 +
   2.331 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.332 +nxt = ("Empty_Tac", Empty_Tac) (*true*);
   2.333 +
   2.334 +
   2.335 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2*)
   2.336 +(*
   2.337 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
   2.338 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
   2.339  *)
   2.340  
   2.341 -(*
   2.342 -val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
   2.343 -*)
   2.344 \ No newline at end of file
   2.345 +
   2.346 +"----------- investigate normalforms -----------------------------";
   2.347 +"----------- investigate normalforms -----------------------------";
   2.348 +"----------- investigate normalforms -----------------------------";
   2.349 +"----- coming from integration:";
   2.350 +val Q = str2term "Q x = c + -1 * q_0 * x";
   2.351 +val M_b = str2term "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
   2.352 +val y' = str2term "y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
   2.353 +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)";
   2.354 +(*^^^  1 / (-1 * EI) NOT distributed - ok! ^^^^^^^^^^^^^^^^^^^^^^^*)
   2.355 +
   2.356 +"----- functions comming from:";