(* Definition agree_except (x: var) (s s': state) : Prop := (forall x', x' <> x -> stack_get (stk s) (Some x') = stack_get (stk s') (Some x')) /\ hp s = hp s'.  Lemma agree_except_refl: forall x s, agree_except x s s. Hint Resolve agree_except_refl.  Definition existsv (nextv: var) (P: spred) : spred := fun s => exists s', agree_except nextv s s' /\ P s'. *)
Definition existsv (nextv: var) (P: spred) : spred :=
fun s => exists y,  P (State (env_set nextv y (stk s)) (hp s)).

(* Specifications: *)
Lemma existsv_refl:
forall P x, P |-- existsv x P.