]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/formal_topology/overlap/basic_pairs_to_o-basic_pairs.ma
nasty change in the lexer/parser:
[helm.git] / helm / software / matita / contribs / formal_topology / overlap / basic_pairs_to_o-basic_pairs.ma
index d8813fdc1b1154c37458065c9f548d4ddddb3fea..3e2fe8f354ee116ad0e851d568893eaa14182b2a 100644 (file)
@@ -39,12 +39,13 @@ definition o_relation_pair_of_relation_pair:
     | apply commute;]]
 qed.
 
-definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 BP) OBP).
- constructor 1;
-  [ apply o_basic_pair_of_basic_pair;
-  | intros; constructor 1;
-     [ apply (o_relation_pair_of_relation_pair S T);
-     | intros (a b Eab); split; unfold o_relation_pair_of_relation_pair; simplify;
+lemma o_relation_pair_of_relation_pair_is_morphism : 
+  ∀S,T:category2_of_category1 BP.    
+  ∀a,b:arrows2 (category2_of_category1 BP) S T.a=b → 
+   (eq2 (arrows2 OBP (o_basic_pair_of_basic_pair S) (o_basic_pair_of_basic_pair T))) 
+    (o_relation_pair_of_relation_pair S T a) (o_relation_pair_of_relation_pair S T b).
+intros 2 (S T);       
+      intros (a b Eab); split; unfold o_relation_pair_of_relation_pair; simplify;
        unfold o_basic_pair_of_basic_pair; simplify;
        [ change in match or_f_minus_star_ with (λq,w,x.fun12 ?? (or_f_minus_star q w) x); 
        | change in match or_f_minus_ with (λq,w,x.fun12 ?? (or_f_minus q w) x);
@@ -58,8 +59,23 @@ definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 BP) OBP).
        apply sym2;
        apply prop12;
        apply Eab;
-     ]
-  | simplify; intros; whd; split; 
+qed.
+
+lemma o_relation_pair_of_relation_pair_morphism : 
+  ∀S,T:category2_of_category1 BP.
+  unary_morphism2 (arrows2 (category2_of_category1 BP) S T)
+   (arrows2 OBP (o_basic_pair_of_basic_pair S) (o_basic_pair_of_basic_pair T)).
+intros (S T);
+   constructor 1;
+     [ apply (o_relation_pair_of_relation_pair S T);
+     | apply (o_relation_pair_of_relation_pair_is_morphism S T)]
+qed.
+
+lemma o_relation_pair_of_relation_pair_morphism_respects_id:
+ ∀o:category2_of_category1 BP.
+  o_relation_pair_of_relation_pair_morphism o o (id2 (category2_of_category1 BP) o)
+  = id2 OBP (o_basic_pair_of_basic_pair o).
+   simplify; intros; whd; split; 
        [ change in match or_f_minus_star_ with (λq,w,x.fun12 ?? (or_f_minus_star q w) x); 
        | change in match or_f_minus_ with (λq,w,x.fun12 ?? (or_f_minus q w) x);
        | change in match or_f_ with (λq,w,x.fun12 ?? (or_f q w) x);
@@ -67,8 +83,19 @@ definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 BP) OBP).
     simplify;
     apply prop12;
     apply prop22;[2,4,6,8: apply rule #;]
-    apply (respects_id2 ?? POW (concr o)); 
-  | simplify; intros; whd; split;
+    apply (respects_id2 ?? POW (concr o));
+qed. 
+
+lemma o_relation_pair_of_relation_pair_morphism_respects_comp:
+  ∀o1,o2,o3:category2_of_category1 BP.
+  ∀f1:arrows2 (category2_of_category1 BP) o1 o2.
+  ∀f2:arrows2 (category2_of_category1 BP) o2 o3.
+  (eq2 (arrows2 OBP (o_basic_pair_of_basic_pair o1) (o_basic_pair_of_basic_pair o3)))
+    (o_relation_pair_of_relation_pair_morphism o1 o3 (f2 ∘ f1))
+    (comp2 OBP ???
+      (o_relation_pair_of_relation_pair_morphism o1 o2 f1)
+      (o_relation_pair_of_relation_pair_morphism o2 o3 f2)).
+   simplify; intros; whd; split;
        [ change in match or_f_minus_star_ with (λq,w,x.fun12 ?? (or_f_minus_star q w) x); 
        | change in match or_f_minus_ with (λq,w,x.fun12 ?? (or_f_minus q w) x);
        | change in match or_f_ with (λq,w,x.fun12 ?? (or_f q w) x);
@@ -76,7 +103,15 @@ definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 BP) OBP).
     simplify;
     apply prop12;
     apply prop22;[2,4,6,8: apply rule #;]
-    apply (respects_comp2 ?? POW (concr o1) (concr o2) (concr o3) f1\sub\c f2\sub\c);]     
+    apply (respects_comp2 ?? POW (concr o1) (concr o2) (concr o3) f1\sub\c f2\sub\c);
+qed.
+
+definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 BP) OBP).
+ constructor 1;
+  [ apply o_basic_pair_of_basic_pair;
+  | intros; apply o_relation_pair_of_relation_pair_morphism;
+  | apply o_relation_pair_of_relation_pair_morphism_respects_id;
+  | apply o_relation_pair_of_relation_pair_morphism_respects_comp;]
 qed.
 
 theorem BP_to_OBP_faithful:
@@ -91,7 +126,8 @@ theorem BP_to_OBP_faithful:
  apply e;
 qed.
 
-theorem BP_to_OBP_full: ∀S,T.∀f. exT22 ? (λg. map_arrows2 ?? BP_to_OBP S T g = f).
+theorem BP_to_OBP_full: 
+   ∀S,T.∀f. exT22 ? (λg. map_arrows2 ?? BP_to_OBP S T g = f).
  intros; 
  cases (POW_full (concr S) (concr T) (Oconcr_rel ?? f)) (gc Hgc);
  cases (POW_full (form S) (form T) (Oform_rel ?? f)) (gf Hgf);