Fixpoint remove_all (to_delete l : list A) : list A :=
    match to_delete with
    | [] => l
    | d :: ds => remove_all ds (remove A_eq_dec d l)
    end.

Lemma remove_all_del_comm : forall xs ys zs, remove_all xs (remove_all ys zs) = remove_all ys (remove_all xs zs).