Instance multi_params_orig_name_tot_map :
    MultiParamsNameTotalMap serialized_multi_params orig_multi_params :=
  {
    tot_map_name := id ;
    tot_map_name_inv := id
  }.Instance multi_params_orig_name_tot_map_bijective :
    MultiParamsNameTotalMapBijective multi_params_orig_name_tot_map :=
  {
    tot_map_name_inv_inverse := fun _ => eq_refl _;
    tot_map_name_inverse_inv := fun _ => eq_refl _
  }.Instance multi_orig_params_pt_msg_map : MultiParamsMsgPartialMap serialized_multi_params orig_multi_params :=
  {
    pt_map_msg := fun m => 
      match deserialize_top deserialize m with
      | Some data => Some data
      | None => None
      end   
  }.Instance multi_orig_base_params_pt_map : BaseParamsPartialMap serialized_base_params orig_base_params :=
  {
    pt_map_data := id;
    pt_map_input := fun i => Some i;
    pt_map_output := fun o => Some o
  }.Instance multi_orig_failure_params_pt_map_congruency : FailureParamsPartialMapCongruency serialized_failure_params orig_failure_params multi_orig_base_params_pt_map :=
  {
    pt_reboot_eq := fun _ => eq_refl _
  }.Instance multi_orig_name_overlay_params_tot_map_congruency : NameOverlayParamsTotalMapCongruency serialized_name_overlay_params orig_name_overlay_params multi_params_orig_name_tot_map := 
  {
    tot_adjacent_to_fst_snd := fun _ _ => conj (fun H => H) (fun H => H)
  }.Program Instance multi_orig_fail_msg_params_pt_map_congruency : FailMsgParamsPartialMapCongruency serialized_fail_msg_params orig_fail_msg_params multi_orig_params_pt_msg_map :=
  {
    pt_fail_msg_fst_snd := _
  }.Program Instance multi_orig_new_msg_params_pt_map_congruency : NewMsgParamsPartialMapCongruency serialized_new_msg_params orig_new_msg_params multi_orig_params_pt_msg_map :=
  {
    pt_new_msg_fst_snd := _
  }.Program Instance multi_orig_params_pt_map_congruency : MultiParamsPartialMapCongruency multi_orig_base_params_pt_map multi_params_orig_name_tot_map multi_orig_params_pt_msg_map :=
  {
    pt_init_handlers_eq := fun _ => eq_refl ;
    pt_net_handlers_some := _ ;
    pt_net_handlers_none := _ ;
    pt_input_handlers_some := _ ;
    pt_input_handlers_none := _;
  }.

(* Specifications: *)
Lemma pt_map_net_deserialize_net : forall net, pt_map_net net = deserialize_net net.
Lemma pt_map_onet_deserialize_onet : forall net, pt_map_onet net = deserialize_onet net.
Lemma pt_map_odnet_deserialize_odnet : forall net, pt_map_odnet net = deserialize_odnet net.
Lemma step_async_deserialized_simulation : forall net net' tr, @step_async _ serialized_multi_params net net' tr -> @step_async _ orig_multi_params (deserialize_net net) (deserialize_net net') tr \/ (deserialize_net net' = deserialize_net net).
Lemma step_async_deserialized_simulation_star : forall net tr, @step_async_star _ serialized_multi_params step_async_init net tr -> exists tr', @step_async_star _ orig_multi_params step_async_init (deserialize_net net) tr' /\ filterMap trace_non_empty_out tr = filterMap trace_non_empty_out tr'.
Lemma step_failure_deserialized_simulation : forall net net' failed failed' tr, @step_failure _ _ serialized_failure_params (failed, net) (failed', net') tr -> @step_failure _ _ orig_failure_params (failed, deserialize_net net) (failed', deserialize_net net') tr \/ (deserialize_net net' = deserialize_net net /\ failed = failed').
Lemma step_failure_deserialized_simulation_star : forall net failed tr, @step_failure_star _ _ serialized_failure_params step_failure_init (failed, net) tr -> exists tr', @step_failure_star _ _ orig_failure_params step_failure_init (failed, deserialize_net net) tr' /\ filterMap trace_non_empty_out tr = filterMap trace_non_empty_out tr'.
Lemma step_ordered_failure_serialized_simulation_star : forall net failed tr, @step_ordered_failure_star _ _ serialized_name_overlay_params serialized_fail_msg_params step_ordered_failure_init (failed, net) tr -> @step_ordered_failure_star _ _ orig_name_overlay_params orig_fail_msg_params step_ordered_failure_init (failed, deserialize_onet net) tr.
Theorem step_ordered_dynamic_failure_deserialized_simulation_star : forall net failed tr, @step_ordered_dynamic_failure_star _ _ serialized_name_overlay_params serialized_new_msg_params serialized_fail_msg_params step_ordered_dynamic_failure_init (failed, net) tr -> @step_ordered_dynamic_failure_star _ _ orig_name_overlay_params orig_new_msg_params orig_fail_msg_params step_ordered_dynamic_failure_init (failed, deserialize_odnet net) tr.