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 Lra.
Require Import Rbase.
Require Import Rtrigo1.
Require Import Ranalysis_reg.
Require Import Rfunctions.
Require Import AltSeries.
Require Import Rseries.
Require Import SeqProp.
Require Import PartSum.
Require Import Ratan.
Require Import Omega.

Local Open Scope R_scope.

(* Proving a few formulas in the style of John Machin to compute Pi *)

Definition atan_sub u v := (u - v)/(1 + u * v).


forall u v : R, 1 + u * v <> 0 -> - PI / 2 < atan u - atan v < PI / 2 -> - PI / 2 < atan (atan_sub u v) < PI / 2 -> atan u = atan v + atan (atan_sub u v)

forall u v : R, 1 + u * v <> 0 -> - PI / 2 < atan u - atan v < PI / 2 -> - PI / 2 < atan (atan_sub u v) < PI / 2 -> atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2

atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2

cos (atan u) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:- PI / 2 < atan u
H0:atan u < PI / 2

- (PI / 2) < atan u
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0

atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0

cos (atan v) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:- PI / 2 < atan v
H1:atan v < PI / 2

- (PI / 2) < atan v
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0

atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
t:forall a b c : R, a - b = c -> a = b + c

atan u = atan v + atan (atan_sub u v)
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0

tan (atan u - atan v) = tan (atan (atan_sub u v))
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0

(tan (atan u) - tan (atan v)) / (1 + tan (atan u) * tan (atan v)) = tan (atan (atan_sub u v))
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
cos (atan u - atan v) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
1 + tan (atan u) * tan (atan v) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0

cos (atan u - atan v) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0
1 + tan (atan u) * tan (atan v) <> 0
u, v:R
pn0:1 + u * v <> 0
uvint:- PI / 2 < atan u - atan v < PI / 2
aint:- PI / 2 < atan (atan_sub u v) < PI / 2
H:cos (atan u) <> 0
H0:cos (atan v) <> 0

1 + tan (atan u) * tan (atan v) <> 0
rewrite !atan_right_inv; assumption. Qed.

forall x y : R, -1 <= x <= 1 -> -1 < y < 1 -> - PI / 2 < atan x - atan y < PI / 2

forall x y : R, -1 <= x <= 1 -> -1 < y < 1 -> - PI / 2 < atan x - atan y < PI / 2
ut:PI > 0

forall x y : R, -1 <= x <= 1 -> -1 < y < 1 -> - PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1

- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1

- (PI / 4) <= atan x
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 < x
x1:x <= 1
ym1:-1 < y
y1:y < 1

- (PI / 4) <= atan x
ut:PI > 0
x, y:R
xm1:-1 = x
x1:x <= 1
ym1:-1 < y
y1:y < 1
- (PI / 4) <= atan x
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 < x
x1:x <= 1
ym1:-1 < y
y1:y < 1

- (1) < x
ut:PI > 0
x, y:R
xm1:-1 = x
x1:x <= 1
ym1:-1 < y
y1:y < 1
- (PI / 4) <= atan x
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 = x
x1:x <= 1
ym1:-1 < y
y1:y < 1

- (PI / 4) <= atan x
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x

- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x

- (PI / 4) < atan y
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x

- (1) < y
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y

- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y

atan x <= PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x < 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y

atan x <= PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x = 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
atan x <= PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x < 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y

x < 1
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x = 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
atan x <= PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x = 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y

atan x <= PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4

- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4

atan y < PI / 4
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
H2:atan y < PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4

y < 1
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
H2:atan y < PI / 4
- PI / 2 < atan x - atan y < PI / 2
ut:PI > 0
x, y:R
xm1:-1 <= x
x1:x <= 1
ym1:-1 < y
y1:y < 1
H:- (PI / 4) <= atan x
H0:- (PI / 4) < atan y
H1:atan x <= PI / 4
H2:atan y < PI / 4

- PI / 2 < atan x - atan y < PI / 2
rewrite Ropp_div; split; lra. Qed. (* A simple formula, reasonably efficient. *)

PI / 4 = atan (/ 2) + atan (/ 3)

PI / 4 = atan (/ 2) + atan (/ 3)
utility:0 < PI / 2

PI / 4 = atan (/ 2) + atan (/ 3)
utility:0 < PI / 2

atan 1 = atan (/ 2) + atan (/ 3)
utility:0 < PI / 2

