fact: Fixpoint filter_aux (P : elt -> Prop) (P_dec : forall e, {P e}+{~ P e}) (l : list elt) {struct l} : list elt := match l with | nil => nil | e :: le => if (P_dec e) then e :: (filter_aux P P_dec le) else filter_aux P P_dec le end.
imports: List more_list list_permut Arith