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