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].

(* Specifications: *)
Lemma one_leaderLog_per_term_init : refined_raft_net_invariant_init one_leaderLog_per_term.
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' |}.