Instance Perm_state: Perm_alg state.Instance Sep_state: Sep_alg state.Instance Canc_state: Canc_alg state.Definition expr_denote (e : expr) (s : state) : val :=
  match e with Nil => nil_val | Var x => stack_get (stk s) (Some x) end.Definition var_eq (x y : expr) (s : state) := expr_denote x s = expr_denote y s.Infix "===" := var_eq (at level 35, no associativity).Notation spred := (state -> Prop).

(* Specifications: *)
Lemma empstate_empheap : forall (s:state), emp s <-> emp (hp s).