found error in Biegelinie2 (concerns design-flaw with curried funs in scripts %-(
1.1 --- a/src/sml/ME/mathengine.sml Tue Sep 05 10:10:27 2006 +0200
1.2 +++ b/src/sml/ME/mathengine.sml Tue Sep 05 15:06:55 2006 +0200
1.3 @@ -89,10 +89,10 @@
1.4 (Error' (Error_ e)) => ERror e
1.5 | _ => Updated ([], [], (pt,p)) end;
1.6
1.7 -fun loc_solve_ m (pt,pos) =
1.8 (* val (m, pos) = ((mI,m), ip);
1.9 val (m,(pt,pos) ) = ((mI,m), ptp);
1.10 *)
1.11 +fun loc_solve_ m (pt,pos) =
1.12 let val (msg, cs') = solve m (pt, pos);
1.13 (* val (tacis,dels,(pt',p')) = cs';
1.14 (writeln o istate2str) (get_istate pt' p');
1.15 @@ -109,10 +109,10 @@
1.16
1.17 (*report applicability of tac in tacis; pt is dropped in setNextTactic*)
1.18 fun locatetac _ (ptp as (_,([],Res))) = ("end-of-calculation", ([], [], ptp))
1.19 +(* val ptp as (pt, p) = (pt, ip);
1.20 + val ptp as (pt, p) = (pt, p);
1.21 + *)
1.22 | locatetac tac (ptp as (pt, p)) =
1.23 -(* val ptp as (pt, p) = (pt, p);
1.24 - val ptp as (pt, p) = (pt, ip);
1.25 - *)
1.26 let val (mI,m) = mk_tac'_ tac;
1.27 in case applicable_in p pt m of
1.28 Notappl e => ("not-applicable", ([],[], ptp):calcstate')
1.29 @@ -459,11 +459,8 @@
1.30 fun me ((_,tac):tac'_) (p:pos') (_:NEW(*remove*)) (pt:ptree) =
1.31 let val (pt, p) =
1.32 (* val (msg, (tacis, pos's, (pt',p'))) = locatetac tac (pt,p);
1.33 - f2str (TESTg_form (pt', p'));
1.34 - (writeln o (itms2str thy)) (get_obj g_pbl pt' (fst p'));
1.35 - writeln( istate2str (get_istate pt' ([3],Res)));
1.36 - term2str (fst (get_obj g_result pt' [3]));
1.37 - val (pt,p) = (pt',p');
1.38 + p = ([1, 9], Res);
1.39 + (writeln o istate2str) (get_istate pt p);
1.40 *)
1.41 (*locatetac is here for testing by me; step would suffice in me*)
1.42 case locatetac tac (pt,p) of
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/src/smltest/IsacKnowledge/biegel-test-stimmen2.sml Tue Sep 05 15:06:55 2006 +0200
2.3 @@ -0,0 +1,190 @@
2.4 +(* tests intermediate WN060905
2.5 +
2.6 +use"../smltest/IsacKnowledge/biegel-test-stimmen2.sml";
2.7 +*)
2.8 +
2.9 +
2.10 +"----- met [Biegelinien,ausBelastung] in IntegrierenUndKonstanteBestimmen2";
2.11 +val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
2.12 + "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
2.13 + "FunktionsVariable x"];
2.14 +val (dI',pI',mI') = ("Biegelinie.thy", ["Biegelinien"],
2.15 + ["IntegrierenUndKonstanteBestimmen2"]);
2.16 +val p = e_pos'; val c = [];
2.17 +val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
2.18 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.19 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.20 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.21 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.22 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.23 +if nxt = ("Apply_Method", Apply_Method ["IntegrierenUndKonstanteBestimmen2"])
2.24 +then () else raise error "biegelinie.sml met2 a";
2.25 +
2.26 +(*** actual arg(s) missing for '["(#Find, (Funktionen, funs_))"]' i.e. should be 'copy-named' by '*_._'
2.27 +... THIS MEANS:
2.28 +#a# "Script Biegelinie2Script ..
2.29 +\ ... (SubProblem (Biegelinie_,[vonBelastungZu,Biegelinien], \
2.30 +\ [Biegelinien,ausBelastung]) \
2.31 +\ [real_ q_, real_ v_]); \
2.32 +
2.33 +#b# prep_met ... (["Biegelinien","ausBelastung"],
2.34 + ... ("#Given" ,["Streckenlast q_","FunktionsVariable v_"]),
2.35 + "Script Belastung2BiegelScript (q_::real) (v_::real) = \
2.36 +
2.37 +#a#b# BOTH HAVE 2 ARGUMENTS q_ and v_ ...OK
2.38 +##########################################################################
2.39 +BUT THE (#Find, (Funktionen, funs_)) IS NOT COPYNAMED BY funs___ !!!3*_!!!
2.40 +##########################################################################*)
2.41 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.42 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.43 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.44 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.45 +if nxt = ("Apply_Method", Apply_Method ["Biegelinien", "ausBelastung"])
2.46 +then () else raise error "biegelinie.sml met2 b";
2.47 +
2.48 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "q x = q_0";
2.49 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "- q x = - q_0";
2.50 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q' x = - q_0";
2.51 +case nxt of (_, Subproblem (_, ["named", "integrate", "function"])) => ()
2.52 +| _ => raise error "biegelinie.sml met2 c";
2.53 +
2.54 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.55 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.56 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.57 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.58 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.59 +
2.60 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
2.61 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
2.62 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b' x = c + -1 * q_0 * x";
2.63 +case nxt of (_,Subproblem (_, ["named", "integrate", "function"])) => ()
2.64 +| _ => raise error "biegelinie.sml met2 d";
2.65 +
2.66 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.67 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.68 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.69 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.70 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.71 + "M_b x = Integral c + -1 * q_0 * x D x";
2.72 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.73 + "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
2.74 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.75 + "M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
2.76 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.77 + "- EI * y'' x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
2.78 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.79 + "y'' x = 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)";
2.80 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.81 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.82 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.83 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.84 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.85 + "y' x = Integral 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
2.86 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.87 +"y' x = Integral 1 / (-1 * EI) * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
2.88 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.89 +"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
2.90 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.91 +"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
2.92 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.93 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.94 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.95 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.96 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.97 +"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";
2.98 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.99 +"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.100 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
2.101 + "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.102 +
2.103 +
2.104 +(*vvvvvvvvvvvvvvvvvvvvvv@@@@@@@@@@@@@@@@@@@@@@vvvvvvvvvvvvvvvvvvvvvvvvvvvv*)
2.105 +p = ([1, 9], Res);
2.106 +(writeln o istate2str) (get_istate pt p);
2.107 +(writeln o istate2str) (get_istate pt ([1], Res))(*linie2Script: funs_ missg*);
2.108 +nxt = ("Check_Postcond", Check_Postcond ["vonBelastungZu", "Biegelinien"]);
2.109 +
2.110 +(* val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.111 +
2.112 + f2str f =
2.113 + "[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.114 +case nxt of (_,Subproblem (_, ["setzeRandbedingungen", "Biegelinien"])) => ()
2.115 +| _ => raise error "biegelinie.sml met2 d";
2.116 +(writeln o istate2str) (get_istate pt p);
2.117 +show_pt pt;
2.118 +
2.119 +val ([(_, Check_Postcond'
2.120 + (["vonBelastungZu", "Biegelinien"],
2.121 + vvv),
2.122 + _)],
2.123 + [],
2.124 + _) = xxx;
2.125 +val (ttt, _) = vvv;
2.126 +term2str ttt;
2.127 +
2.128 +val ScrState (E,l,a,XXX,YYY,b) = get_istate pt (p,p_);
2.129 +val a = Some (str2term "B__::bool"); (*!!!!!!!!!!!!!!!!!!!vvv is M__*)
2.130 +val is as ScrState (E,l,a,XXX,YYY,b) = ScrState (E,l,a,XXX,YYY,b);
2.131 +
2.132 + val (_,_,(scval,scsaf)) = next_tac (thy',srls) (pt,(p,p_)) sc is;
2.133 +term2str scval;
2.134 +writeln (istate2str is);
2.135 +
2.136 +THERE IS A PROBLEM WITH @@ and curried functions !!!!!!!!!!!!!^^^
2.137 +
2.138 +*)
2.139 +(*^^^^^^^^^^^^^^^^^^^^^^@@@@@@@@@@@@@@@@@@@@@@^^^^^^^^^^^^^^^^^^^^^^^^^^^^*)
2.140 +p = ([1], Res);
2.141 +(writeln o istate2str) (get_istate pt p);
2.142 +nxt = ("Subproblem",
2.143 + Subproblem ("Biegelinie.thy", ["setzeRandbedingungen", "Biegelinien"]));
2.144 +
2.145 +
2.146 +(*
2.147 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.148 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.149 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.150 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.151 +*)
2.152 +(********************************************* setzeRandbedingungenEin !!!!
2.153 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.154 +case nxt of (_, Apply_Method ["Biegelinien", "setzeRandbedingungenEin"]) => ()
2.155 +| _ => raise error "biegelinie.sml met2 e";
2.156 +
2.157 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y 0 = 0";
2.158 +(*WN060902 is the ctree ok here?: Take -> SubProblem !*)
2.159 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.160 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.161 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.162 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.163 +case nxt of (_, Apply_Method ["Equation", "fromFunction"]) => ()
2.164 +| _ => raise error "biegelinie.sml met2 f";
2.165 +
2.166 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.167 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.168 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "0 = c_4 + 0 / (-1 * EI)";
2.169 +
2.170 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "y L = 0";
2.171 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.172 +(*WN060902 strange msgs *** upd_env_opt: (None,SubProblem (Biegelinie_, [m..*)
2.173 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.174 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.175 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.176 +val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.177 +case nxt of (_, Apply_Method ["Equation", "fromFunction"]) => ()
2.178 +| _ => raise error "biegelinie.sml met2 g";
2.179 +
2.180 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2*)
2.181 +
2.182 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.183 +nxt = ("Empty_Tac", Empty_Tac) (*true*);
2.184 +
2.185 +
2.186 +(*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2*)
2.187 +(*
2.188 +val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
2.189 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
2.190 +*)
2.191 +******************************************************************8*)
2.192 +
2.193 +
3.1 --- a/src/smltest/IsacKnowledge/biegelinie.sml Tue Sep 05 10:10:27 2006 +0200
3.2 +++ b/src/smltest/IsacKnowledge/biegelinie.sml Tue Sep 05 15:06:55 2006 +0200
3.3 @@ -769,7 +769,7 @@
3.4 (*---vvv-NOTok--------------------------------------------------------------*)
3.5
3.6
3.7 -"----- met [Biegelinien,ausBelastung]";
3.8 +"----- met [Biegelinien,ausBelastung] in IntegrierenUndKonstanteBestimmen2";
3.9 val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
3.10 "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
3.11 "FunktionsVariable x"];
3.12 @@ -861,10 +861,18 @@
3.13 "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)";
3.14 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
3.15 "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)";
3.16 +
3.17 +
3.18 +(*vvvvvvvvvvvvvvvvvvvvvv@@@@@@@@@@@@@@@@@@@@@@vvvvvvvvvvvvvvvvvvvvvvvvvvvv*)
3.19 +(writeln o istate2str) (get_istate pt p);
3.20 +
3.21 val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
3.22 "[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)]";
3.23 case nxt of (_,Subproblem (_, ["setzeRandbedingungen", "Biegelinien"])) => ()
3.24 | _ => raise error "biegelinie.sml met2 d";
3.25 +(writeln o istate2str) (get_istate pt p);
3.26 +show_pt pt;
3.27 +(*^^^^^^^^^^^^^^^^^^^^^^@@@@@@@@@@@@@@@@@@@@@@^^^^^^^^^^^^^^^^^^^^^^^^^^^^*)
3.28
3.29 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
3.30 val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;