sml with GETELEMENTSFROMTO via shell-cmd
authorwneuper
Tue, 08 Feb 2005 11:24:55 +0100
changeset 20668b38756c38a6
parent 2065 603c0de1a9e3
child 2067 b53b8d1575c7
sml with GETELEMENTSFROMTO via shell-cmd
src/sml/FE-interface/interface.sml
src/sml/ME/modspec.sml
src/sml/ROOT.ML
src/sml/systest/FE-interface.sml
src/sml/xmlsrc/interface-xml.sml
     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"))];