Parameter
  image_empty :
    forall (E F : Setoid) (f : MAP E F) (A : part_set E),
    Equal A (empty E) -> Equal (image f A) (empty F).Parameter
  image_union :
    forall (E F : Setoid) (f : MAP E F) (A B : part_set E),
    Equal (image f (union A B)) (union (image f A) (image f B)).Parameter
  image_single :
    forall (E F : Setoid) (f : MAP E F) (A : part_set E) (x : E),
    Equal (image f (single x)) (single (f x)).Parameter
  union_single_in :
    forall (E : Setoid) (A : part_set E) (x : E),
    in_part x A -> Equal (union A (single x)) A.

(* Specifications: *)
Lemma cardinal_image_lesser : forall (E F : Setoid) (f : MAP E F) (A : part_set E) (n : nat), cardinal A n -> exists m : nat, cardinal (image f A) m /\ m <= n.
Lemma cardinal_image_injective : forall (E F : Setoid) (f : MAP E F) (A : part_set E) (n : nat), cardinal A n -> injective f -> cardinal (image f A) n.