Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus.
(************************************************************************)
(*         *   The Coq Proof Assistant / The Coq Development Team       *)
(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2018       *)
(* <O___,, *       (see CREDITS file for the list of authors)           *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)

Require Import Rbase Rfunctions SeqSeries Rtrigo_fun Max.
Local Open Scope R_scope.

(********************************)

Definition of exponential

(********************************)
Definition exp_in (x l:R) : Prop :=
  infinite_sum (fun i:nat => / INR (fact i) * x ^ i) l.


forall n : nat, / INR (fact n) <> 0

forall n : nat, / INR (fact n) <> 0
n:nat

/ INR (fact n) <> 0
n:nat

INR (fact n) <> 0
apply INR_fact_neq_0. Qed.

forall x : R, {l : R | exp_in x l}

forall x : R, {l : R | exp_in x l}
x:R

{l : R | Pser (fun n : nat => / INR (fact n)) x l} -> {l : R | exp_in x l}
x:R

{l : R | infinite_sum (fun n : nat => / INR (fact n) * x ^ n) l} -> {l : R | infinite_sum (fun i : nat => / INR (fact i) * x ^ i) l}
trivial. Defined. Definition exp (x:R) : R := proj1_sig (exist_exp x).

forall i : nat, (0 < i)%nat -> 0 ^ i = 0

forall i : nat, (0 < i)%nat -> 0 ^ i = 0
i:nat
H:(0 < i)%nat

i <> 0%nat
red; intro; rewrite H0 in H; elim (lt_irrefl _ H). Qed.

{l : R | exp_in 0 l}

{l : R | exp_in 0 l}

exp_in 0 1
eps:R
H:eps > 0

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n) 1 < eps
eps:R
H:eps > 0

forall n : nat, (n >= 0)%nat -> R_dist (sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n) 1 < eps
eps:R
H:eps > 0
n:nat
H0:(n >= 0)%nat

R_dist 1 1 < eps
eps:R
H:eps > 0
n:nat
H0:(n >= 0)%nat
1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n
eps:R
H:eps > 0
n:nat
H0:(n >= 0)%nat

1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n
eps:R
H:eps > 0
H0:(0 >= 0)%nat

1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) 0
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n
1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) (S n)
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n

1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) (S n)
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n

1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n + / INR (fact (S n)) * 0 ^ S n
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n

1 = 1 + / INR (fact (S n)) * 0 ^ S n
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n
(n >= 0)%nat
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n

1 = 1 + / INR (fact n + n * fact n) * (0 * 0 ^ n)
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n
(n >= 0)%nat
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> 1 = sum_f_R0 (fun i : nat => / INR (fact i) * 0 ^ i) n

(n >= 0)%nat
unfold ge; apply le_O_n. Defined. (* Value of [exp 0] *)

exp 0 = 1

exp 0 = 1

exp_in 0 (exp 0) -> exp 0 = 1

exp_in 0 (exp 0)

exp_in 0 1 -> exp_in 0 (exp 0) -> exp 0 = 1

exp_in 0 1

exp_in 0 (exp 0)
H:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) 1
H0:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) (exp 0)

infinite_sum ?An (exp 0)
H:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) 1
H0:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) (exp 0)
infinite_sum ?An 1

exp_in 0 1

exp_in 0 (exp 0)
H:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) 1
H0:infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) (exp 0)

infinite_sum (fun i : nat => / INR (fact i) * 0 ^ i) 1

exp_in 0 1

exp_in 0 (exp 0)

exp_in 0 1

exp_in 0 (exp 0)

exp_in 0 (exp 0)
exact (proj2_sig (exist_exp 0)). Qed. (*****************************************)

Definition of hyperbolic functions

(*****************************************)
Definition cosh (x:R) : R := (exp x + exp (- x)) / 2.
Definition sinh (x:R) : R := (exp x - exp (- x)) / 2.
Definition tanh (x:R) : R := sinh x / cosh x.


cosh 0 = 1

cosh 0 = 1

(1 + 1) / 2 = 1
unfold Rdiv; rewrite <- Rinv_r_sym; [ reflexivity | discrR ]. Qed.

sinh 0 = 0

sinh 0 = 0

(1 - 1) / 2 = 0
unfold Rminus, Rdiv; rewrite Rplus_opp_r; apply Rmult_0_l. Qed. Definition cos_n (n:nat) : R := (-1) ^ n / INR (fact (2 * n)).

forall n : nat, cos_n (S n) / cos_n n = - / INR (2 * S n * (2 * n + 1))

forall n : nat, cos_n (S n) / cos_n n = - / INR (2 * S n * (2 * n + 1))
n:nat

(-1) ^ (n + 1) / INR (fact (2 * (n + 1))) / ((-1) ^ n / INR (fact (2 * n))) = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat

(-1) ^ n * (-1) ^ 1 * / INR (fact (2 * (n + 1))) * (/ (-1) ^ n * / / INR (fact (2 * n))) = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

(-1) ^ n * (-1) ^ 1 * / INR (fact (2 * (n + 1))) * (/ (-1) ^ n * INR (fact (2 * n))) = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

(-1) ^ n * / (-1) ^ n * / INR (fact (2 * (n + 1))) * INR (fact (2 * n)) * (-1) ^ 1 = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

1 * / INR (fact (2 * (n + 1))) * INR (fact (2 * n)) * (-1) ^ 1 = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

/ INR (fact (2 * (n + 1))) * INR (fact (2 * n)) * -1 = - / INR (2 * (n + 1) * (2 * n + 1))
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

/ INR (fact (S (S (2 * n)))) * INR (fact (2 * n)) * -1 = - / INR (S (S (2 * n)) * (2 * n + 1))
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

/ INR (S (S (2 * n))) * (/ INR (S (2 * n)) * / INR (fact (2 * n))) * INR (fact (2 * n)) * -1 = - / INR (S (S (2 * n)) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

-1 * (/ INR (S (S (2 * n))) * (/ INR (S (2 * n)) * / INR (fact (2 * n))) * INR (fact (2 * n))) = - / INR (S (S (2 * n)) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

-1 * (/ INR (S (S (2 * n))) * (/ INR (S (2 * n)) * 1)) = - / INR (S (S (2 * n)) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

-1 * (/ INR (S (S (2 * n))) * / INR (S (2 * n))) = - / INR (S (S (2 * n)) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

-1 * (/ INR (S (2 * n + 1)) * / INR (2 * n + 1)) = - / INR (S (2 * n + 1) * (2 * n + 1))
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

-1 * (/ INR (S (2 * n + 1)) * / INR (2 * n + 1)) = - (/ INR (S (2 * n + 1)) * / INR (2 * n + 1))
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (2 * n + 1) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (S (2 * n + 1)) <> 0
n:nat
INR (2 * n + 1) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (2 * n + 1) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (fact (2 * n)) <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (fact (2 * n)) <> 0
n:nat
INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (S (2 * n)) * INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

(-1) ^ n <> 0
n:nat
INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

INR (fact (2 * n)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

/ INR (fact (2 * n)) <> 0
apply Rinv_neq_0_compat; apply INR_fact_neq_0. Qed.

forall eps : R, 0 < eps -> exists N : nat, / INR N < eps /\ (0 < N)%nat

forall eps : R, 0 < eps -> exists N : nat, / INR N < eps /\ (0 < N)%nat
eps:R
H:0 < eps

/ eps < IZR (up (/ eps)) -> exists N : nat, / INR N < eps /\ (0 < N)%nat
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))

(0 <= up (/ eps))%Z -> exists N : nat, / INR N < eps /\ (0 < N)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

/ INR (Nat.max x 1) < eps /\ (0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

/ INR (Nat.max x 1) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

0 < IZR (Z.of_nat x) -> / INR (Nat.max x 1) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

/ IZR (Z.of_nat (Nat.max x 1)) <= / IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1)) <= IZR (Z.of_nat x) * / IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1)) <= IZR (Z.of_nat x) * / IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1)) <= 1
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

