Instance raft_params : RaftParams VarD.vard_base_params :=
    raft_params n.Instance base_params : BaseParams :=
    transformed_base_params n.Instance multi_params : MultiParams _ :=
    transformed_multi_params n.Instance failure_params : FailureParams _ :=
    transformed_failure_params n.

(* Specifications: *)
Lemma correct_input_correct_filterMap_trace_non_empty_out : forall tr, input_correct tr -> input_correct (filterMap trace_non_empty_out tr).
Lemma correct_filterMap_trace_non_empty_out_input_correct : forall tr, input_correct (filterMap trace_non_empty_out tr) -> input_correct tr.
Lemma input_correct_filterMap_trace_non_empty_out : forall tr tr', input_correct tr -> filterMap trace_non_empty_out tr = filterMap trace_non_empty_out tr' -> input_correct tr'.
Lemma get_input_tr_filterMap_trace_non_empty_out : forall tr, get_input tr = get_input (filterMap trace_non_empty_out tr).
Lemma get_output_tr_filterMap_trace_non_empty_out : forall tr, get_output tr = get_output (filterMap trace_non_empty_out tr).
Lemma exported_filterMap_trace_non_empty_out : forall tr tr' l tr1, exported (get_input tr') (get_output tr') l tr1 -> filterMap trace_non_empty_out tr = filterMap trace_non_empty_out tr' -> exported (get_input tr) (get_output tr) l tr1.
Lemma import_exported_filterMap_trace_non_empty_out : forall tr, import tr = import (filterMap trace_non_empty_out tr).
Lemma equivalent_filterMap_trace_non_empty_out : forall tr tr' l, equivalent key (import tr') l -> filterMap trace_non_empty_out tr = filterMap trace_non_empty_out tr' -> equivalent key (import tr) l.
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.