# HG changeset patch # User wneuper # Date 1108459954 -3600 # Node ID 0912fe37ade0b4ce604b09655ffb1806f1739713 # Parent abf2d790467b41b9b92b98d4755b480bbd6b5cd9 sml-050215a-interSteps: corrected an error diff -r abf2d790467b -r 0912fe37ade0 src/sml/FE-interface/interface.sml --- a/src/sml/FE-interface/interface.sml Mon Feb 14 17:19:42 2005 +0100 +++ b/src/sml/FE-interface/interface.sml Tue Feb 15 10:32:34 2005 +0100 @@ -205,20 +205,22 @@ (* val (cI, iI) = (1,1); *) fun interSteps cI (*iI*) ip = - let val ((pt,p), tacis) = get_calc cI - (*val ip = get_pos cI iI*) - in if fst_onlev ip - then interStepsERROR cI "first formula on level has NO \ - \intermediate steps" - else (case detailstep pt ip of - ("detailrls", pt(*, pos'forms*), lastpos) => - (upd_calc cI ((pt, p), tacis); - interStepsOK cI (*pos'forms*) ip ip lastpos) - | ("donesteps", _(*, pos'formshds*), lastpos) => - interStepsOK cI (*pos'formshds*) ip ip lastpos) - handle _ => sysERROR2xml cI "" - end; - + let val ((pt,p), tacis) = get_calc cI + (*val ip = get_pos cI iI*)(*WN050215 quick and dirty*) + in if fst_onlev ip + then interStepsERROR cI "first formula on level has NO \ + \intermediate steps" + else let val ip' = lev_pred' pt ip + in (case detailstep pt ip of + ("detailrls", pt(*, pos'forms*), lastpos) => + (upd_calc cI ((pt, p), tacis); + interStepsOK cI (*pos'forms*) ip' ip' lastpos) + | ("donesteps", _(*, pos'formshds*), lastpos) => + interStepsOK cI (*pos'formshds*) ip' ip' lastpos) + handle _ => sysERROR2xml cI "syserror in detailstep" + end + end; + fun modifyCalcHead (cI:calcID) (ichd as ((p,_),_,_,_,_):icalhd) = let val ((pt,_),_) = get_calc cI in case input_icalhd pt ichd of diff -r abf2d790467b -r 0912fe37ade0 src/sml/ME/ctree.sml --- a/src/sml/ME/ctree.sml Mon Feb 14 17:19:42 2005 +0100 +++ b/src/sml/ME/ctree.sml Tue Feb 15 10:32:34 2005 +0100 @@ -734,6 +734,7 @@ val it = [1,2,2] : pos > lev_pred [1]; val it = [0] : pos *) + fun lev_dn p = p @ [0]; (*> (lev_dn o lev_on) [1,2,3]; val it = [1,2,4,0] : pos *) @@ -891,6 +892,8 @@ else false; fun fst_onlev (([], Frm):pos') = true + | fst_onlev (([], Pbl):pos') = true + | fst_onlev (([], Met):pos') = true | fst_onlev (pos, Frm) = last_elem pos = 1 | fst_onlev _ = false; fun last_onlev pt pos = not (existpt (lev_on pos) pt); @@ -1788,6 +1791,11 @@ if is_pblobj (get_obj I pt p) then (p, Pbl) else (par_pblobj pt p, Pbl); +(*WN0502 made for interSteps; _only_ regards branch TransitiveB*) +fun lev_pred' pt (pos:pos' as (p,Res)) = + if (is_pblobj o (get_obj I pt)) p then (p,Pbl):pos' else move_up [] pt pos + | lev_pred' pt p = move_up [] pt p; + diff -r abf2d790467b -r 0912fe37ade0 src/sml/ROOT.ML --- a/src/sml/ROOT.ML Mon Feb 14 17:19:42 2005 +0100 +++ b/src/sml/ROOT.ML Tue Feb 15 10:32:34 2005 +0100 @@ -75,7 +75,7 @@ *) - val version_kernel = "sml-050214a-intermediateSteps"; + val version_kernel = "sml-050215a-intermediateSteps"; print_depth 3; diff -r abf2d790467b -r 0912fe37ade0 src/sml/systest/FE-interface.sml --- a/src/sml/systest/FE-interface.sml Mon Feb 14 17:19:42 2005 +0100 +++ b/src/sml/systest/FE-interface.sml Tue Feb 15 10:32:34 2005 +0100 @@ -819,25 +819,26 @@ val ((pt,_),_) = get_calc 1; show_pt pt; -(*---------------this is NOT according to the interface ---------- - interSteps 1 ([],Pbl); (*not necessary on subproblems*); - val (unc, del, gen) = (([],Pbl),([],Pbl),([4],Res)); - getElementsFromTo 1 unc gen 1 false; -------------------------------------------------------------------*) + (*UC\label{SOLVE:INFO:intermediate-steps}*) + interSteps 1 ([2],Res); + val ((pt,_),_) = get_calc 1; show_pt pt (*new ([2,1],Frm)..([2,6],Res)*); + val (unc, del, gen) = (([1],Res),([1],Res),([2,6],Res)); + getElementsFromTo 1 unc gen 1 false; (*UC\label{SOLVE:INFO:intermediate-steps}*) - interSteps 1 ([2],Res); - (*delivers (([2],Res),([2],Res),([2,6],Res)); wrong!!!*) - val ((pt,_),_) = get_calc 1; show_pt pt (*calculates 6 intermediate steps*); - val (unc, del, gen) = (([1],Res),([1],Res),([2,6],Res)); - (*TODO.WN050214 2 2 correct to above!!!*) + interSteps 1 ([3,2],Res); + val ((pt,_),_) = get_calc 1; show_pt pt (*new ([3,2,1],Frm)..([3,2,2],Res)*); + val (unc, del, gen) = (([3,1],Res),([3,1],Res),([3,2,2],Res)); + getElementsFromTo 1 unc gen 1 false; + + (*UC\label{SOLVE:INFO:intermediate-steps}*) + interSteps 1 ([3],Res) (*no new steps in subproblems*); + val (unc, del, gen) = (([3],Pbl),([3],Pbl),([3,2],Res)); getElementsFromTo 1 unc gen 1 false; (*UC\label{SOLVE:INFO:intermediate-steps}*) interSteps 1 ([],Res) (*no new steps in subproblems*); - (*delivers (([],Res),([],Res),([4],Res)); wrong!!!*) val (unc, del, gen) = (([],Pbl),([],Pbl),([4],Res)); - (*TODO.WN050214 2 2 correct to above!!!*) getElementsFromTo 1 unc gen 1 false;