]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/contribs/PREDICATIVE-TOPOLOGY/subset_defs.ma
ocaml 3.09 transition
[helm.git] / helm / matita / contribs / PREDICATIVE-TOPOLOGY / subset_defs.ma
index 2ae2471dba16759f4f8bac6bf40b6686dc9da97a..3cc583f02db26d1a44d1baec206424478c616dab 100644 (file)
@@ -23,21 +23,44 @@ include "domain_defs.ma".
 
 definition Subset \def \lambda (D:Domain). D \to Prop.
 
-(* subset inclusion *) 
-definition ssub: \forall D. Subset D \to Subset D \to Prop \def 
-   \lambda D,U1,U2. \forall d. U1 d \to U2 d. 
+(* subset membership (epsilon) *)
+definition sin : \forall D. Subset D \to D \to Prop \def
+   \lambda (D:Domain). \lambda U,d. cin D d \and U d.
 
+(* subset top (full subset) *)
+definition stop \def \lambda (D:Domain). true_f D.
+
+(* subset bottom (empty subset) *)
+definition sbot \def \lambda (D:Domain). false_f D.
+
+(* subset and (binary intersection) *)
+definition sand: \forall D. Subset D \to Subset D \to Subset D \def 
+   \lambda D,U1,U2,d. U1 d \land U2 d. 
+
+(* subset or (binary union) *)
+definition sor: \forall D. Subset D \to Subset D \to Subset D \def 
+   \lambda D,U1,U2,d. U1 d \lor U2 d. 
+
+(* subset less or equal (inclusion) *) 
+definition sle: \forall D. Subset D \to Subset D \to Prop \def 
+   \lambda D,U1,U2. \iforall d. U1 d \to U2 d. 
 
 (* subset overlap *) 
 definition sover: \forall D. Subset D \to Subset D \to Prop \def 
-   \lambda D,U1,U2. \forall d. U1 d \to U2 d. 
+   \lambda D,U1,U2. \iexists d. U1 d \land U2 d. 
 
+(* coercions **************************************************************)
 
+(* the class of the subsets of a domain (not an implicit coercion) *)
+definition class_of_subsets_of \def
+   \lambda D. mk_Class (Subset D) (true_f ?) (sle ?). 
 
-(* full subset: "subset top" *)
-definition stop \def \lambda (D:Domain). \lambda (_:D). True.
+(* the domain built upon a subset *)
+definition domain_of_subset: \forall D. (Subset D) \to Domain \def
+   \lambda (D:Domain). \lambda U. 
+   mk_Domain (mk_Class D (sin D U) (cle1 D)).
 
-coercion stop.
+coercion domain_of_subset.   
 
-(* empty subset: "subset bottom" *)
-definition sbot \def \lambda (D:Domain). \lambda (_:D). False.
\ No newline at end of file
+(* the full subset of a domain *)
+coercion stop.