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:";