let rec logic_of_value = function
    | V_int(_,t) -> F.wrap t
    | V_float(_,t) -> F.wrap t
    | V_pointer(_,loc) -> F.wrap (M.pointer_of_loc loc)
    | V_record(_,t) -> F.wrap t
    | V_union(_,t) -> F.wrap t
    | V_array(_,t) -> F.wrap t