Users' Mathboxes Mathbox for Glauco Siliprandi < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  ovnsubadd Structured version   Visualization version   GIF version

Theorem ovnsubadd 41310
Description: (voln*‘𝑋) is subadditive. Proposition 115D (a)(iv) of [Fremlin1] p. 31 . (Contributed by Glauco Siliprandi, 11-Oct-2020.)
Hypotheses
Ref Expression
ovnsubadd.1 (𝜑𝑋 ∈ Fin)
ovnsubadd.2 (𝜑𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
Assertion
Ref Expression
ovnsubadd (𝜑 → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
Distinct variable groups:   𝐴,𝑛   𝑛,𝑋   𝜑,𝑛

Proof of Theorem ovnsubadd
Dummy variables 𝑎 𝑒 𝑖 𝑗 𝑘 𝑙 𝑦 𝑧 𝑏 𝑑 𝑓 𝑚 𝑜 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 fveq2 6353 . . . . . 6 (𝑋 = ∅ → (voln*‘𝑋) = (voln*‘∅))
21fveq1d 6355 . . . . 5 (𝑋 = ∅ → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)))
32adantl 473 . . . 4 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)))
4 ovnsubadd.2 . . . . . . . . . . . 12 (𝜑𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
54adantr 472 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ) → 𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
6 simpr 479 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ) → 𝑛 ∈ ℕ)
75, 6ffvelrnd 6524 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ) → (𝐴𝑛) ∈ 𝒫 (ℝ ↑𝑚 𝑋))
8 elpwi 4312 . . . . . . . . . 10 ((𝐴𝑛) ∈ 𝒫 (ℝ ↑𝑚 𝑋) → (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
97, 8syl 17 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ) → (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
109ralrimiva 3104 . . . . . . . 8 (𝜑 → ∀𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
11 iunss 4713 . . . . . . . 8 ( 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋) ↔ ∀𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
1210, 11sylibr 224 . . . . . . 7 (𝜑 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
1312adantr 472 . . . . . 6 ((𝜑𝑋 = ∅) → 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
14 oveq2 6822 . . . . . . 7 (𝑋 = ∅ → (ℝ ↑𝑚 𝑋) = (ℝ ↑𝑚 ∅))
1514adantl 473 . . . . . 6 ((𝜑𝑋 = ∅) → (ℝ ↑𝑚 𝑋) = (ℝ ↑𝑚 ∅))
1613, 15sseqtrd 3782 . . . . 5 ((𝜑𝑋 = ∅) → 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 ∅))
1716ovn0val 41288 . . . 4 ((𝜑𝑋 = ∅) → ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = 0)
183, 17eqtrd 2794 . . 3 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = 0)
19 nnex 11238 . . . . . 6 ℕ ∈ V
2019a1i 11 . . . . 5 (𝜑 → ℕ ∈ V)
21 ovnsubadd.1 . . . . . . . 8 (𝜑𝑋 ∈ Fin)
2221adantr 472 . . . . . . 7 ((𝜑𝑛 ∈ ℕ) → 𝑋 ∈ Fin)
2322, 9ovncl 41305 . . . . . 6 ((𝜑𝑛 ∈ ℕ) → ((voln*‘𝑋)‘(𝐴𝑛)) ∈ (0[,]+∞))
24 eqid 2760 . . . . . 6 (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛))) = (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))
2523, 24fmptd 6549 . . . . 5 (𝜑 → (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛))):ℕ⟶(0[,]+∞))
2620, 25sge0ge0 41122 . . . 4 (𝜑 → 0 ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2726adantr 472 . . 3 ((𝜑𝑋 = ∅) → 0 ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2818, 27eqbrtrd 4826 . 2 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2921, 12ovnxrcl 41307 . . . 4 (𝜑 → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ∈ ℝ*)
3029adantr 472 . . 3 ((𝜑 ∧ ¬ 𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ∈ ℝ*)
3120, 25sge0xrcl 41123 . . . 4 (𝜑 → (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) ∈ ℝ*)
3231adantr 472 . . 3 ((𝜑 ∧ ¬ 𝑋 = ∅) → (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) ∈ ℝ*)
3321ad2antrr 764 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑋 ∈ Fin)
34 neqne 2940 . . . . 5 𝑋 = ∅ → 𝑋 ≠ ∅)
3534ad2antlr 765 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑋 ≠ ∅)
364ad2antrr 764 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
37 simpr 479 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑦 ∈ ℝ+)
38 eqid 2760 . . . 4 (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑧 ∈ ℝ* ∣ ∃𝑖 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ)(𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑖𝑗))‘𝑘) ∧ 𝑧 = (Σ^‘(𝑗 ∈ ℕ ↦ ∏𝑘𝑋 (vol‘(([,) ∘ (𝑖𝑗))‘𝑘)))))}) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑧 ∈ ℝ* ∣ ∃𝑖 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ)(𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑖𝑗))‘𝑘) ∧ 𝑧 = (Σ^‘(𝑗 ∈ ℕ ↦ ∏𝑘𝑋 (vol‘(([,) ∘ (𝑖𝑗))‘𝑘)))))})
39 sseq1 3767 . . . . . 6 (𝑏 = 𝑎 → (𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘) ↔ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)))
4039rabbidv 3329 . . . . 5 (𝑏 = 𝑎 → {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)} = {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
4140cbvmptv 4902 . . . 4 (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)}) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
42 eqid 2760 . . . 4 ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))
43 fveq2 6353 . . . . . . . . . . . . . . . . . . . . 21 (𝑜 = 𝑗 → (𝑙𝑜) = (𝑙𝑗))
4443coeq2d 5440 . . . . . . . . . . . . . . . . . . . 20 (𝑜 = 𝑗 → ([,) ∘ (𝑙𝑜)) = ([,) ∘ (𝑙𝑗)))
4544fveq1d 6355 . . . . . . . . . . . . . . . . . . 19 (𝑜 = 𝑗 → (([,) ∘ (𝑙𝑜))‘𝑑) = (([,) ∘ (𝑙𝑗))‘𝑑))
4645ixpeq2dv 8092 . . . . . . . . . . . . . . . . . 18 (𝑜 = 𝑗X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = X𝑑𝑋 (([,) ∘ (𝑙𝑗))‘𝑑))
47 fveq2 6353 . . . . . . . . . . . . . . . . . . 19 (𝑑 = 𝑘 → (([,) ∘ (𝑙𝑗))‘𝑑) = (([,) ∘ (𝑙𝑗))‘𝑘))
4847cbvixpv 8094 . . . . . . . . . . . . . . . . . 18 X𝑑𝑋 (([,) ∘ (𝑙𝑗))‘𝑑) = X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)
4946, 48syl6eq 2810 . . . . . . . . . . . . . . . . 17 (𝑜 = 𝑗X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘))
5049cbviunv 4711 . . . . . . . . . . . . . . . 16 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)
5150sseq2i 3771 . . . . . . . . . . . . . . 15 (𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) ↔ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘))
5251rabbii 3325 . . . . . . . . . . . . . 14 {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)} = {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)}
5352mpteq2i 4893 . . . . . . . . . . . . 13 (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)}) = (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
5453fveq1i 6354 . . . . . . . . . . . 12 ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑑)
55 fveq2 6353 . . . . . . . . . . . 12 (𝑑 = 𝑎 → ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎))
5654, 55syl5eq 2806 . . . . . . . . . . 11 (𝑑 = 𝑎 → ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎))
5756eleq2d 2825 . . . . . . . . . 10 (𝑑 = 𝑎 → (𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ↔ 𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎)))
58 fveq2 6353 . . . . . . . . . . . . . . . . . . 19 (𝑑 = 𝑘 → (([,) ∘ )‘𝑑) = (([,) ∘ )‘𝑘))
5958fveq2d 6357 . . . . . . . . . . . . . . . . . 18 (𝑑 = 𝑘 → (vol‘(([,) ∘ )‘𝑑)) = (vol‘(([,) ∘ )‘𝑘)))
6059cbvprodv 14865 . . . . . . . . . . . . . . . . 17 𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)) = ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))
6160mpteq2i 4893 . . . . . . . . . . . . . . . 16 ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))
6261a1i 11 . . . . . . . . . . . . . . 15 (𝑜 = 𝑗 → ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))))
63 fveq2 6353 . . . . . . . . . . . . . . 15 (𝑜 = 𝑗 → (𝑚𝑜) = (𝑚𝑗))
6462, 63fveq12d 6359 . . . . . . . . . . . . . 14 (𝑜 = 𝑗 → (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)) = (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))
6564cbvmptv 4902 . . . . . . . . . . . . 13 (𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜))) = (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))
6665fveq2i 6356 . . . . . . . . . . . 12 ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗))))
6766a1i 11 . . . . . . . . . . 11 (𝑑 = 𝑎 → (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))))
68 fveq2 6353 . . . . . . . . . . . 12 (𝑑 = 𝑎 → ((voln*‘𝑋)‘𝑑) = ((voln*‘𝑋)‘𝑎))
6968oveq1d 6829 . . . . . . . . . . 11 (𝑑 = 𝑎 → (((voln*‘𝑋)‘𝑑) +𝑒 𝑓) = (((voln*‘𝑋)‘𝑎) +𝑒 𝑓))
7067, 69breq12d 4817 . . . . . . . . . 10 (𝑑 = 𝑎 → ((Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)))
7157, 70anbi12d 749 . . . . . . . . 9 (𝑑 = 𝑎 → ((𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∧ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)) ↔ (𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∧ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓))))
7271rabbidva2 3326 . . . . . . . 8 (𝑑 = 𝑎 → {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)} = {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)})
73 fveq1 6352 . . . . . . . . . . . . 13 (𝑚 = 𝑖 → (𝑚𝑗) = (𝑖𝑗))
7473fveq2d 6357 . . . . . . . . . . . 12 (𝑚 = 𝑖 → (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)) = (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))
7574mpteq2dv 4897 . . . . . . . . . . 11 (𝑚 = 𝑖 → (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗))) = (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗))))
7675fveq2d 6357 . . . . . . . . . 10 (𝑚 = 𝑖 → (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))))
7776breq1d 4814 . . . . . . . . 9 (𝑚 = 𝑖 → ((Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)))
7877cbvrabv 3339 . . . . . . . 8 {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}
7972, 78syl6eq 2810 . . . . . . 7 (𝑑 = 𝑎 → {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)})
8079mpteq2dv 4897 . . . . . 6 (𝑑 = 𝑎 → (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)}) = (𝑓 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}))
81 oveq2 6822 . . . . . . . . 9 (𝑓 = 𝑒 → (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) = (((voln*‘𝑋)‘𝑎) +𝑒 𝑒))
8281breq2d 4816 . . . . . . . 8 (𝑓 = 𝑒 → ((Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)))
8382rabbidv 3329 . . . . . . 7 (𝑓 = 𝑒 → {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)})
8483cbvmptv 4902 . . . . . 6 (𝑓 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}) = (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)})
8580, 84syl6eq 2810 . . . . 5 (𝑑 = 𝑎 → (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)}) = (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)}))
8685cbvmptv 4902 . . . 4 (𝑑 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)})) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)}))
8733, 35, 36, 37, 38, 41, 42, 86ovnsubaddlem2 41309 . . 3 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ ((Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) +𝑒 𝑦))
8830, 32, 87xrlexaddrp 40084 . 2 ((𝜑 ∧ ¬ 𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
8928, 88pm2.61dan 867 1 (𝜑 → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 383   = wceq 1632  wcel 2139  wne 2932  wral 3050  wrex 3051  {crab 3054  Vcvv 3340  wss 3715  c0 4058  𝒫 cpw 4302   ciun 4672   class class class wbr 4804  cmpt 4881   × cxp 5264  ccom 5270  wf 6045  cfv 6049  (class class class)co 6814  𝑚 cmap 8025  Xcixp 8076  Fincfn 8123  cr 10147  0cc0 10148  +∞cpnf 10283  *cxr 10285  cle 10287  cn 11232  +crp 12045   +𝑒 cxad 12157  [,)cico 12390  [,]cicc 12391  cprod 14854  volcvol 23452  Σ^csumge0 41100  voln*covoln 41274
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-rep 4923  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7115  ax-inf2 8713  ax-cc 9469  ax-ac2 9497  ax-cnex 10204  ax-resscn 10205  ax-1cn 10206  ax-icn 10207  ax-addcl 10208  ax-addrcl 10209  ax-mulcl 10210  ax-mulrcl 10211  ax-mulcom 10212  ax-addass 10213  ax-mulass 10214  ax-distr 10215  ax-i2m1 10216  ax-1ne0 10217  ax-1rid 10218  ax-rnegex 10219  ax-rrecex 10220  ax-cnre 10221  ax-pre-lttri 10222  ax-pre-lttrn 10223  ax-pre-ltadd 10224  ax-pre-mulgt0 10225  ax-pre-sup 10226  ax-addf 10227  ax-mulf 10228
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1073  df-3an 1074  df-tru 1635  df-fal 1638  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-nel 3036  df-ral 3055  df-rex 3056  df-reu 3057  df-rmo 3058  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-pss 3731  df-nul 4059  df-if 4231  df-pw 4304  df-sn 4322  df-pr 4324  df-tp 4326  df-op 4328  df-uni 4589  df-int 4628  df-iun 4674  df-disj 4773  df-br 4805  df-opab 4865  df-mpt 4882  df-tr 4905  df-id 5174  df-eprel 5179  df-po 5187  df-so 5188  df-fr 5225  df-se 5226  df-we 5227  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-pred 5841  df-ord 5887  df-on 5888  df-lim 5889  df-suc 5890  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-isom 6058  df-riota 6775  df-ov 6817  df-oprab 6818  df-mpt2 6819  df-of 7063  df-om 7232  df-1st 7334  df-2nd 7335  df-tpos 7522  df-wrecs 7577  df-recs 7638  df-rdg 7676  df-1o 7730  df-2o 7731  df-oadd 7734  df-er 7913  df-map 8027  df-pm 8028  df-ixp 8077  df-en 8124  df-dom 8125  df-sdom 8126  df-fin 8127  df-fi 8484  df-sup 8515  df-inf 8516  df-oi 8582  df-card 8975  df-acn 8978  df-ac 9149  df-cda 9202  df-pnf 10288  df-mnf 10289  df-xr 10290  df-ltxr 10291  df-le 10292  df-sub 10480  df-neg 10481  df-div 10897  df-nn 11233  df-2 11291  df-3 11292  df-4 11293  df-5 11294  df-6 11295  df-7 11296  df-8 11297  df-9 11298  df-n0 11505  df-z 11590  df-dec 11706  df-uz 11900  df-q 12002  df-rp 12046  df-xneg 12159  df-xadd 12160  df-xmul 12161  df-ioo 12392  df-ico 12394  df-icc 12395  df-fz 12540  df-fzo 12680  df-fl 12807  df-seq 13016  df-exp 13075  df-hash 13332  df-cj 14058  df-re 14059  df-im 14060  df-sqrt 14194  df-abs 14195  df-clim 14438  df-rlim 14439  df-sum 14636  df-prod 14855  df-struct 16081  df-ndx 16082  df-slot 16083  df-base 16085  df-sets 16086  df-ress 16087  df-plusg 16176  df-mulr 16177  df-starv 16178  df-tset 16182  df-ple 16183  df-ds 16186  df-unif 16187  df-rest 16305  df-0g 16324  df-topgen 16326  df-mgm 17463  df-sgrp 17505  df-mnd 17516  df-grp 17646  df-minusg 17647  df-subg 17812  df-cmn 18415  df-abl 18416  df-mgp 18710  df-ur 18722  df-ring 18769  df-cring 18770  df-oppr 18843  df-dvdsr 18861  df-unit 18862  df-invr 18892  df-dvr 18903  df-drng 18971  df-psmet 19960  df-xmet 19961  df-met 19962  df-bl 19963  df-mopn 19964  df-cnfld 19969  df-top 20921  df-topon 20938  df-bases 20972  df-cmp 21412  df-ovol 23453  df-vol 23454  df-sumge0 41101  df-ovoln 41275
This theorem is referenced by:  ovnome  41311  ovnsubadd2lem  41383
  Copyright terms: Public domain W3C validator