Section OneLeaderLogPerTerm.
Context {orig_base_params : BaseParams}.
Context {one_node_params : OneNodeParams orig_base_params}.
Context {raft_params : RaftParams orig_base_params}.
Context {rri : raft_refinement_interface}.
Context {llvwli : leaderLogs_votesWithLog_interface}.
Context {vci : votes_correct_interface}.
Context {cci : cronies_correct_interface}.
Context {vvci : votes_votesWithLog_correspond_interface}.
Context {lltsi : leaderLogs_term_sanity_interface}.
Ltac start :=
red; unfold one_leaderLog_per_term; simpl; intros.
Ltac start_update :=
start;
repeat find_higher_order_rewrite;
repeat (update_destruct; subst; rewrite_update);
[| | |eauto].
Proof using.
start. contradiction.
Qed.

Lemma one_leaderLog_per_term_unchanged :
forall net st' ps' h gd d,
one_leaderLog_per_term net ->
(forall h' : Net.name, st' h' = update name_eq_dec (nwState net) h (gd, d) h') ->
leaderLogs gd = leaderLogs (fst (nwState net h)) ->
one_leaderLog_per_term {| nwPackets := ps'; nwState := st' |}.