Metamath Proof Explorer


Theorem prcofdiag

Description: A diagonal functor post-composed by a pre-composition functor is another diagonal functor. (Contributed by Zhi Wang, 25-Nov-2025)

Ref Expression
Hypotheses prcofdiag.l ⊢ L = C Δ func D
prcofdiag.m ⊢ M = C Δ func E
prcofdiag.f ⊢ φ → F ∈ E Func D
prcofdiag.c ⊢ φ → C ∈ Cat
prcofdiag.g No typesetting found for |- ( ph -> ( <. D , C >. -o.F F ) = G ) with typecode |-
Assertion prcofdiag ⊢ φ → G ∘ func L = M

Proof

Step Hyp Ref Expression
1 prcofdiag.l ⊢ L = C Δ func D
2 prcofdiag.m ⊢ M = C Δ func E
3 prcofdiag.f ⊢ φ → F ∈ E Func D
4 prcofdiag.c ⊢ φ → C ∈ Cat
5 prcofdiag.g Could not format ( ph -> ( <. D , C >. -o.F F ) = G ) : No typesetting found for |- ( ph -> ( <. D , C >. -o.F F ) = G ) with typecode |-
6 eqid ⊢ Base C = Base C
7 eqid ⊢ Base E FuncCat C = Base E FuncCat C
8 3 func1st2nd ⊢ φ → 1 st ⁡ F E Func D 2 nd ⁡ F
9 8 funcrcl3 ⊢ φ → D ∈ Cat
10 eqid ⊢ D FuncCat C = D FuncCat C
11 1 4 9 10 diagcl ⊢ φ → L ∈ C Func D FuncCat C
12 eqid ⊢ E FuncCat C = E FuncCat C
13 10 4 12 3 prcoffunca Could not format ( ph -> ( <. D , C >. -o.F F ) e. ( ( D FuncCat C ) Func ( E FuncCat C ) ) ) : No typesetting found for |- ( ph -> ( <. D , C >. -o.F F ) e. ( ( D FuncCat C ) Func ( E FuncCat C ) ) ) with typecode |-
14 5 13 eqeltrrd ⊢ φ → G ∈ D FuncCat C Func E FuncCat C
15 11 14 cofucl ⊢ φ → G ∘ func L ∈ C Func E FuncCat C
16 15 func1st2nd ⊢ φ → 1 st ⁡ G ∘ func L C Func E FuncCat C 2 nd ⁡ G ∘ func L
17 6 7 16 funcf1 ⊢ φ → 1 st ⁡ G ∘ func L : Base C ⟶ Base E FuncCat C
18 17 ffnd ⊢ φ → 1 st ⁡ G ∘ func L Fn Base C
19 8 funcrcl2 ⊢ φ → E ∈ Cat
20 2 4 19 12 diagcl ⊢ φ → M ∈ C Func E FuncCat C
21 20 func1st2nd ⊢ φ → 1 st ⁡ M C Func E FuncCat C 2 nd ⁡ M
22 6 7 21 funcf1 ⊢ φ → 1 st ⁡ M : Base C ⟶ Base E FuncCat C
23 22 ffnd ⊢ φ → 1 st ⁡ M Fn Base C
24 11 adantr ⊢ φ ∧ x ∈ Base C → L ∈ C Func D FuncCat C
25 14 adantr ⊢ φ ∧ x ∈ Base C → G ∈ D FuncCat C Func E FuncCat C
26 simpr ⊢ φ ∧ x ∈ Base C → x ∈ Base C
27 6 24 25 26 cofu1 ⊢ φ ∧ x ∈ Base C → 1 st ⁡ G ∘ func L ⁡ x = 1 st ⁡ G ⁡ 1 st ⁡ L ⁡ x
28 4 adantr ⊢ φ ∧ x ∈ Base C → C ∈ Cat
29 9 adantr ⊢ φ ∧ x ∈ Base C → D ∈ Cat
30 eqid ⊢ 1 st ⁡ L ⁡ x = 1 st ⁡ L ⁡ x
31 1 28 29 6 26 30 diag1cl ⊢ φ ∧ x ∈ Base C → 1 st ⁡ L ⁡ x ∈ D Func C
32 5 fveq2d Could not format ( ph -> ( 1st ` ( <. D , C >. -o.F F ) ) = ( 1st ` G ) ) : No typesetting found for |- ( ph -> ( 1st ` ( <. D , C >. -o.F F ) ) = ( 1st ` G ) ) with typecode |-
33 32 adantr Could not format ( ( ph /\ x e. ( Base ` C ) ) -> ( 1st ` ( <. D , C >. -o.F F ) ) = ( 1st ` G ) ) : No typesetting found for |- ( ( ph /\ x e. ( Base ` C ) ) -> ( 1st ` ( <. D , C >. -o.F F ) ) = ( 1st ` G ) ) with typecode |-
34 31 33 prcof1 ⊢ φ ∧ x ∈ Base C → 1 st ⁡ G ⁡ 1 st ⁡ L ⁡ x = 1 st ⁡ L ⁡ x ∘ func F
35 3 adantr ⊢ φ ∧ x ∈ Base C → F ∈ E Func D
36 1 2 35 28 6 26 prcofdiag1 ⊢ φ ∧ x ∈ Base C → 1 st ⁡ L ⁡ x ∘ func F = 1 st ⁡ M ⁡ x
37 27 34 36 3eqtrd ⊢ φ ∧ x ∈ Base C → 1 st ⁡ G ∘ func L ⁡ x = 1 st ⁡ M ⁡ x
38 18 23 37 eqfnfvd ⊢ φ → 1 st ⁡ G ∘ func L = 1 st ⁡ M
39 6 16 funcfn2 ⊢ φ → 2 nd ⁡ G ∘ func L Fn Base C × Base C
40 6 21 funcfn2 ⊢ φ → 2 nd ⁡ M Fn Base C × Base C
41 eqid ⊢ Hom ⁡ C = Hom ⁡ C
42 eqid ⊢ Hom ⁡ E FuncCat C = Hom ⁡ E FuncCat C
43 16 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ G ∘ func L C Func E FuncCat C 2 nd ⁡ G ∘ func L
44 simprl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x ∈ Base C
45 simprr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → y ∈ Base C
46 6 41 42 43 44 45 funcf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ G ∘ func L y : x Hom ⁡ C y ⟶ 1 st ⁡ G ∘ func L ⁡ x Hom ⁡ E FuncCat C 1 st ⁡ G ∘ func L ⁡ y
47 46 ffnd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ G ∘ func L y Fn x Hom ⁡ C y
48 21 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ M C Func E FuncCat C 2 nd ⁡ M
49 6 41 42 48 44 45 funcf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ M y : x Hom ⁡ C y ⟶ 1 st ⁡ M ⁡ x Hom ⁡ E FuncCat C 1 st ⁡ M ⁡ y
50 49 ffnd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ M y Fn x Hom ⁡ C y
51 eqid ⊢ Base E = Base E
52 eqid ⊢ Base D = Base D
53 3 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → F ∈ E Func D
54 53 func1st2nd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → 1 st ⁡ F E Func D 2 nd ⁡ F
55 51 52 54 funcf1 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → 1 st ⁡ F : Base E ⟶ Base D
56 xpco2 ⊢ 1 st ⁡ F : Base E ⟶ Base D → Base D × f ∘ 1 st ⁡ F = Base E × f
57 55 56 syl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → Base D × f ∘ 1 st ⁡ F = Base E × f
58 11 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → L ∈ C Func D FuncCat C
59 14 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → G ∈ D FuncCat C Func E FuncCat C
60 44 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x ∈ Base C
61 45 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → y ∈ Base C
62 simpr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → f ∈ x Hom ⁡ C y
63 6 58 59 60 61 41 62 cofu2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x 2 nd ⁡ G ∘ func L y ⁡ f = 1 st ⁡ L ⁡ x 2 nd ⁡ G 1 st ⁡ L ⁡ y ⁡ x 2 nd ⁡ L y ⁡ f
64 4 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → C ∈ Cat
65 9 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → D ∈ Cat
66 1 6 52 41 64 65 60 61 62 diag2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x 2 nd ⁡ L y ⁡ f = Base D × f
67 66 fveq2d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → 1 st ⁡ L ⁡ x 2 nd ⁡ G 1 st ⁡ L ⁡ y ⁡ x 2 nd ⁡ L y ⁡ f = 1 st ⁡ L ⁡ x 2 nd ⁡ G 1 st ⁡ L ⁡ y ⁡ Base D × f
68 eqid ⊢ D Nat C = D Nat C
69 1 6 52 41 64 65 60 61 62 68 diag2cl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → Base D × f ∈ 1 st ⁡ L ⁡ x D Nat C 1 st ⁡ L ⁡ y
70 5 fveq2d Could not format ( ph -> ( 2nd ` ( <. D , C >. -o.F F ) ) = ( 2nd ` G ) ) : No typesetting found for |- ( ph -> ( 2nd ` ( <. D , C >. -o.F F ) ) = ( 2nd ` G ) ) with typecode |-
71 70 ad2antrr Could not format ( ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) /\ f e. ( x ( Hom ` C ) y ) ) -> ( 2nd ` ( <. D , C >. -o.F F ) ) = ( 2nd ` G ) ) : No typesetting found for |- ( ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) /\ f e. ( x ( Hom ` C ) y ) ) -> ( 2nd ` ( <. D , C >. -o.F F ) ) = ( 2nd ` G ) ) with typecode |-
72 68 69 71 53 prcof21a ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → 1 st ⁡ L ⁡ x 2 nd ⁡ G 1 st ⁡ L ⁡ y ⁡ Base D × f = Base D × f ∘ 1 st ⁡ F
73 63 67 72 3eqtrd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x 2 nd ⁡ G ∘ func L y ⁡ f = Base D × f ∘ 1 st ⁡ F
74 19 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → E ∈ Cat
75 2 6 51 41 64 74 60 61 62 diag2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x 2 nd ⁡ M y ⁡ f = Base E × f
76 57 73 75 3eqtr4d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ f ∈ x Hom ⁡ C y → x 2 nd ⁡ G ∘ func L y ⁡ f = x 2 nd ⁡ M y ⁡ f
77 47 50 76 eqfnfvd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ G ∘ func L y = x 2 nd ⁡ M y
78 39 40 77 eqfnovd ⊢ φ → 2 nd ⁡ G ∘ func L = 2 nd ⁡ M
79 38 78 opeq12d ⊢ φ → 1 st ⁡ G ∘ func L 2 nd ⁡ G ∘ func L = 1 st ⁡ M 2 nd ⁡ M
80 relfunc ⊢ Rel ⁡ C Func E FuncCat C
81 1st2nd ⊢ Rel ⁡ C Func E FuncCat C ∧ G ∘ func L ∈ C Func E FuncCat C → G ∘ func L = 1 st ⁡ G ∘ func L 2 nd ⁡ G ∘ func L
82 80 15 81 sylancr ⊢ φ → G ∘ func L = 1 st ⁡ G ∘ func L 2 nd ⁡ G ∘ func L
83 1st2nd ⊢ Rel ⁡ C Func E FuncCat C ∧ M ∈ C Func E FuncCat C → M = 1 st ⁡ M 2 nd ⁡ M
84 80 20 83 sylancr ⊢ φ → M = 1 st ⁡ M 2 nd ⁡ M
85 79 82 84 3eqtr4d ⊢ φ → G ∘ func L = M