Inductive PB_input :=
  | Request : input -> PB_input
  | Read : PB_input.Inductive PB_input :=
  | Request : input -> PB_input
  | Read : PB_input.Inductive PB_input :=
  | Request : input -> PB_input
  | Read : PB_input.Inductive PB_output :=
  | RequestResponse : input -> output -> PB_output
  | ReadResponse : data -> PB_output.Inductive PB_output :=
  | RequestResponse : input -> output -> PB_output
  | ReadResponse : data -> PB_output.Inductive PB_output :=
  | RequestResponse : input -> output -> PB_output
  | ReadResponse : data -> PB_output.Record PB_data :=
    {
      queue : list input;
      state : data
    }.Record PB_data :=
    {
      queue : list input;
      state : data
    }.Record PB_data :=
    {
      queue : list input;
      state : data
    }.

(* Specifications: *)
Lemma all_nodes_all : forall x, In x all_nodes.
Lemma NoDup_all_nodes : NoDup all_nodes.