0 < IZR (Z.of_nat (Nat.max x 1))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat (Nat.max x 1)) * (IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1))) <= IZR (Z.of_nat (Nat.max x 1)) * 1
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat x) <= IZR (Z.of_nat (Nat.max x 1))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat (Nat.max x 1)) * (IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1))) <= IZR (Z.of_nat (Nat.max x 1)) * 1
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat x) <= IZR (Z.of_nat (Nat.max x 1))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat (Nat.max x 1)) * (IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1))) <= IZR (Z.of_nat (Nat.max x 1)) * 1
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat (Nat.max x 1)) * (IZR (Z.of_nat x) * / IZR (Z.of_nat (Nat.max x 1))) <= IZR (Z.of_nat (Nat.max x 1)) * 1
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat x) * 1 <= IZR (Z.of_nat (Nat.max x 1))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
IZR (Z.of_nat (Nat.max x 1)) <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

IZR (Z.of_nat (Nat.max x 1)) <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

Nat.max x 1 <> 0%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

/ IZR (Z.of_nat x) < eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

/ IZR (Z.of_nat x) < / / eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
eps <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

0 < / eps * IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
/ eps < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
eps <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

/ eps < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)
eps <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
H4:0 < IZR (Z.of_nat x)

eps <> 0
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

0 < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

0 < / eps
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
/ eps < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

/ eps < IZR (Z.of_nat x)
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x
(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
H1:(0 <= up (/ eps))%Z
H2:exists m : nat, up (/ eps) = Z.of_nat m
x:nat
H3:up (/ eps) = Z.of_nat x

(0 < Nat.max x 1)%nat
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))
(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:/ eps < IZR (up (/ eps))

(0 <= up (/ eps))%Z
eps:R
H:0 < eps
/ eps < IZR (up (/ eps))
eps:R
H:0 < eps

/ eps < IZR (up (/ eps))
eps:R
H:0 < eps
H0:IZR (up (/ eps)) > / eps /\ IZR (up (/ eps)) - / eps <= 1

/ eps < IZR (up (/ eps))
elim H0; intros; assumption. Qed.

Un_cv (fun n : nat => Rabs (cos_n (S n) / cos_n n)) 0

Un_cv (fun n : nat => Rabs (cos_n (S n) / cos_n n)) 0
eps:R
H:eps > 0

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (Rabs (cos_n (S n) / cos_n n)) 0 < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (Rabs (cos_n (S n) / cos_n n)) 0 < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat

forall n : nat, (n >= x)%nat -> R_dist (Rabs (cos_n (S n) / cos_n n)) 0 < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n * (2 * n + 1)) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n) * / INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n) < 1 -> / INR (2 * S n) * / INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

/ INR (2 * n + 1) < eps -> / INR (2 * S n) * / INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps

/ INR (2 * S n) * / INR (2 * n + 1) < 1 * eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps

/ INR (2 * n + 1) > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps
1 > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps

(0 < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps
1 > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * n + 1) < eps

1 > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < 2 * n + 1)%nat -> / INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

