Ltac start :=
    red; intros; eapply votes_votesWithLog_correspond_cases; eauto.Ltac finish :=
    repeat break_match; subst_max; first [
      left; solve[eauto] |
      right; repeat eexists; solve[eauto]
    ].Ltac unfold_all :=
    red; unfold votes_votesWithLog_correspond, votes_votesWithLog, votesWithLog_votes.

Lemma votes_votesWithLog_correspond_invariant : forall net, refined_raft_intermediate_reachable net -> votes_votesWithLog_correspond net.