let sigma is_equal op l =
  match op, l with
    | Create, [a] ->
        mk_create a
    | Update, [a; i; x] ->
        mk_update is_equal a i x
    | Select, [a; j] ->
        mk_select is_equal a j
    | _ -> 
        assert false