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

Theorem climcnds 15491
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 12550 . . . . 5 ℕ = (ℤ‘1)
2 1zzd 12281 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → 1 ∈ ℤ)
3 1zzd 12281 . . . . . . 7 (𝜑 → 1 ∈ ℤ)
4 nnnn0 12170 . . . . . . . 8 (𝑛 ∈ ℕ → 𝑛 ∈ ℕ0)
5 climcnds.4 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) = ((2↑𝑛) · (𝐹‘(2↑𝑛))))
6 2nn 11976 . . . . . . . . . . . 12 2 ∈ ℕ
7 simpr 484 . . . . . . . . . . . 12 ((𝜑𝑛 ∈ ℕ0) → 𝑛 ∈ ℕ0)
8 nnexpcl 13723 . . . . . . . . . . . 12 ((2 ∈ ℕ ∧ 𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ)
96, 7, 8sylancr 586 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ)
109nnred 11918 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℝ)
11 fveq2 6756 . . . . . . . . . . . 12 (𝑘 = (2↑𝑛) → (𝐹𝑘) = (𝐹‘(2↑𝑛)))
1211eleq1d 2823 . . . . . . . . . . 11 (𝑘 = (2↑𝑛) → ((𝐹𝑘) ∈ ℝ ↔ (𝐹‘(2↑𝑛)) ∈ ℝ))
13 climcnds.1 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
1413ralrimiva 3107 . . . . . . . . . . . 12 (𝜑 → ∀𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
1514adantr 480 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → ∀𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
1612, 15, 9rspcdva 3554 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → (𝐹‘(2↑𝑛)) ∈ ℝ)
1710, 16remulcld 10936 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → ((2↑𝑛) · (𝐹‘(2↑𝑛))) ∈ ℝ)
185, 17eqeltrd 2839 . . . . . . . 8 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
194, 18sylan2 592 . . . . . . 7 ((𝜑𝑛 ∈ ℕ) → (𝐺𝑛) ∈ ℝ)
201, 3, 19serfre 13680 . . . . . 6 (𝜑 → seq1( + , 𝐺):ℕ⟶ℝ)
2120adantr 480 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺):ℕ⟶ℝ)
22 simpr 484 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ ℕ)
2322, 1eleqtrdi 2849 . . . . . . 7 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘1))
24 nnz 12272 . . . . . . . . 9 (𝑗 ∈ ℕ → 𝑗 ∈ ℤ)
2524adantl 481 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝑗 ∈ ℤ)
26 uzid 12526 . . . . . . . 8 (𝑗 ∈ ℤ → 𝑗 ∈ (ℤ𝑗))
27 peano2uz 12570 . . . . . . . 8 (𝑗 ∈ (ℤ𝑗) → (𝑗 + 1) ∈ (ℤ𝑗))
2825, 26, 273syl 18 . . . . . . 7 ((𝜑𝑗 ∈ ℕ) → (𝑗 + 1) ∈ (ℤ𝑗))
29 simpl 482 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → 𝜑)
30 elfznn 13214 . . . . . . . 8 (𝑛 ∈ (1...(𝑗 + 1)) → 𝑛 ∈ ℕ)
3129, 30, 19syl2an 595 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ (1...(𝑗 + 1))) → (𝐺𝑛) ∈ ℝ)
32 simpll 763 . . . . . . . 8 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝜑)
33 elfz1eq 13196 . . . . . . . . . 10 (𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1)) → 𝑛 = (𝑗 + 1))
3433adantl 481 . . . . . . . . 9 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝑛 = (𝑗 + 1))
35 nnnn0 12170 . . . . . . . . . . 11 (𝑗 ∈ ℕ → 𝑗 ∈ ℕ0)
36 peano2nn0 12203 . . . . . . . . . . 11 (𝑗 ∈ ℕ0 → (𝑗 + 1) ∈ ℕ0)
3735, 36syl 17 . . . . . . . . . 10 (𝑗 ∈ ℕ → (𝑗 + 1) ∈ ℕ0)
3837ad2antlr 723 . . . . . . . . 9 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → (𝑗 + 1) ∈ ℕ0)
3934, 38eqeltrd 2839 . . . . . . . 8 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝑛 ∈ ℕ0)
409nnnn0d 12223 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → (2↑𝑛) ∈ ℕ0)
4140nn0ge0d 12226 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (2↑𝑛))
4211breq2d 5082 . . . . . . . . . . 11 (𝑘 = (2↑𝑛) → (0 ≤ (𝐹𝑘) ↔ 0 ≤ (𝐹‘(2↑𝑛))))
43 climcnds.2 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ ℕ) → 0 ≤ (𝐹𝑘))
4443ralrimiva 3107 . . . . . . . . . . . 12 (𝜑 → ∀𝑘 ∈ ℕ 0 ≤ (𝐹𝑘))
4544adantr 480 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ0) → ∀𝑘 ∈ ℕ 0 ≤ (𝐹𝑘))
4642, 45, 9rspcdva 3554 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (𝐹‘(2↑𝑛)))
4710, 16, 41, 46mulge0d 11482 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ ((2↑𝑛) · (𝐹‘(2↑𝑛))))
4847, 5breqtrrd 5098 . . . . . . . 8 ((𝜑𝑛 ∈ ℕ0) → 0 ≤ (𝐺𝑛))
4932, 39, 48syl2anc 583 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑛 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 0 ≤ (𝐺𝑛))
5023, 28, 31, 49sermono 13683 . . . . . 6 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (seq1( + , 𝐺)‘(𝑗 + 1)))
5150adantlr 711 . . . . 5 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (seq1( + , 𝐺)‘(𝑗 + 1)))
52 2re 11977 . . . . . . 7 2 ∈ ℝ
53 eqidd 2739 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) = (𝐹𝑘))
5413adantlr 711 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
55 simpr 484 . . . . . . . 8 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐹) ∈ dom ⇝ )
561, 2, 53, 54, 55isumrecl 15405 . . . . . . 7 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
57 remulcl 10887 . . . . . . 7 ((2 ∈ ℝ ∧ Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ) → (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ)
5852, 56, 57sylancr 586 . . . . . 6 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ)
5921ffvelrnda 6943 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ∈ ℝ)
601, 3, 13serfre 13680 . . . . . . . . . . 11 (𝜑 → seq1( + , 𝐹):ℕ⟶ℝ)
6160ad2antrr 722 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq1( + , 𝐹):ℕ⟶ℝ)
6235adantl 481 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℕ0)
63 nnexpcl 13723 . . . . . . . . . . 11 ((2 ∈ ℕ ∧ 𝑗 ∈ ℕ0) → (2↑𝑗) ∈ ℕ)
646, 62, 63sylancr 586 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑𝑗) ∈ ℕ)
6561, 64ffvelrnd 6944 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘(2↑𝑗)) ∈ ℝ)
66 remulcl 10887 . . . . . . . . 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 15490 . . . . . . . . 9 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · (seq1( + , 𝐹)‘(2↑𝑗))))
7170adantlr 711 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · (seq1( + , 𝐹)‘(2↑𝑗))))
72 eqidd 2739 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(2↑𝑗))) → (𝐹𝑘) = (𝐹𝑘))
7364, 1eleqtrdi 2849 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑𝑗) ∈ (ℤ‘1))
74 simpll 763 . . . . . . . . . . . 12 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝜑)
75 elfznn 13214 . . . . . . . . . . . 12 (𝑘 ∈ (1...(2↑𝑗)) → 𝑘 ∈ ℕ)
7613recnd 10934 . . . . . . . . . . . 12 ((𝜑𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℂ)
7774, 75, 76syl2an 595 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(2↑𝑗))) → (𝐹𝑘) ∈ ℂ)
7872, 73, 77fsumser 15370 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ (1...(2↑𝑗))(𝐹𝑘) = (seq1( + , 𝐹)‘(2↑𝑗)))
79 1zzd 12281 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 1 ∈ ℤ)
80 fzfid 13621 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (1...(2↑𝑗)) ∈ Fin)
8175ssriv 3921 . . . . . . . . . . . 12 (1...(2↑𝑗)) ⊆ ℕ
8281a1i 11 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (1...(2↑𝑗)) ⊆ ℕ)
83 eqidd 2739 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) = (𝐹𝑘))
8413ad4ant14 748 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → (𝐹𝑘) ∈ ℝ)
8543ad4ant14 748 . . . . . . . . . . 11 ((((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ℕ) → 0 ≤ (𝐹𝑘))
86 simplr 765 . . . . . . . . . . 11 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq1( + , 𝐹) ∈ dom ⇝ )
871, 79, 80, 82, 83, 84, 85, 86isumless 15485 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ (1...(2↑𝑗))(𝐹𝑘) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘))
8878, 87eqbrtrrd 5094 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘(2↑𝑗)) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘))
8956adantr 480 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑘 ∈ ℕ (𝐹𝑘) ∈ ℝ)
90 2rp 12664 . . . . . . . . . . 11 2 ∈ ℝ+
9190a1i 11 . . . . . . . . . 10 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 2 ∈ ℝ+)
9265, 89, 91lemul2d 12745 . . . . . . . . 9 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((seq1( + , 𝐹)‘(2↑𝑗)) ≤ Σ𝑘 ∈ ℕ (𝐹𝑘) ↔ (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘))))
9388, 92mpbid 231 . . . . . . . 8 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2 · (seq1( + , 𝐹)‘(2↑𝑗))) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
9459, 67, 68, 71, 93letrd 11062 . . . . . . 7 (((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
9594ralrimiva 3107 . . . . . 6 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘)))
96 brralrspcev 5130 . . . . . 6 (((2 · Σ𝑘 ∈ ℕ (𝐹𝑘)) ∈ ℝ ∧ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ (2 · Σ𝑘 ∈ ℕ (𝐹𝑘))) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ 𝑥)
9758, 95, 96syl2anc 583 . . . . 5 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐺)‘𝑗) ≤ 𝑥)
981, 2, 21, 51, 97climsup 15309 . . . 4 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺) ⇝ sup(ran seq1( + , 𝐺), ℝ, < ))
99 climrel 15129 . . . . 5 Rel ⇝
10099releldmi 5846 . . . 4 (seq1( + , 𝐺) ⇝ sup(ran seq1( + , 𝐺), ℝ, < ) → seq1( + , 𝐺) ∈ dom ⇝ )
10198, 100syl 17 . . 3 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq1( + , 𝐺) ∈ dom ⇝ )
102 nn0uz 12549 . . . . 5 0 = (ℤ‘0)
103 1nn0 12179 . . . . . 6 1 ∈ ℕ0
104103a1i 11 . . . . 5 (𝜑 → 1 ∈ ℕ0)
10518recnd 10934 . . . . 5 ((𝜑𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℂ)
106102, 104, 105iserex 15296 . . . 4 (𝜑 → (seq0( + , 𝐺) ∈ dom ⇝ ↔ seq1( + , 𝐺) ∈ dom ⇝ ))
107106biimpar 477 . . 3 ((𝜑 ∧ seq1( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
108101, 107syldan 590 . 2 ((𝜑 ∧ seq1( + , 𝐹) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
109 1zzd 12281 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → 1 ∈ ℤ)
11060adantr 480 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹):ℕ⟶ℝ)
111 elfznn 13214 . . . . . . 7 (𝑘 ∈ (1...(𝑗 + 1)) → 𝑘 ∈ ℕ)
11229, 111, 13syl2an 595 . . . . . 6 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...(𝑗 + 1))) → (𝐹𝑘) ∈ ℝ)
113 simpll 763 . . . . . . 7 (((𝜑𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1))) → 𝜑)
114 peano2nn 11915 . . . . . . . . 9 (𝑗 ∈ ℕ → (𝑗 + 1) ∈ ℕ)
115114adantl 481 . . . . . . . 8 ((𝜑𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℕ)
116 elfz1eq 13196 . . . . . . . 8 (𝑘 ∈ ((𝑗 + 1)...(𝑗 + 1)) → 𝑘 = (𝑗 + 1))
117 eleq1 2826 . . . . . . . . 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 13683 . . . . 5 ((𝜑𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘(𝑗 + 1)))
122121adantlr 711 . . . 4 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘(𝑗 + 1)))
123 0zd 12261 . . . . . 6 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → 0 ∈ ℤ)
124 eqidd 2739 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) = (𝐺𝑛))
12518adantlr 711 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
126 simpr 484 . . . . . 6 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺) ∈ dom ⇝ )
127102, 123, 124, 125, 126isumrecl 15405 . . . . 5 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → Σ𝑛 ∈ ℕ0 (𝐺𝑛) ∈ ℝ)
128110ffvelrnda 6943 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ∈ ℝ)
129 0zd 12261 . . . . . . . . . 10 (𝜑 → 0 ∈ ℤ)
130102, 129, 18serfre 13680 . . . . . . . . 9 (𝜑 → seq0( + , 𝐺):ℕ0⟶ℝ)
131130adantr 480 . . . . . . . 8 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq0( + , 𝐺):ℕ0⟶ℝ)
132 ffvelrn 6941 . . . . . . . 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 12224 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℝ)
140 nnexpcl 13723 . . . . . . . . . . . . . . 15 ((2 ∈ ℕ ∧ (𝑗 + 1) ∈ ℕ0) → (2↑(𝑗 + 1)) ∈ ℕ)
1416, 138, 140sylancr 586 . . . . . . . . . . . . . 14 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℕ)
142141nnred 11918 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℝ)
143 2z 12282 . . . . . . . . . . . . . . 15 2 ∈ ℤ
144 uzid 12526 . . . . . . . . . . . . . . 15 (2 ∈ ℤ → 2 ∈ (ℤ‘2))
145143, 144ax-mp 5 . . . . . . . . . . . . . 14 2 ∈ (ℤ‘2)
146 bernneq3 13874 . . . . . . . . . . . . . 14 ((2 ∈ (ℤ‘2) ∧ (𝑗 + 1) ∈ ℕ0) → (𝑗 + 1) < (2↑(𝑗 + 1)))
147145, 138, 146sylancr 586 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) < (2↑(𝑗 + 1)))
148139, 142, 147ltled 11053 . . . . . . . . . . . 12 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ≤ (2↑(𝑗 + 1)))
149137peano2zd 12358 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℤ)
150141nnzd 12354 . . . . . . . . . . . . 13 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ ℤ)
151 eluz 12525 . . . . . . . . . . . . 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 256 . . . . . . . . . . 11 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1)))
154 eluzp1m1 12537 . . . . . . . . . . 11 ((𝑗 ∈ ℤ ∧ (2↑(𝑗 + 1)) ∈ (ℤ‘(𝑗 + 1))) → ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗))
155137, 153, 154syl2anc 583 . . . . . . . . . 10 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗))
156 eluznn 12587 . . . . . . . . . 10 ((𝑗 ∈ ℕ ∧ ((2↑(𝑗 + 1)) − 1) ∈ (ℤ𝑗)) → ((2↑(𝑗 + 1)) − 1) ∈ ℕ)
157136, 155, 156syl2anc 583 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → ((2↑(𝑗 + 1)) − 1) ∈ ℕ)
158135, 157ffvelrnd 6944 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ∈ ℝ)
15923adantlr 711 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘1))
160 simpll 763 . . . . . . . . . 10 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝜑)
161 elfznn 13214 . . . . . . . . . 10 (𝑘 ∈ (1...((2↑(𝑗 + 1)) − 1)) → 𝑘 ∈ ℕ)
162160, 161, 13syl2an 595 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ (1...((2↑(𝑗 + 1)) − 1))) → (𝐹𝑘) ∈ ℝ)
163114adantl 481 . . . . . . . . . . 11 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (𝑗 + 1) ∈ ℕ)
164 elfzuz 13181 . . . . . . . . . . 11 (𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1)) → 𝑘 ∈ (ℤ‘(𝑗 + 1)))
165 eluznn 12587 . . . . . . . . . . 11 (((𝑗 + 1) ∈ ℕ ∧ 𝑘 ∈ (ℤ‘(𝑗 + 1))) → 𝑘 ∈ ℕ)
166163, 164, 165syl2an 595 . . . . . . . . . 10 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1))) → 𝑘 ∈ ℕ)
167160, 166, 43syl2an2r 681 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑘 ∈ ((𝑗 + 1)...((2↑(𝑗 + 1)) − 1))) → 0 ≤ (𝐹𝑘))
168159, 155, 162, 167sermono 13683 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)))
16935adantl 481 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ ℕ0)
17013, 43, 69, 5climcndslem1 15489 . . . . . . . . 9 ((𝜑𝑗 ∈ ℕ0) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ≤ (seq0( + , 𝐺)‘𝑗))
171160, 169, 170syl2anc 583 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘((2↑(𝑗 + 1)) − 1)) ≤ (seq0( + , 𝐺)‘𝑗))
172128, 158, 133, 168, 171letrd 11062 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ (seq0( + , 𝐺)‘𝑗))
173 eqidd 2739 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ (0...𝑗)) → (𝐺𝑛) = (𝐺𝑛))
174169, 102eleqtrdi 2849 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 𝑗 ∈ (ℤ‘0))
175 elfznn0 13278 . . . . . . . . . 10 (𝑛 ∈ (0...𝑗) → 𝑛 ∈ ℕ0)
176160, 175, 105syl2an 595 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ (0...𝑗)) → (𝐺𝑛) ∈ ℂ)
177173, 174, 176fsumser 15370 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑛 ∈ (0...𝑗)(𝐺𝑛) = (seq0( + , 𝐺)‘𝑗))
178 0zd 12261 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → 0 ∈ ℤ)
179 fzfid 13621 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (0...𝑗) ∈ Fin)
180175ssriv 3921 . . . . . . . . . 10 (0...𝑗) ⊆ ℕ0
181180a1i 11 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (0...𝑗) ⊆ ℕ0)
182 eqidd 2739 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) = (𝐺𝑛))
18318ad4ant14 748 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → (𝐺𝑛) ∈ ℝ)
18448ad4ant14 748 . . . . . . . . 9 ((((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) ∧ 𝑛 ∈ ℕ0) → 0 ≤ (𝐺𝑛))
185 simplr 765 . . . . . . . . 9 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → seq0( + , 𝐺) ∈ dom ⇝ )
186102, 178, 179, 181, 182, 183, 184, 185isumless 15485 . . . . . . . 8 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → Σ𝑛 ∈ (0...𝑗)(𝐺𝑛) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
187177, 186eqbrtrrd 5094 . . . . . . 7 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq0( + , 𝐺)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
188128, 133, 134, 172, 187letrd 11062 . . . . . 6 (((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) ∧ 𝑗 ∈ ℕ) → (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
189188ralrimiva 3107 . . . . 5 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛))
190 brralrspcev 5130 . . . . 5 ((Σ𝑛 ∈ ℕ0 (𝐺𝑛) ∈ ℝ ∧ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ Σ𝑛 ∈ ℕ0 (𝐺𝑛)) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ 𝑥)
191127, 189, 190syl2anc 583 . . . 4 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → ∃𝑥 ∈ ℝ ∀𝑗 ∈ ℕ (seq1( + , 𝐹)‘𝑗) ≤ 𝑥)
1921, 109, 110, 122, 191climsup 15309 . . 3 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹) ⇝ sup(ran seq1( + , 𝐹), ℝ, < ))
19399releldmi 5846 . . 3 (seq1( + , 𝐹) ⇝ sup(ran seq1( + , 𝐹), ℝ, < ) → seq1( + , 𝐹) ∈ dom ⇝ )
194192, 193syl 17 . 2 ((𝜑 ∧ seq0( + , 𝐺) ∈ dom ⇝ ) → seq1( + , 𝐹) ∈ dom ⇝ )
195108, 194impbida 797 1 (𝜑 → (seq1( + , 𝐹) ∈ dom ⇝ ↔ seq0( + , 𝐺) ∈ dom ⇝ ))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 205  wa 395   = wceq 1539  wcel 2108  wral 3063  wrex 3064  wss 3883   class class class wbr 5070  dom cdm 5580  ran crn 5581  wf 6414  cfv 6418  (class class class)co 7255  supcsup 9129  cc 10800  cr 10801  0cc0 10802  1c1 10803   + caddc 10805   · cmul 10807   < clt 10940  cle 10941  cmin 11135  cn 11903  2c2 11958  0cn0 12163  cz 12249  cuz 12511  +crp 12659  ...cfz 13168  seqcseq 13649  cexp 13710  cli 15121  Σcsu 15325
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1799  ax-4 1813  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2110  ax-9 2118  ax-10 2139  ax-11 2156  ax-12 2173  ax-ext 2709  ax-rep 5205  ax-sep 5218  ax-nul 5225  ax-pow 5283  ax-pr 5347  ax-un 7566  ax-inf2 9329  ax-cnex 10858  ax-resscn 10859  ax-1cn 10860  ax-icn 10861  ax-addcl 10862  ax-addrcl 10863  ax-mulcl 10864  ax-mulrcl 10865  ax-mulcom 10866  ax-addass 10867  ax-mulass 10868  ax-distr 10869  ax-i2m1 10870  ax-1ne0 10871  ax-1rid 10872  ax-rnegex 10873  ax-rrecex 10874  ax-cnre 10875  ax-pre-lttri 10876  ax-pre-lttrn 10877  ax-pre-ltadd 10878  ax-pre-mulgt0 10879  ax-pre-sup 10880
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3or 1086  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1784  df-nf 1788  df-sb 2069  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2817  df-nfc 2888  df-ne 2943  df-nel 3049  df-ral 3068  df-rex 3069  df-reu 3070  df-rmo 3071  df-rab 3072  df-v 3424  df-sbc 3712  df-csb 3829  df-dif 3886  df-un 3888  df-in 3890  df-ss 3900  df-pss 3902  df-nul 4254  df-if 4457  df-pw 4532  df-sn 4559  df-pr 4561  df-tp 4563  df-op 4565  df-uni 4837  df-int 4877  df-iun 4923  df-br 5071  df-opab 5133  df-mpt 5154  df-tr 5188  df-id 5480  df-eprel 5486  df-po 5494  df-so 5495  df-fr 5535  df-se 5536  df-we 5537  df-xp 5586  df-rel 5587  df-cnv 5588  df-co 5589  df-dm 5590  df-rn 5591  df-res 5592  df-ima 5593  df-pred 6191  df-ord 6254  df-on 6255  df-lim 6256  df-suc 6257  df-iota 6376  df-fun 6420  df-fn 6421  df-f 6422  df-f1 6423  df-fo 6424  df-f1o 6425  df-fv 6426  df-isom 6427  df-riota 7212  df-ov 7258  df-oprab 7259  df-mpo 7260  df-om 7688  df-1st 7804  df-2nd 7805  df-frecs 8068  df-wrecs 8099  df-recs 8173  df-rdg 8212  df-1o 8267  df-oadd 8271  df-er 8456  df-pm 8576  df-en 8692  df-dom 8693  df-sdom 8694  df-fin 8695  df-sup 9131  df-inf 9132  df-oi 9199  df-dju 9590  df-card 9628  df-pnf 10942  df-mnf 10943  df-xr 10944  df-ltxr 10945  df-le 10946  df-sub 11137  df-neg 11138  df-div 11563  df-nn 11904  df-2 11966  df-3 11967  df-n0 12164  df-z 12250  df-uz 12512  df-rp 12660  df-ico 13014  df-fz 13169  df-fzo 13312  df-fl 13440  df-seq 13650  df-exp 13711  df-hash 13973  df-cj 14738  df-re 14739  df-im 14740  df-sqrt 14874  df-abs 14875  df-clim 15125  df-rlim 15126  df-sum 15326
This theorem is referenced by:  harmonic  15499  zetacvg  26069
  Copyright terms: Public domain W3C validator