let rec set_of  = function
    | Value v -> F.singleton (M.logic_of_value v)
    | Data d -> F.singleton d
    | Loc l ->  F.singleton (M.term_of_loc l)
    | List ds -> F.unions (List.map set_of ds)
    | Interval i -> F.interval i
    | Set s -> s
    | Range _ -> Wp_parameters.not_yet_implemented "set of zone"