Proof using.
intros. unfold handleClientRequest in *.
repeat break_match; find_inversion; intuition eauto.
simpl in *. right. eexists; simpl in *; intuition eauto.
reflexivity.
Qed.

(* Specifications: *)
Lemma handleTimeout_type :
forall h st out st' l,
handleTimeout h st = (out, st', l) ->
(type st' = type st /\ currentTerm st' = currentTerm st /\ log st' = log st) \/
type st' = Candidate.