Proof using.
pose proof decomposition_invariant.
find_apply_lem_hyp inductive_invariant_true_in_reachable.
unfold true_in_reachable, reachable in *.
intuition.
unfold composed_invariant in *.
apply H; eauto.
Qed.

(* Specifications: *)
Lemma trace_mutex'_locked_extend :
forall tr h n,
trace_mutual_exclusion' h tr ->
last_holder' h tr = None ->
trace_mutual_exclusion' h (tr ++ [(Client n, inr [Locked])]).
Lemma trace_mutex'_locked_extend :
forall tr h n,
trace_mutual_exclusion' h tr ->
last_holder' h tr = None ->
trace_mutual_exclusion' h (tr ++ [(Client n, inr [Locked])]).