Proof using.
induction tr; intros; simpl in *; repeat break_match; auto.
Qed.

(* Specifications: *)
Lemma last_holder'_locked_extend :
forall tr h n,
last_holder' h (tr ++ [(Client n, inr [Locked])]) = Some n.
Lemma trace_mutual_exclusion'_extend_input :
forall tr h c i,
i <> Unlock ->
trace_mutual_exclusion' h tr ->
trace_mutual_exclusion' h (tr ++ [(Client c, inl i)]).
Lemma last_holder'_locked_extend :
forall tr h n,
last_holder' h (tr ++ [(Client n, inr [Locked])]) = Some n.
Lemma trace_mutual_exclusion'_extend_input :
forall tr h c i,
i <> Unlock ->
trace_mutual_exclusion' h tr ->
trace_mutual_exclusion' h (tr ++ [(Client c, inl i)]).