Fixpoint allNatsLt (n : nat) :=
  match n with
    | 0 => nil
    | S n' => allNatsLt n' ++ (n' :: nil)
  end.

Theorem map_eq_subset : forall (A B : Type)(ls2 ls1 : list A)(f1 f2 : A -> B), map f1 ls1 = map f2 ls1 -> (forall a, In a ls2 -> In a ls1) -> map f1 ls2 = map f2 ls2.