Proof using.
unfold has_key.
intros.
destruct e'.
simpl in *.
do_bool. left. break_if; congruence.
Qed.

Lemma deduplicate_log'_In :
forall l e,
In e l ->
forall ks,
(forall i, assoc clientId_eq_dec ks (eClient e) = Some i -> i < eId e) ->
(forall id',
before_func (has_key (eClient e) id') (has_key (eClient e) (eId e)) l ->
id' <= eId e) ->
(exists e',
eClient e' = eClient e /\
eId e' = eId e /\
In e' (deduplicate_log' l ks)).