let lvar env lv : lvar_kind =
    match lv.lv_origin with
      | None ->
          begin
            try Logic_var.Map.find lv env.lvars
            with Not_found ->
              try
                let cst = Logic_env.find_logic_cons lv in
                Logic_term (!rec_apply_function env cst [] [])
              with Not_found ->
                Wp_parameters.abort "Unknown logic constant %s" lv.lv_name
          end
      | Some vi -> 
          begin
            try Logic_value (Varinfo.Map.find vi env.xvars)
            with Not_found -> Logic_cvar vi
          end