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