X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fdama%2Fdama%2Funiform.ma;h=41b593ae4a25832cc073a98c0702235f1c39be84;hb=c3b8ed2e554cbdb677729747c5b5a96112ae5169;hp=2b5ed2cb8399af2dd5695c6d260b6d0b6a4e2d1d;hpb=1509e99ac3aba0e725ac7ced7db20d5d23ea276a;p=helm.git diff --git a/helm/software/matita/contribs/dama/dama/uniform.ma b/helm/software/matita/contribs/dama/dama/uniform.ma index 2b5ed2cb8..41b593ae4 100644 --- a/helm/software/matita/contribs/dama/dama/uniform.ma +++ b/helm/software/matita/contribs/dama/dama/uniform.ma @@ -32,41 +32,55 @@ notation "a \subseteq u" left associative with precedence 70 interpretation "Bishop subset" 'subset a b = (cic:/matita/dama/uniform/subset.con _ a b). -notation "{ ident x : t | p }" non associative with precedence 50 +notation "hvbox({ ident x : t | break p })" non associative with precedence 50 for @{ 'explicitset (\lambda ${ident x} : $t . $p) }. definition mk_set ≝ λT:bishop_set.λx:T→Prop.x. interpretation "explicit set" 'explicitset t = (cic:/matita/dama/uniform/mk_set.con _ t). -notation < "s \sup 2" non associative with precedence 90 - for @{ 'square $s }. +notation < "s 2 \atop \neq" non associative with precedence 90 + for @{ 'square2 $s }. notation > "s 'square'" non associative with precedence 90 for @{ 'square $s }. -interpretation "bishop suqare set" 'square x = +interpretation "bishop set square" 'square x = + (cic:/matita/dama/uniform/square_bishop_set.con x). +interpretation "bishop set square" 'square2 x = (cic:/matita/dama/uniform/square_bishop_set.con x). + alias symbol "exists" = "exists". alias symbol "and" = "logical and". definition compose_relations ≝ λC:bishop_set.λU,V:C square → Prop. - λx:C square.∃y:C. U (prod ?? (fst x) y) ∧ V (prod ?? y (snd x)). + λx:C square.∃y:C. U 〈fst x,y〉 ∧ V 〈y,snd x〉. notation "a \circ b" left associative with precedence 60 for @{'compose $a $b}. interpretation "relations composition" 'compose a b = (cic:/matita/dama/uniform/compose_relations.con _ a b). +notation "hvbox(x \in break a \circ break b)" non associative with precedence 50 + for @{'compose2 $a $b $x}. +interpretation "relations composition" 'compose2 a b x = + (cic:/matita/dama/uniform/compose_relations.con _ a b x). definition invert_relation ≝ λC:bishop_set.λU:C square → Prop. - λx:C square. U (prod ?? (snd x) (fst x)). + λx:C square. U 〈snd x,fst x〉. notation < "s \sup (-1)" non associative with precedence 90 for @{ 'invert $s }. +notation < "s \sup (-1) x" non associative with precedence 90 + for @{ 'invert2 $s $x}. notation > "'inv' s" non associative with precedence 90 for @{ 'invert $s }. interpretation "relation invertion" 'invert a = (cic:/matita/dama/uniform/invert_relation.con _ a). +interpretation "relation invertion" 'invert2 a x = + (cic:/matita/dama/uniform/invert_relation.con _ a x). +alias symbol "exists" = "CProp exists". +alias symbol "and" (instance 18) = "constructive and". +alias symbol "and" (instance 10) = "constructive and". record uniform_space : Type ≝ { us_carr:> bishop_set; us_unifbase: (us_carr square → Prop) → CProp; @@ -76,14 +90,14 @@ record uniform_space : Type ≝ { ∃W:us_carr square → Prop.us_unifbase W ∧ (W ⊆ {x:?|U x ∧ V x}); us_phi3: ∀U:us_carr square → Prop. us_unifbase U → ∃W:us_carr square → Prop.us_unifbase W ∧ (W ∘ W) ⊆ U; - us_phi4: ∀U:us_carr square → Prop. us_unifbase U → U = inv U (* I should use double inclusion ... *) + us_phi4: ∀U:us_carr square → Prop. us_unifbase U → ∀x.(U x → (inv U) x) ∧ ((inv U) x → U x) }. (* Definition 2.14 *) alias symbol "leq" = "natural 'less or equal to'". definition cauchy ≝ λC:uniform_space.λa:sequence C.∀U.us_unifbase C U → - ∃n. ∀i,j. n ≤ i → n ≤ j → U (prod ?? (a i) (a j)). + ∃n. ∀i,j. n ≤ i → n ≤ j → U 〈a i,a j〉. notation < "a \nbsp 'is_cauchy'" non associative with precedence 50 for @{'cauchy $a}. @@ -95,7 +109,7 @@ interpretation "Cauchy sequence" 'cauchy s = (* Definition 2.15 *) definition uniform_converge ≝ λC:uniform_space.λa:sequence C.λu:C. - ∀U.us_unifbase C U → ∃n. ∀i. n ≤ i → U (prod ?? u (a i)). + ∀U.us_unifbase C U → ∃n. ∀i. n ≤ i → U 〈u,a i〉. notation < "a \nbsp (\u \atop (\horbar\triangleright)) \nbsp x" non associative with precedence 50 for @{'uniform_converge $a $x}. @@ -112,7 +126,8 @@ intros (C a x Ha); intros 2 (u Hu); cases (us_phi3 ?? Hu) (v Hv0); cases Hv0 (Hv H); clear Hv0; cases (Ha ? Hv) (n Hn); exists [apply n]; intros; apply H; unfold; exists [apply x]; split [2: apply (Hn ? H2)] -rewrite > (us_phi4 ?? Hv); simplify; apply (Hn ? H1); +cases (us_phi4 ?? Hv 〈a i,x〉) (P1 P2); apply P2; +apply (Hn ? H1); qed. (* Definition 2.17 *) @@ -124,5 +139,3 @@ interpretation "explicit big set" 'explicitset t = definition restrict_uniformity ≝ λC:uniform_space.λX:C→Prop. {U:C square → Prop| (U ⊆ {x:C square|X (fst x) ∧ X(snd x)}) ∧ us_unifbase C U}. - -