Definition procedure_family(A : nat -> Type) := forall n, A n.Definition efficiency_predicate := forall (A : nat -> Type), procedure_family A -> Prop.

Theorem expected_poly_time_cons_f : forall A B (f1 : forall n, A n -> B n) (f2 : forall n, A n -> list (B n)), efficient _ f1 -> efficient _ f2 -> efficient _ (fun n (a : A n) => (cons (f1 n a) (f2 n a))).