X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Flimits%2FSubset%2Fdefs.ma;fp=helm%2Fsoftware%2Fmatita%2Fcontribs%2Flimits%2FSubset%2Fdefs.ma;h=ed5c8a47ee77abd6433d3bb07af5a8be0c903545;hb=700b170aa9b0377d33f1edd44de8d89129477fb8;hp=0000000000000000000000000000000000000000;hpb=d7f32114f3806b51c2ee483dcb5a86e08d086a72;p=helm.git diff --git a/helm/software/matita/contribs/limits/Subset/defs.ma b/helm/software/matita/contribs/limits/Subset/defs.ma new file mode 100644 index 000000000..ed5c8a47e --- /dev/null +++ b/helm/software/matita/contribs/limits/Subset/defs.ma @@ -0,0 +1,63 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "Domain/defs.ma". + +(* SUBSETS + - We use predicative subsets coded as propositional functions + according to G.Sambin and S.Valentini "Toolbox". +*) + +definition Subset ≝ λD:Domain. D → Prop. + +(* subset membership (epsilon) *) +definition sin : ∀D. Subset D → D → Prop ≝ + λD:Domain. λU,d. cin D d ∧ U d. + +(* subset top (full subset) *) +definition stop ≝ λD:Domain. true_f D. + +(* subset bottom (empty subset) *) +definition sbot ≝ λD:Domain. false_f D. + +(* subset and (binary intersection) *) +definition sand: ∀D. Subset D → Subset D → Subset D ≝ + λD,U1,U2,d. U1 d ∧ U2 d. + +(* subset or (binary union) *) +definition sor: ∀D. Subset D → Subset D → Subset D ≝ + λD,U1,U2,d. U1 d ∨ U2 d. + +(* subset less or equal (inclusion) *) +definition sle: ∀D. Subset D → Subset D → Prop ≝ + λD,U1,U2. \iforall d. U1 d → U2 d. + +(* subset overlap *) +definition sover: ∀D. Subset D → Subset D → Prop ≝ + λD,U1,U2. \iexists d. U1 d ∧ 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 ?). +*) + +(* the domain built upon a subset (not an implicit coercion) *) +definition domain_of_subset: ∀D. Subset D \to Domain ≝ + λD:Domain. λU. mk_Domain (mk_Class D (sin D U) (ces D)). + +(* the full subset of a domain *) +coercion stop.