Definition sep_beq a b :=
match a, b with
| flocal, flocal
| fprop, fprop => true
| fdata_at ty1, fdata_at ty2 => expr.eqb_type ty1 ty2
| fproj_val ty1, fproj_val ty2 => expr.eqb_type ty1 ty2
| fupd_val ty1, fupd_val ty2 => expr.eqb_type ty1 ty2
(*| ffield_at ty1 li1, ffield_at ty2 li2 => andb (expr.eqb_type ty1 ty2) (li1 ?[eq] li2) | flseg t1 i1 _, flseg t2 i2 _ => andb (expr.eqb_type t1 t2) (BinPos.Pos.eqb i1 i2)*)
| _, _ => false
end
.

(* Specifications: *)
Lemma sep_beq_sound : forall a b, sep_beq a b = true -> a = b.
rewrite (rel_dec_correct) in H0. auto.