Definition step (S: state) (t: trace) (S': state) : Prop :=
  estep S t S' \/ sstep ge S t S'.

(* Specifications: *)
Lemma context_compose: forall k2 k3 C2, context k2 k3 C2 -> forall k1 C1, context k1 k2 C1 -> context k1 k3 (fun x => C2(C1 x)) with contextlist_compose: forall k2 C2, contextlist k2 C2 -> forall k1 C1, context k1 k2 C1 -> contextlist k1 (fun x => C2(C1 x)).
Lemma context_compose: forall k2 k3 C2, context k2 k3 C2 -> forall k1 C1, context k1 k2 C1 -> context k1 k3 (fun x => C2(C1 x)) with contextlist_compose: forall k2 C2, contextlist k2 C2 -> forall k1 C1, context k1 k2 C1 -> contextlist k1 (fun x => C2(C1 x)).