let rec map f a =
try
(match d_interp a with
| Sym.Empty, [] -> a
| Sym.Full, [] -> a
| Sym.Ite, [b1; b2; b3] ->
mk_ite (map f b1) (map f b2) (map f b3)
| _ ->
f a)
with
Not_found -> f a