X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fformal_topology%2Foverlap%2Fo-basic_pairs_to_o-basic_topologies.ma;h=b745652569c9458b389903f2a220c93c03c3d6f9;hb=3e5c359c75874748cfed8a9046031b62396e0e6d;hp=324e51df7a2fcc651b0af478255db26f1364ab6a;hpb=05669a3646cbf8219bf772718b4b2c5bfd1ddd82;p=helm.git diff --git a/helm/software/matita/contribs/formal_topology/overlap/o-basic_pairs_to_o-basic_topologies.ma b/helm/software/matita/contribs/formal_topology/overlap/o-basic_pairs_to_o-basic_topologies.ma index 324e51df7..b74565256 100644 --- a/helm/software/matita/contribs/formal_topology/overlap/o-basic_pairs_to_o-basic_topologies.ma +++ b/helm/software/matita/contribs/formal_topology/overlap/o-basic_pairs_to_o-basic_topologies.ma @@ -12,72 +12,108 @@ (* *) (**************************************************************************) +include "notation.ma". include "o-basic_pairs.ma". include "o-basic_topologies.ma". -lemma pippo: ∀S:OA.∀p,q,r:S. p ≤ q → p >< r → q >< r. - intros; - cut (r = binary_meet ? r r); (* la notazione non va ??? *) - [ apply (. (#‡Hcut) ^ -1); - apply oa_overlap_preservers_meet; - | - ] +alias symbol "eq" = "setoid1 eq". -(* Part of proposition 9.9 *) -lemma lemmax: ∀S,T.∀R:arrows2 OA S T.∀p,q. p ≤ q → R p ≤ R q. - intros; - apply oa_density; intros; - apply (. (or_prop3 : ?) ^ -1); - apply - -(* Lemma 10.2, to be moved to OA *) -lemma lemma_10_2_a: ∀S,T.∀R:arrows2 OA S T.∀p. p ≤ R⎻* (R⎻ p). - intros; - apply (. (or_prop2 : ?)); - apply oa_leq_refl. -qed. - -lemma lemma_10_2_b: ∀S,T.∀R:arrows2 OA S T.∀p. R⎻ (R⎻* p) ≤ p. - intros; - apply (. (or_prop2 : ?) ^ -1); - apply oa_leq_refl. +(* Qui, per fare le cose per bene, ci serve la nozione di funtore categorico *) +definition o_basic_topology_of_o_basic_pair: OBP → OBTop. + intro t; + constructor 1; + [ apply (Oform t); + | apply (□⎽t ∘ Ext⎽t); + | apply (◊⎽t ∘ Rest⎽t); + | apply hide; intros 2; split; intro; + [ change with ((⊩) \sup ⎻* ((⊩) \sup ⎻ U) ≤ (⊩) \sup ⎻* ((⊩) \sup ⎻ V)); + apply (. (#‡(lemma_10_4_a ?? (⊩) V)^-1)); + apply f_minus_star_image_monotone; + apply f_minus_image_monotone; + assumption + | apply oa_leq_trans; + [3: apply f; + | skip + | change with (U ≤ (⊩)⎻* ((⊩)⎻ U)); + apply (. (or_prop2 : ?) ^ -1); + apply oa_leq_refl; ]] + | apply hide; intros 2; split; intro; + [ change with (◊⎽t ((⊩) \sup * U) ≤ ◊⎽t ((⊩) \sup * V)); + apply (. ((lemma_10_4_b ?? (⊩) U)^-1)‡#); + apply (f_image_monotone ?? (⊩) ? ((⊩)* V)); + apply f_star_image_monotone; + assumption; + | apply oa_leq_trans; + [2: apply f; + | skip + | change with ((⊩) ((⊩)* V) ≤ V); + apply (. (or_prop1 : ?)); + apply oa_leq_refl; ]] + | apply hide; intros; + apply (.= (oa_overlap_sym' : ?)); + change with ((◊⎽t ((⊩)* V) >< (⊩)⎻* ((⊩)⎻ U)) = (U >< (◊⎽t ((⊩)* V)))); + apply (.= (or_prop3 ?? (⊩) ((⊩)* V) ?)); + apply (.= #‡(lemma_10_3_a : ?)); + apply (.= (or_prop3 : ?)^-1); + apply (oa_overlap_sym' ? ((⊩) ((⊩)* V)) U); ] qed. -lemma lemma_10_3: ∀S,T.∀R:arrows2 OA S T.∀p. R⎻* (R⎻ (R⎻* p)) = R⎻* p. - intros; apply oa_leq_antisym; - [ lapply (lemma_10_2_b ?? R p); - - | apply lemma_10_2_a;] +definition o_continuous_relation_of_o_relation_pair: + ∀BP1,BP2.arrows2 OBP BP1 BP2 → + arrows2 OBTop (o_basic_topology_of_o_basic_pair BP1) (o_basic_topology_of_o_basic_pair BP2). + intros (BP1 BP2 t); + constructor 1; + [ apply (t \sub \f); + | apply hide; unfold o_basic_topology_of_o_basic_pair; simplify; intros; + apply sym1; + apply (.= †(†e)); + change in ⊢ (? ? ? (? ? ? ? %) ?) with ((t \sub \f ∘ (⊩)) ((⊩)* U)); + cut ((t \sub \f ∘ (⊩)) ((⊩)* U) = ((⊩) ∘ t \sub \c) ((⊩)* U)) as COM;[2: + cases (Ocommute ?? t); apply (e3 ^ -1 ((⊩)* U));] + apply (.= †COM); + change in ⊢ (? ? ? % ?) with (((⊩) ∘ (⊩)* ) (((⊩) ∘ t \sub \c ∘ (⊩)* ) U)); + apply (.= (lemma_10_3_c ?? (⊩) (t \sub \c ((⊩)* U)))); + apply (.= COM ^ -1); + change in ⊢ (? ? ? % ?) with (t \sub \f (((⊩) ∘ (⊩)* ) U)); + change in e with (U=((⊩)∘(⊩ \sub BP1) \sup * ) U); + apply (†e^-1); + | apply hide; unfold o_basic_topology_of_o_basic_pair; simplify; intros; + apply sym1; + apply (.= †(†e)); + change in ⊢ (? ? ? (? ? ? ? %) ?) with ((t \sub \f⎻* ∘ (⊩)⎻* ) ((⊩)⎻ U)); + cut ((t \sub \f⎻* ∘ (⊩)⎻* ) ((⊩)⎻ U) = ((⊩)⎻* ∘ t \sub \c⎻* ) ((⊩)⎻ U)) as COM;[2: + cases (Ocommute ?? t); apply (e1 ^ -1 ((⊩)⎻ U));] + apply (.= †COM); + change in ⊢ (? ? ? % ?) with (((⊩)⎻* ∘ (⊩)⎻ ) (((⊩)⎻* ∘ t \sub \c⎻* ∘ (⊩)⎻ ) U)); + apply (.= (lemma_10_3_d ?? (⊩) (t \sub \c⎻* ((⊩)⎻ U)))); + apply (.= COM ^ -1); + change in ⊢ (? ? ? % ?) with (t \sub \f⎻* (((⊩)⎻* ∘ (⊩)⎻ ) U)); + change in e with (U=((⊩)⎻* ∘(⊩ \sub BP1)⎻ ) U); + apply (†e^-1);] qed. - -(* Qui, per fare le cose per bene, ci serve la nozione di funtore categorico *) -definition o_basic_topology_of_basic_pair: BP → BTop. - intro; - constructor 1; - [ apply (form t); - | apply (□_t ∘ Ext⎽t); - | apply (◊_t ∘ Rest⎽t); - | intros 2; - lapply depth=0 (or_prop1 ?? (rel t)); - lapply depth=0 (or_prop2 ?? (rel t)); - - | - | - ] +definition OR : carr3 (arrows3 CAT2 OBP OBTop). +constructor 1; +[ apply o_basic_topology_of_o_basic_pair; +| intros; constructor 1; + [ apply o_continuous_relation_of_o_relation_pair; + | apply hide; + intros; whd; unfold o_continuous_relation_of_o_relation_pair; simplify;; + change with ((a \sub \f ⎻* ∘ oA (o_basic_topology_of_o_basic_pair S)) = + (a' \sub \f ⎻*∘ oA (o_basic_topology_of_o_basic_pair S))); + whd in e; cases e; clear e e2 e3 e4; + change in ⊢ (? ? ? (? ? ? ? ? % ?) ?) with ((⊩\sub S)⎻* ∘ (⊩\sub S)⎻); + apply (.= (comp_assoc2 ? ???? ?? a\sub\f⎻* )); + change in ⊢ (? ? ? (? ? ? ? ? ? %) ?) with (a\sub\f ∘ ⊩\sub S)⎻*; + apply (.= #‡†(Ocommute:?)^-1); + apply (.= #‡e1); + change in ⊢ (? ? ? (? ? ? ? ? ? %) ?) with (⊩\sub T ∘ a'\sub\c)⎻*; + apply (.= #‡†(Ocommute:?)); + change in ⊢ (? ? ? (? ? ? ? ? ? %) ?) with (a'\sub\f⎻* ∘ (⊩\sub S)⎻* ); + apply (.= (comp_assoc2 ? ???? ?? a'\sub\f⎻* )^-1); + apply refl2;] +| intros 2 (o a); apply refl1; +| intros 6; apply refl1;] qed. -definition o_convergent_relation_pair_of_convergent_relation_pair: - ∀BP1,BP2.cic:/matita/formal_topology/concrete_spaces/convergent_relation_pair.ind#xpointer(1/1) BP1 BP2 → - convergent_relation_pair (o_concrete_space_of_concrete_space BP1) (o_concrete_space_of_concrete_space BP2). - intros; - constructor 1; - [ apply (orelation_of_relation ?? (r \sub \c)); - | apply (orelation_of_relation ?? (r \sub \f)); - | lapply (commute ?? r); - lapply (orelation_of_relation_preserves_equality ???? Hletin); - apply (.= (orelation_of_relation_preserves_composition (concr BP1) ??? (rel BP2)) ^ -1); - apply (.= (orelation_of_relation_preserves_equality ???? (commute ?? r))); - apply (orelation_of_relation_preserves_composition ?? (form BP2) (rel BP1) ?); ] -qed.