Ltac start_cases :=
    red; intros; eapply votesWithLog_term_sanity_cases; eauto.Ltac solve_votesWithLog lem :=
    intros; subst; first [
      left; solve [eapply lem; eauto] |  (* votesWithLog doesn't change *)
      solve [eapply lem; eauto]  (* has both cases *)
    ].Ltac solve_currentTerm lem :=
    find_apply_lem_hyp lem; solve [intuition].

Lemma votesWithLog_term_sanity_invariant : forall net, refined_raft_intermediate_reachable net -> votesWithLog_term_sanity net.