Definition var := Ident.t.Definition env := var -> nat.Definition env_get (rho: env) : var -> val := fun x => Some (rho x).Definition env_set (x: var) (v: val) (rho: env) : env :=
  match v with
  | None (*empty_val*) => rho
  | Some v' => fun y => if Ident.eq_dec x y then v' else rho y
  end.

Lemma env_reset s x : env_set x (env_get s x) s = s.