Definition type_term_log_monotonic st st' :=
    type st' = Leader ->
    type st = Leader /\
    currentTerm st' = currentTerm st /\
    (forall e, In e (log st) -> In e (log st')).Notation appendEntries_leader_predicate ps st :=
    (forall p t lid pli plt es lci e,
      In p ps ->
      pBody p = AppendEntries t lid pli plt es lci ->
      In e es ->
      currentTerm st = t ->
      type st = Leader ->
      In e (log st)).

Lemma lifted_one_leader_per_term : forall net h h', refined_raft_intermediate_reachable net -> currentTerm (snd (nwState net h)) = currentTerm (snd (nwState net h')) -> type (snd (nwState net h)) = Leader -> type (snd (nwState net h')) = Leader -> h = h'.