Metamath Proof Explorer


Theorem 1stfcl

Description: The first projection functor is a functor onto the left argument. (Contributed by Mario Carneiro, 11-Jan-2017)

Ref Expression
Hypotheses 1stfcl.t T=C×cD
1stfcl.c φCCat
1stfcl.d φDCat
1stfcl.p P=C1stFD
Assertion 1stfcl φPTFuncC

Proof

Step Hyp Ref Expression
1 1stfcl.t T=C×cD
2 1stfcl.c φCCat
3 1stfcl.d φDCat
4 1stfcl.p P=C1stFD
5 eqid BaseC=BaseC
6 eqid BaseD=BaseD
7 1 5 6 xpcbas BaseC×BaseD=BaseT
8 eqid HomT=HomT
9 1 7 8 2 3 4 1stfval φP=1stBaseC×BaseDxBaseC×BaseD,yBaseC×BaseD1stxHomTy
10 fo1st 1st:VontoV
11 fofun 1st:VontoVFun1st
12 10 11 ax-mp Fun1st
13 fvex BaseCV
14 fvex BaseDV
15 13 14 xpex BaseC×BaseDV
16 resfunexg Fun1stBaseC×BaseDV1stBaseC×BaseDV
17 12 15 16 mp2an 1stBaseC×BaseDV
18 15 15 mpoex xBaseC×BaseD,yBaseC×BaseD1stxHomTyV
19 17 18 op2ndd P=1stBaseC×BaseDxBaseC×BaseD,yBaseC×BaseD1stxHomTy2ndP=xBaseC×BaseD,yBaseC×BaseD1stxHomTy
20 9 19 syl φ2ndP=xBaseC×BaseD,yBaseC×BaseD1stxHomTy
21 20 opeq2d φ1stBaseC×BaseD2ndP=1stBaseC×BaseDxBaseC×BaseD,yBaseC×BaseD1stxHomTy
22 9 21 eqtr4d φP=1stBaseC×BaseD2ndP
23 eqid HomC=HomC
24 eqid IdT=IdT
25 eqid IdC=IdC
26 eqid compT=compT
27 eqid compC=compC
28 1 2 3 xpccat φTCat
29 f1stres 1stBaseC×BaseD:BaseC×BaseDBaseC
30 29 a1i φ1stBaseC×BaseD:BaseC×BaseDBaseC
31 eqid xBaseC×BaseD,yBaseC×BaseD1stxHomTy=xBaseC×BaseD,yBaseC×BaseD1stxHomTy
32 ovex xHomTyV
33 resfunexg Fun1stxHomTyV1stxHomTyV
34 12 32 33 mp2an 1stxHomTyV
35 31 34 fnmpoi xBaseC×BaseD,yBaseC×BaseD1stxHomTyFnBaseC×BaseD×BaseC×BaseD
36 20 fneq1d φ2ndPFnBaseC×BaseD×BaseC×BaseDxBaseC×BaseD,yBaseC×BaseD1stxHomTyFnBaseC×BaseD×BaseC×BaseD
37 35 36 mpbiri φ2ndPFnBaseC×BaseD×BaseC×BaseD
38 f1stres 1st1stxHomC1sty×2ndxHomD2ndy:1stxHomC1sty×2ndxHomD2ndy1stxHomC1sty
39 2 adantr φxBaseC×BaseDyBaseC×BaseDCCat
40 3 adantr φxBaseC×BaseDyBaseC×BaseDDCat
41 simprl φxBaseC×BaseDyBaseC×BaseDxBaseC×BaseD
42 simprr φxBaseC×BaseDyBaseC×BaseDyBaseC×BaseD
43 1 7 8 39 40 4 41 42 1stf2 φxBaseC×BaseDyBaseC×BaseDx2ndPy=1stxHomTy
44 eqid HomD=HomD
45 1 7 23 44 8 41 42 xpchom φxBaseC×BaseDyBaseC×BaseDxHomTy=1stxHomC1sty×2ndxHomD2ndy
46 45 reseq2d φxBaseC×BaseDyBaseC×BaseD1stxHomTy=1st1stxHomC1sty×2ndxHomD2ndy
47 43 46 eqtrd φxBaseC×BaseDyBaseC×BaseDx2ndPy=1st1stxHomC1sty×2ndxHomD2ndy
48 47 feq1d φxBaseC×BaseDyBaseC×BaseDx2ndPy:1stxHomC1sty×2ndxHomD2ndy1stxHomC1sty1st1stxHomC1sty×2ndxHomD2ndy:1stxHomC1sty×2ndxHomD2ndy1stxHomC1sty
49 38 48 mpbiri φxBaseC×BaseDyBaseC×BaseDx2ndPy:1stxHomC1sty×2ndxHomD2ndy1stxHomC1sty
50 fvres xBaseC×BaseD1stBaseC×BaseDx=1stx
51 50 ad2antrl φxBaseC×BaseDyBaseC×BaseD1stBaseC×BaseDx=1stx
52 fvres yBaseC×BaseD1stBaseC×BaseDy=1sty
53 52 ad2antll φxBaseC×BaseDyBaseC×BaseD1stBaseC×BaseDy=1sty
54 51 53 oveq12d φxBaseC×BaseDyBaseC×BaseD1stBaseC×BaseDxHomC1stBaseC×BaseDy=1stxHomC1sty
55 45 54 feq23d φxBaseC×BaseDyBaseC×BaseDx2ndPy:xHomTy1stBaseC×BaseDxHomC1stBaseC×BaseDyx2ndPy:1stxHomC1sty×2ndxHomD2ndy1stxHomC1sty
56 49 55 mpbird φxBaseC×BaseDyBaseC×BaseDx2ndPy:xHomTy1stBaseC×BaseDxHomC1stBaseC×BaseDy
57 28 adantr φxBaseC×BaseDTCat
58 simpr φxBaseC×BaseDxBaseC×BaseD
59 7 8 24 57 58 catidcl φxBaseC×BaseDIdTxxHomTx
60 59 fvresd φxBaseC×BaseD1stxHomTxIdTx=1stIdTx
61 1st2nd2 xBaseC×BaseDx=1stx2ndx
62 61 adantl φxBaseC×BaseDx=1stx2ndx
63 62 fveq2d φxBaseC×BaseDIdTx=IdT1stx2ndx
64 2 adantr φxBaseC×BaseDCCat
65 3 adantr φxBaseC×BaseDDCat
66 eqid IdD=IdD
67 xp1st xBaseC×BaseD1stxBaseC
68 67 adantl φxBaseC×BaseD1stxBaseC
69 xp2nd xBaseC×BaseD2ndxBaseD
70 69 adantl φxBaseC×BaseD2ndxBaseD
71 1 64 65 5 6 25 66 24 68 70 xpcid φxBaseC×BaseDIdT1stx2ndx=IdC1stxIdD2ndx
72 63 71 eqtrd φxBaseC×BaseDIdTx=IdC1stxIdD2ndx
73 fvex IdC1stxV
74 fvex IdD2ndxV
75 73 74 op1std IdTx=IdC1stxIdD2ndx1stIdTx=IdC1stx
76 72 75 syl φxBaseC×BaseD1stIdTx=IdC1stx
77 60 76 eqtrd φxBaseC×BaseD1stxHomTxIdTx=IdC1stx
78 1 7 8 64 65 4 58 58 1stf2 φxBaseC×BaseDx2ndPx=1stxHomTx
79 78 fveq1d φxBaseC×BaseDx2ndPxIdTx=1stxHomTxIdTx
80 50 adantl φxBaseC×BaseD1stBaseC×BaseDx=1stx
81 80 fveq2d φxBaseC×BaseDIdC1stBaseC×BaseDx=IdC1stx
82 77 79 81 3eqtr4d φxBaseC×BaseDx2ndPxIdTx=IdC1stBaseC×BaseDx
83 28 3ad2ant1 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzTCat
84 simp21 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzxBaseC×BaseD
85 simp22 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzyBaseC×BaseD
86 simp23 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzzBaseC×BaseD
87 simp3l φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzfxHomTy
88 simp3r φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzgyHomTz
89 7 8 26 83 84 85 86 87 88 catcocl φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzgxycompTzfxHomTz
90 89 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stxHomTzgxycompTzf=1stgxycompTzf
91 1 7 8 26 84 85 86 87 88 27 xpcco1st φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stgxycompTzf=1stg1stx1stycompC1stz1stf
92 90 91 eqtrd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stxHomTzgxycompTzf=1stg1stx1stycompC1stz1stf
93 2 3ad2ant1 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzCCat
94 3 3ad2ant1 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzDCat
95 1 7 8 93 94 4 84 86 1stf2 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPz=1stxHomTz
96 95 fveq1d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPzgxycompTzf=1stxHomTzgxycompTzf
97 84 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stBaseC×BaseDx=1stx
98 85 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stBaseC×BaseDy=1sty
99 97 98 opeq12d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stBaseC×BaseDx1stBaseC×BaseDy=1stx1sty
100 86 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stBaseC×BaseDz=1stz
101 99 100 oveq12d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stBaseC×BaseDx1stBaseC×BaseDycompC1stBaseC×BaseDz=1stx1stycompC1stz
102 1 7 8 93 94 4 85 86 1stf2 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzy2ndPz=1styHomTz
103 102 fveq1d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzy2ndPzg=1styHomTzg
104 88 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1styHomTzg=1stg
105 103 104 eqtrd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzy2ndPzg=1stg
106 1 7 8 93 94 4 84 85 1stf2 φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPy=1stxHomTy
107 106 fveq1d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPyf=1stxHomTyf
108 87 fvresd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTz1stxHomTyf=1stf
109 107 108 eqtrd φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPyf=1stf
110 101 105 109 oveq123d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzy2ndPzg1stBaseC×BaseDx1stBaseC×BaseDycompC1stBaseC×BaseDzx2ndPyf=1stg1stx1stycompC1stz1stf
111 92 96 110 3eqtr4d φxBaseC×BaseDyBaseC×BaseDzBaseC×BaseDfxHomTygyHomTzx2ndPzgxycompTzf=y2ndPzg1stBaseC×BaseDx1stBaseC×BaseDycompC1stBaseC×BaseDzx2ndPyf
112 7 5 8 23 24 25 26 27 28 2 30 37 56 82 111 isfuncd φ1stBaseC×BaseDTFuncC2ndP
113 df-br 1stBaseC×BaseDTFuncC2ndP1stBaseC×BaseD2ndPTFuncC
114 112 113 sylib φ1stBaseC×BaseD2ndPTFuncC
115 22 114 eqeltrd φPTFuncC