Proof using.
unfold locks_correct.
intuition.
destruct (Name_eq_dec (Client x) (Client n)).
- find_inversion. exfalso.
rewrite_update.
congruence.
- rewrite_update.
auto.
Qed.
Ltac set_up_input_handlers :=
intros;
find_apply_lem_hyp InputHandler_cases;
intuition idtac; try break_exists; intuition idtac; subst;
repeat find_rewrite;
simpl in *; intuition idtac; repeat find_inversion;
try now rewrite update_nop_ext.

(* Specifications: *)
Lemma locks_correct_input_handlers :
forall h i sigma u st' out ms,
InputHandler h i (sigma h) = (u, out, st', ms) ->
locks_correct sigma ->
locks_correct (update name_eq_dec sigma h st').
Lemma locks_correct_input_handlers :
forall h i sigma u st' out ms,
InputHandler h i (sigma h) = (u, out, st', ms) ->
locks_correct sigma ->
locks_correct (update name_eq_dec sigma h st').