From cf24ec700cf0516891432b6a63638a2c966474af Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Mon, 20 Feb 2006 11:58:44 +0000 Subject: [PATCH] class definition updated (but buggy now) --- .../PREDICATIVE-TOPOLOGY/class_defs.ma | 42 +++++++++++++++---- .../contribs/PREDICATIVE-TOPOLOGY/class_eq.ma | 20 +++------ .../contribs/PREDICATIVE-TOPOLOGY/class_le.ma | 28 ------------- 3 files changed, 40 insertions(+), 50 deletions(-) delete mode 100644 helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_le.ma diff --git a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_defs.ma b/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_defs.ma index 17a53f64f..3cb239174 100644 --- a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_defs.ma +++ b/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_defs.ma @@ -16,7 +16,7 @@ set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/class_defs". -include "../../library/logic/connectives.ma". +include "logic/connectives.ma". (* ACZEL CATEGORIES: - We use typoids with a compatible membership relation @@ -39,13 +39,39 @@ definition false_f \def \lambda (X:Type). \lambda (_:X). False. record Class: Type \def { class:> Type; cin: class \to Prop; - cle1: class \to 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 }. -inductive cle (C:Class) (c1:C): C \to Prop \def - | cle_refl: cin ? c1 \to cle ? c1 c1 - | ceq_sing: \forall c2,c3. - cle ? c1 c2 \to cin ? c3 \to cle1 ? c2 c3 \to cle ? c1 c3. +(* 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 ceq (C:Class) (c1:C) (c2:C): Prop \def - | ceq_intro: cle ? c1 c2 \to cle ? c2 c1 \to ceq ? c1 c2. +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)" + right associative 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)" + right associative with precedence 20 +for @{ 'xforall2 ${default + @{\lambda ${ident i1} : $ty1. \lambda ${ident i2} : $ty2. $p} + @{\lambda ${ident i1}, ${ident i2}. $p}}}. diff --git a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_eq.ma b/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_eq.ma index cfcb57293..7634cbde1 100644 --- a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_eq.ma +++ b/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_eq.ma @@ -14,25 +14,17 @@ set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/class_eq". -include "class_le.ma". +include "class_defs.ma". -theorem ceq_cl: \forall C,c1,c2. ceq ? c1 c2 \to cin C c1 \land cin C c2. -intros; elim H; clear H. -lapply cle_cl to H1 using H; clear H1; decompose H; -lapply cle_cl to H2 using H; clear H2; decompose H. -auto. -qed. - -theorem ceq_refl: \forall C,c. cin C c \to ceq ? c c. -intros; apply ceq_intro; auto. -qed. +theorem ceq_trans: \forall C. \xforall c1,c2. ceq C c1 c2 \to + \xforall c3. ceq ? c2 c3 \to ceq ? c1 c3. +intros. -theorem ceq_trans: \forall C,c2,c1,c3. - ceq C c2 c3 \to ceq ? c1 c2 \to ceq ? c1 c3. -intros; elim H; elim H1; clear H; clear H1. +(* apply ceq_intro; apply cle_trans; [|auto|auto||auto|auto]. qed. theorem ceq_sym: \forall C,c1,c2. ceq C c1 c2 \to ceq C c2 c1. intros; elim H; clear H.; auto. qed. +*) \ No newline at end of file diff --git a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_le.ma b/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_le.ma deleted file mode 100644 index a688ec63b..000000000 --- a/helm/software/matita/contribs/PREDICATIVE-TOPOLOGY/class_le.ma +++ /dev/null @@ -1,28 +0,0 @@ -(**************************************************************************) -(* ___ *) -(* ||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 *) -(* *) -(**************************************************************************) - -set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/class_le". - -include "class_defs.ma". - -theorem cle_cl: \forall C,c1,c2. cle ? c1 c2 \to cin C c1 \land cin C c2. -intros; elim H; clear H; clear c2; - [| decompose H2 ]; auto. -qed. - -theorem cle_trans: \forall C,c1,c2. cle C c1 c2 \to - \forall c3. cle ? c3 c1 \to cle ? c3 c2. -intros 4; elim H; clear H; clear c2; - [| apply ceq_sing; [||| apply H4 ]]; auto. -qed. -- 2.39.2