]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/formal_topology/overlap/r-o-basic_pairs.ma
729f2894b845b1414952e55342d1b851f6f86b75
[helm.git] / helm / software / matita / contribs / formal_topology / overlap / r-o-basic_pairs.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 include "basic_pairs_to_o-basic_pairs.ma".
16 include "apply_functor.ma".
17
18 definition rOBP ≝ Apply ?? BP_to_OBP.
19
20 include "o-basic_pairs_to_o-basic_topologies.ma".
21
22 lemma rOR_full : 
23   ∀s,t:rOBP.∀f:arrows2 OBTop (OR (ℱ_2 s)) (OR (ℱ_2 t)).
24     exT22 ? (λg:arrows2 rOBP s t.
25        map_arrows2 ?? OR ?? (ℳ_2 g) = f).
26 intro; cases s (s_2 s_1 s_eq); clear s; cases s_eq; clear s_eq s_2;
27 intro; cases t (t_2 t_1 t_eq); clear t; cases t_eq; clear t_eq t_2;
28 whd in ⊢ (%→?); whd in ⊢ (? (? ? ? ? %) (? ? ? ? %)→?);
29 intro; whd in s_1 t_1;
30 letin y ≝ (f⎻* ); clearbody y;
31  change in y with (carr2 (POW (form s_1) ⇒ POW (form t_1)));
32 alias symbol "Vdash" = "basic pair relation for subsets (non applied)".
33 letin z ≝ (image ?? (⊩ \sub s_1)); clearbody z;
34 change in z with ((POW (concr s_1) → POW (form s_1)));
35  (*change in z with (carr2 (POW (concr s_1) ⇒ POW (form s_1)));*)
36
37  letin R ≝ (y ∘ z);
38
39  letin R ≝ (f* );∘ (⊩ \sub s_1));
40
41
42 whd in ⊢ (? % ?→?); 
43 whd in ⊢ (? % ?→?);  cases s_eq; intro; whd in f;
44 simplify;
45 intro; cases f (g H1 H2); clear f; exists;
46  [ constructor 1;
47     [
48     | unfold F1; simplify;
49     |
50     ]
51  |
52  ]
53
54  cases f (h H1 H2); clear f; simplify;
55 change in ⊢ (? ? (λg:?.? ? ? (? ? ? %) ?)) with 
56   (o_continuous_relation_of_o_relation_pair ?? (ℳ_2 g)).
57
58 STOP;
59  
60
61 (* Todo: rename BTop → OBTop *)
62
63 (* scrivo gli statement qua cosi' verra' un conflitto :-)
64
65 1. definire il funtore OR
66 2. dimostrare che ORel e' faithful
67
68 3. Definire la funzione
69     Apply:
70      \forall C1,C2: CAT2.  F: arrows3 CAT2 C1 C2 -> CAT2
71     :=
72      constructor 1;
73       [ gli oggetti sono gli oggetti di C1 mappati da F
74       | i morfismi i morfismi di C1 mappati da F
75       | ....
76       ]
77    
78    E : objs CATS === Σx.∃y. F y = x
79   
80    Quindi (Apply C1 C2 F) (che usando da ora in avanti una coercion
81    scrivero' (F C1) ) e' l'immagine di C1 tramite F ed e'
82    una sottocategoria di C2 (qualcosa da dimostare qui??? vedi sotto
83    al punto 5)
84
85 4. Definire rOBP (le OBP rappresentabili) come (BP_to_OBP BP)
86   [Si puo' fare lo stesso per le OA: rOA := Rel_to_OA REL ]
87
88 5. Dimostrare che OR (il funtore faithful da OBP a OBTop) e' full
89    quando applicato a rOBP.
90    Nota: puo' darsi che faccia storie ad accettare lo statement.
91    Infatti rOBP e' (BP_to_OBP BP) ed e' "una sottocategoria di OBP"
92    e OR va da OBP a OBTop. Non so se tipa subito o se devi dare
93    una "proiezione" da rOBP a OBP.
94
95 6. Definire rOBTop come (OBP_to_OBTop rOBP).
96
97 7. Per composizione si ha un funtore full and faithful da BP a rOBTop:
98    basta prendere (OR \circ BP_to_OBP).
99
100 8. Dimostrare (banale: quasi tutti i campi sono per conversione) che
101    esiste un funtore da rOBTop a BTop. Dimostrare che tale funtore e'
102    faithful e full (banale: tutta conversione).
103
104 9. Per composizione si ha un funtore full and faithful da BP a BTop.
105
106 10. Dimostrare che i seguenti funtori sono anche isomorphism-dense
107     (http://planetmath.org/encyclopedia/DenseFunctor.html):
108
109     BP_to_OBP
110     OBP_to_OBTop quando applicato alle rOBP
111     OBTop_to_BTop quando applicato alle rOBTop
112
113     Concludere per composizione che anche il funtore da BP a BTop e'
114     isomorphism-dense.
115
116 ====== Da qui in avanti non e' "necessario" nulla:
117
118 == altre cose mancanti
119
120 11. Dimostrare che le r* e le * orrizzontali
121     sono isomorfe dando il funtore da r* a * e dimostrando che componendo i
122     due funtori ottengo l'identita'
123
124 12. La definizione di r* fa schifo: in pratica dici solo come ottieni
125     qualcosa, ma non come lo caratterizzeresti. Ora un teorema carino
126     e' che una a* (e.g. una aOBP) e' sempre una rOBP dove "a" sta per
127     atomic. Dimostrarlo per tutte le r*.
128
129 == categorish/future works
130
131 13. definire astrattamente la FG-completion e usare quella per
132     ottenere le BP da Rel e le OBP da OA.
133
134 14. indebolire le OA, generalizzare le costruzioni, etc. come detto
135     con Giovanni
136
137 *)
138