Metamath Proof Explorer


Theorem wallispi2

Description: An alternative version of Wallis' formula for π ; this second formula uses factorials and it is later used to prove Stirling's approximation formula. (Contributed by Glauco Siliprandi, 29-Jun-2017)

Ref Expression
Hypothesis wallispi2.1 ⊢ 𝑉 = ( 𝑛 ∈ ℕ ↦ ( ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) / ( ( 2 · 𝑛 ) + 1 ) ) )
Assertion wallispi2 𝑉 ⇝ ( π / 2 )

Proof

Step Hyp Ref Expression
1 wallispi2.1 ⊢ 𝑉 = ( 𝑛 ∈ ℕ ↦ ( ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) / ( ( 2 · 𝑛 ) + 1 ) ) )
2 eqid ⊢ ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) − 1 ) ) · ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) + 1 ) ) ) ) = ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) − 1 ) ) · ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) + 1 ) ) ) )
3 1cnd ⊢ ( 𝑛 ∈ ℕ → 1 ∈ ℂ )
4 2cnd ⊢ ( 𝑛 ∈ ℕ → 2 ∈ ℂ )
5 nncn ⊢ ( 𝑛 ∈ ℕ → 𝑛 ∈ ℂ )
6 4 5 mulcld ⊢ ( 𝑛 ∈ ℕ → ( 2 · 𝑛 ) ∈ ℂ )
7 6 3 addcld ⊢ ( 𝑛 ∈ ℕ → ( ( 2 · 𝑛 ) + 1 ) ∈ ℂ )
8 elnnuz ⊢ ( 𝑛 ∈ ℕ ↔ 𝑛 ∈ ( ℤ≥ ‘ 1 ) )
9 8 biimpi ⊢ ( 𝑛 ∈ ℕ → 𝑛 ∈ ( ℤ≥ ‘ 1 ) )
10 eqidd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) = ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) )
11 simpr ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → 𝑘 = 𝑚 )
12 11 oveq2d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( 2 · 𝑘 ) = ( 2 · 𝑚 ) )
13 12 oveq1d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( ( 2 · 𝑘 ) ↑ 4 ) = ( ( 2 · 𝑚 ) ↑ 4 ) )
14 12 oveq1d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( ( 2 · 𝑘 ) − 1 ) = ( ( 2 · 𝑚 ) − 1 ) )
15 12 14 oveq12d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) = ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) )
16 15 oveq1d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) = ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) )
17 13 16 oveq12d ⊢ ( ( 𝑚 ∈ ( 1 ... 𝑛 ) ∧ 𝑘 = 𝑚 ) → ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) = ( ( ( 2 · 𝑚 ) ↑ 4 ) / ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) ) )
18 elfznn ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 𝑚 ∈ ℕ )
19 2cnd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 2 ∈ ℂ )
20 18 nncnd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 𝑚 ∈ ℂ )
21 19 20 mulcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 𝑚 ) ∈ ℂ )
22 4nn0 ⊢ 4 ∈ ℕ0
23 22 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 4 ∈ ℕ0 )
24 21 23 expcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 2 · 𝑚 ) ↑ 4 ) ∈ ℂ )
25 1cnd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 ∈ ℂ )
26 21 25 subcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 2 · 𝑚 ) − 1 ) ∈ ℂ )
27 21 26 mulcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ∈ ℂ )
28 27 sqcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) ∈ ℂ )
29 2ne0 ⊢ 2 ≠ 0
30 29 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 2 ≠ 0 )
31 18 nnne0d ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 𝑚 ≠ 0 )
32 19 20 30 31 mulne0d ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 𝑚 ) ≠ 0 )
33 1red ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 ∈ ℝ )
34 2re ⊢ 2 ∈ ℝ
35 34 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 2 ∈ ℝ )
36 35 33 remulcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 1 ) ∈ ℝ )
37 18 nnred ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 𝑚 ∈ ℝ )
38 35 37 remulcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 𝑚 ) ∈ ℝ )
39 1lt2 ⊢ 1 < 2
40 39 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 < 2 )
41 2t1e2 ⊢ ( 2 · 1 ) = 2
42 40 41 breqtrrdi ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 < ( 2 · 1 ) )
43 0le2 ⊢ 0 ≤ 2
44 43 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 0 ≤ 2 )
45 elfzle1 ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 ≤ 𝑚 )
46 33 37 35 44 45 lemul2ad ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 1 ) ≤ ( 2 · 𝑚 ) )
47 33 36 38 42 46 ltletrd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 1 < ( 2 · 𝑚 ) )
48 33 47 gtned ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( 2 · 𝑚 ) ≠ 1 )
49 21 25 48 subne0d ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 2 · 𝑚 ) − 1 ) ≠ 0 )
50 21 26 32 49 mulne0d ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ≠ 0 )
51 2z ⊢ 2 ∈ ℤ
52 51 a1i ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → 2 ∈ ℤ )
53 27 50 52 expne0d ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) ≠ 0 )
54 24 28 53 divcld ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( ( 2 · 𝑚 ) ↑ 4 ) / ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) ) ∈ ℂ )
55 10 17 18 54 fvmptd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ‘ 𝑚 ) = ( ( ( 2 · 𝑚 ) ↑ 4 ) / ( ( ( 2 · 𝑚 ) · ( ( 2 · 𝑚 ) − 1 ) ) ↑ 2 ) ) )
56 55 54 eqeltrd ⊢ ( 𝑚 ∈ ( 1 ... 𝑛 ) → ( ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ‘ 𝑚 ) ∈ ℂ )
57 56 adantl ⊢ ( ( 𝑛 ∈ ℕ ∧ 𝑚 ∈ ( 1 ... 𝑛 ) ) → ( ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ‘ 𝑚 ) ∈ ℂ )
58 mulcl ⊢ ( ( 𝑚 ∈ ℂ ∧ 𝑤 ∈ ℂ ) → ( 𝑚 · 𝑤 ) ∈ ℂ )
59 58 adantl ⊢ ( ( 𝑛 ∈ ℕ ∧ ( 𝑚 ∈ ℂ ∧ 𝑤 ∈ ℂ ) ) → ( 𝑚 · 𝑤 ) ∈ ℂ )
60 9 57 59 seqcl ⊢ ( 𝑛 ∈ ℕ → ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ∈ ℂ )
61 2nn ⊢ 2 ∈ ℕ
62 61 a1i ⊢ ( 𝑛 ∈ ℕ → 2 ∈ ℕ )
63 id ⊢ ( 𝑛 ∈ ℕ → 𝑛 ∈ ℕ )
64 62 63 nnmulcld ⊢ ( 𝑛 ∈ ℕ → ( 2 · 𝑛 ) ∈ ℕ )
65 64 peano2nnd ⊢ ( 𝑛 ∈ ℕ → ( ( 2 · 𝑛 ) + 1 ) ∈ ℕ )
66 65 nnne0d ⊢ ( 𝑛 ∈ ℕ → ( ( 2 · 𝑛 ) + 1 ) ≠ 0 )
67 3 7 60 66 div32d ⊢ ( 𝑛 ∈ ℕ → ( ( 1 / ( ( 2 · 𝑛 ) + 1 ) ) · ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ) = ( 1 · ( ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) / ( ( 2 · 𝑛 ) + 1 ) ) ) )
68 60 7 66 divcld ⊢ ( 𝑛 ∈ ℕ → ( ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) / ( ( 2 · 𝑛 ) + 1 ) ) ∈ ℂ )
69 68 mullidd ⊢ ( 𝑛 ∈ ℕ → ( 1 · ( ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) / ( ( 2 · 𝑛 ) + 1 ) ) ) = ( ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) / ( ( 2 · 𝑛 ) + 1 ) ) )
70 wallispi2lem2 ⊢ ( 𝑛 ∈ ℕ → ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) = ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) )
71 70 oveq1d ⊢ ( 𝑛 ∈ ℕ → ( ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) / ( ( 2 · 𝑛 ) + 1 ) ) = ( ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) / ( ( 2 · 𝑛 ) + 1 ) ) )
72 67 69 71 3eqtrd ⊢ ( 𝑛 ∈ ℕ → ( ( 1 / ( ( 2 · 𝑛 ) + 1 ) ) · ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ) = ( ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) / ( ( 2 · 𝑛 ) + 1 ) ) )
73 72 mpteq2ia ⊢ ( 𝑛 ∈ ℕ ↦ ( ( 1 / ( ( 2 · 𝑛 ) + 1 ) ) · ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ) ) = ( 𝑛 ∈ ℕ ↦ ( ( ( ( 2 ↑ ( 4 · 𝑛 ) ) · ( ( ! ‘ 𝑛 ) ↑ 4 ) ) / ( ( ! ‘ ( 2 · 𝑛 ) ) ↑ 2 ) ) / ( ( 2 · 𝑛 ) + 1 ) ) )
74 wallispi2lem1 ⊢ ( 𝑛 ∈ ℕ → ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) − 1 ) ) · ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) + 1 ) ) ) ) ) ‘ 𝑛 ) = ( ( 1 / ( ( 2 · 𝑛 ) + 1 ) ) · ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ) )
75 74 mpteq2ia ⊢ ( 𝑛 ∈ ℕ ↦ ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) − 1 ) ) · ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) + 1 ) ) ) ) ) ‘ 𝑛 ) ) = ( 𝑛 ∈ ℕ ↦ ( ( 1 / ( ( 2 · 𝑛 ) + 1 ) ) · ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) ↑ 4 ) / ( ( ( 2 · 𝑘 ) · ( ( 2 · 𝑘 ) − 1 ) ) ↑ 2 ) ) ) ) ‘ 𝑛 ) ) )
76 73 75 1 3eqtr4ri ⊢ 𝑉 = ( 𝑛 ∈ ℕ ↦ ( seq 1 ( · , ( 𝑘 ∈ ℕ ↦ ( ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) − 1 ) ) · ( ( 2 · 𝑘 ) / ( ( 2 · 𝑘 ) + 1 ) ) ) ) ) ‘ 𝑛 ) )
77 2 76 wallispi ⊢ 𝑉 ⇝ ( π / 2 )