fact: Fixpoint split_list (A : Set) (eqA : forall (a1 a2 : A), {a1=a2}+{a1<>a2}) (l : list A) (t : A) {struct l} : list A * list A := match l with | nil => (nil, nil) | a :: l' => if eqA t a then (nil, l') else let (l1,l2) := split_list eqA l' t in (a :: l1, l2) end.
imports: List Arith