Proof using.
intros tr tr' l H_equ H_eq.
rewrite import_exported_filterMap_trace_non_empty_out.
rewrite H_eq.
rewrite <- import_exported_filterMap_trace_non_empty_out.
auto.
Qed.

(* Specifications: *)
Theorem vard_raft_serialized_linearizable :
forall failed net tr,
input_correct tr ->
step_failure_star step_failure_init (failed, net) tr ->
exists l tr1 st,
equivalent _ (import tr) l /\
exported (get_input tr) (get_output tr) l tr1 /\
step_1_star init st tr1.