Definition efield_beq a b :=
  match a, b with
  | eStructField x, eStructField y => eqb_ident x y
  | eUnionField x, eUnionField y => eqb_ident x y
  | eArraySubsc x, eArraySubsc y => expr_beq x y
  | _, _ => false
  end.

(* Specifications: *)
Lemma efield_beq_spec: forall a b, efield_beq a b = true <-> a = b.