X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fdama%2Freals.ma;h=d57e6cfba62f8cada56b0da615a5b07fa5df3d12;hb=f2e7cb9757a151382ed3a70d1a610e8f729a6597;hp=97ca4151fed9225137df2fd185aaeb219f06aa87;hpb=8bf2443a45a06c53153344201213afab724bf142;p=helm.git diff --git a/matita/dama/reals.ma b/matita/dama/reals.ma index 97ca4151f..d57e6cfba 100644 --- a/matita/dama/reals.ma +++ b/matita/dama/reals.ma @@ -18,7 +18,7 @@ include "ordered_fields_ch0.ma". record is_real (F:ordered_field_ch0) : Type ≝ - { r_archimedean: ∀x:F. ∃n:nat. x ≤ (sum_field F n); + { r_archimedean: ∀x:F. ∃n:nat. x ≤ (sum_field ? n); r_complete: is_complete F }. @@ -27,7 +27,7 @@ record real: Type \def r_real_properties: is_real r_ordered_field_ch0 }. -definition lim: ∀R:real.∀f:nat→R.is_cauchy_seq R f → R. +definition lim: ∀R:real.∀f:nat→R.is_cauchy_seq ? f → R. intros; elim (r_complete ? (r_real_properties R) ? H); exact a. @@ -35,11 +35,11 @@ qed. definition max_seq: ∀R:real.∀x,y:R. nat → R. intros (R x y); - elim (to_cotransitive R (of_le R) R 0 (inv ? (sum_field R (S n)) ?) (x-y)); + elim (cos_cotransitive R 0 (inv ? (sum_field ? (S n)) ?) (x-y)); [ apply x | apply not_eq_sum_field_zero ; unfold; - auto new + autobatch | apply y | apply lt_zero_to_le_inv_zero ]. @@ -47,20 +47,22 @@ qed. axiom daemon: False. -theorem cauchy_max_seq: ∀R:real.∀x,y. is_cauchy_seq ? (max_seq R x y). +theorem cauchy_max_seq: ∀R:real.∀x,y:R. is_cauchy_seq ? (max_seq ? x y). +elim daemon. +(* intros; unfold; intros; exists; [ exact m | ]; (* apply (ex_intro ? ? m); *) intros; unfold max_seq; - elim (to_cotransitive R (of_le R) R 0 + elim (of_cotransitive R 0 (inv R (sum_field R (S N)) (not_eq_sum_field_zero R (S N) (le_S_S O N (le_O_n N)))) (x-y) (lt_zero_to_le_inv_zero R (S N) (not_eq_sum_field_zero R (S N) (le_S_S O N (le_O_n N))))); [ simplify; - elim (to_cotransitive R (of_le R) R 0 + elim (of_cotransitive R 0 (inv R (1+sum R (plus R) 0 1 m) (not_eq_sum_field_zero R (S m) (le_S_S O m (le_O_n m)))) (x-y) (lt_zero_to_le_inv_zero R (S m) @@ -75,16 +77,15 @@ theorem cauchy_max_seq: ∀R:real.∀x,y. is_cauchy_seq ? (max_seq R x y). ] | simplify; split; - [ apply (to_transitive ? ? - (of_total_order_relation ? ? R) ? 0 ?); - [ apply (le_zero_x_to_le_opp_x_zero R ?) - | assumption - ] + [ apply (or_transitive ? ? R ? 0); + [ apply (le_zero_x_to_le_opp_x_zero R ?) + | assumption + ] | assumption ] ] | simplify; - elim (to_cotransitive R (of_le R) R 0 + elim (of_cotransitive R 0 (inv R (1+sum R (plus R) 0 1 m) (not_eq_sum_field_zero R (S m) (le_S_S O m (le_O_n m)))) (x-y) (lt_zero_to_le_inv_zero R (S m) @@ -98,7 +99,7 @@ theorem cauchy_max_seq: ∀R:real.∀x,y. is_cauchy_seq ? (max_seq R x y). rewrite > eq_opp_plus_plus_opp_opp in H1; rewrite > eq_opp_opp_x_x in H1; rewrite > plus_comm in H1; - apply (to_transitive ? ? (of_total_order_relation ? ? R) ? 0 ?); + apply (or_transitive ? ? R ? 0); [ assumption | apply lt_zero_to_le_inv_zero ] @@ -112,7 +113,7 @@ theorem cauchy_max_seq: ∀R:real.∀x,y. is_cauchy_seq ? (max_seq R x y). ] ] ]. - elim daemon. + elim daemon.*) qed. definition max: ∀R:real.R → R → R. @@ -121,4 +122,51 @@ definition max: ∀R:real.R → R → R. apply cauchy_max_seq. qed. -definition abs \def λR:real.λx:R. max R x (-x). \ No newline at end of file +definition abs \def λR:real.λx:R. max R x (-x). + +lemma comparison: + ∀R:real.∀f,g:nat→R. is_cauchy_seq ? f → is_cauchy_seq ? g → + (∀n:nat.f n ≤ g n) → lim ? f ? ≤ lim ? g ?. + [ assumption + | assumption + | intros; + elim daemon + ]. +qed. + +definition to_zero ≝ + λR:real.λn. + -(inv R (sum_field R (S n)) + (not_eq_sum_field_zero R (S n) (le_S_S O n (le_O_n n)))). + +axiom is_cauchy_seq_to_zero: ∀R:real. is_cauchy_seq ? (to_zero R). + +lemma technical1: ∀R:real.lim R (to_zero R) (is_cauchy_seq_to_zero R) = 0. + intros; + unfold lim; + elim daemon. +qed. + +lemma abs_x_ge_O: ∀R:real.∀x:R. 0 ≤ abs ? x. + intros; + unfold abs; + unfold max; + rewrite < technical1; + apply comparison; + intros; + unfold to_zero; + unfold max_seq; + elim + (cos_cotransitive R 0 +(inv R (sum_field R (S n)) + (not_eq_sum_field_zero R (S n) (le_S_S O n (le_O_n n)))) (x--x) +(lt_zero_to_le_inv_zero R (S n) + (not_eq_sum_field_zero R (S n) (le_S_S O n (le_O_n n))))); + [ simplify; + (* facile *) + elim daemon + | simplify; + (* facile *) + elim daemon + ]. +qed. \ No newline at end of file