MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  climcnds Structured version   Visualization version   GIF version

Theorem climcnds 15899
Description: The Cauchy condensation test. If 𝑎(𝑘) is a decreasing sequence of nonnegative terms, then Σ𝑘 ∈ ℕ𝑎(𝑘) converges iff Σ𝑛 ∈ ℕ02↑𝑛 · 𝑎(2↑𝑛) converges. (Contributed by Mario Carneiro, 18-Jul-2014.) (Proof shortened by AV, 10-Jul-2022.)
Hypotheses
Ref Expression
climcnds.1 ((𝜑𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
climcnds.2 ((𝜑𝑘 ∈ ℕ) → 0 ≤ (𝐹𝑘))
climcnds.3 ((𝜑𝑘 ∈ ℕ) → (𝐹‘(𝑘 + 1)) ≤ (𝐹𝑘))
climcnds.4 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) = ((2↑𝑛) · (𝐹‘(2↑𝑛))))
Assertion
Ref Expression
climcnds (𝜑 → (seq1( + , 𝐹) ∈ dom ⇝ ↔ seq0( + , 𝐺) ∈ dom ⇝ ))
Distinct variable groups:   𝑘,𝑛,𝐹   𝑘,𝐺,𝑛   𝜑,𝑘,𝑛

Proof of Theorem climcnds
Dummy variables 𝑗 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 nnuz 12946 . . . . 5 ℕ = (ℤ‘1)
2 1zzd 12674 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → 1 ∈ ℤ)
3 1zzd 12674 . . . . . . 7 (𝜑 → 1 ∈ ℤ)
4 nnnn0 12560 . . . . . . . 8 (𝑛 ∈ ℕ → 𝑛 ∈ ℕ0)
5 climcnds.4 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) = ((2↑𝑛) · (𝐹‘(2↑𝑛))))
6 2nn 12366 . . . . . . . . . . . 12 2 ∈ ℕ
7 simpr 484 . . . . . . . . . . . 12 ((𝜑𝑛 ∈ ℕ0) → 𝑛 ∈ ℕ0)
8 nnexpcl 14125 . . . . . . . . . . . 12 ((2 ∈ ℕ ∧ 𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ)
96, 7, 8sylancr 586 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ)
109nnred 12308 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℝ)
11 fveq2 6920 . . . . . . . . . . . 12 (𝑘 = (2↑𝑛) → (𝐹𝑘) = (𝐹‘(2↑𝑛)))
1211eleq1d 2829 . . . . . . . . . . 11 (𝑘 = (2↑𝑛) → ((𝐹𝑘) ∈ ℝ ↔ (𝐹‘(2↑𝑛)) ∈ ℝ))
13 climcnds.1 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
1413ralrimiva 3152 . . . . . . . . . . . 12 (𝜑 → ∀𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
1514adantr 480 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → ∀𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
1612, 15, 9rspcdva 3636 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → (𝐹‘(2↑𝑛)) ∈ ℝ)
1710, 16remulcld 11320 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → ((2↑𝑛) · (𝐹‘(2↑𝑛))) ∈ ℝ)
185, 17eqeltrd 2844 . . . . . . . 8 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
194, 18sylan2 592 . . . . . . 7 ((𝜑𝑛 ∈ ℕ) → (𝐺𝑛) ∈ ℝ)
201, 3, 19serfre 14082 . . . . . 6 (𝜑 → seq1( + , 𝐺):ℕ⟶ℝ)
2120adantr 480 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺):ℕ⟶ℝ)
22 simpr 484 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ ℕ)
2322, 1eleqtrdi 2854 . . . . . . 7 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘1))
24 nnz 12660 . . . . . . . . 9 (𝑗 ∈ ℕ → 𝑗 ∈ ℤ)
2524adantl 481 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ ℤ)
26 uzid 12918 . . . . . . . 8 (𝑗 ∈ ℤ → 𝑗 ∈ (ℤ𝑗))
27 peano2uz 12966 . . . . . . . 8 (𝑗 ∈ (ℤ𝑗) → (𝑗 + 1) ∈ (ℤ𝑗))
2825, 26, 273syl 18 . . . . . . 7 ((𝜑𝑗 ∈ ℕ) → (𝑗 + 1) ∈ (ℤ𝑗))
29 simpl 482 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝜑)
30 elfznn 13613 . . . . . . . 8 (𝑛 ∈ (1...(𝑗 + 1)) → 𝑛 ∈ ℕ)
3129, 30, 19syl2an 595 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ (1...(𝑗 + 1))) → (𝐺𝑛) ∈ ℝ)
32 simpll 766 . . . . . . . 8 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝜑)
33 elfz1eq 13595 . . . . . . . . . 10 (𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1)) → 𝑛 = (𝑗 + 1))
3433adantl 481 . . . . . . . . 9 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝑛 = (𝑗 + 1))
35 nnnn0 12560 . . . . . . . . . . 11 (𝑗 ∈ ℕ → 𝑗 ∈ ℕ0)
36 peano2nn0 12593 . . . . . . . . . . 11 (𝑗 ∈ ℕ0 → (𝑗 + 1) ∈ ℕ0)
3735, 36syl 17 . . . . . . . . . 10 (𝑗 ∈ ℕ → (𝑗 + 1) ∈ ℕ0)
3837ad2antlr 726 . . . . . . . . 9 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → (𝑗 + 1) ∈ ℕ0)
3934, 38eqeltrd 2844 . . . . . . . 8 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝑛 ∈ ℕ0)
409nnnn0d 12613 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ0)
4140nn0ge0d 12616 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (2↑𝑛))
4211breq2d 5178 . . . . . . . . . . 11 (𝑘 = (2↑𝑛) → (0 ≤ (𝐹𝑘) ↔ 0 ≤ (𝐹‘(2↑𝑛))))
43 climcnds.2 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ ℕ) → 0 ≤ (𝐹𝑘))
4443ralrimiva 3152 . . . . . . . . . . . 12 (𝜑 → ∀𝑘 ∈ ℕ 0 ≤ (𝐹𝑘))
4544adantr 480 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → ∀𝑘 ∈ ℕ 0 ≤ (𝐹𝑘))
4642, 45, 9rspcdva 3636 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (𝐹‘(2↑𝑛)))
4710, 16, 41, 46mulge0d 11867 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ ((2↑𝑛) · (𝐹‘(2↑𝑛))))
4847, 5breqtrrd 5194 . . . . . . . 8 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (𝐺𝑛))
4932, 39, 48syl2anc 583 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 0 ≤ (𝐺𝑛))
5023, 28, 31, 49sermono 14085 . . . . . 6 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (seq1( + , 𝐺)‘(𝑗 + 1)))
5150adantlr 714 . . . . 5 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (seq1( + , 𝐺)‘(𝑗 + 1)))
52 2re 12367 . . . . . . 7 2 ∈ ℝ
53 eqidd 2741 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) = (𝐹𝑘))
5413adantlr 714 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
55 simpr 484 . . . . . . . 8 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐹) ∈ dom ⇝ )
561, 2, 53, 54, 55isumrecl 15813 . . . . . . 7 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
57 remulcl 11269 . . . . . . 7 ((2 ∈ ℝ ∧ Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ) → (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ)
5852, 56, 57sylancr 586 . . . . . 6 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ)
5921ffvelcdmda 7118 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ∈ ℝ)
601, 3, 13serfre 14082 . . . . . . . . . . 11 (𝜑 → seq1( + , 𝐹):ℕ⟶ℝ)
6160ad2antrr 725 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq1( + , 𝐹):ℕ⟶ℝ)
6235adantl 481 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℕ0)
63 nnexpcl 14125 . . . . . . . . . . 11 ((2 ∈ ℕ ∧ 𝑗 ∈ ℕ0) → (2↑𝑗) ∈ ℕ)
646, 62, 63sylancr 586 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑𝑗) ∈ ℕ)
6561, 64ffvelcdmd 7119 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘(2↑𝑗)) ∈ ℝ)
66 remulcl 11269 . . . . . . . . 9 ((2 ∈ ℝ ∧ (seq1( + , 𝐹)‘(2↑𝑗)) ∈ ℝ) → (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ∈ ℝ)
6752, 65, 66sylancr 586 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ∈ ℝ)
6858adantr 480 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ)
69 climcnds.3 . . . . . . . . . 10 ((𝜑𝑘 ∈ ℕ) → (𝐹‘(𝑘 + 1)) ≤ (𝐹𝑘))
7013, 43, 69, 5climcndslem2 15898 . . . . . . . . 9 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · (seq1( + , 𝐹)‘(2↑𝑗))))
7170adantlr 714 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · (seq1( + , 𝐹)‘(2↑𝑗))))
72 eqidd 2741 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(2↑𝑗))) → (𝐹𝑘) = (𝐹𝑘))
7364, 1eleqtrdi 2854 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑𝑗) ∈ (ℤ‘1))
74 simpll 766 . . . . . . . . . . . 12 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝜑)
75 elfznn 13613 . . . . . . . . . . . 12 (𝑘 ∈ (1...(2↑𝑗)) → 𝑘 ∈ ℕ)
7613recnd 11318 . . . . . . . . . . . 12 ((𝜑𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℂ)
7774, 75, 76syl2an 595 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(2↑𝑗))) → (𝐹𝑘) ∈ ℂ)
7872, 73, 77fsumser 15778 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ (1...(2↑𝑗))(𝐹𝑘) = (seq1( + , 𝐹)‘(2↑𝑗)))
79 1zzd 12674 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 1 ∈ ℤ)
80 fzfid 14024 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (1...(2↑𝑗)) ∈ Fin)
8175ssriv 4012 . . . . . . . . . . . 12 (1...(2↑𝑗)) ⊆ ℕ
8281a1i 11 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (1...(2↑𝑗)) ⊆ ℕ)
83 eqidd 2741 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) = (𝐹𝑘))
8413ad4ant14 751 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
8543ad4ant14 751 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → 0 ≤ (𝐹𝑘))
86 simplr 768 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq1( + , 𝐹) ∈ dom ⇝ )
871, 79, 80, 82, 83, 84, 85, 86isumless 15893 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ (1...(2↑𝑗))(𝐹𝑘) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘))
8878, 87eqbrtrrd 5190 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘(2↑𝑗)) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘))
8956adantr 480 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
90 2rp 13062 . . . . . . . . . . 11 2 ∈ ℝ+
9190a1i 11 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 2 ∈ ℝ+)
9265, 89, 91lemul2d 13143 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((seq1( + , 𝐹)‘(2↑𝑗)) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘) ↔ (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘))))
9388, 92mpbid 232 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
9459, 67, 68, 71, 93letrd 11447 . . . . . . 7 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
9594ralrimiva 3152 . . . . . 6 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
96 brralrspcev 5226 . . . . . 6 (((2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ ∧ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘))) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ 𝑥)
9758, 95, 96syl2anc 583 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ 𝑥)
981, 2, 21, 51, 97climsup 15718 . . . 4 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺) ⇝ sup(ran seq1( + , 𝐺), ℝ, < ))
99 climrel 15538 . . . . 5 Rel ⇝
10099releldmi 5973 . . . 4 (seq1( + , 𝐺) ⇝ sup(ran seq1( + , 𝐺), ℝ, < ) → seq1( + , 𝐺) ∈ dom ⇝ )
10198, 100syl 17 . . 3 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺) ∈ dom ⇝ )
102 nn0uz 12945 . . . . 5 0 = (ℤ‘0)
103 1nn0 12569 . . . . . 6 1 ∈ ℕ0
104103a1i 11 . . . . 5 (𝜑 → 1 ∈ ℕ0)
10518recnd 11318 . . . . 5 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℂ)
106102, 104, 105iserex 15705 . . . 4 (𝜑 → (seq0( + , 𝐺) ∈ dom ⇝ ↔ seq1( + , 𝐺) ∈ dom ⇝ ))
107106biimpar 477 . . 3 ((𝜑 ∧ seq1( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
108101, 107syldan 590 . 2 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
109 1zzd 12674 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → 1 ∈ ℤ)
11060adantr 480 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹):ℕ⟶ℝ)
111 elfznn 13613 . . . . . . 7 (𝑘 ∈ (1...(𝑗 + 1)) → 𝑘 ∈ ℕ)
11229, 111, 13syl2an 595 . . . . . 6 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(𝑗 + 1))) → (𝐹𝑘) ∈ ℝ)
113 simpll 766 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝜑)
114 peano2nn 12305 . . . . . . . . 9 (𝑗 ∈ ℕ → (𝑗 + 1) ∈ ℕ)
115114adantl 481 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℕ)
116 elfz1eq 13595 . . . . . . . 8 (𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1)) → 𝑘 = (𝑗 + 1))
117 eleq1 2832 . . . . . . . . 9 (𝑘 = (𝑗 + 1) → (𝑘 ∈ ℕ ↔ (𝑗 + 1) ∈ ℕ))
118117biimparc 479 . . . . . . . 8 (((𝑗 + 1) ∈ ℕ ∧ 𝑘 = (𝑗 + 1)) → 𝑘 ∈ ℕ)
119115, 116, 118syl2an 595 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝑘 ∈ ℕ)
120113, 119, 43syl2anc 583 . . . . . 6 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 0 ≤ (𝐹𝑘))
12123, 28, 112, 120sermono 14085 . . . . 5 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘(𝑗 + 1)))
122121adantlr 714 . . . 4 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘(𝑗 + 1)))
123 0zd 12651 . . . . . 6 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → 0 ∈ ℤ)
124 eqidd 2741 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) = (𝐺𝑛))
12518adantlr 714 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
126 simpr 484 . . . . . 6 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
127102, 123, 124, 125, 126isumrecl 15813 . . . . 5 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → Σ𝑛 ∈ ℕ0 (𝐺𝑛) ∈ ℝ)
128110ffvelcdmda 7118 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ∈ ℝ)
129 0zd 12651 . . . . . . . . . 10 (𝜑 → 0 ∈ ℤ)
130102, 129, 18serfre 14082 . . . . . . . . 9 (𝜑 → seq0( + , 𝐺):ℕ0⟶ℝ)
131130adantr 480 . . . . . . . 8 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺):ℕ0⟶ℝ)
132 ffvelcdm 7115 . . . . . . . 8 ((seq0( + , 𝐺):ℕ0⟶ℝ ∧ 𝑗 ∈ ℕ0) → (seq0( + , 𝐺)‘𝑗) ∈ ℝ)
133131, 35, 132syl2an 595 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq0( + , 𝐺)‘𝑗) ∈ ℝ)
134127adantr 480 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑛 ∈ ℕ0 (𝐺𝑛) ∈ ℝ)
135110adantr 480 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq1( + , 𝐹):ℕ⟶ℝ)
136 simpr 484 . . . . . . . . . 10 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℕ)
13724adantl 481 . . . . . . . . . . 11 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℤ)
13837adantl 481 . . . . . . . . . . . . . 14 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℕ0)
139138nn0red 12614 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℝ)
140 nnexpcl 14125 . . . . . . . . . . . . . . 15 ((2 ∈ ℕ ∧ (𝑗 + 1) ∈ ℕ0) → (2↑(𝑗 + 1)) ∈ ℕ)
1416, 138, 140sylancr 586 . . . . . . . . . . . . . 14 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℕ)
142141nnred 12308 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℝ)
143 2z 12675 . . . . . . . . . . . . . . 15 2 ∈ ℤ
144 uzid 12918 . . . . . . . . . . . . . . 15 (2 ∈ ℤ → 2 ∈ (ℤ‘2))
145143, 144ax-mp 5 . . . . . . . . . . . . . 14 2 ∈ (ℤ‘2)
146 bernneq3 14280 . . . . . . . . . . . . . 14 ((2 ∈ (ℤ‘2) ∧ (𝑗 + 1) ∈ ℕ0) → (𝑗 + 1) < (2↑(𝑗 + 1)))
147145, 138, 146sylancr 586 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) < (2↑(𝑗 + 1)))
148139, 142, 147ltled 11438 . . . . . . . . . . . 12 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ≤ (2↑(𝑗 + 1)))
149137peano2zd 12750 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℤ)
150141nnzd 12666 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℤ)
151 eluz 12917 . . . . . . . . . . . . 13 (((𝑗 + 1) ∈ ℤ ∧ (2↑(𝑗 + 1)) ∈ ℤ) → ((2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1)) ↔ (𝑗 + 1) ≤ (2↑(𝑗 + 1))))
152149, 150, 151syl2anc 583 . . . . . . . . . . . 12 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1)) ↔ (𝑗 + 1) ≤ (2↑(𝑗 + 1))))
153148, 152mpbird 257 . . . . . . . . . . 11 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1)))
154 eluzp1m1 12929 . . . . . . . . . . 11 ((𝑗 ∈ ℤ ∧ (2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1))) → ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗))
155137, 153, 154syl2anc 583 . . . . . . . . . 10 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗))
156 eluznn 12983 . . . . . . . . . 10 ((𝑗 ∈ ℕ ∧ ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗)) → ((2↑(𝑗 + 1)) − 1) ∈ ℕ)
157136, 155, 156syl2anc 583 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((2↑(𝑗 + 1)) − 1) ∈ ℕ)
158135, 157ffvelcdmd 7119 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ∈ ℝ)
15923adantlr 714 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘1))
160 simpll 766 . . . . . . . . . 10 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝜑)
161 elfznn 13613 . . . . . . . . . 10 (𝑘 ∈ (1...((2↑(𝑗 + 1)) − 1)) → 𝑘 ∈ ℕ)
162160, 161, 13syl2an 595 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...((2↑(𝑗 + 1)) − 1))) → (𝐹𝑘) ∈ ℝ)
163114adantl 481 . . . . . . . . . . 11 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℕ)
164 elfzuz 13580 . . . . . . . . . . 11 (𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1)) → 𝑘 ∈ (ℤ‘(𝑗 + 1)))
165 eluznn 12983 . . . . . . . . . . 11 (((𝑗 + 1) ∈ ℕ ∧ 𝑘 ∈ (ℤ‘(𝑗 + 1))) → 𝑘 ∈ ℕ)
166163, 164, 165syl2an 595 . . . . . . . . . 10 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1))) → 𝑘 ∈ ℕ)
167160, 166, 43syl2an2r 684 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1))) → 0 ≤ (𝐹𝑘))
168159, 155, 162, 167sermono 14085 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)))
16935adantl 481 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℕ0)
17013, 43, 69, 5climcndslem1 15897 . . . . . . . . 9 ((𝜑𝑗 ∈ ℕ0) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ≤ (seq0( + , 𝐺)‘𝑗))
171160, 169, 170syl2anc 583 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ≤ (seq0( + , 𝐺)‘𝑗))
172128, 158, 133, 168, 171letrd 11447 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq0( + , 𝐺)‘𝑗))
173 eqidd 2741 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ (0...𝑗)) → (𝐺𝑛) = (𝐺𝑛))
174169, 102eleqtrdi 2854 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘0))
175 elfznn0 13677 . . . . . . . . . 10 (𝑛 ∈ (0...𝑗) → 𝑛 ∈ ℕ0)
176160, 175, 105syl2an 595 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ (0...𝑗)) → (𝐺𝑛) ∈ ℂ)
177173, 174, 176fsumser 15778 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑛 ∈ (0...𝑗)(𝐺𝑛) = (seq0( + , 𝐺)‘𝑗))
178 0zd 12651 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 0 ∈ ℤ)
179 fzfid 14024 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (0...𝑗) ∈ Fin)
180175ssriv 4012 . . . . . . . . . 10 (0...𝑗) ⊆ ℕ0
181180a1i 11 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (0...𝑗) ⊆ ℕ0)
182 eqidd 2741 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) = (𝐺𝑛))
18318ad4ant14 751 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
18448ad4ant14 751 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → 0 ≤ (𝐺𝑛))
185 simplr 768 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq0( + , 𝐺) ∈ dom ⇝ )
186102, 178, 179, 181, 182, 183, 184, 185isumless 15893 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑛 ∈ (0...𝑗)(𝐺𝑛) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
187177, 186eqbrtrrd 5190 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq0( + , 𝐺)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
188128, 133, 134, 172, 187letrd 11447 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
189188ralrimiva 3152 . . . . 5 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
190 brralrspcev 5226 . . . . 5 ((Σ𝑛 ∈ ℕ0 (𝐺𝑛) ∈ ℝ ∧ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛)) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ 𝑥)
191127, 189, 190syl2anc 583 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ 𝑥)
1921, 109, 110, 122, 191climsup 15718 . . 3 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹) ⇝ sup(ran seq1( + , 𝐹), ℝ, < ))
19399releldmi 5973 . . 3 (seq1( + , 𝐹) ⇝ sup(ran seq1( + , 𝐹), ℝ, < ) → seq1( + , 𝐹) ∈ dom ⇝ )
194192, 193syl 17 . 2 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹) ∈ dom ⇝ )
195108, 194impbida 800 1 (𝜑 → (seq1( + , 𝐹) ∈ dom ⇝ ↔ seq0( + , 𝐺) ∈ dom ⇝ ))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 206  wa 395   = wceq 1537  wcel 2108  wral 3067  wrex 3076  wss 3976   class class class wbr 5166  dom cdm 5700  ran crn 5701  wf 6569  cfv 6573  (class class class)co 7448  supcsup 9509  cc 11182  cr 11183  0cc0 11184  1c1 11185   + caddc 11187   · cmul 11189   < clt 11324  cle 11325  cmin 11520  cn 12293  2c2 12348  0cn0 12553  cz 12639  cuz 12903  +crp 13057  ...cfz 13567  seqcseq 14052  cexp 14112  cli 15530  Σcsu 15734
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1793  ax-4 1807  ax-5 1909  ax-6 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2158  ax-12 2178  ax-ext 2711  ax-rep 5303  ax-sep 5317  ax-nul 5324  ax-pow 5383  ax-pr 5447  ax-un 7770  ax-inf2 9710  ax-cnex 11240  ax-resscn 11241  ax-1cn 11242  ax-icn 11243  ax-addcl 11244  ax-addrcl 11245  ax-mulcl 11246  ax-mulrcl 11247  ax-mulcom 11248  ax-addass 11249  ax-mulass 11250  ax-distr 11251  ax-i2m1 11252  ax-1ne0 11253  ax-1rid 11254  ax-rnegex 11255  ax-rrecex 11256  ax-cnre 11257  ax-pre-lttri 11258  ax-pre-lttrn 11259  ax-pre-ltadd 11260  ax-pre-mulgt0 11261  ax-pre-sup 11262
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 847  df-3or 1088  df-3an 1089  df-tru 1540  df-fal 1550  df-ex 1778  df-nf 1782  df-sb 2065  df-mo 2543  df-eu 2572  df-clab 2718  df-cleq 2732  df-clel 2819  df-nfc 2895  df-ne 2947  df-nel 3053  df-ral 3068  df-rex 3077  df-rmo 3388  df-reu 3389  df-rab 3444  df-v 3490  df-sbc 3805  df-csb 3922  df-dif 3979  df-un 3981  df-in 3983  df-ss 3993  df-pss 3996  df-nul 4353  df-if 4549  df-pw 4624  df-sn 4649  df-pr 4651  df-op 4655  df-uni 4932  df-int 4971  df-iun 5017  df-br 5167  df-opab 5229  df-mpt 5250  df-tr 5284  df-id 5593  df-eprel 5599  df-po 5607  df-so 5608  df-fr 5652  df-se 5653  df-we 5654  df-xp 5706  df-rel 5707  df-cnv 5708  df-co 5709  df-dm 5710  df-rn 5711  df-res 5712  df-ima 5713  df-pred 6332  df-ord 6398  df-on 6399  df-lim 6400  df-suc 6401  df-iota 6525  df-fun 6575  df-fn 6576  df-f 6577  df-f1 6578  df-fo 6579  df-f1o 6580  df-fv 6581  df-isom 6582  df-riota 7404  df-ov 7451  df-oprab 7452  df-mpo 7453  df-om 7904  df-1st 8030  df-2nd 8031  df-frecs 8322  df-wrecs 8353  df-recs 8427  df-rdg 8466  df-1o 8522  df-oadd 8526  df-er 8763  df-pm 8887  df-en 9004  df-dom 9005  df-sdom 9006  df-fin 9007  df-sup 9511  df-inf 9512  df-oi 9579  df-dju 9970  df-card 10008  df-pnf 11326  df-mnf 11327  df-xr 11328  df-ltxr 11329  df-le 11330  df-sub 11522  df-neg 11523  df-div 11948  df-nn 12294  df-2 12356  df-3 12357  df-n0 12554  df-z 12640  df-uz 12904  df-rp 13058  df-ico 13413  df-fz 13568  df-fzo 13712  df-fl 13843  df-seq 14053  df-exp 14113  df-hash 14380  df-cj 15148  df-re 15149  df-im 15150  df-sqrt 15284  df-abs 15285  df-clim 15534  df-rlim 15535  df-sum 15735
This theorem is referenced by:  harmonic  15907  zetacvg  27076
  Copyright terms: Public domain W3C validator