Class MultiParamsPartialExtendedMap
 (B0 : BaseParams) (B1 : BaseParams) 
 (P0 : MultiParams B0) (P1 : MultiParams B1) :=
{
  pt_ext_map_data : @data B0 -> @name B0 P0 -> @data B1 ;
  pt_ext_map_input : @input B0 -> @name B0 P0 -> @data B0 -> option (@input B1) 
}.Class MultiParamsPartialExtendedMap
 (B0 : BaseParams) (B1 : BaseParams) 
 (P0 : MultiParams B0) (P1 : MultiParams B1) :=
{
  pt_ext_map_data : @data B0 -> @name B0 P0 -> @data B1 ;
  pt_ext_map_input : @input B0 -> @name B0 P0 -> @data B0 -> option (@input B1) 
}.Class MultiParamsPartialExtendedMap
 (B0 : BaseParams) (B1 : BaseParams) 
 (P0 : MultiParams B0) (P1 : MultiParams B1) :=
{
  pt_ext_map_data : @data B0 -> @name B0 P0 -> @data B1 ;
  pt_ext_map_input : @input B0 -> @name B0 P0 -> @data B0 -> option (@input B1) 
}.Definition pt_ext_mapped_net_handlers me src m st :=
  let '(_, st', ps) := net_handlers me src m st in
  (pt_ext_map_data st' me, filterMap (pt_map_name_msg (name_map := name_map) (msg_map := msg_map)) ps).Definition pt_ext_mapped_input_handlers me inp st :=
  let '(_, st', ps) := input_handlers me inp st in
  (pt_ext_map_data st' me, filterMap (pt_map_name_msg (name_map := name_map) (msg_map := msg_map)) ps).Class FailureParamsPartialExtendedMapCongruency
  (B0 : BaseParams) (B1 : BaseParams)
  (P0 : MultiParams B0) (P1 : MultiParams B1)
  (F0 : FailureParams P0) (F1 : FailureParams P1)
  (P : MultiParamsPartialExtendedMap P0 P1) : Prop :=
  {
    pt_ext_reboot_eq : forall d me,
      pt_ext_map_data (reboot d) me = reboot (pt_ext_map_data d me)
  }.Class FailureParamsPartialExtendedMapCongruency
  (B0 : BaseParams) (B1 : BaseParams)
  (P0 : MultiParams B0) (P1 : MultiParams B1)
  (F0 : FailureParams P0) (F1 : FailureParams P1)
  (P : MultiParamsPartialExtendedMap P0 P1) : Prop :=
  {
    pt_ext_reboot_eq : forall d me,
      pt_ext_map_data (reboot d) me = reboot (pt_ext_map_data d me)
  }.

Lemma pt_ext_init_handlers_fun_eq : init_handlers = fun n : name => pt_ext_map_data (init_handlers (tot_map_name_inv n)) (tot_map_name_inv n).