Proof using.
intros.
unfold update_elections_data_client_request in *.
repeat break_match; subst; simpl in *; auto.
Qed.

(* Specifications: *)
Lemma prefix_within_term_union :
forall l1 l1' l1'' l2,
prefix_within_term l1' l2 ->
prefix_within_term l1'' l2 ->
(forall e, In e l1 -> In e l1' \/ In e l1'') ->
prefix_within_term l1 l2.
Lemma update_elections_data_clientRequest_allEntries_old' :
forall h st client id c x,
In x (allEntries (fst st)) ->
In x (allEntries (update_elections_data_client_request h st client id c)).
Lemma update_elections_data_timeout_allEntries :
forall h st,
allEntries (update_elections_data_timeout h st) = allEntries (fst st).
Lemma update_elections_data_timeout_cronies :
forall h st t,
cronies (update_elections_data_timeout h st) t = cronies (fst st) t
\/ (cronies (update_elections_data_timeout h st) t = [h]
/\ t = S (currentTerm (snd st))).