/ INR (2 * n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

/ INR (2 * n + 1) < / INR x
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

0 < INR x * INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
INR x < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

0 < INR x
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
0 < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
INR x < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

(0 < x)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
0 < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
INR x < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

0 < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
INR x < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

INR x < INR (2 * n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * n + 1)%nat
H5:INR x < INR (2 * n + 1)

/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(S n <= 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(S n <= 2 * n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(S n <= S (2 * n))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

0 < INR (2 * S n)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(0 < S (S (2 * n)))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

S (S (2 * n)) = (2 * (n + 1))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

1 < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

1 < INR (2 * S n)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(1 < 2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(1 < S (S (2 * n)))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n * (2 * n + 1)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

0 < INR (2 * S n * (2 * n + 1))
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(0 < 2 * S n * (2 * n + 1))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(0 < 2 + (4 * (n * n) + 6 * n))%nat
apply lt_O_Sn. Qed.

forall n : nat, cos_n n <> 0

forall n : nat, cos_n n <> 0
n:nat

(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n)) <> 0
n:nat

/ INR (fact (2 * n)) <> 0
n:nat

INR (fact (2 * n)) <> 0
apply INR_fact_neq_0. Qed. (**********) Definition cos_in (x l:R) : Prop := infinite_sum (fun i:nat => cos_n i * x ^ i) l. (**********)

forall x : R, {l : R | cos_in x l}

forall x : R, {l : R | cos_in x l}
x:R

{l : R | Pser cos_n x l} -> {l : R | cos_in x l}
unfold Pser, cos_in; trivial. Qed.
Definition of cosinus
Definition cos (x:R) : R := let (a,_) := exist_cos (Rsqr x) in a.

Definition sin_n (n:nat) : R := (-1) ^ n / INR (fact (2 * n + 1)).


forall n : nat, sin_n (S n) / sin_n n = - / INR ((2 * S n + 1) * (2 * S n))

forall n : nat, sin_n (S n) / sin_n n = - / INR ((2 * S n + 1) * (2 * S n))
n:nat

(-1) ^ (n + 1) / INR (fact (2 * (n + 1) + 1)) / ((-1) ^ n / INR (fact (2 * n + 1))) = - / INR ((2 * (n + 1) + 1) * (2 * (n + 1)))
n:nat

(-1) ^ n * (-1) ^ 1 * / INR (fact (2 * (n + 1) + 1)) * (/ (-1) ^ n * / / INR (fact (2 * n + 1))) = - / INR ((2 * (n + 1) + 1) * (2 * (n + 1)))
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(-1) ^ n * (-1) ^ 1 * / INR (fact (2 * (n + 1) + 1)) * (/ (-1) ^ n * INR (fact (2 * n + 1))) = - / INR ((2 * (n + 1) + 1) * (2 * (n + 1)))
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(-1) ^ n * / (-1) ^ n * / INR (fact (2 * (n + 1) + 1)) * INR (fact (2 * n + 1)) * (-1) ^ 1 = - / INR ((2 * (n + 1) + 1) * (2 * (n + 1)))
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

1 * / INR (fact (2 * (n + 1) + 1)) * INR (fact (2 * n + 1)) * (-1) ^ 1 = - / INR ((2 * (n + 1) + 1) * (2 * (n + 1)))
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

/ INR (fact (S (S (2 * n + 1)))) * INR (fact (2 * n + 1)) * -1 = - / INR (S (S (2 * n + 1)) * (2 * (n + 1)))
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

/ INR (S (S (2 * n + 1))) * (/ INR (S (2 * n + 1)) * / INR (fact (2 * n + 1))) * INR (fact (2 * n + 1)) * -1 = - / INR (S (S (2 * n + 1)) * (2 * (n + 1)))
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

-1 * (/ INR (S (S (2 * n + 1))) * (/ INR (S (2 * n + 1)) * 1)) = - / INR (S (S (2 * n + 1)) * (2 * (n + 1)))
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

-1 * (/ INR (S (2 * (n + 1))) * / INR (2 * (n + 1))) = - / INR (S (2 * (n + 1)) * (2 * (n + 1)))
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

-1 * (/ INR (S (2 * (n + 1))) * (/ INR 2 * / INR (n + 1))) = - (/ INR (S (2 * (n + 1))) * (/ INR 2 * / INR (n + 1)))
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
INR (S (2 * (n + 1))) <> 0
n:nat
INR 2 * INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
INR (S (2 * (n + 1))) <> 0
n:nat
INR 2 * INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (n + 1) <> 0
n:nat
INR (S (2 * (n + 1))) <> 0
n:nat
INR 2 * INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (S (2 * (n + 1))) <> 0
n:nat
INR 2 * INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR 2 * INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (n + 1) <> 0
n:nat
INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR 2 <> 0
n:nat
INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (n + 1) <> 0
n:nat
(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(2 * (n + 1))%nat = S (2 * n + 1)
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(forall n0 : nat, S n0 = (n0 + 1)%nat) -> (2 * n + 2 * 1)%nat = S (2 * n + 1)
n:nat
forall n0 : nat, S n0 = (n0 + 1)%nat
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat
H:forall n0 : nat, S n0 = (n0 + 1)%nat

(2 * n + 2 * 1)%nat = (2 * n + 1 + 1)%nat
n:nat
forall n0 : nat, S n0 = (n0 + 1)%nat
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

forall n0 : nat, S n0 = (n0 + 1)%nat
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (S (2 * n + 1)) <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (fact (2 * n + 1)) <> 0
n:nat
INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (S (S (2 * n + 1))) <> 0
n:nat
INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (S (2 * n + 1)) * INR (fact (2 * n + 1)) <> 0
n:nat
S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

S (S (2 * n + 1)) = (2 * (n + 1) + 1)%nat
n:nat
(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(-1) ^ n <> 0
n:nat
INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

INR (fact (2 * n + 1)) <> 0
n:nat
(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

/ INR (fact (2 * n + 1)) <> 0
apply Rinv_neq_0_compat; apply INR_fact_neq_0. Qed.

Un_cv (fun n : nat => Rabs (sin_n (S n) / sin_n n)) 0

Un_cv (fun n : nat => Rabs (sin_n (S n) / sin_n n)) 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (Rabs (sin_n (S n) / sin_n n)) 0 < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat

forall n : nat, (n >= x)%nat -> R_dist (Rabs (sin_n (S n) / sin_n n)) 0 < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR ((2 * S n + 1) * (2 * S n)) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n + 1) * / INR (2 * S n) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n) < 1 -> / INR (2 * S n + 1) * / INR (2 * S n) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

/ INR (2 * S n + 1) < eps -> / INR (2 * S n + 1) * / INR (2 * S n) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * S n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * S n + 1) < eps

/ INR (2 * S n + 1) > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * S n + 1) < eps
1 > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * S n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:/ INR (2 * S n + 1) < eps

1 > 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
/ INR (2 * S n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

/ INR (2 * S n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < 2 * S n + 1)%nat -> / INR (2 * S n + 1) < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

/ INR (2 * S n + 1) < / INR x
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

0 < INR x * INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
INR x < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

0 < INR x
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
0 < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
INR x < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

0 < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
INR x < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

INR x < INR (2 * S n + 1)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)
/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
H4:(x < 2 * S n + 1)%nat
H5:INR x < INR (2 * S n + 1)

/ INR x < eps
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(x < S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1
(S n <= 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(S n <= 2 * S n + 1)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
H3:/ INR (2 * S n) < 1

(S n <= S (2 * S n))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR (2 * S n) < 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

0 < INR (2 * S n)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) * / INR (2 * S n) < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

1 < INR (2 * S n) * 1
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

1 < INR (2 * S n)
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(1 < 2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(1 < S (S (2 * n)))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

S (S (2 * n)) = (2 * S n)%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n + 1) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

INR (2 * S n) <> 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat
/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

/ INR ((2 * S n + 1) * (2 * S n)) >= 0
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

0 < INR ((2 * S n + 1) * (2 * S n))
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(0 < (2 * S n + 1) * (2 * S n))%nat
eps:R
H:eps > 0
H0:exists N : nat, / INR N < eps /\ (0 < N)%nat
x:nat
H1:/ INR x < eps /\ (0 < x)%nat
n:nat
H2:(n >= x)%nat

(0 < 6 + (4 * (n * n) + 10 * n))%nat
apply lt_O_Sn. Qed.

forall n : nat, sin_n n <> 0

forall n : nat, sin_n n <> 0
n:nat

(-1) ^ n <> 0
n:nat
/ INR (fact (2 * n + 1)) <> 0
n:nat

/ INR (fact (2 * n + 1)) <> 0
apply Rinv_neq_0_compat; apply INR_fact_neq_0. Qed. (**********) Definition sin_in (x l:R) : Prop := infinite_sum (fun i:nat => sin_n i * x ^ i) l. (**********)

forall x : R, {l : R | sin_in x l}

forall x : R, {l : R | sin_in x l}
x:R

{l : R | Pser sin_n x l} -> {l : R | sin_in x l}
unfold Pser, sin_n; trivial. Defined. (***********************) (* Definition of sinus *) Definition sin (x:R) : R := let (a,_) := exist_sin (Rsqr x) in x * a. (*********************************************)

Properties

(*********************************************)


forall x : R, cos x = cos (- x)

forall x : R, cos x = cos (- x)
x:R

(let (a, _) := exist_cos x² in a) = (let (a, _) := exist_cos x² in a)
x:R
x² = (- x)²
x:R

x² = (- x)²
apply Rsqr_neg. Qed.

forall x : R, sin (- x) = - sin x

forall x : R, sin (- x) = - sin x
x:R

(let (a, _) := exist_sin x² in - x * a) = - (let (a, _) := exist_sin x² in x * a)
case (exist_sin (Rsqr x)); intros; ring. Qed.

sin 0 = 0

sin 0 = 0

forall x : R, sin_in 0² x -> 0 * x = 0
intros; ring. Qed.

{l : R | cos_in 0 l}

{l : R | cos_in 0 l}

cos_in 0 1
eps:R
H:eps > 0

forall n : nat, (n >= 0)%nat -> R_dist (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n) 1 < eps
eps:R
H:eps > 0
n:nat
H0:(n >= 0)%nat

R_dist (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n) 1 < eps
eps:R
H:eps > 0
n:nat
H0:(n >= 0)%nat

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
eps:R
H:eps > 0
H0:(0 >= 0)%nat

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) 0 - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) (S n) - 1) < eps
eps:R
H:eps > 0
H0:(0 >= 0)%nat

