src/Tools/isac/Interpret/calchead.sml
changeset 42437 529008b1408e
parent 42432 7dc25d1526a5
child 48761 4162c4f6f897
     1.1 --- a/src/Tools/isac/Interpret/calchead.sml	Fri May 25 09:58:20 2012 +0200
     1.2 +++ b/src/Tools/isac/Interpret/calchead.sml	Fri May 25 16:30:15 2012 +0200
     1.3 @@ -1841,46 +1841,42 @@
     1.4  	(by application of another tac to the preceding formula !)
     1.5     pos is assumed to come from the frontend, ie. generated by moveDown.*)
     1.6  (*cannot be in ctree.sml, because ModSpec has to be calculated*)
     1.7 -fun pt_extract (pt,([],Res)) =
     1.8 -(* val (pt,([],Res)) = ptp;
     1.9 -   *)
    1.10 +fun pt_extract (pt,([],Res)) = (* WN120512: --returns--> Check_Postcondition WRONGLY
    1.11 +                                  see --- build fun is_exactly_equal*)
    1.12      (* ML_TODO 110417 get assumptions from ctxt !? *)
    1.13 -    let val (f, asm) = get_obj g_result pt []
    1.14 -    in (Form f, NONE, asm) end
    1.15 -(* val p = [3,2];
    1.16 -   *)
    1.17 +      let val (f, asm) = get_obj g_result pt []
    1.18 +      in (Form f, NONE, asm) end
    1.19    | pt_extract (pt,(p,Res)) =
    1.20 -(* val (pt,(p,Res)) = ptp;
    1.21 -   *)
    1.22 -    let val (f, asm) = get_obj g_result pt p
    1.23 -	val tac = if last_onlev pt p
    1.24 -		  then if is_pblobj' pt (lev_up p)
    1.25 -		       then let val (PblObj{spec=(_,pI,_),...}) = 
    1.26 -				    get_obj I pt (lev_up p)
    1.27 -			    in if pI = e_pblID then NONE 
    1.28 -			       else SOME (Check_Postcond pI) end
    1.29 -		       else SOME End_Trans (*WN0502 TODO for other branches*)
    1.30 -		  else let val p' = lev_on p
    1.31 -		       in if is_pblobj' pt p'
    1.32 -			  then let val (PblObj{origin = (_,(dI,pI,_),_),...}) =
    1.33 -				       get_obj I pt p'
    1.34 -			       in SOME (Subproblem (dI, pI)) end
    1.35 -			  else if f = get_obj g_form pt p'
    1.36 -			  then SOME (get_obj g_tac pt p')
    1.37 -			  (*because this Frm          ~~~is not on worksheet*)
    1.38 -			  else SOME (Take (term2str (get_obj g_form pt p')))
    1.39 -		       end
    1.40 -    in (Form f, tac, asm) end
    1.41 -	
    1.42 +      let
    1.43 +        val (f, asm) = get_obj g_result pt p
    1.44 +        val tac =
    1.45 +          if last_onlev pt p
    1.46 +          then
    1.47 +            if is_pblobj' pt (lev_up p)
    1.48 +            then
    1.49 +              let
    1.50 +                val (PblObj{spec=(_,pI,_),...}) = get_obj I pt (lev_up p)
    1.51 +              in if pI = e_pblID then NONE else SOME (Check_Postcond pI) end
    1.52 +		        else SOME End_Trans (*WN0502 TODO for other branches*)
    1.53 +		      else
    1.54 +		        let val p' = lev_on p
    1.55 +		        in
    1.56 +		          if is_pblobj' pt p'
    1.57 +		          then
    1.58 +		            let val (PblObj{origin = (_,(dI,pI,_),_),...}) = get_obj I pt p'
    1.59 +		            in SOME (Subproblem (dI, pI)) end
    1.60 +		          else
    1.61 +		            if f = get_obj g_form pt p'
    1.62 +		            then SOME (get_obj g_tac pt p') (*because this Frm ~~~is not on worksheet*)
    1.63 +		            else SOME (Take (term2str (get_obj g_form pt p')))
    1.64 +		        end
    1.65 +      in (Form f, tac, asm) end
    1.66    | pt_extract (pt, pos as (p,p_(*Frm,Pbl*))) =
    1.67 -(* val (pt, pos as (p,p_(*Frm,Pbl*))) = ptp;
    1.68 -   val (pt, pos as (p,p_(*Frm,Pbl*))) = (pt, p);
    1.69 -   *)
    1.70 -    let val ppobj = get_obj I pt p
    1.71 -	val f = if is_pblobj ppobj then pt_model ppobj p_
    1.72 -		else get_obj pt_form pt p
    1.73 -	val tac = g_tac ppobj
    1.74 -    in (f, SOME tac, []) end;
    1.75 +      let
    1.76 +        val ppobj = get_obj I pt p
    1.77 +        val f = if is_pblobj ppobj then pt_model ppobj p_ else get_obj pt_form pt p
    1.78 +        val tac = g_tac ppobj
    1.79 +      in (f, SOME tac, []) end;
    1.80  
    1.81  
    1.82  (**. get the formula from a ctree-node: