Metamath Proof Explorer


Theorem limsupre2mpt

Description: Given a function on the extended reals, its supremum limit is real if and only if two condition holds: 1. there is a real number that is smaller than the function, at some point, in any upper part of the reals; 2. there is a real number that is eventually larger than the function. (Contributed by Glauco Siliprandi, 23-Oct-2021)

Ref Expression
Hypotheses limsupre2mpt.p
|- F/ x ph
limsupre2mpt.a
|- ( ph -> A C_ RR )
limsupre2mpt.b
|- ( ( ph /\ x e. A ) -> B e. RR* )
Assertion limsupre2mpt
|- ( ph -> ( ( limsup ` ( x e. A |-> B ) ) e. RR <-> ( E. y e. RR A. k e. RR E. x e. A ( k <_ x /\ y < B ) /\ E. y e. RR E. k e. RR A. x e. A ( k <_ x -> B < y ) ) ) )

Proof

Step Hyp Ref Expression
1 limsupre2mpt.p
 |-  F/ x ph
2 limsupre2mpt.a
 |-  ( ph -> A C_ RR )
3 limsupre2mpt.b
 |-  ( ( ph /\ x e. A ) -> B e. RR* )
4 nfmpt1
 |-  F/_ x ( x e. A |-> B )
5 1 3 fmptd2f
 |-  ( ph -> ( x e. A |-> B ) : A --> RR* )
6 4 2 5 limsupre2
 |-  ( ph -> ( ( limsup ` ( x e. A |-> B ) ) e. RR <-> ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) /\ E. w e. RR E. j e. RR A. x e. A ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) ) ) )
7 eqid
 |-  ( x e. A |-> B ) = ( x e. A |-> B )
8 7 a1i
 |-  ( ph -> ( x e. A |-> B ) = ( x e. A |-> B ) )
9 8 3 fvmpt2d
 |-  ( ( ph /\ x e. A ) -> ( ( x e. A |-> B ) ` x ) = B )
10 9 breq2d
 |-  ( ( ph /\ x e. A ) -> ( w < ( ( x e. A |-> B ) ` x ) <-> w < B ) )
11 10 anbi2d
 |-  ( ( ph /\ x e. A ) -> ( ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) <-> ( j <_ x /\ w < B ) ) )
12 1 11 rexbida
 |-  ( ph -> ( E. x e. A ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) <-> E. x e. A ( j <_ x /\ w < B ) ) )
13 12 ralbidv
 |-  ( ph -> ( A. j e. RR E. x e. A ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) <-> A. j e. RR E. x e. A ( j <_ x /\ w < B ) ) )
14 13 rexbidv
 |-  ( ph -> ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) <-> E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < B ) ) )
