(**********************************************************************)
(*                                                                    *)
(*  Maximum and minimun (sub)set with respect to a given pred         *)
(*                                                                    *)
(**********************************************************************)
Section MaxSetMinSet.
Variable T : finType.
Notation sT := {set T}.
Implicit Types A B C : sT.
Implicit Type P : pred sT.
Definition minset P A := [forall (B : sT | B \subset A), (B == A) == P B].

(* Specifications: *)
Lemma minset_eq P1 P2 A : P1 =1 P2 -> minset P1 A = minset P2 A.
Arguments minsetP {P A}.
Lemma minsetp P A : minset P A -> P A.
Lemma minset_exists P C : P C -> {A | minset P A & A \subset C}.
Fact maxset_key : unit. Proof. by []. Qed.