let get_strategy localizable : strategy =
  match localizable with
    | Pretty_source.PStmt( kf , stmt )
    | Pretty_source.PLvalSome kf , Kstmt stmt , _ )
    | Pretty_source.PTermLvalSome kf , Kstmt stmt , _ )
      ->
        begin
          match stmt with
            | { skind=Instr(Call(_,e,_,_)) } ->
                begin
                  match WpStrategy.get_called_kf e with
                    | None -> Snone
                    | Some called ->
                        Scall {
                          sc_caller = kf ;
                          sc_called = called ;
                          sc_callat = stmt ;
                        }
                end
            | _ -> Snone
(*
                Scode {
                  sp_target = "function contract" ;
                  sp_kf = Some kf ;
                  sp_bhv = [] ;
                  sp_ip = None ;
                }
*)

        end

    | Pretty_source.PVDecl (Some kf,{vglob=true}) ->
        Scode {
          sp_target = "function contract" ;
          sp_kf   = Some kf ;
          sp_bhv  = [] ;
          sp_ip   = None ;
        }

    | Pretty_source.PIP ip ->
        Scode {
          sp_target = kind_of_property ip ;
          sp_kf   = Property.get_kf ip ;
          sp_bhv  = 
            Extlib.may_map
              ~dft:[] 
              (fun x -> [ x.b_name ]) 
              (Property.get_behavior ip) ;
          sp_ip   = Some ip ;
        }

    | Pretty_source.PVDecl _
    | Pretty_source.PLval _ 
    | Pretty_source.PTermLval _
    | Pretty_source.PGlobal _ ->
        Snone