Parameter
  not_in_part_comp_r :
    forall (E : Setoid) (A B : part_set E) (x : E),
    ~ in_part x A -> Equal A B -> ~ in_part x B.Parameter
  diff_single_not_in :
    forall (E : Setoid) (A : part_set E) (x : E),
    ~ in_part x (diff A (single x)).Parameter
  diff_el_union_single :
    forall (E : Setoid) (A : part_set E) (x : E),
    in_part x A -> Equal A (union (diff A (single x)) (single x)).

(* Specifications: *)
Lemma cardinal_image_strict_lesser : forall (E F : Setoid) (f : MAP E F) (n : nat), cardinal (full E) n -> ~ injective f -> exists m : nat, cardinal (image_map f) m /\ m < n.
Lemma cardinal_image_equal_injective : forall (E F : Setoid) (f : MAP E F) (n : nat), cardinal (full E) n -> cardinal (image_map f) n -> injective f.