(** *** Challenge exercise [simulate_error]  Show that if the machine produces an error, the small step relation is stuck.  This is a challenge exercise because you will need to figure out at least one nontrivial auxiliary lemma.  *)

(* Specifications: *)
(* SOLUTION *)
Lemma apply_heap_get_none : forall x h,
get x h = None ->
apply_heap h (var_f x) = var_f x.
Lemma no_step_stack : forall s h e0,
not (is_value e0) ->
not (exists e0', step e0 e0') ->
not (exists e1, step (apply_stack h s e0) e1).