Ltac start_proof :=
    cbn [nwState]; intros; subst; repeat find_higher_order_rewrite;
    update_destruct; rewrite_update; cbn [fst snd] in *; eauto.

(* Specifications: *)
Lemma votes_le_current_term_client_request : refined_raft_net_invariant_client_request votes_le_currentTerm.
Lemma votes_le_current_term_timeout : refined_raft_net_invariant_timeout votes_le_currentTerm.
Lemma votes_le_current_term_append_entries : refined_raft_net_invariant_append_entries votes_le_currentTerm.
Lemma votes_le_current_term_append_entries_reply : refined_raft_net_invariant_append_entries_reply votes_le_currentTerm.
Lemma votes_le_current_term_request_vote : refined_raft_net_invariant_request_vote votes_le_currentTerm.
Lemma votes_le_current_term_request_vote_reply : refined_raft_net_invariant_request_vote_reply votes_le_currentTerm.
Lemma votes_le_current_term_do_leader : refined_raft_net_invariant_do_leader votes_le_currentTerm.
Lemma votes_le_current_term_do_generic_server : refined_raft_net_invariant_do_generic_server votes_le_currentTerm.
Lemma votes_le_current_term_state_same_packet_subset : refined_raft_net_invariant_state_same_packet_subset votes_le_currentTerm.
Lemma votes_le_current_term_reboot : refined_raft_net_invariant_reboot votes_le_currentTerm.
Theorem votes_le_current_term_init : refined_raft_net_invariant_init votes_le_currentTerm.
Theorem votes_le_current_term_invariant : forall net, refined_raft_intermediate_reachable net -> votes_le_currentTerm net.