Section CardFunImage.
Variables aT aT2 rT : finType.
Variables (f : aT -> rT) (g : rT -> aT) (f2 : aT -> aT2 -> rT).
Variables (D : pred aT) (D2 : pred aT).

(* Specifications: *)
Lemma imset_card : #|f @: D| = #|image f D|.
Lemma can2_imset_pre : cancel f g -> cancel g f -> f @: D = g @^-1: D.
Lemma can_imset_pre (T : finType) f g (A : {set T}) :
cancel f g -> f @: A = g @^-1: A :> {set T}.
Lemma imset_id (T : finType) (A : {set T}) : [set x | x in A] = A.
Lemma card_powerset (T : finType) (A : {set T}) : #|powerset A| = 2 ^ #|A|.
Section FunImageComp.