Inductive t' := Bot | State (ae: aenv) (am: amem).Inductive t' := Bot | State (ae: aenv) (am: amem).Inductive t' := Bot | State (ae: aenv) (am: amem).Definition t := t'.Definition eq (x y: t) :=
    match x, y with
    | Bot, Bot => True
    | State ae1 am1, State ae2 am2 =>
        AE.eq ae1 ae2 /\ forall bc m, mmatch bc m am1 <-> mmatch bc m am2
    | _, _ => False
    end.

(* Specifications: *)
Lemma eq_refl: forall x, eq x x.
Lemma eq_sym: forall x y, eq x y -> eq y x.
Lemma eq_trans: forall x y z, eq x y -> eq y z -> eq x z.