X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fformal_topology%2Foverlap%2Fcategories.ma;h=30a8159fb911e57a20314fcc1ff66376b66e2857;hb=a88be1ca42c0969dbab9a5c76240f5931df876d9;hp=7ac1b0b3d6d2f3b66a46c0fc3b4e49465d7aa4f2;hpb=4bdb34a1cce33b4387b04cc37bf229e08f5bbafb;p=helm.git diff --git a/helm/software/matita/contribs/formal_topology/overlap/categories.ma b/helm/software/matita/contribs/formal_topology/overlap/categories.ma index 7ac1b0b3d..30a8159fb 100644 --- a/helm/software/matita/contribs/formal_topology/overlap/categories.ma +++ b/helm/software/matita/contribs/formal_topology/overlap/categories.ma @@ -14,6 +14,14 @@ include "cprop_connectives.ma". +notation "hvbox(a break = \sub \ID b)" non associative with precedence 45 +for @{ 'eqID $a $b }. + +notation > "hvbox(a break =_\ID b)" non associative with precedence 45 +for @{ cic:/matita/logic/equality/eq.ind#xpointer(1/1) ? $a $b }. + +interpretation "ID eq" 'eqID x y = (cic:/matita/logic/equality/eq.ind#xpointer(1/1) ? x y). + record equivalence_relation (A:Type0) : Type1 ≝ { eq_rel:2> A → A → CProp0; refl: reflexive ? eq_rel; @@ -80,7 +88,7 @@ qed. coercion setoid2_of_setoid1. prefer coercion Type_OF_setoid2. prefer coercion Type_OF_setoid. -prefer coercion Type_OF_setoid1. +prefer coercion Type_OF_setoid1. (* we prefer 0 < 1 < 2 *) record equivalence_relation3 (A:Type3) : Type4 ≝ @@ -96,19 +104,31 @@ record setoid3: Type4 ≝ }. -interpretation "setoid3 eq" 'eq x y = (eq_rel3 _ (eq3 _) x y). -interpretation "setoid2 eq" 'eq x y = (eq_rel2 _ (eq2 _) x y). -interpretation "setoid1 eq" 'eq x y = (eq_rel1 _ (eq1 _) x y). -interpretation "setoid eq" 'eq x y = (eq_rel _ (eq _) x y). -interpretation "setoid3 symmetry" 'invert r = (sym3 ____ r). -interpretation "setoid2 symmetry" 'invert r = (sym2 ____ r). -interpretation "setoid1 symmetry" 'invert r = (sym1 ____ r). -interpretation "setoid symmetry" 'invert r = (sym ____ r). +interpretation "setoid3 eq" 'eq t x y = (eq_rel3 ? (eq3 t) x y). +interpretation "setoid2 eq" 'eq t x y = (eq_rel2 ? (eq2 t) x y). +interpretation "setoid1 eq" 'eq t x y = (eq_rel1 ? (eq1 t) x y). +interpretation "setoid eq" 'eq t x y = (eq_rel ? (eq t) x y). + +notation > "hvbox(a break =_12 b)" non associative with precedence 45 +for @{ eq_rel2 (carr2 (setoid2_of_setoid1 ?)) (eq2 (setoid2_of_setoid1 ?)) $a $b }. +notation > "hvbox(a break =_0 b)" non associative with precedence 45 +for @{ eq_rel ? (eq ?) $a $b }. +notation > "hvbox(a break =_1 b)" non associative with precedence 45 +for @{ eq_rel1 ? (eq1 ?) $a $b }. +notation > "hvbox(a break =_2 b)" non associative with precedence 45 +for @{ eq_rel2 ? (eq2 ?) $a $b }. +notation > "hvbox(a break =_3 b)" non associative with precedence 45 +for @{ eq_rel3 ? (eq3 ?) $a $b }. + +interpretation "setoid3 symmetry" 'invert r = (sym3 ???? r). +interpretation "setoid2 symmetry" 'invert r = (sym2 ???? r). +interpretation "setoid1 symmetry" 'invert r = (sym1 ???? r). +interpretation "setoid symmetry" 'invert r = (sym ???? r). notation ".= r" with precedence 50 for @{'trans $r}. -interpretation "trans3" 'trans r = (trans3 _____ r). -interpretation "trans2" 'trans r = (trans2 _____ r). -interpretation "trans1" 'trans r = (trans1 _____ r). -interpretation "trans" 'trans r = (trans _____ r). +interpretation "trans3" 'trans r = (trans3 ????? r). +interpretation "trans2" 'trans r = (trans2 ????? r). +interpretation "trans1" 'trans r = (trans1 ????? r). +interpretation "trans" 'trans r = (trans ????? r). record unary_morphism (A,B: setoid) : Type0 ≝ { fun1:1> A → B; @@ -153,20 +173,21 @@ record binary_morphism3 (A,B,C:setoid3) : Type3 ≝ notation "† c" with precedence 90 for @{'prop1 $c }. notation "l ‡ r" with precedence 90 for @{'prop2 $l $r }. notation "#" with precedence 90 for @{'refl}. -interpretation "prop1" 'prop1 c = (prop1 _____ c). -interpretation "prop11" 'prop1 c = (prop11 _____ c). -interpretation "prop12" 'prop1 c = (prop12 _____ c). -interpretation "prop13" 'prop1 c = (prop13 _____ c). -interpretation "prop2" 'prop2 l r = (prop2 ________ l r). -interpretation "prop21" 'prop2 l r = (prop21 ________ l r). -interpretation "prop22" 'prop2 l r = (prop22 ________ l r). -interpretation "prop23" 'prop2 l r = (prop23 ________ l r). -interpretation "refl" 'refl = (refl ___). -interpretation "refl1" 'refl = (refl1 ___). -interpretation "refl2" 'refl = (refl2 ___). -interpretation "refl3" 'refl = (refl3 ___). - -definition unary_morphism2_of_unary_morphism1: ∀S,T.unary_morphism1 S T → unary_morphism2 S T. +interpretation "prop1" 'prop1 c = (prop1 ????? c). +interpretation "prop11" 'prop1 c = (prop11 ????? c). +interpretation "prop12" 'prop1 c = (prop12 ????? c). +interpretation "prop13" 'prop1 c = (prop13 ????? c). +interpretation "prop2" 'prop2 l r = (prop2 ???????? l r). +interpretation "prop21" 'prop2 l r = (prop21 ???????? l r). +interpretation "prop22" 'prop2 l r = (prop22 ???????? l r). +interpretation "prop23" 'prop2 l r = (prop23 ???????? l r). +interpretation "refl" 'refl = (refl ???). +interpretation "refl1" 'refl = (refl1 ???). +interpretation "refl2" 'refl = (refl2 ???). +interpretation "refl3" 'refl = (refl3 ???). + +definition unary_morphism2_of_unary_morphism1: + ∀S,T:setoid1.unary_morphism1 S T → unary_morphism2 (setoid2_of_setoid1 S) T. intros; constructor 1; [ apply (fun11 ?? u); @@ -193,7 +214,7 @@ definition fi': ∀A,B:CPROP. A = B → B → A. qed. notation ". r" with precedence 50 for @{'fi $r}. -interpretation "fi" 'fi r = (fi' __ r). +interpretation "fi" 'fi r = (fi' ?? r). definition and_morphism: binary_morphism1 CPROP CPROP CPROP. constructor 1; @@ -205,7 +226,7 @@ definition and_morphism: binary_morphism1 CPROP CPROP CPROP. | apply (fi ?? e1 b1)]] qed. -interpretation "and_morphism" 'and a b = (fun21 ___ and_morphism a b). +interpretation "and_morphism" 'and a b = (fun21 ??? and_morphism a b). definition or_morphism: binary_morphism1 CPROP CPROP CPROP. constructor 1; @@ -217,7 +238,7 @@ definition or_morphism: binary_morphism1 CPROP CPROP CPROP. | apply (fi ?? e1 b1)]] qed. -interpretation "or_morphism" 'or a b = (fun21 ___ or_morphism a b). +interpretation "or_morphism" 'or a b = (fun21 ??? or_morphism a b). definition if_morphism: binary_morphism1 CPROP CPROP CPROP. constructor 1; @@ -274,12 +295,12 @@ record category3 : Type4 ≝ notation "'ASSOC'" with precedence 90 for @{'assoc}. -interpretation "category2 composition" 'compose x y = (fun22 ___ (comp2 ____) y x). -interpretation "category2 assoc" 'assoc = (comp_assoc2 ________). -interpretation "category1 composition" 'compose x y = (fun21 ___ (comp1 ____) y x). -interpretation "category1 assoc" 'assoc = (comp_assoc1 ________). -interpretation "category composition" 'compose x y = (fun2 ___ (comp ____) y x). -interpretation "category assoc" 'assoc = (comp_assoc ________). +interpretation "category2 composition" 'compose x y = (fun22 ??? (comp2 ????) y x). +interpretation "category2 assoc" 'assoc = (comp_assoc2 ????????). +interpretation "category1 composition" 'compose x y = (fun21 ??? (comp1 ????) y x). +interpretation "category1 assoc" 'assoc = (comp_assoc1 ????????). +interpretation "category composition" 'compose x y = (fun2 ??? (comp ????) y x). +interpretation "category assoc" 'assoc = (comp_assoc ????????). definition category2_of_category1: category1 → category2. intro; @@ -302,9 +323,8 @@ record functor2 (C1: category2) (C2: category2) : Type3 ≝ map_arrows2: ∀S,T. unary_morphism2 (arrows2 ? S T) (arrows2 ? (map_objs2 S) (map_objs2 T)); respects_id2: ∀o:C1. map_arrows2 ?? (id2 ? o) = id2 ? (map_objs2 o); respects_comp2: - ∀o1,o2,o3,o4.∀f1:arrows2 ? o1 o2.∀f2:arrows2 ? o2 o3.∀f3:arrows2 ? o3 o4. - map_arrows2 ?? (f3 ∘ f2 ∘ f1) = - map_arrows2 ?? f3 ∘ map_arrows2 ?? f2 ∘ map_arrows2 ?? f1}. + ∀o1,o2,o3.∀f1:arrows2 ? o1 o2.∀f2:arrows2 ? o2 o3. + map_arrows2 ?? (f2 ∘ f1) = map_arrows2 ?? f2 ∘ map_arrows2 ?? f1}. definition functor2_setoid: category2 → category2 → setoid3. intros (C1 C2); @@ -443,4 +463,4 @@ coercion objs2_of_category1. prefer coercion Type_OF_setoid. (* we prefer the lower carrier projection *) prefer coercion Type_OF_objs1. -interpretation "unary morphism1" 'Imply a b = (arrows2 SET1 a b). \ No newline at end of file +interpretation "unary morphism1" 'Imply a b = (arrows2 SET1 a b).