1.1 --- a/src/sml/FE-interface/interface.sml Sat Feb 05 15:46:11 2005 +0100
1.2 +++ b/src/sml/FE-interface/interface.sml Tue Feb 08 11:24:55 2005 +0100
1.3 @@ -184,9 +184,9 @@
1.4
1.5 (* val (cI, iI) = (1,1);
1.6 *)
1.7 -fun detailStep cI iI =
1.8 +fun detailStep cI iI (*ip*) =
1.9 let val ((pt,p), tacis) = get_calc cI
1.10 - val ip = get_pos cI iI
1.11 + (**)val ip = get_pos cI iI(**)
1.12 in if fst_onlev ip
1.13 then detailStepERROR cI "first formula on level has NO detail"
1.14 else (case detailstep pt ip of
2.1 --- a/src/sml/ME/modspec.sml Sat Feb 05 15:46:11 2005 +0100
2.2 +++ b/src/sml/ME/modspec.sml Tue Feb 08 11:24:55 2005 +0100
2.3 @@ -1838,7 +1838,7 @@
2.4 in get_inter (c @ [(from, f)])
2.5 (move_dn [] pt from) to lev pt end
2.6 in get_inter [] from to level pt end;
2.7 -
2.8 +(*
2.9 fun get_interval (from:pos') (to:pos') level pt =
2.10 (* val (from,level) = (f,lev);
2.11 *)
2.12 @@ -1863,7 +1863,7 @@
2.13 end)
2.14 handle (PTREE _) => c
2.15 in get_inter [] from to level pt end;
2.16 -
2.17 +*)
2.18
2.19 (*for tests*)
2.20 fun posform2str (pos:pos', form) =
3.1 --- a/src/sml/ROOT.ML Sat Feb 05 15:46:11 2005 +0100
3.2 +++ b/src/sml/ROOT.ML Tue Feb 08 11:24:55 2005 +0100
3.3 @@ -66,7 +66,7 @@
3.4
3.5 ##############dev-start######################################################
3.6 /usr/local/Isabelle2002/bin/isabelle HOL-Real
3.7 - cd"/home/neuper/proto2/isac/src/sml";
3.8 + cd"~/proto2/isac/src/sml";
3.9 use"ROOT.ML";
3.10
3.11 Compiler.Control.Print.printDepth:=9; (*4 default*)
3.12 @@ -75,7 +75,7 @@
3.13
3.14 *)
3.15
3.16 - val version_kernel = "sml-050205-cvs";
3.17 + val version_kernel = "sml-050208-getElementsFromTo";
3.18
3.19 print_depth 3;
3.20
4.1 --- a/src/sml/systest/FE-interface.sml Sat Feb 05 15:46:11 2005 +0100
4.2 +++ b/src/sml/systest/FE-interface.sml Tue Feb 08 11:24:55 2005 +0100
4.3 @@ -1061,83 +1061,28 @@
4.4 val p = get_pos 1 1;
4.5 val (Form f, tac, asms, safe) = pt_extract (pt, p);
4.6 if term2str f = "x - 1 = 0" andalso p = ([2], Res) then () else
4.7 - raise error "FE-interface.sml: diff.behav. in FORMULA:replace} other 1a";
4.8 + raise error "FE-interface.sml: diff.behav. in FORMULA:replace} other 1";
4.9 (*
4.10 -print_depth 99;map fst (get_interval ([1],Res)([2],Res) 9999 pt);print_depth 3;
4.11 +print_depth 99;map fst (get_interval ([1],Res) ([],Res) 9999 pt);print_depth 3;
4.12 *)
4.13 - if map fst (get_interval ([1],Res) ([2],Res) 9999 pt) =
4.14 + if map fst (get_interval ([1],Res) ([],Res) 9999 pt) =
4.15 [([1], Res), ([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res),
4.16 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2, 7], Res),
4.17 - ([2, 8], Res), ([2, 9], Res), ([2], Res)] then () else
4.18 - raise error "FE-interface.sml: diff.behav. in FORMULA:replace} other 1b";
4.19 + ([2, 8], Res), ([2, 9], Res), ([2], Res), ([], Res)(*TOO MUCH*)] then () else
4.20 + raise error "FE-interface.sml: diff.behav. in FORMULA:replace} other 2";
4.21
4.22
4.23
4.24 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} other 2--";
4.25 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} other 2--";
4.26 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} other 2--";
4.27 - states:=[];
4.28 - CalcTree
4.29 - [(["equality (x+1=2)", "solveFor x","solutions L"],
4.30 - ("Test.thy",
4.31 - ["sqroot-test","univariate","equation","test"],
4.32 - ["Test","squ-equ-test-subpbl1"]))];
4.33 - Iterator 1;
4.34 - moveActiveRoot 1;
4.35 - autoCalculate 1 CompleteCalc;
4.36 - moveActiveFormula 1 ([2],Res);
4.37 - replaceFormula 1 "x = 1";
4.38 - (*... returns calcChangedEvent with*)
4.39 - val (unc, del, gen) = (([1],Res), ([],Res), ([3,2],Res));
4.40 -(*---------------------okokokokok, okokokok, ( [2],Res) ?????????????
4.41 - getElementsFromTo 1 unc gen 99999 (*all levels*) false;
4.42 - (*6 elements !!!*)
4.43
4.44 - val ((pt,_),_) = get_calc 1;
4.45 - val p = get_pos 1 1;
4.46 - val (Form f, tac, asms, safe) = pt_extract (pt, p);
4.47 - if term2str f = "x = 1" andalso p = ([3,2], Res) then () else
4.48 - raise error "FE-interface.sml: diff.behav. in FORMULA:enter} oth 2";
4.49
4.50 -show_pt pt;
4.51 -[
4.52 -(([], Frm), solve (x + 1 = 2, x)),
4.53 -(([1], Frm), x + 1 = 2),
4.54 -(([1], Res), x + 1 + -1 * 2 = 0),
4.55 -(([2], Res), -1 + x = 0),
4.56 -(([3], Pbl), solve (-1 + x = 0, x)),
4.57 -(([3,1], Frm), -1 + x = 0),
4.58 -(([3,1], Res), x = 0 + -1 * -1),
4.59 -(([3,2,1], Frm), x = 0 + -1 * -1),
4.60 -(([3,2,1], Res), x = 0 + 1),
4.61 -(([3,2,2], Res), x = 1)]
4.62 -val it = () : unit
4.63 -....................................correct !!!*)
4.64 -
4.65 -(*##################^^^^^^^^^^^^^^^^^^^^^###########################*)
4.66
4.67 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} NOTok----";
4.68 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} NOTok----";
4.69 "--------- replaceFormula {SOLVE:MANUAL:FORMULA:replace} NOTok----";
4.70 - states:=[];
4.71 - CalcTree
4.72 - [(["equality (x+1=2)", "solveFor x","solutions L"],
4.73 - ("Test.thy",
4.74 - ["sqroot-test","univariate","equation","test"],
4.75 - ["Test","squ-equ-test-subpbl1"]))];
4.76 - Iterator 1;
4.77 - moveActiveRoot 1;
4.78 - autoCalculate 1 CompleteCalc;
4.79 - moveActiveFormula 1 ([2],Res);
4.80 - replaceFormula 1 "x - 4711 = 0";
4.81 - (*... returns <ERROR> no derivation found </ERROR>*)
4.82
4.83 - val ((pt,_),_) = get_calc 1;
4.84 - val p = get_pos 1 1;
4.85 - val (Form f, tac, asms, safe) = pt_extract (pt, p);
4.86 - if term2str f = "-1 + x = 0" andalso p = ([2], Res) then () else
4.87 - raise error "FE-interface.sml: diff.behav. in FORMULA:enter} NOTok";
4.88 -(*... or should ctree be cut even in this case ???*)
4.89
4.90
4.91
5.1 --- a/src/sml/xmlsrc/interface-xml.sml Sat Feb 05 15:46:11 2005 +0100
5.2 +++ b/src/sml/xmlsrc/interface-xml.sml Tue Feb 08 11:24:55 2005 +0100
5.3 @@ -1,260 +1,12 @@
5.4 -(* use"xmlsrc/interface-xml.sml";;
5.5 +(* use"systest/interface-xml.sml";
5.6 + use"interface-xml.sml";
5.7 *)
5.8
5.9 -(** add and delete users -----------------------------------------------
5.10 - FIXXME.8.03 addUser: clear code, because only CalcTrees distinguished**)
5.11 -fun adduserOK2xml (cI:calcID) (uI:iterID) =
5.12 - writeln ("@@@@@begin@@@@@\n "^string_of_int uI^" \n\
5.13 - \<ADDUSER>\n\
5.14 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.15 - \ <USERID> "^string_of_int uI^" </USERID>\n\
5.16 - \</ADDUSER>\n\
5.17 - \@@@@@end@@@@@");
5.18 -fun deluserOK2xml (cI:calcID) (uI:iterID) =
5.19 - writeln ("@@@@@begin@@@@@\n "^string_of_int uI^" \n\
5.20 - \<DELUSER>\n\
5.21 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.22 - \ <USERID> "^string_of_int uI^" </USERID>\n\
5.23 - \</DELUSER>\n\
5.24 - \@@@@@end@@@@@");
5.25 -(*---------------------------------------------------------------------*)
5.26 +(*see javatest.isac.util.parse.TestXMLParserDigest#testParseRefFormula*)
5.27 +refformulaOK2xml 1 ([1],Frm) (Form (str2term "x+1=2"));
5.28 +(*see javatest.isac.util.parse.TestXMLParserDigest#testParseRefCalcHead*)
5.29 +refformulaOK2xml 1 ([1],Pbl) (ModSpec e_ocalhd);
5.30
5.31 -fun calctreeOK2xml (*uI:iterID*) (cI:calcID) =
5.32 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.33 - \<CALCTREE>\n\
5.34 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.35 - \</CALCTREE>\n\
5.36 - \@@@@@end@@@@@");
5.37 -fun deconstructcalctreeOK2xml (*uI:userID*) (cI:calcID) =
5.38 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.39 - \<DELCALC>\n\
5.40 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.41 - \</DELCALC>\n\
5.42 - \@@@@@end@@@@@");
5.43 -
5.44 -fun iteratorOK2xml (cI:calcID) (p:pos')=
5.45 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.46 - \<CALCITERATOR>\n\
5.47 - \ <CALCID> "^string_of_int cI^" </CALCID>\n" ^
5.48 - pos'2xml i ("POSITION", p) ^
5.49 - "</CALCITERATOR>\n\
5.50 - \@@@@@end@@@@@");
5.51 -fun iteratorERROR2xml (cI:calcID) =
5.52 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.53 - \<CALCITERATOR>\n\
5.54 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.55 - \ <ERROR> pos does not exist </ERROR>\n\
5.56 - \</CALCITERATOR>\n\
5.57 - \@@@@@end@@@@@");
5.58 -
5.59 -fun sysERROR2xml (cI:calcID) "" =
5.60 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.61 - \<SYSERROR>\n\
5.62 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.63 - \ <ERROR> in kernel </ERROR>\n\
5.64 - \</SYSERROR>\n\
5.65 - \@@@@@end@@@@@")
5.66 - | sysERROR2xml (cI:calcID) str =
5.67 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.68 - \<SYSERROR>\n\
5.69 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.70 - \ <ERROR> "^str^" </ERROR>\n\
5.71 - \</SYSERROR>\n\
5.72 - \@@@@@end@@@@@");
5.73 -
5.74 -fun refformulaOK2xml (cI:calcID) p (Form t) =
5.75 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.76 - \<REFFORMULA>\n\
5.77 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.78 - \ <CALCFORMULA>\n"^
5.79 - pos'2xml (2*i) ("POSITION", p) ^
5.80 - " <FORMULA>"^
5.81 - term2xml (2*i) t ^"\n"^
5.82 - " </FORMULA>\n\
5.83 - \ </CALCFORMULA>\n\
5.84 - \</REFFORMULA>\n\
5.85 - \@@@@@end@@@@@")
5.86 - | refformulaOK2xml (cI:calcID) p (ModSpec modspec) =
5.87 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.88 - \<REFFORMULA>\n\
5.89 - \ <CALCID> "^string_of_int cI^" </CALCID>\n"^
5.90 - pos'calchead2xml i (p, modspec)^
5.91 - "</REFFORMULA>\n\
5.92 - \@@@@@end@@@@@");
5.93 -
5.94 -fun refformulaERROR2xml (cI:calcID) = (*FIXME.WN.29.8.03 unused*)
5.95 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.96 - \<REFFORMULA>\n\
5.97 - \ <ERROR> object is not a formula </ERROR>\n\
5.98 - \</REFFORMULA>\n\
5.99 - \@@@@@end@@@@@");
5.100 -
5.101 -fun gettacticOK2xml (cI:calcID) tac =
5.102 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.103 - \<GETTACTIC>\n\
5.104 - \ <CALCID> "^string_of_int cI^" </CALCID>\n"^
5.105 - tac2xml i tac^
5.106 - "</GETTACTIC>\n\
5.107 - \@@@@@end@@@@@");
5.108 -fun gettacticERROR2xml (cI:calcID) str =
5.109 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.110 - \<GETTACTIC>\n\
5.111 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.112 - \ <ERROR> "^str^" </ERROR>\n\
5.113 - \</GETTACTIC>\n\
5.114 - \@@@@@end@@@@@");
5.115 -
5.116 -fun getintervalOK (cI:calcID) fs =
5.117 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.118 - \<GETELEMENTSFROMTO>\n\
5.119 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.120 - \ <FORMHEADS>\n"^
5.121 - posformheads2xml (2*i) fs^
5.122 - " <FORMHEADS>\n\
5.123 - \</GETELEMENTSFROMTO>\n\
5.124 - \@@@@@end@@@@@");
5.125 -
5.126 -
5.127 -fun trymatchOK2xml (cI:calcID) (ModSpec modspec) =
5.128 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.129 - \<TRYMATCH>\n\
5.130 - \ <CALCID> "^string_of_int cI^" </CALCID>\n"^
5.131 - modspec2xml i modspec^
5.132 - "</TRYMATCH>\n\
5.133 - \@@@@@end@@@@@");
5.134 -fun tryrefineOK2xml (cI:calcID) (ModSpec modspec) =
5.135 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.136 - \<TRYREFINE>\n\
5.137 - \ <CALCID> "^string_of_int cI^" </CALCID>\n"^
5.138 - modspec2xml i modspec^
5.139 - "</TRYREFINE>\n\
5.140 - \@@@@@end@@@@@");
5.141 -
5.142 -fun appendformulaOK2xml (cI:calcID) (old:pos') (del:pos') (new:pos') =
5.143 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.144 - \<APPENDFORMULA>\n\
5.145 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.146 - \ <CALCCHANGED>\n" ^
5.147 - pos'2xml (2*i) ("UNCHANGED", old) ^
5.148 - pos'2xml (2*i) ("DELETED", del) ^
5.149 - pos'2xml (2*i) ("GENERATED", new) ^
5.150 - " </CALCCHANGED>\n\
5.151 - \</APPENDFORMULA>\n\
5.152 - \@@@@@end@@@@@");
5.153 -(* appendformulaOK2xml 1 ([2],Frm) ([3],Pbl) ([4],Res);
5.154 - *)
5.155 -fun appendformulaERROR2xml (cI:calcID) msg =
5.156 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.157 - \<APPENDFORMULA>\n\
5.158 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.159 - \ <ERROR> "^ msg ^" </ERROR>\n\
5.160 - \</APPENDFORMULA>\n\
5.161 - \@@@@@end@@@@@");
5.162 -
5.163 -fun replaceformulaOK2xml (cI:calcID) (old:pos') (del:pos') (new:pos') =
5.164 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.165 - \<REPLACEFORMULA>\n\
5.166 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.167 - \ <CALCCHANGED>\n" ^
5.168 - pos'2xml (2*i) ("UNCHANGED", old) ^
5.169 - pos'2xml (2*i) ("DELETED", del) ^
5.170 - pos'2xml (2*i) ("GENERATED", new) ^
5.171 - " </CALCCHANGED>\n\
5.172 - \</REPLACEFORMULA>\n\
5.173 - \@@@@@end@@@@@");
5.174 -fun replaceformulaERROR2xml (cI:calcID) msg =
5.175 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.176 - \<REPLACEFORMULA>\n\
5.177 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.178 - \ <ERROR> "^ msg ^" </ERROR>\n\
5.179 - \</REPLACEFORMULA>\n\
5.180 - \@@@@@end@@@@@");
5.181 -
5.182 -fun setnexttactic2xml (*uI:iterID*) (cI:calcID) e =
5.183 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.184 - \<SETNEXTTACTIC>\n\
5.185 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.186 - \ <MESSAGE> "^e^" </MESSAGE>\n\
5.187 - \</SETNEXTTACTIC>\n\
5.188 - \@@@@@end@@@@@");
5.189 -
5.190 -fun fetchproposedtacticOK2xml (*uI:userID*) (cI:calcID) tac =
5.191 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.192 - \<NEXTTAC>\n\
5.193 - \ <CALCID> "^string_of_int cI^" </CALCID>\n"^
5.194 - tac2xml i tac^
5.195 -(* ^(strs2xml o (map (tac2xml i))) tacs^*)
5.196 - "</NEXTTAC>\n\
5.197 - \@@@@@end@@@@@");
5.198 -(* fetchproposedtactic2xml 11 22 (Rewrite ("rmult_commute","?m *?n =?n *?m"));
5.199 - *)
5.200 -fun fetchproposedtacticERROR2xml (*uI:userID*) (cI:calcID) e =
5.201 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.202 - \<NEXTTAC>\n\
5.203 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.204 - \ <ERROR> "^ e ^" </ERROR>\n\
5.205 - \</NEXTTAC>\n\
5.206 - \@@@@@end@@@@@");
5.207 -
5.208 -(*. UNCHANGED: the pos' of the active formula autocalculate has been applied at
5.209 - DELETED: last pos' of the succesional sequence of formulae prob. deleted
5.210 - GENERATED: the pos' of the new active formula
5.211 -.*)
5.212 -fun autocalculateOK2xml (cI:calcID) (old:pos') (del:pos') (new:pos') =
5.213 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.214 - \<AUTOCALC>\n\
5.215 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.216 - \ <CALCCHANGED>\n" ^
5.217 - pos'2xml (2*i) ("UNCHANGED", old) ^
5.218 - pos'2xml (2*i) ("DELETED", del) ^
5.219 - pos'2xml (2*i) ("GENERATED", new) ^
5.220 - " </CALCCHANGED>\n\
5.221 - \</AUTOCALC>\n\
5.222 - \@@@@@end@@@@@");
5.223 -(* autocalculate2xml 11 22 (Rewrite ("rmult_commute","?m *?n =?n *?m"));
5.224 - *)
5.225 -fun autocalculateERROR2xml (*uI:userID*) (cI:calcID) e =
5.226 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.227 - \<AUTOCALC>\n\
5.228 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.229 - \ <ERROR> "^ e ^" </ERROR>\n\
5.230 - \</AUTOCALC>\n\
5.231 - \@@@@@end@@@@@");
5.232 -
5.233 -fun detailStepOK (cI:calcID) (*pos'forms*) (old:pos') (del:pos') (new:pos') =
5.234 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.235 - \<DETAILSTEP>\n\
5.236 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.237 - \ <CALCCHANGED>\n" ^
5.238 - pos'2xml (2*i) ("UNCHANGED", old) ^
5.239 - pos'2xml (2*i) ("DELETED", del) ^
5.240 - pos'2xml (2*i) ("GENERATED", new) ^
5.241 - " </CALCCHANGED>\n\
5.242 - \</DETAILSTEP>\n\
5.243 - \@@@@@end@@@@@");
5.244 -fun detailStepERROR (cI:calcID) e =
5.245 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.246 - \<DETAILSTEP>\n\
5.247 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.248 - \ <ERROR> "^ e ^" </ERROR>\n\
5.249 - \</DETAILSTEP>\n\
5.250 - \@@@@@end@@@@@");
5.251 -
5.252 -fun modifycalcheadOK2xml (cI:calcID) incom (chd:ocalhd) =
5.253 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.254 - \<MODIFYCALCHEAD>\n\
5.255 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.256 - \ <STATUS> "^incom^" </STATUS>\n"^
5.257 - modspec2xml i chd^
5.258 - "</MODIFYCALCHEAD>\n\
5.259 - \@@@@@end@@@@@");
5.260 -
5.261 -fun applicabletacticsOK cI tacs =
5.262 - writeln ("@@@@@begin@@@@@\n "^string_of_int cI^" \n\
5.263 - \<APPLICABLETACTICS>\n\
5.264 - \ <CALCID> "^string_of_int cI^" </CALCID>\n\
5.265 - \ <TACLIST>\n"^
5.266 - tacs2xml (2*i) tacs^
5.267 - " </TACLIST>\n\
5.268 - \</APPLICABLETACTICS>\n\
5.269 - \@@@@@end@@@@@");
5.270 +getintervalOK 1 [(([2],Res), Form t),
5.271 + (([3],Pbl), ModSpec e_ocalhd),
5.272 + (([3,1],Frm), Form (str2term "-1+x=0"))];