(** Compilation function for parallel moves. *)

Function parmove_aux (st: state) {measure measure st} : moves :=
  if final_state st
  then match st with State _ _ tau => tau end
  else parmove_aux (parmove_step st).

(* Specifications: *)
Lemma parmove_aux_transitions: forall st, dtransitions st (State nil nil (parmove_aux st)).
Lemma parmove_aux_transitions: forall st, dtransitions st (State nil nil (parmove_aux st)).