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 41107
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 6229 . . . . . 6 (𝑋 = ∅ → (voln*‘𝑋) = (voln*‘∅))
21fveq1d 6231 . . . . 5 (𝑋 = ∅ → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)))
32adantl 481 . . . 4 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)))
4 ovnsubadd.2 . . . . . . . . . . . 12 (𝜑𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
54adantr 480 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ) → 𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
6 simpr 476 . . . . . . . . . . 11 ((𝜑𝑛 ∈ ℕ) → 𝑛 ∈ ℕ)
75, 6ffvelrnd 6400 . . . . . . . . . 10 ((𝜑𝑛 ∈ ℕ) → (𝐴𝑛) ∈ 𝒫 (ℝ ↑𝑚 𝑋))
8 elpwi 4201 . . . . . . . . . 10 ((𝐴𝑛) ∈ 𝒫 (ℝ ↑𝑚 𝑋) → (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
97, 8syl 17 . . . . . . . . 9 ((𝜑𝑛 ∈ ℕ) → (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
109ralrimiva 2995 . . . . . . . 8 (𝜑 → ∀𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
11 iunss 4593 . . . . . . . 8 ( 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋) ↔ ∀𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
1210, 11sylibr 224 . . . . . . 7 (𝜑 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
1312adantr 480 . . . . . 6 ((𝜑𝑋 = ∅) → 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 𝑋))
14 oveq2 6698 . . . . . . 7 (𝑋 = ∅ → (ℝ ↑𝑚 𝑋) = (ℝ ↑𝑚 ∅))
1514adantl 481 . . . . . 6 ((𝜑𝑋 = ∅) → (ℝ ↑𝑚 𝑋) = (ℝ ↑𝑚 ∅))
1613, 15sseqtrd 3674 . . . . 5 ((𝜑𝑋 = ∅) → 𝑛 ∈ ℕ (𝐴𝑛) ⊆ (ℝ ↑𝑚 ∅))
1716ovn0val 41085 . . . 4 ((𝜑𝑋 = ∅) → ((voln*‘∅)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = 0)
183, 17eqtrd 2685 . . 3 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) = 0)
19 nnex 11064 . . . . . 6 ℕ ∈ V
2019a1i 11 . . . . 5 (𝜑 → ℕ ∈ V)
21 ovnsubadd.1 . . . . . . . 8 (𝜑𝑋 ∈ Fin)
2221adantr 480 . . . . . . 7 ((𝜑𝑛 ∈ ℕ) → 𝑋 ∈ Fin)
2322, 9ovncl 41102 . . . . . 6 ((𝜑𝑛 ∈ ℕ) → ((voln*‘𝑋)‘(𝐴𝑛)) ∈ (0[,]+∞))
24 eqid 2651 . . . . . 6 (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛))) = (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))
2523, 24fmptd 6425 . . . . 5 (𝜑 → (𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛))):ℕ⟶(0[,]+∞))
2620, 25sge0ge0 40919 . . . 4 (𝜑 → 0 ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2726adantr 480 . . 3 ((𝜑𝑋 = ∅) → 0 ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2818, 27eqbrtrd 4707 . 2 ((𝜑𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
2921, 12ovnxrcl 41104 . . . 4 (𝜑 → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ∈ ℝ*)
3029adantr 480 . . 3 ((𝜑 ∧ ¬ 𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ∈ ℝ*)
3120, 25sge0xrcl 40920 . . . 4 (𝜑 → (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) ∈ ℝ*)
3231adantr 480 . . 3 ((𝜑 ∧ ¬ 𝑋 = ∅) → (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) ∈ ℝ*)
3321ad2antrr 762 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑋 ∈ Fin)
34 neqne 2831 . . . . 5 𝑋 = ∅ → 𝑋 ≠ ∅)
3534ad2antlr 763 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑋 ≠ ∅)
364ad2antrr 762 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝐴:ℕ⟶𝒫 (ℝ ↑𝑚 𝑋))
37 simpr 476 . . . 4 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → 𝑦 ∈ ℝ+)
38 eqid 2651 . . . 4 (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑧 ∈ ℝ* ∣ ∃𝑖 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ)(𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑖𝑗))‘𝑘) ∧ 𝑧 = (Σ^‘(𝑗 ∈ ℕ ↦ ∏𝑘𝑋 (vol‘(([,) ∘ (𝑖𝑗))‘𝑘)))))}) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑧 ∈ ℝ* ∣ ∃𝑖 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ)(𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑖𝑗))‘𝑘) ∧ 𝑧 = (Σ^‘(𝑗 ∈ ℕ ↦ ∏𝑘𝑋 (vol‘(([,) ∘ (𝑖𝑗))‘𝑘)))))})
39 sseq1 3659 . . . . . 6 (𝑏 = 𝑎 → (𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘) ↔ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)))
4039rabbidv 3220 . . . . 5 (𝑏 = 𝑎 → {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)} = {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
4140cbvmptv 4783 . . . 4 (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)}) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑎 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
42 eqid 2651 . . . 4 ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))
43 fveq2 6229 . . . . . . . . . . . . . . . . . . . . 21 (𝑜 = 𝑗 → (𝑙𝑜) = (𝑙𝑗))
4443coeq2d 5317 . . . . . . . . . . . . . . . . . . . 20 (𝑜 = 𝑗 → ([,) ∘ (𝑙𝑜)) = ([,) ∘ (𝑙𝑗)))
4544fveq1d 6231 . . . . . . . . . . . . . . . . . . 19 (𝑜 = 𝑗 → (([,) ∘ (𝑙𝑜))‘𝑑) = (([,) ∘ (𝑙𝑗))‘𝑑))
4645ixpeq2dv 7966 . . . . . . . . . . . . . . . . . 18 (𝑜 = 𝑗X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = X𝑑𝑋 (([,) ∘ (𝑙𝑗))‘𝑑))
47 fveq2 6229 . . . . . . . . . . . . . . . . . . 19 (𝑑 = 𝑘 → (([,) ∘ (𝑙𝑗))‘𝑑) = (([,) ∘ (𝑙𝑗))‘𝑘))
4847cbvixpv 7968 . . . . . . . . . . . . . . . . . 18 X𝑑𝑋 (([,) ∘ (𝑙𝑗))‘𝑑) = X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)
4946, 48syl6eq 2701 . . . . . . . . . . . . . . . . 17 (𝑜 = 𝑗X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘))
5049cbviunv 4591 . . . . . . . . . . . . . . . 16 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) = 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)
5150sseq2i 3663 . . . . . . . . . . . . . . 15 (𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑) ↔ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘))
5251rabbii 3216 . . . . . . . . . . . . . 14 {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)} = {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)}
5352mpteq2i 4774 . . . . . . . . . . . . 13 (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)}) = (𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})
5453fveq1i 6230 . . . . . . . . . . . 12 ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑑)
55 fveq2 6229 . . . . . . . . . . . 12 (𝑑 = 𝑎 → ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎))
5654, 55syl5eq 2697 . . . . . . . . . . 11 (𝑑 = 𝑎 → ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) = ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎))
5756eleq2d 2716 . . . . . . . . . 10 (𝑑 = 𝑎 → (𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ↔ 𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎)))
58 fveq2 6229 . . . . . . . . . . . . . . . . . . 19 (𝑑 = 𝑘 → (([,) ∘ )‘𝑑) = (([,) ∘ )‘𝑘))
5958fveq2d 6233 . . . . . . . . . . . . . . . . . 18 (𝑑 = 𝑘 → (vol‘(([,) ∘ )‘𝑑)) = (vol‘(([,) ∘ )‘𝑘)))
6059cbvprodv 14690 . . . . . . . . . . . . . . . . 17 𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)) = ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))
6160mpteq2i 4774 . . . . . . . . . . . . . . . 16 ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))
6261a1i 11 . . . . . . . . . . . . . . 15 (𝑜 = 𝑗 → ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑))) = ( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘))))
63 fveq2 6229 . . . . . . . . . . . . . . 15 (𝑜 = 𝑗 → (𝑚𝑜) = (𝑚𝑗))
6462, 63fveq12d 6235 . . . . . . . . . . . . . 14 (𝑜 = 𝑗 → (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)) = (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))
6564cbvmptv 4783 . . . . . . . . . . . . 13 (𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜))) = (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))
6665fveq2i 6232 . . . . . . . . . . . 12 ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗))))
6766a1i 11 . . . . . . . . . . 11 (𝑑 = 𝑎 → (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))))
68 fveq2 6229 . . . . . . . . . . . 12 (𝑑 = 𝑎 → ((voln*‘𝑋)‘𝑑) = ((voln*‘𝑋)‘𝑎))
6968oveq1d 6705 . . . . . . . . . . 11 (𝑑 = 𝑎 → (((voln*‘𝑋)‘𝑑) +𝑒 𝑓) = (((voln*‘𝑋)‘𝑎) +𝑒 𝑓))
7067, 69breq12d 4698 . . . . . . . . . 10 (𝑑 = 𝑎 → ((Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)))
7157, 70anbi12d 747 . . . . . . . . 9 (𝑑 = 𝑎 → ((𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∧ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)) ↔ (𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∧ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓))))
7271rabbidva2 3217 . . . . . . . 8 (𝑑 = 𝑎 → {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)} = {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)})
73 fveq1 6228 . . . . . . . . . . . . 13 (𝑚 = 𝑖 → (𝑚𝑗) = (𝑖𝑗))
7473fveq2d 6233 . . . . . . . . . . . 12 (𝑚 = 𝑖 → (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)) = (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))
7574mpteq2dv 4778 . . . . . . . . . . 11 (𝑚 = 𝑖 → (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗))) = (𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗))))
7675fveq2d 6233 . . . . . . . . . 10 (𝑚 = 𝑖 → (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) = (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))))
7776breq1d 4695 . . . . . . . . 9 (𝑚 = 𝑖 → ((Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)))
7877cbvrabv 3230 . . . . . . . 8 {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑚𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}
7972, 78syl6eq 2701 . . . . . . 7 (𝑑 = 𝑎 → {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)})
8079mpteq2dv 4778 . . . . . 6 (𝑑 = 𝑎 → (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)}) = (𝑓 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}))
81 oveq2 6698 . . . . . . . . 9 (𝑓 = 𝑒 → (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) = (((voln*‘𝑋)‘𝑎) +𝑒 𝑒))
8281breq2d 4697 . . . . . . . 8 (𝑓 = 𝑒 → ((Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓) ↔ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)))
8382rabbidv 3220 . . . . . . 7 (𝑓 = 𝑒 → {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)} = {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)})
8483cbvmptv 4783 . . . . . 6 (𝑓 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑓)}) = (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)})
8580, 84syl6eq 2701 . . . . 5 (𝑑 = 𝑎 → (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)}) = (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)}))
8685cbvmptv 4783 . . . 4 (𝑑 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ (𝑓 ∈ ℝ+ ↦ {𝑚 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑜 ∈ ℕ X𝑑𝑋 (([,) ∘ (𝑙𝑜))‘𝑑)})‘𝑑) ∣ (Σ^‘(𝑜 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑑𝑋 (vol‘(([,) ∘ )‘𝑑)))‘(𝑚𝑜)))) ≤ (((voln*‘𝑋)‘𝑑) +𝑒 𝑓)})) = (𝑎 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ (𝑒 ∈ ℝ+ ↦ {𝑖 ∈ ((𝑏 ∈ 𝒫 (ℝ ↑𝑚 𝑋) ↦ {𝑙 ∈ (((ℝ × ℝ) ↑𝑚 𝑋) ↑𝑚 ℕ) ∣ 𝑏 𝑗 ∈ ℕ X𝑘𝑋 (([,) ∘ (𝑙𝑗))‘𝑘)})‘𝑎) ∣ (Σ^‘(𝑗 ∈ ℕ ↦ (( ∈ ((ℝ × ℝ) ↑𝑚 𝑋) ↦ ∏𝑘𝑋 (vol‘(([,) ∘ )‘𝑘)))‘(𝑖𝑗)))) ≤ (((voln*‘𝑋)‘𝑎) +𝑒 𝑒)}))
8733, 35, 36, 37, 38, 41, 42, 86ovnsubaddlem2 41106 . . 3 (((𝜑 ∧ ¬ 𝑋 = ∅) ∧ 𝑦 ∈ ℝ+) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ ((Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))) +𝑒 𝑦))
8830, 32, 87xrlexaddrp 39881 . 2 ((𝜑 ∧ ¬ 𝑋 = ∅) → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
8928, 88pm2.61dan 849 1 (𝜑 → ((voln*‘𝑋)‘ 𝑛 ∈ ℕ (𝐴𝑛)) ≤ (Σ^‘(𝑛 ∈ ℕ ↦ ((voln*‘𝑋)‘(𝐴𝑛)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 383   = wceq 1523  wcel 2030  wne 2823  wral 2941  wrex 2942  {crab 2945  Vcvv 3231  wss 3607  c0 3948  𝒫 cpw 4191   ciun 4552   class class class wbr 4685  cmpt 4762   × cxp 5141  ccom 5147  wf 5922  cfv 5926  (class class class)co 6690  𝑚 cmap 7899  Xcixp 7950  Fincfn 7997  cr 9973  0cc0 9974  +∞cpnf 10109  *cxr 10111  cle 10113  cn 11058  +crp 11870   +𝑒 cxad 11982  [,)cico 12215  [,]cicc 12216  cprod 14679  volcvol 23278  Σ^csumge0 40897  voln*covoln 41071
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-inf2 8576  ax-cc 9295  ax-ac2 9323  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051  ax-pre-sup 10052  ax-addf 10053  ax-mulf 10054
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-fal 1529  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rmo 2949  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-disj 4653  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-se 5103  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-isom 5935  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-of 6939  df-om 7108  df-1st 7210  df-2nd 7211  df-tpos 7397  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-2o 7606  df-oadd 7609  df-er 7787  df-map 7901  df-pm 7902  df-ixp 7951  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-fi 8358  df-sup 8389  df-inf 8390  df-oi 8456  df-card 8803  df-acn 8806  df-ac 8977  df-cda 9028  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-div 10723  df-nn 11059  df-2 11117  df-3 11118  df-4 11119  df-5 11120  df-6 11121  df-7 11122  df-8 11123  df-9 11124  df-n0 11331  df-z 11416  df-dec 11532  df-uz 11726  df-q 11827  df-rp 11871  df-xneg 11984  df-xadd 11985  df-xmul 11986  df-ioo 12217  df-ico 12219  df-icc 12220  df-fz 12365  df-fzo 12505  df-fl 12633  df-seq 12842  df-exp 12901  df-hash 13158  df-cj 13883  df-re 13884  df-im 13885  df-sqrt 14019  df-abs 14020  df-clim 14263  df-rlim 14264  df-sum 14461  df-prod 14680  df-struct 15906  df-ndx 15907  df-slot 15908  df-base 15910  df-sets 15911  df-ress 15912  df-plusg 16001  df-mulr 16002  df-starv 16003  df-tset 16007  df-ple 16008  df-ds 16011  df-unif 16012  df-rest 16130  df-0g 16149  df-topgen 16151  df-mgm 17289  df-sgrp 17331  df-mnd 17342  df-grp 17472  df-minusg 17473  df-subg 17638  df-cmn 18241  df-abl 18242  df-mgp 18536  df-ur 18548  df-ring 18595  df-cring 18596  df-oppr 18669  df-dvdsr 18687  df-unit 18688  df-invr 18718  df-dvr 18729  df-drng 18797  df-psmet 19786  df-xmet 19787  df-met 19788  df-bl 19789  df-mopn 19790  df-cnfld 19795  df-top 20747  df-topon 20764  df-bases 20798  df-cmp 21238  df-ovol 23279  df-vol 23280  df-sumge0 40898  df-ovoln 41072
This theorem is referenced by:  ovnome  41108  ovnsubadd2lem  41180
  Copyright terms: Public domain W3C validator