Ltac workhorse :=
    try match goal with
        | [ |- mkNetwork _ _ = mkNetwork _ _ ] => f_equal
      end;
    try match goal with
        | [ |- (fun _ => _) = (fun _ => _) ] => apply functional_extensionality; intros
      end;
      repeat break_match;
      repeat match goal with
               | [ H : (_, _) = (_, _) |- _ ] => invc H
             end;
      repeat (simpl in *; subst);
      repeat rewrite map_app;
      repeat rewrite map_map.Notation mgv_deghost := (@mgv_deghost _ _ ghost_log_params).

Lemma step_failure_star_raft_intermediate_reachable_extend : forall f net f' net' tr, @step_failure_star _ _ raft_msg_refined_failure_params (f, net) (f', net') tr -> msg_refined_raft_intermediate_reachable net -> msg_refined_raft_intermediate_reachable net'.