Section PWO_Seq.
Variable D1 R1 DO RO : Set.
Variable (PWO_P1 : ProcedureWithOracle D1 R1 DO RO).
Variable R2 : Set.
Variable (PWO_P2 : ProcedureWithOracle R1 R2 DO RO).
Hint Resolve (PWO_P1.(S_P_EqDec)) : typeclass_instances.
Hint Resolve (PWO_P2.(S_P_EqDec)) : typeclass_instances.
Hint Resolve (PWO_P1.(D_O_EqDec)) : typeclass_instances.
Hint Resolve (PWO_P2.(R_P_EqDec)) : typeclass_instances.
Definition S_P' := (nat * (PWO_P1.(S_P) + PWO_P2.(S_P))).
Definition PWO_Seq_P1 (d : D1) : Comp (DO * S_P') :=
[d, s] <-$2 PWO_P1.(P1) d;
ret (d, (PWO_P1.(q), inl s)).

Theorem PWO_Seq_P1_wf :
forall x,
well_formed_comp (PWO_Seq_P1 x).