Users' Mathboxes Mathbox for Brendan Leahy < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  curf Structured version   Visualization version   Unicode version

Theorem curf 33387
Description: Functional property of currying. (Contributed by Brendan Leahy, 2-Jun-2021.)
Assertion
Ref Expression
curf  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } )  /\  C  e.  W )  -> curry  F : A
--> ( C  ^m  B
) )

Proof of Theorem curf
Dummy variables  x  y  z are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 opelxpi 5148 . . . . . . . 8  |-  ( ( x  e.  A  /\  y  e.  B )  -> 
<. x ,  y >.  e.  ( A  X.  B
) )
2 ffvelrn 6357 . . . . . . . 8  |-  ( ( F : ( A  X.  B ) --> C  /\  <. x ,  y
>.  e.  ( A  X.  B ) )  -> 
( F `  <. x ,  y >. )  e.  C )
31, 2sylan2 491 . . . . . . 7  |-  ( ( F : ( A  X.  B ) --> C  /\  ( x  e.  A  /\  y  e.  B ) )  -> 
( F `  <. x ,  y >. )  e.  C )
43anassrs 680 . . . . . 6  |-  ( ( ( F : ( A  X.  B ) --> C  /\  x  e.  A )  /\  y  e.  B )  ->  ( F `  <. x ,  y >. )  e.  C
)
5 eqid 2622 . . . . . 6  |-  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) )  =  ( y  e.  B  |->  ( F `  <. x ,  y >. )
)
64, 5fmptd 6385 . . . . 5  |-  ( ( F : ( A  X.  B ) --> C  /\  x  e.  A
)  ->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) : B --> C )
763ad2antl1 1223 . . . 4  |-  ( ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/)
} )  /\  C  e.  W )  /\  x  e.  A )  ->  (
y  e.  B  |->  ( F `  <. x ,  y >. )
) : B --> C )
8 elmapg 7870 . . . . . . 7  |-  ( ( C  e.  W  /\  B  e.  ( V  \  { (/) } ) )  ->  ( ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) )  e.  ( C  ^m  B )  <-> 
( y  e.  B  |->  ( F `  <. x ,  y >. )
) : B --> C ) )
98ancoms 469 . . . . . 6  |-  ( ( B  e.  ( V 
\  { (/) } )  /\  C  e.  W
)  ->  ( (
y  e.  B  |->  ( F `  <. x ,  y >. )
)  e.  ( C  ^m  B )  <->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) : B --> C ) )
1093adant1 1079 . . . . 5  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } )  /\  C  e.  W )  ->  (
( y  e.  B  |->  ( F `  <. x ,  y >. )
)  e.  ( C  ^m  B )  <->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) : B --> C ) )
1110adantr 481 . . . 4  |-  ( ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/)
} )  /\  C  e.  W )  /\  x  e.  A )  ->  (
( y  e.  B  |->  ( F `  <. x ,  y >. )
)  e.  ( C  ^m  B )  <->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) : B --> C ) )
127, 11mpbird 247 . . 3  |-  ( ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/)
} )  /\  C  e.  W )  /\  x  e.  A )  ->  (
y  e.  B  |->  ( F `  <. x ,  y >. )
)  e.  ( C  ^m  B ) )
13 eqid 2622 . . 3  |-  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) )  =  ( x  e.  A  |->  ( y  e.  B  |->  ( F `  <. x ,  y >. )
) )
1412, 13fmptd 6385 . 2  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } )  /\  C  e.  W )  ->  (
x  e.  A  |->  ( y  e.  B  |->  ( F `  <. x ,  y >. )
) ) : A --> ( C  ^m  B ) )
15 eldifsni 4320 . . . 4  |-  ( B  e.  ( V  \  { (/) } )  ->  B  =/=  (/) )
16 df-cur 7393 . . . . . 6  |- curry  F  =  ( x  e.  dom  dom 
F  |->  { <. y ,  z >.  |  <. x ,  y >. F z } )
17 fdm 6051 . . . . . . . . . 10  |-  ( F : ( A  X.  B ) --> C  ->  dom  F  =  ( A  X.  B ) )
1817dmeqd 5326 . . . . . . . . 9  |-  ( F : ( A  X.  B ) --> C  ->  dom  dom  F  =  dom  ( A  X.  B
) )
19 dmxp 5344 . . . . . . . . 9  |-  ( B  =/=  (/)  ->  dom  ( A  X.  B )  =  A )
2018, 19sylan9eq 2676 . . . . . . . 8  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  ->  dom  dom  F  =  A )
2120mpteq1d 4738 . . . . . . 7  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  -> 
( x  e.  dom  dom 
F  |->  { <. y ,  z >.  |  <. x ,  y >. F z } )  =  ( x  e.  A  |->  {
<. y ,  z >.  |  <. x ,  y
>. F z } ) )
22 ffun 6048 . . . . . . . . . . . . . 14  |-  ( F : ( A  X.  B ) --> C  ->  Fun  F )
23 funbrfv2b 6240 . . . . . . . . . . . . . 14  |-  ( Fun 
F  ->  ( <. x ,  y >. F z  <-> 
( <. x ,  y
>.  e.  dom  F  /\  ( F `  <. x ,  y >. )  =  z ) ) )
2422, 23syl 17 . . . . . . . . . . . . 13  |-  ( F : ( A  X.  B ) --> C  -> 
( <. x ,  y
>. F z  <->  ( <. x ,  y >.  e.  dom  F  /\  ( F `  <. x ,  y >.
)  =  z ) ) )
2517eleq2d 2687 . . . . . . . . . . . . . . 15  |-  ( F : ( A  X.  B ) --> C  -> 
( <. x ,  y
>.  e.  dom  F  <->  <. x ,  y >.  e.  ( A  X.  B ) ) )
26 opelxp 5146 . . . . . . . . . . . . . . 15  |-  ( <.
x ,  y >.  e.  ( A  X.  B
)  <->  ( x  e.  A  /\  y  e.  B ) )
2725, 26syl6bb 276 . . . . . . . . . . . . . 14  |-  ( F : ( A  X.  B ) --> C  -> 
( <. x ,  y
>.  e.  dom  F  <->  ( x  e.  A  /\  y  e.  B ) ) )
2827anbi1d 741 . . . . . . . . . . . . 13  |-  ( F : ( A  X.  B ) --> C  -> 
( ( <. x ,  y >.  e.  dom  F  /\  ( F `  <. x ,  y >.
)  =  z )  <-> 
( ( x  e.  A  /\  y  e.  B )  /\  ( F `  <. x ,  y >. )  =  z ) ) )
2924, 28bitrd 268 . . . . . . . . . . . 12  |-  ( F : ( A  X.  B ) --> C  -> 
( <. x ,  y
>. F z  <->  ( (
x  e.  A  /\  y  e.  B )  /\  ( F `  <. x ,  y >. )  =  z ) ) )
30 ibar 525 . . . . . . . . . . . . 13  |-  ( x  e.  A  ->  (
( y  e.  B  /\  z  =  ( F `  <. x ,  y >. ) )  <->  ( x  e.  A  /\  (
y  e.  B  /\  z  =  ( F `  <. x ,  y
>. ) ) ) ) )
31 anass 681 . . . . . . . . . . . . . 14  |-  ( ( ( x  e.  A  /\  y  e.  B
)  /\  z  =  ( F `  <. x ,  y >. )
)  <->  ( x  e.  A  /\  ( y  e.  B  /\  z  =  ( F `  <. x ,  y >.
) ) ) )
32 eqcom 2629 . . . . . . . . . . . . . . 15  |-  ( z  =  ( F `  <. x ,  y >.
)  <->  ( F `  <. x ,  y >.
)  =  z )
3332anbi2i 730 . . . . . . . . . . . . . 14  |-  ( ( ( x  e.  A  /\  y  e.  B
)  /\  z  =  ( F `  <. x ,  y >. )
)  <->  ( ( x  e.  A  /\  y  e.  B )  /\  ( F `  <. x ,  y >. )  =  z ) )
3431, 33bitr3i 266 . . . . . . . . . . . . 13  |-  ( ( x  e.  A  /\  ( y  e.  B  /\  z  =  ( F `  <. x ,  y >. ) ) )  <-> 
( ( x  e.  A  /\  y  e.  B )  /\  ( F `  <. x ,  y >. )  =  z ) )
3530, 34syl6rbb 277 . . . . . . . . . . . 12  |-  ( x  e.  A  ->  (
( ( x  e.  A  /\  y  e.  B )  /\  ( F `  <. x ,  y >. )  =  z )  <->  ( y  e.  B  /\  z  =  ( F `  <. x ,  y >. )
) ) )
3629, 35sylan9bb 736 . . . . . . . . . . 11  |-  ( ( F : ( A  X.  B ) --> C  /\  x  e.  A
)  ->  ( <. x ,  y >. F z  <-> 
( y  e.  B  /\  z  =  ( F `  <. x ,  y >. ) ) ) )
3736opabbidv 4716 . . . . . . . . . 10  |-  ( ( F : ( A  X.  B ) --> C  /\  x  e.  A
)  ->  { <. y ,  z >.  |  <. x ,  y >. F z }  =  { <. y ,  z >.  |  ( y  e.  B  /\  z  =  ( F `  <. x ,  y
>. ) ) } )
38 df-mpt 4730 . . . . . . . . . 10  |-  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) )  =  { <. y ,  z >.  |  ( y  e.  B  /\  z  =  ( F `  <. x ,  y >. )
) }
3937, 38syl6eqr 2674 . . . . . . . . 9  |-  ( ( F : ( A  X.  B ) --> C  /\  x  e.  A
)  ->  { <. y ,  z >.  |  <. x ,  y >. F z }  =  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) )
4039mpteq2dva 4744 . . . . . . . 8  |-  ( F : ( A  X.  B ) --> C  -> 
( x  e.  A  |->  { <. y ,  z
>.  |  <. x ,  y >. F z } )  =  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) ) )
4140adantr 481 . . . . . . 7  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  -> 
( x  e.  A  |->  { <. y ,  z
>.  |  <. x ,  y >. F z } )  =  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) ) )
4221, 41eqtrd 2656 . . . . . 6  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  -> 
( x  e.  dom  dom 
F  |->  { <. y ,  z >.  |  <. x ,  y >. F z } )  =  ( x  e.  A  |->  ( y  e.  B  |->  ( F `  <. x ,  y >. )
) ) )
4316, 42syl5eq 2668 . . . . 5  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  -> curry  F  =  ( x  e.  A  |->  ( y  e.  B  |->  ( F `  <. x ,  y >.
) ) ) )
4443feq1d 6030 . . . 4  |-  ( ( F : ( A  X.  B ) --> C  /\  B  =/=  (/) )  -> 
(curry  F : A --> ( C  ^m  B )  <->  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) ) : A --> ( C  ^m  B ) ) )
4515, 44sylan2 491 . . 3  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } ) )  ->  (curry  F : A --> ( C  ^m  B )  <->  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) ) : A --> ( C  ^m  B ) ) )
46453adant3 1081 . 2  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } )  /\  C  e.  W )  ->  (curry  F : A --> ( C  ^m  B )  <->  ( x  e.  A  |->  ( y  e.  B  |->  ( F `
 <. x ,  y
>. ) ) ) : A --> ( C  ^m  B ) ) )
4714, 46mpbird 247 1  |-  ( ( F : ( A  X.  B ) --> C  /\  B  e.  ( V  \  { (/) } )  /\  C  e.  W )  -> curry  F : A
--> ( C  ^m  B
) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 196    /\ wa 384    /\ w3a 1037    = wceq 1483    e. wcel 1990    =/= wne 2794    \ cdif 3571   (/)c0 3915   {csn 4177   <.cop 4183   class class class wbr 4653   {copab 4712    |-> cmpt 4729    X. cxp 5112   dom cdm 5114   Fun wfun 5882   -->wf 5884   ` cfv 5888  (class class class)co 6650  curry ccur 7391    ^m cmap 7857
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-ral 2917  df-rex 2918  df-rab 2921  df-v 3202  df-sbc 3436  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-op 4184  df-uni 4437  df-br 4654  df-opab 4713  df-mpt 4730  df-id 5024  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-fv 5896  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-cur 7393  df-map 7859
This theorem is referenced by:  unccur  33392  matunitlindflem1  33405  matunitlindflem2  33406
  Copyright terms: Public domain W3C validator