atan (/ 2) + atan (atan_sub 1 (/ 2)) = atan (/ 2) + atan (/ 3)
utility:0 < PI / 2
1 + 1 * / 2 <> 0
utility:0 < PI / 2
- PI / 2 < atan 1 - atan (/ 2) < PI / 2
utility:0 < PI / 2
- PI / 2 < atan (atan_sub 1 (/ 2)) < PI / 2
utility:0 < PI / 2

1 + 1 * / 2 <> 0
utility:0 < PI / 2
- PI / 2 < atan 1 - atan (/ 2) < PI / 2
utility:0 < PI / 2
- PI / 2 < atan (atan_sub 1 (/ 2)) < PI / 2
utility:0 < PI / 2

- PI / 2 < atan 1 - atan (/ 2) < PI / 2
utility:0 < PI / 2
- PI / 2 < atan (atan_sub 1 (/ 2)) < PI / 2
utility:0 < PI / 2

- PI / 2 < atan (atan_sub 1 (/ 2)) < PI / 2
apply atan_bound. Qed.

PI / 4 = 4 * atan (/ 5) - atan (/ 239)

PI / 4 = 4 * atan (/ 5) - atan (/ 239)

atan 1 = 4 * atan (/ 5) - atan (/ 239)

atan (/ 5) + atan (atan_sub 1 (/ 5)) = 4 * atan (/ 5) - atan (/ 239)

atan (/ 5) + atan (atan_sub 1 (/ 5)) = atan (/ 5) + (atan (/ 5) + (atan (/ 5) + (atan (/ 5) + - atan (/ 239))))

atan (atan_sub 1 (/ 5)) = atan (/ 5) + (atan (/ 5) + (atan (/ 5) + - atan (/ 239)))

atan (2 / 3) = atan (/ 5) + (atan (/ 5) + (atan (/ 5) + - atan (/ 239)))

atan (atan_sub (2 / 3) (/ 5)) = atan (/ 5) + (atan (/ 5) + - atan (/ 239))

atan (7 / 17) = atan (/ 5) + (atan (/ 5) + - atan (/ 239))

atan (atan_sub (7 / 17) (/ 5)) = atan (/ 5) + - atan (/ 239)

atan (9 / 46) = atan (/ 5) + - atan (/ 239)

atan (atan_sub (9 / 46) (/ 5)) = - atan (/ 239)

atan_sub (9 / 46) (/ 5) = - / 239
unfold atan_sub; field. Qed.

PI / 4 = 2 * atan (/ 3) + atan (/ 7)

PI / 4 = 2 * atan (/ 3) + atan (/ 7)

atan 1 = 2 * atan (/ 3) + atan (/ 7)

atan (/ 3) + atan (atan_sub 1 (/ 3)) = 2 * atan (/ 3) + atan (/ 7)

atan (/ 3) + atan (atan_sub 1 (/ 3)) = atan (/ 3) + (atan (/ 3) + atan (/ 7))

atan (atan_sub 1 (/ 3)) = atan (/ 3) + atan (/ 7)

atan (/ 2) = atan (/ 3) + atan (/ 7)

atan (atan_sub (/ 2) (/ 3)) = atan (/ 7)
apply f_equal; unfold atan_sub; field. Qed. (* More efficient way to compute approximations of PI. *) Definition PI_2_3_7_tg n := 2 * Ratan_seq (/3) n + Ratan_seq (/7) n.

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1

Un_decreasing PI_2_3_7_tg
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_decreasing (Ratan_seq (/ 3))
dec7:0 <= / 7 <= 1

Un_decreasing PI_2_3_7_tg
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_decreasing (Ratan_seq (/ 3))
dec7:Un_decreasing (Ratan_seq (/ 7))

Un_decreasing PI_2_3_7_tg
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_decreasing (Ratan_seq (/ 3))
dec7:Un_decreasing (Ratan_seq (/ 7))
n:nat

2 * Ratan_seq (/ 3) (S n) <= 2 * Ratan_seq (/ 3) n
dec3:Un_decreasing (Ratan_seq (/ 3))
dec7:Un_decreasing (Ratan_seq (/ 7))
n:nat
Ratan_seq (/ 7) (S n) <= Ratan_seq (/ 7) n
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_decreasing (Ratan_seq (/ 3))
dec7:Un_decreasing (Ratan_seq (/ 7))
n:nat

Ratan_seq (/ 7) (S n) <= Ratan_seq (/ 7) n
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg

