let mk_select is_equal b j =
try
(match d_interp b with
| Sym.Create, [a] -> a
| Sym.Update, [a; i; x] ->
(match is_equal i j with
| Three.Yes -> x
| Three.No -> select a j
| Three.X -> select b j)
| _ ->
select b j)
with
Not_found -> select b j