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

Theorem uncf1 15363
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 15361 . . . 4  |-  ( ph  ->  F  =  ( ( D evalF 
E )  o.func  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) ) ) )
65fveq2d 5870 . . 3  |-  ( ph  ->  ( 1st `  F
)  =  ( 1st `  ( ( D evalF  E )  o.func  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) ) )
76oveqd 6301 . 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 6287 . . 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 2467 . . . . 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 15305 . . . 4  |-  ( A  X.  B )  =  ( Base `  ( C  X.c  D ) )
13 eqid 2467 . . . . 5  |-  ( ( G  o.func  ( C  1stF  D )
) ⟨,⟩F  ( C  2ndF  D ) )  =  ( ( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
)
14 eqid 2467 . . . . 5  |-  ( ( D FuncCat  E )  X.c  D )  =  ( ( D FuncCat  E )  X.c  D )
15 funcrcl 15090 . . . . . . . . 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 2467 . . . . . . 7  |-  ( C  1stF  D )  =  ( C  1stF  D )
199, 17, 2, 181stfcl 15324 . . . . . 6  |-  ( ph  ->  ( C  1stF  D )  e.  ( ( C  X.c  D
)  Func  C )
)
2019, 4cofucl 15115 . . . . 5  |-  ( ph  ->  ( G  o.func  ( C  1stF  D ) )  e.  ( ( C  X.c  D ) 
Func  ( D FuncCat  E
) ) )
21 eqid 2467 . . . . . 6  |-  ( C  2ndF  D )  =  ( C  2ndF  D )
229, 17, 2, 212ndfcl 15325 . . . . 5  |-  ( ph  ->  ( C  2ndF  D )  e.  ( ( C  X.c  D
)  Func  D )
)
2313, 14, 20, 22prfcl 15330 . . . 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 2467 . . . . 5  |-  ( D evalF  E
)  =  ( D evalF  E
)
25 eqid 2467 . . . . 5  |-  ( D FuncCat  E )  =  ( D FuncCat  E )
2624, 25, 2, 3evlfcl 15349 . . . 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 5031 . . . . 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 15111 . . 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 2520 . 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 2467 . . . . . . 7  |-  ( Hom  `  ( C  X.c  D ) )  =  ( Hom  `  ( C  X.c  D ) )
3413, 12, 33, 20, 22, 30prf1 15327 . . . . . 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 15111 . . . . . . . 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 15319 . . . . . . . . . 10  |-  ( ph  ->  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. )  =  ( 1st `  <. X ,  Y >. )
)
37 op1stg 6796 . . . . . . . . . . 11  |-  ( ( X  e.  A  /\  Y  e.  B )  ->  ( 1st `  <. X ,  Y >. )  =  X )
3827, 28, 37syl2anc 661 . . . . . . . . . 10  |-  ( ph  ->  ( 1st `  <. X ,  Y >. )  =  X )
3936, 38eqtrd 2508 . . . . . . . . 9  |-  ( ph  ->  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. )  =  X )
4039fveq2d 5870 . . . . . . . 8  |-  ( ph  ->  ( ( 1st `  G
) `  ( ( 1st `  ( C  1stF  D ) ) `  <. X ,  Y >. ) )  =  ( ( 1st `  G
) `  X )
)
4135, 40eqtrd 2508 . . . . . . 7  |-  ( ph  ->  ( ( 1st `  ( G  o.func  ( C  1stF  D )
) ) `  <. X ,  Y >. )  =  ( ( 1st `  G ) `  X
) )
429, 12, 33, 17, 2, 21, 302ndf1 15322 . . . . . . . 8  |-  ( ph  ->  ( ( 1st `  ( C  2ndF  D ) ) `  <. X ,  Y >. )  =  ( 2nd `  <. X ,  Y >. )
)
43 op2ndg 6797 . . . . . . . . 9  |-  ( ( X  e.  A  /\  Y  e.  B )  ->  ( 2nd `  <. X ,  Y >. )  =  Y )
4427, 28, 43syl2anc 661 . . . . . . . 8  |-  ( ph  ->  ( 2nd `  <. X ,  Y >. )  =  Y )
4542, 44eqtrd 2508 . . . . . . 7  |-  ( ph  ->  ( ( 1st `  ( C  2ndF  D ) ) `  <. X ,  Y >. )  =  Y )
4641, 45opeq12d 4221 . . . . . 6  |-  ( ph  -> 
<. ( ( 1st `  ( G  o.func  ( C  1stF  D )
) ) `  <. X ,  Y >. ) ,  ( ( 1st `  ( C  2ndF  D )
) `  <. X ,  Y >. ) >.  =  <. ( ( 1st `  G
) `  X ) ,  Y >. )
4734, 46eqtrd 2508 . . . . 5  |-  ( ph  ->  ( ( 1st `  (
( G  o.func  ( C  1stF  D ) ) ⟨,⟩F  ( C  2ndF  D )
) ) `  <. X ,  Y >. )  =  <. ( ( 1st `  G ) `  X
) ,  Y >. )
4847fveq2d 5870 . . . 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 6287 . . . 4  |-  ( ( ( 1st `  G
) `  X )
( 1st `  ( D evalF  E ) ) Y )  =  ( ( 1st `  ( D evalF  E ) ) `  <. ( ( 1st `  G
) `  X ) ,  Y >. )
5048, 49syl6eqr 2526 . . 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 15187 . . . . . 6  |-  ( D 
Func  E )  =  (
Base `  ( D FuncCat  E ) )
52 relfunc 15089 . . . . . . 7  |-  Rel  ( C  Func  ( D FuncCat  E
) )
53 1st2ndbr 6833 . . . . . . 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 15093 . . . . 5  |-  ( ph  ->  ( 1st `  G
) : A --> ( D 
Func  E ) )
5655, 27ffvelrnd 6022 . . . 4  |-  ( ph  ->  ( ( 1st `  G
) `  X )  e.  ( D  Func  E
) )
5724, 2, 3, 11, 56, 28evlf1 15347 . . 3  |-  ( ph  ->  ( ( ( 1st `  G ) `  X
) ( 1st `  ( D evalF  E ) ) Y )  =  ( ( 1st `  ( ( 1st `  G
) `  X )
) `  Y )
)
5850, 57eqtrd 2508 . 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 2512 1  |-  ( ph  ->  ( X ( 1st `  F ) Y )  =  ( ( 1st `  ( ( 1st `  G
) `  X )
) `  Y )
)
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    = wceq 1379    e. wcel 1767   <.cop 4033   class class class wbr 4447    X. cxp 4997   Rel wrel 5004   ` cfv 5588  (class class class)co 6284   1stc1st 6782   2ndc2nd 6783   <"cs3 12770   Basecbs 14490   Hom chom 14566   Catccat 14919    Func cfunc 15081    o.func ccofu 15083   FuncCat cfuc 15169    X.c cxpc 15295    1stF c1stf 15296    2ndF c2ndf 15297   ⟨,⟩F cprf 15298   evalF cevlf 15336   uncurryF cuncf 15338
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1601  ax-4 1612  ax-5 1680  ax-6 1719  ax-7 1739  ax-8 1769  ax-9 1771  ax-10 1786  ax-11 1791  ax-12 1803  ax-13 1968  ax-ext 2445  ax-rep 4558  ax-sep 4568  ax-nul 4576  ax-pow 4625  ax-pr 4686  ax-un 6576  ax-cnex 9548  ax-resscn 9549  ax-1cn 9550  ax-icn 9551  ax-addcl 9552  ax-addrcl 9553  ax-mulcl 9554  ax-mulrcl 9555  ax-mulcom 9556  ax-addass 9557  ax-mulass 9558  ax-distr 9559  ax-i2m1 9560  ax-1ne0 9561  ax-1rid 9562  ax-rnegex 9563  ax-rrecex 9564  ax-cnre 9565  ax-pre-lttri 9566  ax-pre-lttrn 9567  ax-pre-ltadd 9568  ax-pre-mulgt0 9569
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 974  df-3an 975  df-tru 1382  df-fal 1385  df-ex 1597  df-nf 1600  df-sb 1712  df-eu 2279  df-mo 2280  df-clab 2453  df-cleq 2459  df-clel 2462  df-nfc 2617  df-ne 2664  df-nel 2665  df-ral 2819  df-rex 2820  df-reu 2821  df-rmo 2822  df-rab 2823  df-v 3115  df-sbc 3332  df-csb 3436  df-dif 3479  df-un 3481  df-in 3483  df-ss 3490  df-pss 3492  df-nul 3786  df-if 3940  df-pw 4012  df-sn 4028  df-pr 4030  df-tp 4032  df-op 4034  df-uni 4246  df-int 4283  df-iun 4327  df-br 4448  df-opab 4506  df-mpt 4507  df-tr 4541  df-eprel 4791  df-id 4795  df-po 4800  df-so 4801  df-fr 4838  df-we 4840  df-ord 4881  df-on 4882  df-lim 4883  df-suc 4884  df-xp 5005  df-rel 5006  df-cnv 5007  df-co 5008  df-dm 5009  df-rn 5010  df-res 5011  df-ima 5012  df-iota 5551  df-fun 5590  df-fn 5591  df-f 5592  df-f1 5593  df-fo 5594  df-f1o 5595  df-fv 5596  df-riota 6245  df-ov 6287  df-oprab 6288  df-mpt2 6289  df-om 6685  df-1st 6784  df-2nd 6785  df-recs 7042  df-rdg 7076  df-1o 7130  df-oadd 7134  df-er 7311  df-map 7422  df-ixp 7470  df-en 7517  df-dom 7518  df-sdom 7519  df-fin 7520  df-card 8320  df-pnf 9630  df-mnf 9631  df-xr 9632  df-ltxr 9633  df-le 9634  df-sub 9807  df-neg 9808  df-nn 10537  df-2 10594  df-3 10595  df-4 10596  df-5 10597  df-6 10598  df-7 10599  df-8 10600  df-9 10601  df-10 10602  df-n0 10796  df-z 10865  df-dec 10977  df-uz 11083  df-fz 11673  df-fzo 11793  df-hash 12374  df-word 12508  df-concat 12510  df-s1 12511  df-s2 12776  df-s3 12777  df-struct 14492  df-ndx 14493  df-slot 14494  df-base 14495  df-hom 14579  df-cco 14580  df-cat 14923  df-cid 14924  df-func 15085  df-cofu 15087  df-nat 15170  df-fuc 15171  df-xpc 15299  df-1stf 15300  df-2ndf 15301  df-prf 15302  df-evlf 15340  df-uncf 15342
This theorem is referenced by:  curfuncf  15365  uncfcurf  15366
  Copyright terms: Public domain W3C validator