15 9 breq1d
 |-  ( ( ph /\ x e. A ) -> ( ( ( x e. A |-> B ) ` x ) < w <-> B < w ) )
16 15 imbi2d
 |-  ( ( ph /\ x e. A ) -> ( ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) <-> ( j <_ x -> B < w ) ) )
17 1 16 ralbida
 |-  ( ph -> ( A. x e. A ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) <-> A. x e. A ( j <_ x -> B < w ) ) )
18 17 rexbidv
 |-  ( ph -> ( E. j e. RR A. x e. A ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) <-> E. j e. RR A. x e. A ( j <_ x -> B < w ) ) )
19 18 rexbidv
 |-  ( ph -> ( E. w e. RR E. j e. RR A. x e. A ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) <-> E. w e. RR E. j e. RR A. x e. A ( j <_ x -> B < w ) ) )
20 14 19 anbi12d
 |-  ( ph -> ( ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < ( ( x e. A |-> B ) ` x ) ) /\ E. w e. RR E. j e. RR A. x e. A ( j <_ x -> ( ( x e. A |-> B ) ` x ) < w ) ) <-> ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < B ) /\ E. w e. RR E. j e. RR A. x e. A ( j <_ x -> B < w ) ) ) )
21 breq1
 |-  ( w = y -> ( w < B <-> y < B ) )
22 21 anbi2d
 |-  ( w = y -> ( ( j <_ x /\ w < B ) <-> ( j <_ x /\ y < B ) ) )
23 22 rexbidv
 |-  ( w = y -> ( E. x e. A ( j <_ x /\ w < B ) <-> E. x e. A ( j <_ x /\ y < B ) ) )
24 23 ralbidv
 |-  ( w = y -> ( A. j e. RR E. x e. A ( j <_ x /\ w < B ) <-> A. j e. RR E. x e. A ( j <_ x /\ y < B ) ) )
25 breq1
 |-  ( j = k -> ( j <_ x <-> k <_ x ) )
26 25 anbi1d
 |-  ( j = k -> ( ( j <_ x /\ y < B ) <-> ( k <_ x /\ y < B ) ) )
27 26 rexbidv
 |-  ( j = k -> ( E. x e. A ( j <_ x /\ y < B ) <-> E. x e. A ( k <_ x /\ y < B ) ) )
28 27 cbvralvw
 |-  ( A. j e. RR E. x e. A ( j <_ x /\ y < B ) <-> A. k e. RR E. x e. A ( k <_ x /\ y < B ) )
29 28 a1i
 |-  ( w = y -> ( A. j e. RR E. x e. A ( j <_ x /\ y < B ) <-> A. k e. RR E. x e. A ( k <_ x /\ y < B ) ) )
30 24 29 bitrd
 |-  ( w = y -> ( A. j e. RR E. x e. A ( j <_ x /\ w < B ) <-> A. k e. RR E. x e. A ( k <_ x /\ y < B ) ) )
31 30 cbvrexvw
 |-  ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < B ) <-> E. y e. RR A. k e. RR E. x e. A ( k <_ x /\ y < B ) )
32 breq2
 |-  ( w = y -> ( B < w <-> B < y ) )
33 32 imbi2d
 |-  ( w = y -> ( ( j <_ x -> B < w ) <-> ( j <_ x -> B < y ) ) )
34 33 ralbidv
 |-  ( w = y -> ( A. x e. A ( j <_ x -> B < w ) <-> A. x e. A ( j <_ x -> B < y ) ) )
35 34 rexbidv
 |-  ( w = y -> ( E. j e. RR A. x e. A ( j <_ x -> B < w ) <-> E. j e. RR A. x e. A ( j <_ x -> B < y ) ) )
36 25 imbi1d
 |-  ( j = k -> ( ( j <_ x -> B < y ) <-> ( k <_ x -> B < y ) ) )
37 36 ralbidv
 |-  ( j = k -> ( A. x e. A ( j <_ x -> B < y ) <-> A. x e. A ( k <_ x -> B < y ) ) )
38 37 cbvrexvw
 |-  ( E. j e. RR A. x e. A ( j <_ x -> B < y ) <-> E. k e. RR A. x e. A ( k <_ x -> B < y ) )
39 38 a1i
 |-  ( w = y -> ( E. j e. RR A. x e. A ( j <_ x -> B < y ) <-> E. k e. RR A. x e. A ( k <_ x -> B < y ) ) )
40 35 39 bitrd
 |-  ( w = y -> ( E. j e. RR A. x e. A ( j <_ x -> B < w ) <-> E. k e. RR A. x e. A ( k <_ x -> B < y ) ) )
41 40 cbvrexvw
 |-  ( E. w e. RR E. j e. RR A. x e. A ( j <_ x -> B < w ) <-> E. y e. RR E. k e. RR A. x e. A ( k <_ x -> B < y ) )
42 31 41 anbi12i
 |-  ( ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < B ) /\ E. w e. RR E. j e. RR A. x e. A ( j <_ x -> B < w ) ) <-> ( E. y e. RR A. k e. RR E. x e. A ( k <_ x /\ y < B ) /\ E. y e. RR E. k e. RR A. x e. A ( k <_ x -> B < y ) ) )
43 42 a1i
 |-  ( ph -> ( ( E. w e. RR A. j e. RR E. x e. A ( j <_ x /\ w < B ) /\ E. w e. RR E. j e. RR A. x e. A ( j <_ x -> B < w ) ) <-> ( E. y e. RR A. k e. RR E. x e. A ( k <_ x /\ y < B ) /\ E. y e. RR E. k e. RR A. x e. A ( k <_ x -> B < y ) ) ) )
44 6 20 43 3bitrd
 |-  ( ph -> ( ( limsup ` ( x e. A |-> B ) ) e. RR <-> ( E. y e. RR A. k e. RR E. x e. A ( k <_ x /\ y < B ) /\ E. y e. RR E. k e. RR A. x e. A ( k <_ x -> B < y ) ) ) )