1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* STATO: NON COMPILA: dev'essere aggiornato *)
17 set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/subset_defs".
19 include "domain_defs.ma".
22 - We use predicative subsets coded as propositional functions
23 according to G.Sambin and S.Valentini "Toolbox"
26 definition Subset \def \lambda (D:Domain). D \to Prop.
28 (* subset membership (epsilon) *)
29 definition sin : \forall D. Subset D \to D \to Prop \def
30 \lambda (D:Domain). \lambda U,d. cin D d \and U d.
32 (* subset top (full subset) *)
33 definition stop \def \lambda (D:Domain). true_f D.
35 (* subset bottom (empty subset) *)
36 definition sbot \def \lambda (D:Domain). false_f D.
38 (* subset and (binary intersection) *)
39 definition sand: \forall D. Subset D \to Subset D \to Subset D \def
40 \lambda D,U1,U2,d. U1 d \land U2 d.
42 (* subset or (binary union) *)
43 definition sor: \forall D. Subset D \to Subset D \to Subset D \def
44 \lambda D,U1,U2,d. U1 d \lor U2 d.
46 (* subset less or equal (inclusion) *)
47 definition sle: \forall D. Subset D \to Subset D \to Prop \def
48 \lambda D,U1,U2. \iforall d. U1 d \to U2 d.
51 definition sover: \forall D. Subset D \to Subset D \to Prop \def
52 \lambda D,U1,U2. \iexists d. U1 d \land U2 d.
54 (* coercions **************************************************************)
57 (* the class of the subsets of a domain (not an implicit coercion) *)
58 definition class_of_subsets_of \def
59 \lambda D. mk_Class (Subset D) (true_f ?) (sle ?).
62 (* the domain built upon a subset (not an implicit coercion) *)
63 definition domain_of_subset: \forall D. Subset D \to Domain \def
64 \lambda (D:Domain). \lambda U.
65 mk_Domain (mk_Class D (sin D U) (cle1 D)).
67 (* the full subset of a domain *)