Proof using.
unfold execute_log.
intros.
rewrite execute_log'_app. auto.
Qed.

Lemma applyEntry_stateMachine_correct :
forall st e l st' es,
applyEntry st e = (l, st') ->
stateMachine st = snd (execute_log (deduplicate_log es)) ->
(forall e', In e' es -> eClient e' = eClient e -> eId e' < eId e) ->
stateMachine st' = snd (execute_log (deduplicate_log es ++ [e])).