MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  uncf1 Structured version   Unicode version

Theorem uncf1 15051
Description: Value of the uncurry functor on an object. (Contributed by Mario Carneiro, 13-Jan-2017.)
Hypotheses
Ref Expression
uncfval.g  |-  F  =  ( <" C D E "> uncurryF  G )
uncfval.c  |-  ( ph  ->  D  e.  Cat )
uncfval.d  |-  ( ph  ->  E  e.  Cat )
uncfval.f  |-  ( ph  ->  G  e.  ( C 
Func  ( D FuncCat  E
) ) )
uncf1.a  |-  A  =  ( Base `  C
)
uncf1.b  |-  B  =  ( Base `  D
)
uncf1.x  |-  ( ph  ->  X  e.  A )
uncf1.y  |-  ( ph  ->  Y  e.  B )
Assertion
Ref Expression
uncf1  |-  ( ph  ->  ( X ( 1st `  F ) Y )  =  ( ( 1st `  ( ( 1st `  G
) `  X )
) `  Y )
)

Proof of Theorem uncf1
StepHypRef Expression
1 uncfval.g . . . . 5  |-  F  =  ( <" C D E "> uncurryF  G )
2 uncfval.c . . . . 5  |-  ( ph  ->  D  e.  Cat )
3 uncfval.d . . . . 5  |-  ( ph  ->  E  e.  Cat )
4 uncfval.f . . . . 5  |-  ( ph  ->  G  e.  ( C 
Func  ( D FuncCat  E
) ) )
51, 2, 3, 4uncfval 15049 . . . 4  |-  ( ph  ->  F  =  ( ( D evalF 
E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) )
65fveq2d 5700 . . 3  |-  ( ph  ->  ( 1st `  F
)  =  ( 1st `  ( ( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) ) )
76oveqd 6113 . 2  |-  ( ph  ->  ( X ( 1st `  F ) Y )  =  ( X ( 1st `  ( ( D evalF 
E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) ) Y ) )
8 df-ov 6099 . . 3  |-  ( X ( 1st `  (
( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) ) Y )  =  ( ( 1st `  (
( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) ) `  <. X ,  Y >. )
9 eqid 2443 . . . . 5  |-  ( C  X.c  D )  =  ( C  X.c  D )
10 uncf1.a . . . . 5  |-  A  =  ( Base `  C
)
11 uncf1.b . . . . 5  |-  B  =  ( Base `  D
)
129, 10, 11xpcbas 14993 . . . 4  |-  ( A  X.  B )  =  ( Base `  ( C  X.c  D ) )
13 eqid 2443 . . . . 5  |-  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) )  =  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
)
14 eqid 2443 . . . . 5  |-  ( ( D FuncCat  E )  X.c  D )  =  ( ( D FuncCat  E )  X.c  D )
15 funcrcl 14778 . . . . . . . . 9  |-  ( G  e.  ( C  Func  ( D FuncCat  E ) )  -> 
( C  e.  Cat  /\  ( D FuncCat  E )  e.  Cat ) )
164, 15syl 16 . . . . . . . 8  |-  ( ph  ->  ( C  e.  Cat  /\  ( D FuncCat  E )  e.  Cat ) )
1716simpld 459 . . . . . . 7  |-  ( ph  ->  C  e.  Cat )
18 eqid 2443 . . . . . . 7  |-  ( C  1stF  D )  =  ( C  1stF  D )
199, 17, 2, 181stfcl 15012 . . . . . 6  |-  ( ph  ->  ( C  1stF  D )  e.  ( ( C  X.c  D
)  Func  C )
)
2019, 4cofucl 14803 . . . . 5  |-  ( ph  ->  ( G  o.func  ( C  1stF  D ) )  e.  ( ( C  X.c  D ) 
Func  ( D FuncCat  E
) ) )
21 eqid 2443 . . . . . 6  |-  ( C  2ndF  D )  =  ( C  2ndF  D )
229, 17, 2, 212ndfcl 15013 . . . . 5  |-  ( ph  ->  ( C  2ndF  D )  e.  ( ( C  X.c  D
)  Func  D )
)
2313, 14, 20, 22prfcl 15018 . . . 4  |-  ( ph  ->  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
)  e.  ( ( C  X.c  D )  Func  (
( D FuncCat  E )  X.c  D ) ) )
24 eqid 2443 . . . . 5  |-  ( D evalF  E
)  =  ( D evalF  E
)
25 eqid 2443 . . . . 5  |-  ( D FuncCat  E )  =  ( D FuncCat  E )
2624, 25, 2, 3evlfcl 15037 . . . 4  |-  ( ph  ->  ( D evalF  E )  e.  ( ( ( D FuncCat  E
)  X.c  D )  Func  E
) )
27 uncf1.x . . . . 5  |-  ( ph  ->  X  e.  A )
28 uncf1.y . . . . 5  |-  ( ph  ->  Y  e.  B )
29 opelxpi 4876 . . . . 5  |-  ( ( X  e.  A  /\  Y  e.  B )  -> 
<. X ,  Y >.  e.  ( A  X.  B
) )
3027, 28, 29syl2anc 661 . . . 4  |-  ( ph  -> 
<. X ,  Y >.  e.  ( A  X.  B
) )
3112, 23, 26, 30cofu1 14799 . . 3  |-  ( ph  ->  ( ( 1st `  (
( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) ) `  <. X ,  Y >. )  =  ( ( 1st `  ( D evalF  E ) ) `  (
( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )
) )
328, 31syl5eq 2487 . 2  |-  ( ph  ->  ( X ( 1st `  ( ( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) ) Y )  =  ( ( 1st `  ( D evalF  E
) ) `  (
( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )
) )
33 eqid 2443 . . . . . . 7  |-  ( Hom  `  ( C  X.c  D ) )  =  ( Hom  `  ( C  X.c  D ) )
3413, 12, 33, 20, 22, 30prf1 15015 . . . . . 6  |-  ( ph  ->  ( ( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )  =  <. ( ( 1st `  ( G  o.func  ( C  1stF  D ) ) ) `  <. X ,  Y >. ) ,  ( ( 1st `  ( C  2ndF  D )
) `  <. X ,  Y >. ) >. )
3512, 19, 4, 30cofu1 14799 . . . . . . . 8  |-  ( ph  ->  ( ( 1st `  ( G  o.func  ( C  1stF  D )
) ) `  <. X ,  Y >. )  =  ( ( 1st `  G ) `  (
( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. ) ) )
369, 12, 33, 17, 2, 18, 301stf1 15007 . . . . . . . . . 10  |-  ( ph  ->  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. )  =  ( 1st `  <. X ,  Y >. )
)
37 op1stg 6594 . . . . . . . . . . 11  |-  ( ( X  e.  A  /\  Y  e.  B )  ->  ( 1st `  <. X ,  Y >. )  =  X )
3827, 28, 37syl2anc 661 . . . . . . . . . 10  |-  ( ph  ->  ( 1st `  <. X ,  Y >. )  =  X )
3936, 38eqtrd 2475 . . . . . . . . 9  |-  ( ph  ->  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. )  =  X )
4039fveq2d 5700 . . . . . . . 8  |-  ( ph  ->  ( ( 1st `  G
) `  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. ) )  =  ( ( 1st `  G
) `  X )
)
4135, 40eqtrd 2475 . . . . . . 7  |-  ( ph  ->  ( ( 1st `  ( G  o.func  ( C  1stF  D )
) ) `  <. X ,  Y >. )  =  ( ( 1st `  G ) `  X
) )
429, 12, 33, 17, 2, 21, 302ndf1 15010 . . . . . . . 8  |-  ( ph  ->  ( ( 1st `  ( C  2ndF  D ) ) `  <. X ,  Y >. )  =  ( 2nd `  <. X ,  Y >. )
)
43 op2ndg 6595 . . . . . . . . 9  |-  ( ( X  e.  A  /\  Y  e.  B )  ->  ( 2nd `  <. X ,  Y >. )  =  Y )
4427, 28, 43syl2anc 661 . . . . . . . 8  |-  ( ph  ->  ( 2nd `  <. X ,  Y >. )  =  Y )
4542, 44eqtrd 2475 . . . . . . 7  |-  ( ph  ->  ( ( 1st `  ( C  2ndF  D ) ) `  <. X ,  Y >. )  =  Y )
4641, 45opeq12d 4072 . . . . . 6  |-  ( ph  -> 
<. ( ( 1st `  ( G  o.func  ( C  1stF  D )
) ) `  <. X ,  Y >. ) ,  ( ( 1st `  ( C  2ndF  D )
) `  <. X ,  Y >. ) >.  =  <. ( ( 1st `  G
) `  X ) ,  Y >. )
4734, 46eqtrd 2475 . . . . 5  |-  ( ph  ->  ( ( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )  =  <. ( ( 1st `  G ) `  X
) ,  Y >. )
4847fveq2d 5700 . . . 4  |-  ( ph  ->  ( ( 1st `  ( D evalF  E ) ) `  (
( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )
)  =  ( ( 1st `  ( D evalF  E
) ) `  <. ( ( 1st `  G
) `  X ) ,  Y >. ) )
49 df-ov 6099 . . . 4  |-  ( ( ( 1st `  G
) `  X )
( 1st `  ( D evalF  E ) ) Y )  =  ( ( 1st `  ( D evalF  E ) ) `  <. ( ( 1st `  G
) `  X ) ,  Y >. )
5048, 49syl6eqr 2493 . . 3  |-  ( ph  ->  ( ( 1st `  ( D evalF  E ) ) `  (
( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )
)  =  ( ( ( 1st `  G
) `  X )
( 1st `  ( D evalF  E ) ) Y ) )
5125fucbas 14875 . . . . . 6  |-  ( D 
Func  E )  =  (
Base `  ( D FuncCat  E ) )
52 relfunc 14777 . . . . . . 7  |-  Rel  ( C  Func  ( D FuncCat  E
) )
53 1st2ndbr 6628 . . . . . . 7  |-  ( ( Rel  ( C  Func  ( D FuncCat  E ) )  /\  G  e.  ( C  Func  ( D FuncCat  E )
) )  ->  ( 1st `  G ) ( C  Func  ( D FuncCat  E ) ) ( 2nd `  G ) )
5452, 4, 53sylancr 663 . . . . . 6  |-  ( ph  ->  ( 1st `  G
) ( C  Func  ( D FuncCat  E ) ) ( 2nd `  G ) )
5510, 51, 54funcf1 14781 . . . . 5  |-  ( ph  ->  ( 1st `  G
) : A --> ( D 
Func  E ) )
5655, 27ffvelrnd 5849 . . . 4  |-  ( ph  ->  ( ( 1st `  G
) `  X )  e.  ( D  Func  E
) )
5724, 2, 3, 11, 56, 28evlf1 15035 . . 3  |-  ( ph  ->  ( ( ( 1st `  G ) `  X
) ( 1st `  ( D evalF  E ) ) Y )  =  ( ( 1st `  ( ( 1st `  G
) `  X )
) `  Y )
)
5850, 57eqtrd 2475 . 2  |-  ( ph  ->  ( ( 1st `  ( D evalF  E ) ) `  (
( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )
)  =  ( ( 1st `  ( ( 1st `  G ) `
 X ) ) `
 Y ) )
597, 32, 583eqtrd 2479 1  |-  ( ph  ->  ( X ( 1st `  F ) Y )  =  ( ( 1st `  ( ( 1st `  G
) `  X )
) `  Y )
)
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    = wceq 1369    e. wcel 1756   <.cop 3888   class class class wbr 4297    X. cxp 4843   Rel wrel 4850   ` cfv 5423  (class class class)co 6096   1stc1st 6580   2ndc2nd 6581   <"cs3 12474   Basecbs 14179   Hom chom 14254   Catccat 14607    Func cfunc 14769    o.func ccofu 14771   FuncCat cfuc 14857    X.c cxpc 14983    1stF c1stf 14984    2ndF c2ndf 14985   ⟨,⟩F cprf 14986   evalF cevlf 15024   uncurryF cuncf 15026
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1591  ax-4 1602  ax-5 1670  ax-6 1708  ax-7 1728  ax-8 1758  ax-9 1760  ax-10 1775  ax-11 1780  ax-12 1792  ax-13 1943  ax-ext 2423  ax-rep 4408  ax-sep 4418  ax-nul 4426  ax-pow 4475  ax-pr 4536  ax-un 6377  ax-cnex 9343  ax-resscn 9344  ax-1cn 9345  ax-icn 9346  ax-addcl 9347  ax-addrcl 9348  ax-mulcl 9349  ax-mulrcl 9350  ax-mulcom 9351  ax-addass 9352  ax-mulass 9353  ax-distr 9354  ax-i2m1 9355  ax-1ne0 9356  ax-1rid 9357  ax-rnegex 9358  ax-rrecex 9359  ax-cnre 9360  ax-pre-lttri 9361  ax-pre-lttrn 9362  ax-pre-ltadd 9363  ax-pre-mulgt0 9364
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1372  df-fal 1375  df-ex 1587  df-nf 1590  df-sb 1701  df-eu 2257  df-mo 2258  df-clab 2430  df-cleq 2436  df-clel 2439  df-nfc 2573  df-ne 2613  df-nel 2614  df-ral 2725  df-rex 2726  df-reu 2727  df-rmo 2728  df-rab 2729  df-v 2979  df-sbc 3192  df-csb 3294  df-dif 3336  df-un 3338  df-in 3340  df-ss 3347  df-pss 3349  df-nul 3643  df-if 3797  df-pw 3867  df-sn 3883  df-pr 3885  df-tp 3887  df-op 3889  df-uni 4097  df-int 4134  df-iun 4178  df-br 4298  df-opab 4356  df-mpt 4357  df-tr 4391  df-eprel 4637  df-id 4641  df-po 4646  df-so 4647  df-fr 4684  df-we 4686  df-ord 4727  df-on 4728  df-lim 4729  df-suc 4730  df-xp 4851  df-rel 4852  df-cnv 4853  df-co 4854  df-dm 4855  df-rn 4856  df-res 4857  df-ima 4858  df-iota 5386  df-fun 5425  df-fn 5426  df-f 5427  df-f1 5428  df-fo 5429  df-f1o 5430  df-fv 5431  df-riota 6057  df-ov 6099  df-oprab 6100  df-mpt2 6101  df-om 6482  df-1st 6582  df-2nd 6583  df-recs 6837  df-rdg 6871  df-1o 6925  df-oadd 6929  df-er 7106  df-map 7221  df-ixp 7269  df-en 7316  df-dom 7317  df-sdom 7318  df-fin 7319  df-card 8114  df-pnf 9425  df-mnf 9426  df-xr 9427  df-ltxr 9428  df-le 9429  df-sub 9602  df-neg 9603  df-nn 10328  df-2 10385  df-3 10386  df-4 10387  df-5 10388  df-6 10389  df-7 10390  df-8 10391  df-9 10392  df-10 10393  df-n0 10585  df-z 10652  df-dec 10761  df-uz 10867  df-fz 11443  df-fzo 11554  df-hash 12109  df-word 12234  df-concat 12236  df-s1 12237  df-s2 12480  df-s3 12481  df-struct 14181  df-ndx 14182  df-slot 14183  df-base 14184  df-hom 14267  df-cco 14268  df-cat 14611  df-cid 14612  df-func 14773  df-cofu 14775  df-nat 14858  df-fuc 14859  df-xpc 14987  df-1stf 14988  df-2ndf 14989  df-prf 14990  df-evlf 15028  df-uncf 15030
This theorem is referenced by:  curfuncf  15053  uncfcurf  15054
  Copyright terms: Public domain W3C validator