Lemma votes_votesWithLog_correspond_cases : forall net h gd d ps' st', votes_votesWithLog_correspond net -> (forall h' : Net.name, st' h' = update name_eq_dec (nwState net) h (gd, d) h') -> (votes gd = votes (fst (nwState net h)) /\ (* unchanged *) votesWithLog gd = votesWithLog (fst (nwState net h))) \/ (exists t n l, (* add entry *) votes gd = (t, n) :: votes (fst (nwState net h)) /\ votesWithLog gd = (t, n, l) :: votesWithLog (fst (nwState net h))) -> votes_votesWithLog_correspond {| nwPackets := ps'; nwState := st' |}.