Metamath Proof Explorer


Theorem limsupreuzmpt

Description: Given a function on the reals, defined on a set of upper integers, its supremum limit is real if and only if two condition holds: 1. there is a real number that is less than or equal to the function, infinitely often; 2. there is a real number that is greater than or equal to the function. (Contributed by Glauco Siliprandi, 23-Oct-2021)

Ref Expression
Hypotheses limsupreuzmpt.j 𝑗 𝜑
limsupreuzmpt.m ( 𝜑𝑀 ∈ ℤ )
limsupreuzmpt.z 𝑍 = ( ℤ𝑀 )
limsupreuzmpt.b ( ( 𝜑𝑗𝑍 ) → 𝐵 ∈ ℝ )
Assertion limsupreuzmpt ( 𝜑 → ( ( lim sup ‘ ( 𝑗𝑍𝐵 ) ) ∈ ℝ ↔ ( ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ∧ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 ) ) )

Proof

Step Hyp Ref Expression
1 limsupreuzmpt.j 𝑗 𝜑
2 limsupreuzmpt.m ( 𝜑𝑀 ∈ ℤ )
3 limsupreuzmpt.z 𝑍 = ( ℤ𝑀 )
4 limsupreuzmpt.b ( ( 𝜑𝑗𝑍 ) → 𝐵 ∈ ℝ )
5 nfmpt1 𝑗 ( 𝑗𝑍𝐵 )
6 1 4 fmptd2f ( 𝜑 → ( 𝑗𝑍𝐵 ) : 𝑍 ⟶ ℝ )
7 5 2 3 6 limsupreuz ( 𝜑 → ( ( lim sup ‘ ( 𝑗𝑍𝐵 ) ) ∈ ℝ ↔ ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ∧ ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦 ) ) )
8 nfv 𝑗 𝑖𝑍
9 1 8 nfan 𝑗 ( 𝜑𝑖𝑍 )
10 simpll ( ( ( 𝜑𝑖𝑍 ) ∧ 𝑗 ∈ ( ℤ𝑖 ) ) → 𝜑 )
11 3 uztrn2 ( ( 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) ) → 𝑗𝑍 )
12 11 adantll ( ( ( 𝜑𝑖𝑍 ) ∧ 𝑗 ∈ ( ℤ𝑖 ) ) → 𝑗𝑍 )
13 eqid ( 𝑗𝑍𝐵 ) = ( 𝑗𝑍𝐵 )
14 13 a1i ( 𝜑 → ( 𝑗𝑍𝐵 ) = ( 𝑗𝑍𝐵 ) )
15 14 4 fvmpt2d ( ( 𝜑𝑗𝑍 ) → ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) = 𝐵 )
16 10 12 15 syl2anc ( ( ( 𝜑𝑖𝑍 ) ∧ 𝑗 ∈ ( ℤ𝑖 ) ) → ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) = 𝐵 )
17 16 breq2d ( ( ( 𝜑𝑖𝑍 ) ∧ 𝑗 ∈ ( ℤ𝑖 ) ) → ( 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ↔ 𝑦𝐵 ) )
18 9 17 rexbida ( ( 𝜑𝑖𝑍 ) → ( ∃ 𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ↔ ∃ 𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ) )
19 18 ralbidva ( 𝜑 → ( ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ↔ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ) )
20 19 rexbidv ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ↔ ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ) )
21 breq1 ( 𝑦 = 𝑥 → ( 𝑦𝐵𝑥𝐵 ) )
22 21 rexbidv ( 𝑦 = 𝑥 → ( ∃ 𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ↔ ∃ 𝑗 ∈ ( ℤ𝑖 ) 𝑥𝐵 ) )
23 22 ralbidv ( 𝑦 = 𝑥 → ( ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ↔ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑥𝐵 ) )
24 fveq2 ( 𝑖 = 𝑘 → ( ℤ𝑖 ) = ( ℤ𝑘 ) )
25 24 rexeqdv ( 𝑖 = 𝑘 → ( ∃ 𝑗 ∈ ( ℤ𝑖 ) 𝑥𝐵 ↔ ∃ 𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ) )
26 25 cbvralvw ( ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑥𝐵 ↔ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 )
27 26 a1i ( 𝑦 = 𝑥 → ( ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑥𝐵 ↔ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ) )
28 23 27 bitrd ( 𝑦 = 𝑥 → ( ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ↔ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ) )
29 28 cbvrexvw ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 )
30 29 a1i ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦𝐵 ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ) )
31 20 30 bitrd ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ) )
32 15 breq1d ( ( 𝜑𝑗𝑍 ) → ( ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦𝐵𝑦 ) )
33 1 32 ralbida ( 𝜑 → ( ∀ 𝑗𝑍 ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦 ↔ ∀ 𝑗𝑍 𝐵𝑦 ) )
34 33 rexbidv ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦 ↔ ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑦 ) )
35 breq2 ( 𝑦 = 𝑥 → ( 𝐵𝑦𝐵𝑥 ) )
36 35 ralbidv ( 𝑦 = 𝑥 → ( ∀ 𝑗𝑍 𝐵𝑦 ↔ ∀ 𝑗𝑍 𝐵𝑥 ) )
37 36 cbvrexvw ( ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑦 ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 )
38 37 a1i ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑦 ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 ) )
39 34 38 bitrd ( 𝜑 → ( ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦 ↔ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 ) )
40 31 39 anbi12d ( 𝜑 → ( ( ∃ 𝑦 ∈ ℝ ∀ 𝑖𝑍𝑗 ∈ ( ℤ𝑖 ) 𝑦 ≤ ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ∧ ∃ 𝑦 ∈ ℝ ∀ 𝑗𝑍 ( ( 𝑗𝑍𝐵 ) ‘ 𝑗 ) ≤ 𝑦 ) ↔ ( ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ∧ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 ) ) )
41 7 40 bitrd ( 𝜑 → ( ( lim sup ‘ ( 𝑗𝑍𝐵 ) ) ∈ ℝ ↔ ( ∃ 𝑥 ∈ ℝ ∀ 𝑘𝑍𝑗 ∈ ( ℤ𝑘 ) 𝑥𝐵 ∧ ∃ 𝑥 ∈ ℝ ∀ 𝑗𝑍 𝐵𝑥 ) ) )