Un_cv PI_2_3_7_tg 0
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg

Un_cv PI_2_3_7_tg 0
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg

Un_cv PI_2_3_7_tg 0
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (PI_2_3_7_tg n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (PI_2_3_7_tg n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n : nat, (n >= N1)%nat -> R_dist (Ratan_seq (/ 3) n) 0 < eps / 3
N2:nat
Pn2:forall n : nat, (n >= N2)%nat -> R_dist (Ratan_seq (/ 7) n) 0 < eps / 3

exists N : nat, forall n : nat, (n >= N)%nat -> R_dist (PI_2_3_7_tg n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (PI_2_3_7_tg n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (2 * Ratan_seq (/ 3) n + Ratan_seq (/ 7) n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (2 * Ratan_seq (/ 3) n + Ratan_seq (/ 7) n) (0 + 0) < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (2 * Ratan_seq (/ 3) n) 0 + R_dist (Ratan_seq (/ 7) n) 0 < eps
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (2 * Ratan_seq (/ 3) n) 0 + R_dist (Ratan_seq (/ 7) n) 0 < 2 * eps / 3 + eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (2 * Ratan_seq (/ 3) n) 0 < 2 * eps / 3
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat
R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

Rabs (2 * Ratan_seq (/ 3) n + - 0) < 2 * eps * / 3
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat
R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

Rabs (2 * Ratan_seq (/ 3) n + 2 * - 0) < 2 * eps * / 3
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat
R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

2 * Rabs (Ratan_seq (/ 3) n + - 0) < 2 * eps * / 3
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat
R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

Rabs (Ratan_seq (/ 3) n + - 0) < eps * / 3
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat
R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:Un_cv (Ratan_seq (/ 3)) 0
dec7:Un_cv (Ratan_seq (/ 7)) 0
decr:Un_decreasing PI_2_3_7_tg
eps:R
ep:eps > 0
ep':0 < eps / 3
N1:nat
Pn1:forall n0 : nat, (n0 >= N1)%nat -> R_dist (Ratan_seq (/ 3) n0) 0 < eps / 3
N2:nat
Pn2:forall n0 : nat, (n0 >= N2)%nat -> R_dist (Ratan_seq (/ 7) n0) 0 < eps / 3
n:nat
Nn:(n >= N1 + N2)%nat

R_dist (Ratan_seq (/ 7) n) 0 < eps / 3
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= PI / 4 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * atan (/ 3) + atan (/ 7) <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * ps_atan (/ 3) + ps_atan (/ 7) <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * (let (v, _) := ps_atan_exists_1 (/ 3) a in v) + (let (v, _) := ps_atan_exists_1 (/ 7) a0 in v) <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + (let (v, _) := ps_atan_exists_1 (/ 7) a0 in v) <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7

Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7

Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)
Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7

Un_cv (fun i : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) i) (2 * v3)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)
Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7

Un_cv (fun _ : nat => 2) 2
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)
Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)

Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n) (2 * v3 + v7)

forall n : nat, 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n = sum_f_R0 (tg_alt PI_2_3_7_tg) n
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (fun n0 : nat => 2 * sum_f_R0 (tg_alt (Ratan_seq (/ 3))) n0 + sum_f_R0 (tg_alt (Ratan_seq (/ 7))) n0) (2 * v3 + v7)
n, i:nat
H:(i <= n)%nat

tg_alt (Ratan_seq (/ 3)) i * 2 + tg_alt (Ratan_seq (/ 7)) i = tg_alt PI_2_3_7_tg i
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)
forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
dec3:0 <= / 3 <= 1
dec7:0 <= / 7 <= 1
decr:Un_decreasing PI_2_3_7_tg
cv:Un_cv PI_2_3_7_tg 0
a:-1 <= / 3 <= 1
a0:-1 <= / 7 <= 1
v3:R
Pv3:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 3))) N) v3
v7:R
Pv7:Un_cv (fun N : nat => sum_f_R0 (tg_alt (Ratan_seq (/ 7))) N) v7
main:Un_cv (sum_f_R0 (tg_alt PI_2_3_7_tg)) (2 * v3 + v7)

forall N : nat, sum_f_R0 (tg_alt PI_2_3_7_tg) (S (2 * N)) <= 2 * v3 + v7 <= sum_f_R0 (tg_alt PI_2_3_7_tg) (2 * N)
intros N; apply (alternated_series_ineq _ _ _ decr cv main). Qed.