Step |
Hyp |
Ref |
Expression |
1 |
|
rpxr |
|- ( R e. RR+ -> R e. RR* ) |
2 |
|
blvalps |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR* ) -> ( P ( ball ` D ) R ) = { x e. X | ( P D x ) < R } ) |
3 |
1 2
|
syl3an3 |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( P ( ball ` D ) R ) = { x e. X | ( P D x ) < R } ) |
4 |
|
nfv |
|- F/ x ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) |
5 |
|
nfcv |
|- F/_ x ( ( `' D " ( 0 [,) R ) ) " { P } ) |
6 |
|
nfrab1 |
|- F/_ x { x e. X | ( P D x ) < R } |
7 |
|
psmetf |
|- ( D e. ( PsMet ` X ) -> D : ( X X. X ) --> RR* ) |
8 |
|
ffn |
|- ( D : ( X X. X ) --> RR* -> D Fn ( X X. X ) ) |
9 |
|
elpreima |
|- ( D Fn ( X X. X ) -> ( <. P , x >. e. ( `' D " ( 0 [,) R ) ) <-> ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) ) ) |
10 |
7 8 9
|
3syl |
|- ( D e. ( PsMet ` X ) -> ( <. P , x >. e. ( `' D " ( 0 [,) R ) ) <-> ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) ) ) |
11 |
10
|
3ad2ant1 |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( <. P , x >. e. ( `' D " ( 0 [,) R ) ) <-> ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) ) ) |
12 |
|
opelxp |
|- ( <. P , x >. e. ( X X. X ) <-> ( P e. X /\ x e. X ) ) |
13 |
12
|
baib |
|- ( P e. X -> ( <. P , x >. e. ( X X. X ) <-> x e. X ) ) |
14 |
13
|
3ad2ant2 |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( <. P , x >. e. ( X X. X ) <-> x e. X ) ) |
15 |
14
|
biimpd |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( <. P , x >. e. ( X X. X ) -> x e. X ) ) |
16 |
15
|
adantrd |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) -> x e. X ) ) |
17 |
|
simprl |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ ( x e. X /\ ( P D x ) < R ) ) -> x e. X ) |
18 |
17
|
ex |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( ( x e. X /\ ( P D x ) < R ) -> x e. X ) ) |
19 |
|
simpl2 |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> P e. X ) |
20 |
19 13
|
syl |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( <. P , x >. e. ( X X. X ) <-> x e. X ) ) |
21 |
|
df-ov |
|- ( P D x ) = ( D ` <. P , x >. ) |
22 |
21
|
eleq1i |
|- ( ( P D x ) e. ( 0 [,) R ) <-> ( D ` <. P , x >. ) e. ( 0 [,) R ) ) |
23 |
|
0xr |
|- 0 e. RR* |
24 |
|
simpl3 |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> R e. RR+ ) |
25 |
24
|
rpxrd |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> R e. RR* ) |
26 |
|
elico1 |
|- ( ( 0 e. RR* /\ R e. RR* ) -> ( ( P D x ) e. ( 0 [,) R ) <-> ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) /\ ( P D x ) < R ) ) ) |
27 |
23 25 26
|
sylancr |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( P D x ) e. ( 0 [,) R ) <-> ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) /\ ( P D x ) < R ) ) ) |
28 |
|
df-3an |
|- ( ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) /\ ( P D x ) < R ) <-> ( ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) ) /\ ( P D x ) < R ) ) |
29 |
|
simpl1 |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> D e. ( PsMet ` X ) ) |
30 |
|
simpr |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> x e. X ) |
31 |
|
psmetcl |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ x e. X ) -> ( P D x ) e. RR* ) |
32 |
29 19 30 31
|
syl3anc |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( P D x ) e. RR* ) |
33 |
|
psmetge0 |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ x e. X ) -> 0 <_ ( P D x ) ) |
34 |
29 19 30 33
|
syl3anc |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> 0 <_ ( P D x ) ) |
35 |
32 34
|
jca |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) ) ) |
36 |
35
|
biantrurd |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( P D x ) < R <-> ( ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) ) /\ ( P D x ) < R ) ) ) |
37 |
28 36
|
bitr4id |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( ( P D x ) e. RR* /\ 0 <_ ( P D x ) /\ ( P D x ) < R ) <-> ( P D x ) < R ) ) |
38 |
27 37
|
bitrd |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( P D x ) e. ( 0 [,) R ) <-> ( P D x ) < R ) ) |
39 |
22 38
|
bitr3id |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( D ` <. P , x >. ) e. ( 0 [,) R ) <-> ( P D x ) < R ) ) |
40 |
20 39
|
anbi12d |
|- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) /\ x e. X ) -> ( ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) <-> ( x e. X /\ ( P D x ) < R ) ) ) |
41 |
40
|
ex |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( x e. X -> ( ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) <-> ( x e. X /\ ( P D x ) < R ) ) ) ) |
42 |
16 18 41
|
pm5.21ndd |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( ( <. P , x >. e. ( X X. X ) /\ ( D ` <. P , x >. ) e. ( 0 [,) R ) ) <-> ( x e. X /\ ( P D x ) < R ) ) ) |
43 |
11 42
|
bitrd |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( <. P , x >. e. ( `' D " ( 0 [,) R ) ) <-> ( x e. X /\ ( P D x ) < R ) ) ) |
44 |
|
elimasng |
|- ( ( P e. X /\ x e. _V ) -> ( x e. ( ( `' D " ( 0 [,) R ) ) " { P } ) <-> <. P , x >. e. ( `' D " ( 0 [,) R ) ) ) ) |
45 |
44
|
elvd |
|- ( P e. X -> ( x e. ( ( `' D " ( 0 [,) R ) ) " { P } ) <-> <. P , x >. e. ( `' D " ( 0 [,) R ) ) ) ) |
46 |
45
|
3ad2ant2 |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( x e. ( ( `' D " ( 0 [,) R ) ) " { P } ) <-> <. P , x >. e. ( `' D " ( 0 [,) R ) ) ) ) |
47 |
|
rabid |
|- ( x e. { x e. X | ( P D x ) < R } <-> ( x e. X /\ ( P D x ) < R ) ) |
48 |
47
|
a1i |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( x e. { x e. X | ( P D x ) < R } <-> ( x e. X /\ ( P D x ) < R ) ) ) |
49 |
43 46 48
|
3bitr4d |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( x e. ( ( `' D " ( 0 [,) R ) ) " { P } ) <-> x e. { x e. X | ( P D x ) < R } ) ) |
50 |
4 5 6 49
|
eqrd |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( ( `' D " ( 0 [,) R ) ) " { P } ) = { x e. X | ( P D x ) < R } ) |
51 |
3 50
|
eqtr4d |
|- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) -> ( P ( ball ` D ) R ) = ( ( `' D " ( 0 [,) R ) ) " { P } ) ) |