Rabs (1 / 1 * 1 - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) (S n) - 1) < eps
eps:R
H:eps > 0
H0:(0 >= 0)%nat

Rabs (1 * 1 * 1 - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) (S n) - 1) < eps
eps:R
H:eps > 0
H0:(0 >= 0)%nat

Rabs (1 - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) (S n) - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) (S n) - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n + cos_n (S n) * 0 ^ S n - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n + 0 - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
0 = cos_n (S n) * 0 ^ S n
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps

Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps
0 = cos_n (S n) * 0 ^ S n
eps:R
H:eps > 0
n:nat
H0:(S n >= 0)%nat
Hrecn:(n >= 0)%nat -> Rabs (sum_f_R0 (fun i : nat => cos_n i * 0 ^ i) n - 1) < eps

0 = cos_n (S n) * 0 ^ S n
simpl; ring. Defined. (* Value of [cos 0] *)

cos 0 = 1

cos 0 = 1

cos_in 0 (cos 0) -> cos 0 = 1

cos_in 0 (cos 0)

cos_in 0 1 -> cos_in 0 (cos 0) -> cos 0 = 1

cos_in 0 1

cos_in 0 (cos 0)
H:infinite_sum (fun i : nat => cos_n i * 0 ^ i) 1
H0:infinite_sum (fun i : nat => cos_n i * 0 ^ i) (cos 0)

infinite_sum ?An (cos 0)
H:infinite_sum (fun i : nat => cos_n i * 0 ^ i) 1
H0:infinite_sum (fun i : nat => cos_n i * 0 ^ i) (cos 0)
infinite_sum ?An 1

cos_in 0 1

cos_in 0 (cos 0)
H:infinite_sum (fun i : nat => cos_n i * 0 ^ i) 1
H0:infinite_sum (fun i : nat => cos_n i * 0 ^ i) (cos 0)

infinite_sum (fun i : nat => cos_n i * 0 ^ i) 1

cos_in 0 1

cos_in 0 (cos 0)

cos_in 0 1

cos_in 0 (cos 0)

cos_in 0 (cos 0)
assert (H := proj2_sig (exist_cos (Rsqr 0))); unfold cos; pattern 0 at 1; replace 0 with (Rsqr 0); [ exact H | apply Rsqr_0 ]. Qed.