Section suml.
Fixpoint suml (l : list nat) : nat :=
match l with
| nil => 0
| n :: l' => n + suml l'
end.

Lemma filter_compose {A : Type} f g (l : list A) :
(forall x, In x l -> ( f x = true -> g x = true)) ->
filter f (filter g l) = filter f l.