Metamath Proof Explorer


Theorem ovollb2

Description: It is often more convenient to do calculations with *closed* coverings rather than open ones; here we show that it makes no difference (compare ovollb ). (Contributed by Mario Carneiro, 24-Mar-2015)

Ref Expression
Hypothesis ovollb2.1 𝑆 = seq 1 ( + , ( ( abs ∘ − ) ∘ 𝐹 ) )
Assertion ovollb2 ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) )

Proof

Step Hyp Ref Expression
1 ovollb2.1 𝑆 = seq 1 ( + , ( ( abs ∘ − ) ∘ 𝐹 ) )
2 simpr ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → 𝐴 ran ( [,] ∘ 𝐹 ) )
3 ovolficcss ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) → ran ( [,] ∘ 𝐹 ) ⊆ ℝ )
4 3 adantr ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ran ( [,] ∘ 𝐹 ) ⊆ ℝ )
5 2 4 sstrd ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → 𝐴 ⊆ ℝ )
6 ovolcl ( 𝐴 ⊆ ℝ → ( vol* ‘ 𝐴 ) ∈ ℝ* )
7 5 6 syl ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ( vol* ‘ 𝐴 ) ∈ ℝ* )
8 7 adantr ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) = +∞ ) → ( vol* ‘ 𝐴 ) ∈ ℝ* )
9 pnfge ( ( vol* ‘ 𝐴 ) ∈ ℝ* → ( vol* ‘ 𝐴 ) ≤ +∞ )
10 8 9 syl ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) = +∞ ) → ( vol* ‘ 𝐴 ) ≤ +∞ )
11 simpr ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) = +∞ ) → sup ( ran 𝑆 , ℝ* , < ) = +∞ )
12 10 11 breqtrrd ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) = +∞ ) → ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) )
13 eqid ( ( abs ∘ − ) ∘ 𝐹 ) = ( ( abs ∘ − ) ∘ 𝐹 )
14 13 1 ovolsf ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) → 𝑆 : ℕ ⟶ ( 0 [,) +∞ ) )
15 14 adantr ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → 𝑆 : ℕ ⟶ ( 0 [,) +∞ ) )
16 15 frnd ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ran 𝑆 ⊆ ( 0 [,) +∞ ) )
17 rge0ssre ( 0 [,) +∞ ) ⊆ ℝ
18 16 17 sstrdi ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ran 𝑆 ⊆ ℝ )
19 1nn 1 ∈ ℕ
20 15 fdmd ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → dom 𝑆 = ℕ )
21 19 20 eleqtrrid ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → 1 ∈ dom 𝑆 )
22 21 ne0d ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → dom 𝑆 ≠ ∅ )
23 dm0rn0 ( dom 𝑆 = ∅ ↔ ran 𝑆 = ∅ )
24 23 necon3bii ( dom 𝑆 ≠ ∅ ↔ ran 𝑆 ≠ ∅ )
25 22 24 sylib ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ran 𝑆 ≠ ∅ )
26 supxrre2 ( ( ran 𝑆 ⊆ ℝ ∧ ran 𝑆 ≠ ∅ ) → ( sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ↔ sup ( ran 𝑆 , ℝ* , < ) ≠ +∞ ) )
27 18 25 26 syl2anc ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ( sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ↔ sup ( ran 𝑆 , ℝ* , < ) ≠ +∞ ) )
28 27 biimpar ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ≠ +∞ ) → sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ )
29 2fveq3 ( 𝑚 = 𝑛 → ( 1st ‘ ( 𝐹𝑚 ) ) = ( 1st ‘ ( 𝐹𝑛 ) ) )
30 oveq2 ( 𝑚 = 𝑛 → ( 2 ↑ 𝑚 ) = ( 2 ↑ 𝑛 ) )
31 30 oveq2d ( 𝑚 = 𝑛 → ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) = ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) )
32 29 31 oveq12d ( 𝑚 = 𝑛 → ( ( 1st ‘ ( 𝐹𝑚 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) = ( ( 1st ‘ ( 𝐹𝑛 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) )
33 2fveq3 ( 𝑚 = 𝑛 → ( 2nd ‘ ( 𝐹𝑚 ) ) = ( 2nd ‘ ( 𝐹𝑛 ) ) )
34 33 31 oveq12d ( 𝑚 = 𝑛 → ( ( 2nd ‘ ( 𝐹𝑚 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) = ( ( 2nd ‘ ( 𝐹𝑛 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) )
35 32 34 opeq12d ( 𝑚 = 𝑛 → ⟨ ( ( 1st ‘ ( 𝐹𝑚 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑚 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) ⟩ = ⟨ ( ( 1st ‘ ( 𝐹𝑛 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑛 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) ⟩ )
36 35 cbvmptv ( 𝑚 ∈ ℕ ↦ ⟨ ( ( 1st ‘ ( 𝐹𝑚 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑚 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) ⟩ ) = ( 𝑛 ∈ ℕ ↦ ⟨ ( ( 1st ‘ ( 𝐹𝑛 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑛 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑛 ) ) ) ⟩ )
37 eqid seq 1 ( + , ( ( abs ∘ − ) ∘ ( 𝑚 ∈ ℕ ↦ ⟨ ( ( 1st ‘ ( 𝐹𝑚 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑚 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) ⟩ ) ) ) = seq 1 ( + , ( ( abs ∘ − ) ∘ ( 𝑚 ∈ ℕ ↦ ⟨ ( ( 1st ‘ ( 𝐹𝑚 ) ) − ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) , ( ( 2nd ‘ ( 𝐹𝑚 ) ) + ( ( 𝑥 / 2 ) / ( 2 ↑ 𝑚 ) ) ) ⟩ ) ) )
38 simplll ( ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) ∧ 𝑥 ∈ ℝ+ ) → 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) )
39 simpllr ( ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) ∧ 𝑥 ∈ ℝ+ ) → 𝐴 ran ( [,] ∘ 𝐹 ) )
40 simpr ( ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) ∧ 𝑥 ∈ ℝ+ ) → 𝑥 ∈ ℝ+ )
41 simplr ( ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) ∧ 𝑥 ∈ ℝ+ ) → sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ )
42 1 36 37 38 39 40 41 ovollb2lem ( ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) ∧ 𝑥 ∈ ℝ+ ) → ( vol* ‘ 𝐴 ) ≤ ( sup ( ran 𝑆 , ℝ* , < ) + 𝑥 ) )
43 42 ralrimiva ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) → ∀ 𝑥 ∈ ℝ+ ( vol* ‘ 𝐴 ) ≤ ( sup ( ran 𝑆 , ℝ* , < ) + 𝑥 ) )
44 xralrple ( ( ( vol* ‘ 𝐴 ) ∈ ℝ* ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) → ( ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) ↔ ∀ 𝑥 ∈ ℝ+ ( vol* ‘ 𝐴 ) ≤ ( sup ( ran 𝑆 , ℝ* , < ) + 𝑥 ) ) )
45 7 44 sylan ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) → ( ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) ↔ ∀ 𝑥 ∈ ℝ+ ( vol* ‘ 𝐴 ) ≤ ( sup ( ran 𝑆 , ℝ* , < ) + 𝑥 ) ) )
46 43 45 mpbird ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ∈ ℝ ) → ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) )
47 28 46 syldan ( ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) ∧ sup ( ran 𝑆 , ℝ* , < ) ≠ +∞ ) → ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) )
48 12 47 pm2.61dane ( ( 𝐹 : ℕ ⟶ ( ≤ ∩ ( ℝ × ℝ ) ) ∧ 𝐴 ran ( [,] ∘ 𝐹 ) ) → ( vol* ‘ 𝐴 ) ≤ sup ( ran 𝑆 , ℝ* , < ) )