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
}.
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.
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
].
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)
]
| 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)
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
]
]
]
].
- elim daemon.
+ elim daemon.*)
qed.
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