Module NA <: SEMILATTICE.
Definition t := (nenv * nmem)%type.
Definition eq (x y: t) :=
NE.eq (fst x) (fst y) /\
(forall ge sp b ofs, nlive ge sp (snd x) b ofs <-> nlive ge sp (snd y) b ofs).
Definition beq (x y: t) : bool :=
NE.beq (fst x) (fst y) && nmem_beq (snd x) (snd y).
Definition ge (x y: t) : Prop :=
NE.ge (fst x) (fst y) /\
(forall ge sp b ofs, nlive ge sp (snd y) b ofs -> nlive ge sp (snd x) b ofs).

Lemma ge_refl: forall x y, eq x y -> ge x y.
Lemma ge_trans: forall x y z, ge x y -> ge y z -> ge x z.