$(H)rm -f matita.conf.xml.sample
$(H)rm -rf .matita
-TEST_DIRS = \
- legacy \
- library \
- contribs/character \
- tests \
- contribs/dama/dama \
- contribs/assembly \
- contribs/CoRN \
- contribs/RELATIONAL \
- contribs/LOGIC \
- contribs/PREDICATIVE-TOPOLOGY \
+TEST_DIRS = \
+ legacy \
+ library \
+ contribs/character \
+ tests \
+ contribs/dama/dama \
+ contribs/assembly \
+ contribs/CoRN \
+ contribs/RELATIONAL \
+ contribs/LOGIC \
+ contribs/limits \
$(NULL)
# library_auto
-TEST_DIRS_OPT = \
- $(TEST_DIRS) \
- contribs/LAMBDA-TYPES \
+TEST_DIRS_OPT = \
+ $(TEST_DIRS) \
+ contribs/LAMBDA-TYPES \
$(NULL)
.PHONY: tests tests.opt cleantests cleantests.opt
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||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 "preamble.ma".
+
+(* ACZEL CATEGORIES:
+ - We use typoids with a compatible membership relation
+ - The category is intended to be the domain of the membership relation
+ - The membership relation is necessary because we need to regard the
+ domain of a propositional function (ie a predicative subset) as a
+ quantification domain and therefore as a category, but there is no
+ type in CIC representing the domain of a propositional function
+ - We set up a single equality predicate, parametric on the category,
+ defined as the reflexive, symmetic, transitive and compatible closure
+ of the "ces" (class equality step) predicate given inside the category.
+*)
+
+record Class: Type ≝ {
+ class:> Type;
+ cin: class → Prop;
+ ces: class → class \to Prop
+}.
+
+(* default inhabitance predicates *)
+definition true_f ≝ λ(X:Type). λ(_:X). True.
+definition false_f ≝ λ(X:Type). λ(_:X). False.
+
+(* equality predicate *)
+inductive ceq (C:Class): class C → class C → Prop ≝
+ | ceq_refl : ∀c. cin ? c → ceq ? c c
+ | ceq_trans: ∀c1,c,c2. cin ? c1 → ces ? c1 c → ceq ? c c2 → ceq ? c1 c2
+ | ceq_conf : ∀c1,c,c2. cin ? c1 → ces ? c c1 → ceq ? c c2 → ceq ? c1 c2
+.
+(*
+(* external universal quantification *)
+inductive call (C:Class) (P:C \to Prop) : Prop ≝
+ | call_intro: (\forall c. cin ? c \to P c) \to call C P.
+
+inductive call2 (C1,C2:Class) (P:C1 \to C2 \to Prop) : Prop \def
+ | call2_intro:
+ (\forall c1,c2. cin ? c1 \to cin ? c2 \to P c1 c2) \to call2 C1 C2 P.
+*)
+(* notations **************************************************************)
+(*
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "external for all" 'xforall \eta.x =
+ (cic:/matita/limits/Class/defs/call.ind#xpointer(1/1) _ x).
+
+notation < "hvbox(\xforall ident i opt (: ty) break . p)"
+ right associative with precedence 20
+for @{ 'xforall ${default
+ @{\lambda ${ident i} : $ty. $p}
+ @{\lambda ${ident i} . $p}}}.
+
+notation > "\forall list1 ident x sep , opt (: T). term 19 Px"
+ with precedence 20
+ for ${ default
+ @{ ${ fold right @{$Px} rec acc @{'xforall (λ${ident x}:$T.$acc)} } }
+ @{ ${ fold right @{$Px} rec acc @{'xforall (λ${ident x}.$acc)} } }
+ }.
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "external for all 2" 'xforall2 \eta.x \eta.y =
+ (cic:/matita/limits/Class/defs/call2.ind#xpointer(1/1) _ _ x y).
+
+notation > "hvbox(\xforall ident i1 opt (: ty1) ident i2 opt (: ty2) break . p)"
+ with precedence 20
+for @{ 'xforall2 ${default
+ @{\lambda ${ident i1} : $ty1. \lambda ${ident i2} : $ty2. $p}
+ @{\lambda ${ident i1}, ${ident i2}. $p}}}.
+*)
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||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 "Class/defs.ma".
+
+(* ACZEL CATEGORIES:
+ - Here we prove the standard properties of the equality.
+*)
+
+theorem ceq_cin_sx: ∀C,c1,c2. ceq C c1 c2 → cin ? c1.
+intros; elim H; clear H c1 c2; autobatch.
+qed.
+
+theorem ceq_cin_dx: ∀C,c1,c2. ceq C c1 c2 → cin ? c2.
+intros; elim H; clear H c1 c2; autobatch.
+qed.
+
+theorem ceq_trans: ∀C,c1,c2. ceq C c1 c2 → ∀c3. ceq ? c2 c3 → ceq ? c1 c3.
+intros 4; elim H; clear H c1 c2; autobatch.
+qed.
+
+theorem ceq_conf: ∀C,c1,c2. ceq C c1 c2 → ∀c3. ceq ? c1 c3 → ceq ? c2 c3.
+intros 4; elim H; clear H c1 c2; autobatch depth = 4.
+qed.
+
+theorem ceq_sym: ∀ C,c1,c2. ceq C c1 c2 → ceq ? c2 c1.
+intros; autobatch depth = 4.
+qed.
+
+theorem ceq_repl: ∀C,c1,c2. ceq C c1 c2 →
+ ∀d1. ceq ? c1 d1 → ∀d2. ceq ? c2 d2 → ceq ? d1 d2.
+intros; autobatch.
+qed.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||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".
+
+(* QUANTIFICATION DOMAINS
+ - Here we define some useful domains based on data types.
+*)
+
+definition DBool: Domain ≝
+ mk_Domain (mk_Class bool (true_f ?) (eq ?)).
+(*
+definition dbool_ixfam : \forall (C:Class). C \to C \to (DBool \to C) \def
+ \lambda C,c0,c1,b.
+ match b in bool with
+ [ false \Rightarrow c0
+ | true \Rightarrow c1
+ ].
+*)
+definition DVoid: Domain ≝
+ mk_Domain (mk_Class void (true_f ?) (eq ?)).
+(*
+definition dvoid_ixfam : \forall (C:Class). (DVoid \to C) \def
+ \lambda C,v.
+ match v in void with [].
+*)
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||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 "Class/defs.ma".
+
+(* QUANTIFICATION DOMAINS
+ - These are the categories on which we allow quantification.
+ - We set up single quantifiers, parametric on the domain.
+*)
+
+record Domain: Type ≝ {
+ domain:> Class
+}.
+
+(* internal universal quantification *)
+inductive dall (D:Domain) (P:D → Prop): Prop ≝
+ | dall_intro: (∀d. cin ? d → P d) → dall D P.
+
+(* internal existential quantification *)
+inductive dex (D:Domain) (P:D → Prop): Prop ≝
+ | dex_intro: ∀d. cin D d → P d → dex D P.
+
+(* notations **************************************************************)
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "internal for all" 'iforall η.x =
+ (cic:/matita/limits/Domain/defs/dall.ind#xpointer(1/1) _ x).
+
+notation < "hvbox(\iforall ident i opt (: ty) break . p)"
+ right associative with precedence 20
+for @{ 'iforall ${default
+ @{\lambda ${ident i} : $ty. $p}
+ @{\lambda ${ident i} . $p}}}.
+
+notation > "\iforall list1 ident x sep , opt (: T). term 19 Px"
+ with precedence 20
+for ${ default
+ @{ ${ fold right @{$Px} rec acc @{'iforall (λ${ident x}:$T.$acc)} } }
+ @{ ${ fold right @{$Px} rec acc @{'iforall (λ${ident x}.$acc)} } }
+}.
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "internal exists" 'iexists η.x =
+ (cic:/matita/limits/Domain/defs/dex.ind#xpointer(1/1) _ x).
+
+notation < "hvbox(\iexists ident i opt (: ty) break . p)"
+ right associative with precedence 20
+for @{ 'iexists ${default
+ @{\lambda ${ident i} : $ty. $p}
+ @{\lambda ${ident i} . $p}}}.
+
+notation > "\iexists list1 ident x sep , opt (: T). term 19 Px"
+ with precedence 20
+for ${ default
+ @{ ${ fold right @{$Px} rec acc @{'iexists (λ${ident x}:$T.$acc)} } }
+ @{ ${ fold right @{$Px} rec acc @{'iexists (λ${ident x}.$acc)} } }
+}.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||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.
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: COMPILA *)
-
-(* Project started Wed Oct 12, 2005 ***************************************)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/class_defs".
-
-include "logic/connectives.ma".
-
-(* ACZEL CATEGORIES:
- - We use typoids with a compatible membership relation
- - The category is intended to be the domain of the membership relation
- - The membership relation is necessary because we need to regard the
- domain of a propositional function (ie a predicative subset) as a
- quantification domain and therefore as a category, but there is no
- type in CIC representing the domain of a propositional function
- - We set up a single equality predicate, parametric on the category,
- defined as the reflexive, symmetic, transitive and compatible closure
- of the cle1 predicate given inside the category. Then we prove the
- properties of the equality that usually are axiomatized inside the
- category structure. This makes categories easier to use
-*)
-
-definition true_f \def \lambda (X:Type). \lambda (_:X). True.
-
-definition false_f \def \lambda (X:Type). \lambda (_:X). False.
-
-record Class: Type \def {
- class:> Type;
- cin: class \to Prop;
- ceq: class \to class \to Prop;
- cin_repl: \forall c1,c2. cin c1 \to ceq c1 c2 \to cin c2;
- ceq_repl: \forall c1,c2,d1,d2. cin c1 \to
- ceq c1 c2 \to ceq c1 d1 \to ceq c2 d2 \to ceq d1 d2;
- ceq_refl: \forall c. cin c \to ceq c c
-}.
-
-(* external universal quantification *)
-inductive call (C:Class) (P:C \to Prop) : Prop \def
- | call_intro: (\forall c. cin ? c \to P c) \to call C P.
-
-inductive call2 (C1,C2:Class) (P:C1 \to C2 \to Prop) : Prop \def
- | call2_intro:
- (\forall c1,c2. cin ? c1 \to cin ? c2 \to P c1 c2) \to call2 C1 C2 P.
-
-(* notations **************************************************************)
-
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "external for all" 'xforall \eta.x =
- (cic:/matita/PREDICATIVE-TOPOLOGY/class_defs/call.ind#xpointer(1/1) _ x).
-
-notation > "hvbox(\xforall ident i opt (: ty) break . p)"
- with precedence 20
-for @{ 'xforall ${default
- @{\lambda ${ident i} : $ty. $p}
- @{\lambda ${ident i} . $p}}}.
-
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "external for all 2" 'xforall2 \eta.x \eta.y =
- (cic:/matita/PREDICATIVE-TOPOLOGY/class_defs/call2.ind#xpointer(1/1) _ _ x y).
-
-notation > "hvbox(\xforall ident i1 opt (: ty1) ident i2 opt (: ty2) break . p)"
- with precedence 20
-for @{ 'xforall2 ${default
- @{\lambda ${ident i1} : $ty1. \lambda ${ident i2} : $ty2. $p}
- @{\lambda ${ident i1}, ${ident i2}. $p}}}.
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: NON COMPILA: dev'essere aggiornato *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/class_eq".
-
-include "class_defs.ma".
-
-theorem ceq_trans: \forall C. \xforall c1,c2. ceq C c1 c2 \to
- \xforall c3. ceq ? c2 c3 \to ceq ? c1 c3.
-intros.
-
-(*
-apply ceq_intro; apply cle_trans; [|auto new timeout=100|auto new timeout=100||auto new timeout=100|auto new timeout=100].
-qed.
-
-theorem ceq_sym: \forall C,c1,c2. ceq C c1 c2 \to ceq C c2 c1.
-intros; elim H; clear H.; auto new timeout=100.
-qed.
-*)
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: NON COMPILA: attendo che l'oggetto "pippo" venga accettato *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/coa_defs".
-
-include "iff.ma".
-include "domain_data.ma".
-
-(* COMPLETE OVERLAP ALGEBRAS
-*)
-
-record COA: Type \def {
- coa:> Class; (* carrier *)
- le: coa \to coa \to Prop; (* inclusion *)
- ov: coa \to coa \to Prop; (* overlap *)
- sup: \forall (D:Domain). (D \to coa) \to coa; (* supremum *)
- inf: \forall (D:Domain). (D \to coa) \to coa; (* infimum *)
- le_refl: \forall p. le p p;
- le_trans: \forall p,r. le p r \to \forall q. le r q \to le p q;
- le_antysym: \forall q,p. le q p \to le p q \to ceq ? p q;
- ov_sym: \forall q,p. ov q p \to ov p q;
- sup_le: \forall D,ps,q. le (sup D ps) q \liff \iforall d. le (ps d) q;
- inf_le: \forall D,p,qs. le p (inf D qs) \liff \iforall d. le p (qs d);
- sup_ov: \forall D,ps,q. ov (sup D ps) q \liff \iexists d. ov (ps d) q;
- density: \forall p,q. (\forall r. ov p r \to ov q r) \to le p q
-}.
-
-definition zero: \forall (P:COA). P \def
- \lambda (P:COA). inf P ? (dvoid_ixfam P).
-
-definition one: \forall (P:COA). P \def
- \lambda (P:COA). sup P ? (dvoid_ixfam P).
-
-definition binf: \forall (P:COA). P \to P \to P \def
- \lambda (P:COA). \lambda p0,p1.
- inf P ? (dbool_ixfam P p0 p1).
-
-definition bsup: \forall (P:COA). P \to P \to P \def
- \lambda (P:COA). \lambda p0,p1.
- sup P ? (dbool_ixfam P p0 p1).
-
-(*
- inf_ov: forall p q, ov p q -> ov p (inf QDBool (bool_family _ p q))
- properness: ov zero zero -> False;
- distributivity: forall I p q, id _ (inf QDBool (bool_family _ (sup I p) q)) (sup I (fun i => (inf QDBool (bool_family _ (p i) q))));
-*)
-
-inductive pippo : Prop \def
- | Pippo: let x \def zero in zero = x \to pippo.
-
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: NON COMPILA: perche' dipende da coa_defs *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/coa_props".
-
-include "coa_defs.ma".
-
-inductive True:Prop \def T:True.
-
-theorem zero_le:
- \forall (P:COA). \forall (p:P). (le ? (zero P) p) \to True.
- intros.
- exact T.
-qed.
-
-
-
-
-class_eq.ma class_defs.ma
-domain_defs.ma class_defs.ma
-coa_props.ma coa_defs.ma
-class_defs.ma logic/connectives.ma
-domain_data.ma datatypes/bool.ma datatypes/constructors.ma domain_defs.ma
-subset_defs.ma domain_defs.ma
-coa_defs.ma domain_data.ma iff.ma
-iff.ma ../../library/logic/connectives.ma
-../../library/logic/connectives.ma
+preamble.ma datatypes/bool.ma datatypes/constructors.ma logic/connectives.ma
+Class/eq.ma Class/defs.ma
+Domain/defs.ma Class/defs.ma
+Domain/data.ma Domain/defs.ma
+Subset/defs.ma Domain/defs.ma
+Class/defs.ma preamble.ma
datatypes/bool.ma
datatypes/constructors.ma
logic/connectives.ma
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: NON COMPILA: dev'essere aggiornato *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/domain_data".
-
-include "datatypes/constructors.ma".
-include "datatypes/bool.ma".
-include "domain_defs.ma".
-
-(* QUANTIFICATION DOMAINS
- - Here we define some useful domains based on data types
-*)
-
-definition DBool : Domain \def
- mk_Domain (mk_Class bool (true_f ?) (eq ?)).
-
-definition dbool_ixfam : \forall (C:Class). C \to C \to (DBool \to C) \def
- \lambda C,c0,c1,b.
- match b in bool with
- [ false \Rightarrow c0
- | true \Rightarrow c1
- ].
-
-definition DVoid : Domain \def
- mk_Domain (mk_Class void (true_f ?) (eq ?)).
-
-definition dvoid_ixfam : \forall (C:Class). (DVoid \to C) \def
- \lambda C,v.
- match v in void with [].
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: COMPILA *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/domain_defs".
-
-include "class_defs.ma".
-
-(* QUANTIFICATION DOMAINS
- - These are the categories on which we allow quantification
- - We set up single quantifiers, parametric on the domain, so they
- already have the properties that usually are axiomatized inside the
- domain structure. This makes domains easier to use
-*)
-
-record Domain: Type \def {
- qd:> Class
-}.
-
-(* internal universal quantification *)
-inductive dall (D:Domain) (P:D \to Prop) : Prop \def
- | dall_intro: (\forall d:D. cin D d \to P d) \to dall D P.
-
-(* internal existential quantification *)
-inductive dex (D:Domain) (P:D \to Prop) : Prop \def
- | dex_intro: \forall d:D. cin D d \land P d \to dex D P.
-
-(* notations **************************************************************)
-
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "internal for all" 'iforall \eta.x =
- (cic:/matita/PREDICATIVE-TOPOLOGY/domain_defs/dall.ind#xpointer(1/1) _ x).
-
-notation > "hvbox(\iforall ident i opt (: ty) break . p)"
- right associative with precedence 20
-for @{ 'iforall ${default
- @{\lambda ${ident i} : $ty. $p)}
- @{\lambda ${ident i} . $p}}}.
-
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "internal exists" 'dexists \eta.x =
- (cic:/matita/PREDICATIVE-TOPOLOGY/domain_defs/dex.ind#xpointer(1/1) _ x).
-
-notation > "hvbox(\iexists ident i opt (: ty) break . p)"
- right associative with precedence 20
-for @{ 'dexists ${default
- @{\lambda ${ident i} : $ty. $p)}
- @{\lambda ${ident i} . $p}}}.
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: COMPILA *)
-
-set "baseuri" "cic:/matita/logic/iff".
-
-include "../../library/logic/connectives.ma".
-
-definition Iff : Prop \to Prop \to Prop \def
- \lambda A,B. (A \to B) \land (B \to A).
-
- (*CSC: the URI must disappear: there is a bug now *)
-interpretation "logical iff" 'iff x y = (cic:/matita/logic/iff/Iff.con x y).
-
-notation > "hvbox(a break \liff b)"
- left associative with precedence 25
-for @{ 'iff $a $b }.
-
-notation < "hvbox(a break \leftrightarrow b)"
- left associative with precedence 25
-for @{ 'iff $a $b }.
-baseuri=cic:/matita/PREDICATIVE-TOPOLOGY
+baseuri=cic:/matita/limits
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||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 *)
-(* *)
-(**************************************************************************)
-
-(* STATO: NON COMPILA: dev'essere aggiornato *)
-
-set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/subset_defs".
-
-include "domain_defs.ma".
-
-(* SUBSETS
- - We use predicative subsets coded as propositional functions
- according to G.Sambin and S.Valentini "Toolbox"
-*)
-
-definition Subset \def \lambda (D:Domain). D \to Prop.
-
-(* 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. \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 ?).
-*)
-
-(* the domain built upon a subset (not an implicit coercion) *)
-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)).
-
-(* the full subset of a domain *)
-coercion stop.