| Step | Hyp | Ref | Expression | 
						
							| 1 |  | ffvelcdm |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( F ` x ) e. ( C ^m B ) ) | 
						
							| 2 |  | elmapi |  |-  ( ( F ` x ) e. ( C ^m B ) -> ( F ` x ) : B --> C ) | 
						
							| 3 | 1 2 | syl |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( F ` x ) : B --> C ) | 
						
							| 4 | 3 | ffvelcdmda |  |-  ( ( ( F : A --> ( C ^m B ) /\ x e. A ) /\ y e. B ) -> ( ( F ` x ) ` y ) e. C ) | 
						
							| 5 | 4 | anasss |  |-  ( ( F : A --> ( C ^m B ) /\ ( x e. A /\ y e. B ) ) -> ( ( F ` x ) ` y ) e. C ) | 
						
							| 6 | 5 | ralrimivva |  |-  ( F : A --> ( C ^m B ) -> A. x e. A A. y e. B ( ( F ` x ) ` y ) e. C ) | 
						
							| 7 |  | df-unc |  |-  uncurry F = { <. <. x , y >. , z >. | y ( F ` x ) z } | 
						
							| 8 |  | df-br |  |-  ( y ( F ` x ) z <-> <. y , z >. e. ( F ` x ) ) | 
						
							| 9 |  | elfvdm |  |-  ( <. y , z >. e. ( F ` x ) -> x e. dom F ) | 
						
							| 10 | 8 9 | sylbi |  |-  ( y ( F ` x ) z -> x e. dom F ) | 
						
							| 11 |  | fdm |  |-  ( F : A --> ( C ^m B ) -> dom F = A ) | 
						
							| 12 | 11 | eleq2d |  |-  ( F : A --> ( C ^m B ) -> ( x e. dom F <-> x e. A ) ) | 
						
							| 13 | 10 12 | imbitrid |  |-  ( F : A --> ( C ^m B ) -> ( y ( F ` x ) z -> x e. A ) ) | 
						
							| 14 | 13 | pm4.71rd |  |-  ( F : A --> ( C ^m B ) -> ( y ( F ` x ) z <-> ( x e. A /\ y ( F ` x ) z ) ) ) | 
						
							| 15 |  | elmapfun |  |-  ( ( F ` x ) e. ( C ^m B ) -> Fun ( F ` x ) ) | 
						
							| 16 |  | funbrfv2b |  |-  ( Fun ( F ` x ) -> ( y ( F ` x ) z <-> ( y e. dom ( F ` x ) /\ ( ( F ` x ) ` y ) = z ) ) ) | 
						
							| 17 | 1 15 16 | 3syl |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( y ( F ` x ) z <-> ( y e. dom ( F ` x ) /\ ( ( F ` x ) ` y ) = z ) ) ) | 
						
							| 18 |  | fdm |  |-  ( ( F ` x ) : B --> C -> dom ( F ` x ) = B ) | 
						
							| 19 | 1 2 18 | 3syl |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> dom ( F ` x ) = B ) | 
						
							| 20 | 19 | eleq2d |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( y e. dom ( F ` x ) <-> y e. B ) ) | 
						
							| 21 |  | eqcom |  |-  ( ( ( F ` x ) ` y ) = z <-> z = ( ( F ` x ) ` y ) ) | 
						
							| 22 | 21 | a1i |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( ( ( F ` x ) ` y ) = z <-> z = ( ( F ` x ) ` y ) ) ) | 
						
							| 23 | 20 22 | anbi12d |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( ( y e. dom ( F ` x ) /\ ( ( F ` x ) ` y ) = z ) <-> ( y e. B /\ z = ( ( F ` x ) ` y ) ) ) ) | 
						
							| 24 | 17 23 | bitrd |  |-  ( ( F : A --> ( C ^m B ) /\ x e. A ) -> ( y ( F ` x ) z <-> ( y e. B /\ z = ( ( F ` x ) ` y ) ) ) ) | 
						
							| 25 | 24 | pm5.32da |  |-  ( F : A --> ( C ^m B ) -> ( ( x e. A /\ y ( F ` x ) z ) <-> ( x e. A /\ ( y e. B /\ z = ( ( F ` x ) ` y ) ) ) ) ) | 
						
							| 26 | 14 25 | bitrd |  |-  ( F : A --> ( C ^m B ) -> ( y ( F ` x ) z <-> ( x e. A /\ ( y e. B /\ z = ( ( F ` x ) ` y ) ) ) ) ) | 
						
							| 27 |  | anass |  |-  ( ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) <-> ( x e. A /\ ( y e. B /\ z = ( ( F ` x ) ` y ) ) ) ) | 
						
							| 28 | 26 27 | bitr4di |  |-  ( F : A --> ( C ^m B ) -> ( y ( F ` x ) z <-> ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) ) ) | 
						
							| 29 | 28 | oprabbidv |  |-  ( F : A --> ( C ^m B ) -> { <. <. x , y >. , z >. | y ( F ` x ) z } = { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } ) | 
						
							| 30 | 7 29 | eqtrid |  |-  ( F : A --> ( C ^m B ) -> uncurry F = { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } ) | 
						
							| 31 | 30 | feq1d |  |-  ( F : A --> ( C ^m B ) -> ( uncurry F : ( A X. B ) --> C <-> { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } : ( A X. B ) --> C ) ) | 
						
							| 32 |  | df-mpo |  |-  ( x e. A , y e. B |-> ( ( F ` x ) ` y ) ) = { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } | 
						
							| 33 | 32 | eqcomi |  |-  { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } = ( x e. A , y e. B |-> ( ( F ` x ) ` y ) ) | 
						
							| 34 | 33 | fmpo |  |-  ( A. x e. A A. y e. B ( ( F ` x ) ` y ) e. C <-> { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = ( ( F ` x ) ` y ) ) } : ( A X. B ) --> C ) | 
						
							| 35 | 31 34 | bitr4di |  |-  ( F : A --> ( C ^m B ) -> ( uncurry F : ( A X. B ) --> C <-> A. x e. A A. y e. B ( ( F ` x ) ` y ) e. C ) ) | 
						
							| 36 | 6 35 | mpbird |  |-  ( F : A --> ( C ^m B ) -> uncurry F : ( A X. B ) --> C ) |