Fixpoint In_gen(a : A)(ls : list A) : Prop :=
    match ls with
      | nil => False
      | a' :: ls' =>
        ea a a' \/ In_gen a ls'
    end.

Theorem In_gen_equiv_compat : forall (ls : list A)(a1 a2 : A), ea a1 a2 -> In_gen a1 ls -> In_gen a2 ls.