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).
Definition bot : t := (NE.bot, NMemDead).

Lemma ge_bot: forall x, ge x bot.