End imfset.
Section in_imfset.
Variable (key : unit) (K : choiceType).
Implicit Types (A B : {fset K}) (a b : K).

(* Specifications: *)
Lemma in_fset (p : finmempred K) (k : K) : (k \in imfset key id p) = in_mem k p.
Lemma in_fset_valT A (p : finmempred _) (k : K) (kA : k \in A) :
(k \in imfset key val p) = in_mem [` kA] p.
Lemma in_fset_valF A (p : finmempred [eqType of A]) (k : K) : k \notin A ->
(k \in imfset key val p) = false.
Lemma card_imfset (T T' : choiceType) (f : T -> T') (p : finmempred _) :
injective f -> #|` (imfset key f p)| = size (enum_finmem p).
Lemma fset_eqP {A B} : reflect (A =i B) (A == B).
Lemma fset_sub_val A (p : finmempred [eqType of A]) :
(imfset key val p) `<=` A.
Lemma fsubset_refl A : A `<=` A. Proof. exact/fsubsetP. Qed.
Hint Resolve fsubset_refl.