Definition setTfor (phT : phant T) := [set x : T | true].

(* Specifications: *)
Lemma in_setT x : x \in setTfor (Phant T).
Lemma properEcard A B : (A \proper B) = (A \subset B) && (#|A| < #|B|).
Lemma enum_set0 : enum set0 = [::] :> seq T.
Lemma set2P x a b : reflect (x = a \/ x = b) (x \in [set a; b]).
Lemma setSU A B C : A \subset B -> A :|: C \subset B :|: C.
Lemma setSI A B C : A \subset B -> A :&: C \subset B :&: C.
Lemma powerset0 : powerset set0 = [set set0] :> {set {set T}}.
(* other inclusions *)
Lemma subsetIl A B : A :&: B \subset A.
Lemma subset1 A x : (A \subset [set x]) = (A == [set x]) || (A == set0).
Lemma powerset1 x : powerset [set x] = [set set0; [set x]].
Arguments setIidPl {A B}.
Lemma setIidPr A B : reflect (A :&: B = B) (B \subset A).
Lemma setUidPr A B : reflect (A :|: B = B) (A \subset B).
Lemma subsetIP A B C : reflect (A \subset B /\ A \subset C) (A \subset B :&: C).
Lemma subsetDP A B C :
reflect (A \subset B /\ [disjoint A & C]) (A \subset B :\: C).
Lemma properIr A B : ~~ (B \subset A) -> A :&: B \proper B.
Lemma properU A B C : (B :|: C \proper A) -> (B \proper A) && (C \proper A).
Lemma properD A B C : (A \proper B :\: C) -> (A \proper B) && [disjoint A & C].
Lemma mem_imset (D : pred aT) x : x \in D -> f x \in f @: D.
Lemma imset_set1 x : f @: [set x] = [set f x].
Lemma mem_imset2 (D : pred aT) (D2 : aT -> pred aT2) x x2 :
x \in D -> x2 \in D2 x ->
f2 x x2 \in imset2 f2 (mem D) (fun x1 => mem (D2 x1)).
Lemma preimsetS (A B : pred rT) :
A \subset B -> (f @^-1: A) \subset (f @^-1: B).
Lemma imset_proper (A B : {set aT}) :
{in B &, injective f} -> A \proper B -> f @: A \proper f @: B.
Lemma preimset_proper (A B : {set rT}) :
B \subset codom f -> A \proper B -> (f @^-1: A) \proper (f @^-1: B).
Lemma imsetU (A B : {set aT}) : f @: (A :|: B) = (f @: A) :|: (f @: B).
Lemma imsetU1 a (A : {set aT}) : f @: (a |: A) = f a |: (f @: A).
Lemma imset2Sl (A B : pred aT) (C : pred aT2) :
A \subset B -> f2 @2: (A, C) \subset f2 @2: (B, C).
Lemma imset2Sr (A B : pred aT2) (C : pred aT) :
A \subset B -> f2 @2: (C, A) \subset f2 @2: (C, B).
Lemma imset2S (A B : pred aT) (A2 B2 : pred aT2) :
A \subset B ->  A2 \subset B2 -> f2 @2: (A, A2) \subset f2 @2: (B, B2).
Lemma eq_in_imset f g D : {in D, f =1 g} -> f @: D = g @: D.
Lemma eq_in_imset2 (f g : aT -> aT2 -> rT) (D : pred aT) (D2 : pred aT2) :
{in D & D2, f =2 g} -> f @2: (D, D2) = g @2: (D, D2).