Metamath Proof Explorer


Theorem istotbnd

Description: The predicate "is a totally bounded metric space". (Contributed by Jeff Madsen, 2-Sep-2009)

Ref Expression
Assertion istotbnd
|- ( M e. ( TotBnd ` X ) <-> ( M e. ( Met ` X ) /\ A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )

Proof

Step Hyp Ref Expression
1 elfvex
 |-  ( M e. ( TotBnd ` X ) -> X e. _V )
2 elfvex
 |-  ( M e. ( Met ` X ) -> X e. _V )
3 2 adantr
 |-  ( ( M e. ( Met ` X ) /\ A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) -> X e. _V )
4 fveq2
 |-  ( y = X -> ( Met ` y ) = ( Met ` X ) )
5 eqeq2
 |-  ( y = X -> ( U. v = y <-> U. v = X ) )
6 rexeq
 |-  ( y = X -> ( E. x e. y b = ( x ( ball ` m ) d ) <-> E. x e. X b = ( x ( ball ` m ) d ) ) )
7 6 ralbidv
 |-  ( y = X -> ( A. b e. v E. x e. y b = ( x ( ball ` m ) d ) <-> A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) )
8 5 7 anbi12d
 |-  ( y = X -> ( ( U. v = y /\ A. b e. v E. x e. y b = ( x ( ball ` m ) d ) ) <-> ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) ) )
9 8 rexbidv
 |-  ( y = X -> ( E. v e. Fin ( U. v = y /\ A. b e. v E. x e. y b = ( x ( ball ` m ) d ) ) <-> E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) ) )
10 9 ralbidv
 |-  ( y = X -> ( A. d e. RR+ E. v e. Fin ( U. v = y /\ A. b e. v E. x e. y b = ( x ( ball ` m ) d ) ) <-> A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) ) )
11 4 10 rabeqbidv
 |-  ( y = X -> { m e. ( Met ` y ) | A. d e. RR+ E. v e. Fin ( U. v = y /\ A. b e. v E. x e. y b = ( x ( ball ` m ) d ) ) } = { m e. ( Met ` X ) | A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) } )
12 df-totbnd
 |-  TotBnd = ( y e. _V |-> { m e. ( Met ` y ) | A. d e. RR+ E. v e. Fin ( U. v = y /\ A. b e. v E. x e. y b = ( x ( ball ` m ) d ) ) } )
13 fvex
 |-  ( Met ` X ) e. _V
14 13 rabex
 |-  { m e. ( Met ` X ) | A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) } e. _V
15 11 12 14 fvmpt
 |-  ( X e. _V -> ( TotBnd ` X ) = { m e. ( Met ` X ) | A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) } )
16 15 eleq2d
 |-  ( X e. _V -> ( M e. ( TotBnd ` X ) <-> M e. { m e. ( Met ` X ) | A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) } ) )
17 fveq2
 |-  ( m = M -> ( ball ` m ) = ( ball ` M ) )
18 17 oveqd
 |-  ( m = M -> ( x ( ball ` m ) d ) = ( x ( ball ` M ) d ) )
19 18 eqeq2d
 |-  ( m = M -> ( b = ( x ( ball ` m ) d ) <-> b = ( x ( ball ` M ) d ) ) )
20 19 rexbidv
 |-  ( m = M -> ( E. x e. X b = ( x ( ball ` m ) d ) <-> E. x e. X b = ( x ( ball ` M ) d ) ) )
21 20 ralbidv
 |-  ( m = M -> ( A. b e. v E. x e. X b = ( x ( ball ` m ) d ) <-> A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) )
22 21 anbi2d
 |-  ( m = M -> ( ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) <-> ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )
23 22 rexbidv
 |-  ( m = M -> ( E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) <-> E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )
24 23 ralbidv
 |-  ( m = M -> ( A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) <-> A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )
25 24 elrab
 |-  ( M e. { m e. ( Met ` X ) | A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` m ) d ) ) } <-> ( M e. ( Met ` X ) /\ A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )
26 16 25 bitrdi
 |-  ( X e. _V -> ( M e. ( TotBnd ` X ) <-> ( M e. ( Met ` X ) /\ A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) ) )
27 1 3 26 pm5.21nii
 |-  ( M e. ( TotBnd ` X ) <-> ( M e. ( Met ` X ) /\ A. d e. RR+ E. v e. Fin ( U. v = X /\ A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) )