Metamath Proof Explorer


Theorem xpsdsfn

Description: Closure of the metric in a binary structure product. (Contributed by Mario Carneiro, 20-Aug-2015)

Ref Expression
Hypotheses xpsds.t
|- T = ( R Xs. S )
xpsds.x
|- X = ( Base ` R )
xpsds.y
|- Y = ( Base ` S )
xpsds.1
|- ( ph -> R e. V )
xpsds.2
|- ( ph -> S e. W )
xpsds.p
|- P = ( dist ` T )
Assertion xpsdsfn
|- ( ph -> P Fn ( ( X X. Y ) X. ( X X. Y ) ) )

Proof

Step Hyp Ref Expression
1 xpsds.t
 |-  T = ( R Xs. S )
2 xpsds.x
 |-  X = ( Base ` R )
3 xpsds.y
 |-  Y = ( Base ` S )
4 xpsds.1
 |-  ( ph -> R e. V )
5 xpsds.2
 |-  ( ph -> S e. W )
6 xpsds.p
 |-  P = ( dist ` T )
7 eqid
 |-  ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) = ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } )
8 eqid
 |-  ( Scalar ` R ) = ( Scalar ` R )
9 eqid
 |-  ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) = ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } )
10 1 2 3 4 5 7 8 9 xpsval
 |-  ( ph -> T = ( `' ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) "s ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) ) )
11 1 2 3 4 5 7 8 9 xpsrnbas
 |-  ( ph -> ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) = ( Base ` ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) ) )
12 7 xpsff1o2
 |-  ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ( X X. Y ) -1-1-onto-> ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } )
13 12 a1i
 |-  ( ph -> ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ( X X. Y ) -1-1-onto-> ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) )
14 f1ocnv
 |-  ( ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ( X X. Y ) -1-1-onto-> ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) -> `' ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) -1-1-onto-> ( X X. Y ) )
15 f1ofo
 |-  ( `' ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) -1-1-onto-> ( X X. Y ) -> `' ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) -onto-> ( X X. Y ) )
16 13 14 15 3syl
 |-  ( ph -> `' ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) : ran ( x e. X , y e. Y |-> { <. (/) , x >. , <. 1o , y >. } ) -onto-> ( X X. Y ) )
17 ovexd
 |-  ( ph -> ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) e. _V )
18 eqid
 |-  ( dist ` ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) ) = ( dist ` ( ( Scalar ` R ) Xs_ { <. (/) , R >. , <. 1o , S >. } ) )
19 10 11 16 17 18 6 imasdsfn
 |-  ( ph -> P Fn ( ( X X. Y ) X. ( X X. Y ) ) )