Section enum_red.
Variables (X Y : Type) (p : X -> Prop) (q : Y -> Prop).
Variables (f : X -> Y) (Hf : forall x, p x <-> q (f x)).
Variables (Lq : _) (qe : enum q Lq).
Variables (x0 : X).
Variables (d : eq_dec Y).
Fixpoint L (LX : enumT X) n :=
match n with
| 0 => []
| S n => L LX n ++ [ x | x ∈ L_T X n , f x el Lq n ]
end.

(* Specifications: *)
Lemma enum_red LX :
enum p (L LX).