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

Theorem cofurid 15109
Description: The identity functor is a right identity for composition. (Contributed by Mario Carneiro, 3-Jan-2017.)
Hypotheses
Ref Expression
cofulid.g  |-  ( ph  ->  F  e.  ( C 
Func  D ) )
cofurid.1  |-  I  =  (idfunc `  C )
Assertion
Ref Expression
cofurid  |-  ( ph  ->  ( F  o.func  I )  =  F )

Proof of Theorem cofurid
Dummy variables  x  y are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 cofurid.1 . . . . . 6  |-  I  =  (idfunc `  C )
2 eqid 2462 . . . . . 6  |-  ( Base `  C )  =  (
Base `  C )
3 cofulid.g . . . . . . . 8  |-  ( ph  ->  F  e.  ( C 
Func  D ) )
4 funcrcl 15081 . . . . . . . 8  |-  ( F  e.  ( C  Func  D )  ->  ( C  e.  Cat  /\  D  e. 
Cat ) )
53, 4syl 16 . . . . . . 7  |-  ( ph  ->  ( C  e.  Cat  /\  D  e.  Cat )
)
65simpld 459 . . . . . 6  |-  ( ph  ->  C  e.  Cat )
71, 2, 6idfu1st 15097 . . . . 5  |-  ( ph  ->  ( 1st `  I
)  =  (  _I  |`  ( Base `  C
) ) )
87coeq2d 5158 . . . 4  |-  ( ph  ->  ( ( 1st `  F
)  o.  ( 1st `  I ) )  =  ( ( 1st `  F
)  o.  (  _I  |`  ( Base `  C
) ) ) )
9 eqid 2462 . . . . . 6  |-  ( Base `  D )  =  (
Base `  D )
10 relfunc 15080 . . . . . . 7  |-  Rel  ( C  Func  D )
11 1st2ndbr 6825 . . . . . . 7  |-  ( ( Rel  ( C  Func  D )  /\  F  e.  ( C  Func  D
) )  ->  ( 1st `  F ) ( C  Func  D )
( 2nd `  F
) )
1210, 3, 11sylancr 663 . . . . . 6  |-  ( ph  ->  ( 1st `  F
) ( C  Func  D ) ( 2nd `  F
) )
132, 9, 12funcf1 15084 . . . . 5  |-  ( ph  ->  ( 1st `  F
) : ( Base `  C ) --> ( Base `  D ) )
14 fcoi1 5752 . . . . 5  |-  ( ( 1st `  F ) : ( Base `  C
) --> ( Base `  D
)  ->  ( ( 1st `  F )  o.  (  _I  |`  ( Base `  C ) ) )  =  ( 1st `  F ) )
1513, 14syl 16 . . . 4  |-  ( ph  ->  ( ( 1st `  F
)  o.  (  _I  |`  ( Base `  C
) ) )  =  ( 1st `  F
) )
168, 15eqtrd 2503 . . 3  |-  ( ph  ->  ( ( 1st `  F
)  o.  ( 1st `  I ) )  =  ( 1st `  F
) )
1773ad2ant1 1012 . . . . . . . . . 10  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( 1st `  I
)  =  (  _I  |`  ( Base `  C
) ) )
1817fveq1d 5861 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( 1st `  I ) `  x
)  =  ( (  _I  |`  ( Base `  C ) ) `  x ) )
19 fvresi 6080 . . . . . . . . . 10  |-  ( x  e.  ( Base `  C
)  ->  ( (  _I  |`  ( Base `  C
) ) `  x
)  =  x )
20193ad2ant2 1013 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( (  _I  |`  ( Base `  C
) ) `  x
)  =  x )
2118, 20eqtrd 2503 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( 1st `  I ) `  x
)  =  x )
2217fveq1d 5861 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( 1st `  I ) `  y
)  =  ( (  _I  |`  ( Base `  C ) ) `  y ) )
23 fvresi 6080 . . . . . . . . . 10  |-  ( y  e.  ( Base `  C
)  ->  ( (  _I  |`  ( Base `  C
) ) `  y
)  =  y )
24233ad2ant3 1014 . . . . . . . . 9  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( (  _I  |`  ( Base `  C
) ) `  y
)  =  y )
2522, 24eqtrd 2503 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( 1st `  I ) `  y
)  =  y )
2621, 25oveq12d 6295 . . . . . . 7  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( ( 1st `  I ) `
 x ) ( 2nd `  F ) ( ( 1st `  I
) `  y )
)  =  ( x ( 2nd `  F
) y ) )
2763ad2ant1 1012 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  C  e.  Cat )
28 eqid 2462 . . . . . . . 8  |-  ( Hom  `  C )  =  ( Hom  `  C )
29 simp2 992 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  x  e.  (
Base `  C )
)
30 simp3 993 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  y  e.  (
Base `  C )
)
311, 2, 27, 28, 29, 30idfu2nd 15095 . . . . . . 7  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( x ( 2nd `  I ) y )  =  (  _I  |`  ( x
( Hom  `  C ) y ) ) )
3226, 31coeq12d 5160 . . . . . 6  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( ( ( 1st `  I
) `  x )
( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) )  =  ( ( x ( 2nd `  F
) y )  o.  (  _I  |`  (
x ( Hom  `  C
) y ) ) ) )
33 eqid 2462 . . . . . . . 8  |-  ( Hom  `  D )  =  ( Hom  `  D )
34123ad2ant1 1012 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( 1st `  F
) ( C  Func  D ) ( 2nd `  F
) )
352, 28, 33, 34, 29, 30funcf2 15086 . . . . . . 7  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( x ( 2nd `  F ) y ) : ( x ( Hom  `  C
) y ) --> ( ( ( 1st `  F
) `  x )
( Hom  `  D ) ( ( 1st `  F
) `  y )
) )
36 fcoi1 5752 . . . . . . 7  |-  ( ( x ( 2nd `  F
) y ) : ( x ( Hom  `  C ) y ) --> ( ( ( 1st `  F ) `  x
) ( Hom  `  D
) ( ( 1st `  F ) `  y
) )  ->  (
( x ( 2nd `  F ) y )  o.  (  _I  |`  (
x ( Hom  `  C
) y ) ) )  =  ( x ( 2nd `  F
) y ) )
3735, 36syl 16 . . . . . 6  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( x ( 2nd `  F
) y )  o.  (  _I  |`  (
x ( Hom  `  C
) y ) ) )  =  ( x ( 2nd `  F
) y ) )
3832, 37eqtrd 2503 . . . . 5  |-  ( (
ph  /\  x  e.  ( Base `  C )  /\  y  e.  ( Base `  C ) )  ->  ( ( ( ( 1st `  I
) `  x )
( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) )  =  ( x ( 2nd `  F ) y ) )
3938mpt2eq3dva 6338 . . . 4  |-  ( ph  ->  ( x  e.  (
Base `  C ) ,  y  e.  ( Base `  C )  |->  ( ( ( ( 1st `  I ) `  x
) ( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) ) )  =  ( x  e.  ( Base `  C
) ,  y  e.  ( Base `  C
)  |->  ( x ( 2nd `  F ) y ) ) )
402, 12funcfn2 15087 . . . . 5  |-  ( ph  ->  ( 2nd `  F
)  Fn  ( (
Base `  C )  X.  ( Base `  C
) ) )
41 fnov 6387 . . . . 5  |-  ( ( 2nd `  F )  Fn  ( ( Base `  C )  X.  ( Base `  C ) )  <-> 
( 2nd `  F
)  =  ( x  e.  ( Base `  C
) ,  y  e.  ( Base `  C
)  |->  ( x ( 2nd `  F ) y ) ) )
4240, 41sylib 196 . . . 4  |-  ( ph  ->  ( 2nd `  F
)  =  ( x  e.  ( Base `  C
) ,  y  e.  ( Base `  C
)  |->  ( x ( 2nd `  F ) y ) ) )
4339, 42eqtr4d 2506 . . 3  |-  ( ph  ->  ( x  e.  (
Base `  C ) ,  y  e.  ( Base `  C )  |->  ( ( ( ( 1st `  I ) `  x
) ( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) ) )  =  ( 2nd `  F ) )
4416, 43opeq12d 4216 . 2  |-  ( ph  -> 
<. ( ( 1st `  F
)  o.  ( 1st `  I ) ) ,  ( x  e.  (
Base `  C ) ,  y  e.  ( Base `  C )  |->  ( ( ( ( 1st `  I ) `  x
) ( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) ) ) >.  =  <. ( 1st `  F ) ,  ( 2nd `  F
) >. )
451idfucl 15099 . . . 4  |-  ( C  e.  Cat  ->  I  e.  ( C  Func  C
) )
466, 45syl 16 . . 3  |-  ( ph  ->  I  e.  ( C 
Func  C ) )
472, 46, 3cofuval 15100 . 2  |-  ( ph  ->  ( F  o.func  I )  =  <. ( ( 1st `  F )  o.  ( 1st `  I ) ) ,  ( x  e.  ( Base `  C
) ,  y  e.  ( Base `  C
)  |->  ( ( ( ( 1st `  I
) `  x )
( 2nd `  F
) ( ( 1st `  I ) `  y
) )  o.  (
x ( 2nd `  I
) y ) ) ) >. )
48 1st2nd 6822 . . 3  |-  ( ( Rel  ( C  Func  D )  /\  F  e.  ( C  Func  D
) )  ->  F  =  <. ( 1st `  F
) ,  ( 2nd `  F ) >. )
4910, 3, 48sylancr 663 . 2  |-  ( ph  ->  F  =  <. ( 1st `  F ) ,  ( 2nd `  F
) >. )
5044, 47, 493eqtr4d 2513 1  |-  ( ph  ->  ( F  o.func  I )  =  F )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    /\ w3a 968    = wceq 1374    e. wcel 1762   <.cop 4028   class class class wbr 4442    _I cid 4785    X. cxp 4992    |` cres 4996    o. ccom 4998   Rel wrel 4999    Fn wfn 5576   -->wf 5577   ` cfv 5581  (class class class)co 6277    |-> cmpt2 6279   1stc1st 6774   2ndc2nd 6775   Basecbs 14481   Hom chom 14557   Catccat 14910    Func cfunc 15072  idfunccidfu 15073    o.func ccofu 15074
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1714  ax-7 1734  ax-8 1764  ax-9 1766  ax-10 1781  ax-11 1786  ax-12 1798  ax-13 1963  ax-ext 2440  ax-rep 4553  ax-sep 4563  ax-nul 4571  ax-pow 4620  ax-pr 4681  ax-un 6569
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3an 970  df-tru 1377  df-ex 1592  df-nf 1595  df-sb 1707  df-eu 2274  df-mo 2275  df-clab 2448  df-cleq 2454  df-clel 2457  df-nfc 2612  df-ne 2659  df-ral 2814  df-rex 2815  df-reu 2816  df-rmo 2817  df-rab 2818  df-v 3110  df-sbc 3327  df-csb 3431  df-dif 3474  df-un 3476  df-in 3478  df-ss 3485  df-nul 3781  df-if 3935  df-pw 4007  df-sn 4023  df-pr 4025  df-op 4029  df-uni 4241  df-iun 4322  df-br 4443  df-opab 4501  df-mpt 4502  df-id 4790  df-xp 5000  df-rel 5001  df-cnv 5002  df-co 5003  df-dm 5004  df-rn 5005  df-res 5006  df-ima 5007  df-iota 5544  df-fun 5583  df-fn 5584  df-f 5585  df-f1 5586  df-fo 5587  df-f1o 5588  df-fv 5589  df-riota 6238  df-ov 6280  df-oprab 6281  df-mpt2 6282  df-1st 6776  df-2nd 6777  df-map 7414  df-ixp 7462  df-cat 14914  df-cid 14915  df-func 15076  df-idfu 15077  df-cofu 15078
This theorem is referenced by:  catccatid  15278
  Copyright terms: Public domain W3C validator