Metamath Proof Explorer


Theorem cofuswapf2

Description: The morphism part of a bifunctor pre-composed with a swap functor. (Contributed by Zhi Wang, 9-Oct-2025)

Ref Expression
Hypotheses cofuswapf1.c ⊢ φ → C ∈ Cat
cofuswapf1.d ⊢ φ → D ∈ Cat
cofuswapf1.f ⊢ φ → F ∈ D × c C Func E
cofuswapf1.g No typesetting found for |- ( ph -> G = ( F o.func ( C swapF D ) ) ) with typecode |-
cofuswapf1.a ⊢ A = Base C
cofuswapf1.b ⊢ B = Base D
cofuswapf1.x ⊢ φ → X ∈ A
cofuswapf1.y ⊢ φ → Y ∈ B
cofuswapf2.z ⊢ φ → Z ∈ A
cofuswapf2.w ⊢ φ → W ∈ B
cofuswapf2.h ⊢ H = Hom ⁡ C
cofuswapf2.j ⊢ J = Hom ⁡ D
cofuswapf2.m ⊢ φ → M ∈ X H Z
cofuswapf2.n ⊢ φ → N ∈ Y J W
Assertion cofuswapf2 ⊢ φ → M X Y 2 nd ⁡ G Z W N = N Y X 2 nd ⁡ F W Z M

Proof

Step Hyp Ref Expression
1 cofuswapf1.c ⊢ φ → C ∈ Cat
2 cofuswapf1.d ⊢ φ → D ∈ Cat
3 cofuswapf1.f ⊢ φ → F ∈ D × c C Func E
4 cofuswapf1.g Could not format ( ph -> G = ( F o.func ( C swapF D ) ) ) : No typesetting found for |- ( ph -> G = ( F o.func ( C swapF D ) ) ) with typecode |-
5 cofuswapf1.a ⊢ A = Base C
6 cofuswapf1.b ⊢ B = Base D
7 cofuswapf1.x ⊢ φ → X ∈ A
8 cofuswapf1.y ⊢ φ → Y ∈ B
9 cofuswapf2.z ⊢ φ → Z ∈ A
10 cofuswapf2.w ⊢ φ → W ∈ B
11 cofuswapf2.h ⊢ H = Hom ⁡ C
12 cofuswapf2.j ⊢ J = Hom ⁡ D
13 cofuswapf2.m ⊢ φ → M ∈ X H Z
14 cofuswapf2.n ⊢ φ → N ∈ Y J W
15 4 fveq2d Could not format ( ph -> ( 2nd ` G ) = ( 2nd ` ( F o.func ( C swapF D ) ) ) ) : No typesetting found for |- ( ph -> ( 2nd ` G ) = ( 2nd ` ( F o.func ( C swapF D ) ) ) ) with typecode |-
16 15 oveqd Could not format ( ph -> ( <. X , Y >. ( 2nd ` G ) <. Z , W >. ) = ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ) : No typesetting found for |- ( ph -> ( <. X , Y >. ( 2nd ` G ) <. Z , W >. ) = ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ) with typecode |-
17 16 oveqd Could not format ( ph -> ( M ( <. X , Y >. ( 2nd ` G ) <. Z , W >. ) N ) = ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) ) : No typesetting found for |- ( ph -> ( M ( <. X , Y >. ( 2nd ` G ) <. Z , W >. ) N ) = ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) ) with typecode |-
18 df-ov Could not format ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) = ( ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ` <. M , N >. ) : No typesetting found for |- ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) = ( ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ` <. M , N >. ) with typecode |-
19 eqid ⊢ C × c D = C × c D
20 19 5 6 xpcbas ⊢ A × B = Base C × c D
21 eqid ⊢ D × c C = D × c C
22 1 2 19 21 swapffunca Could not format ( ph -> ( C swapF D ) e. ( ( C Xc. D ) Func ( D Xc. C ) ) ) : No typesetting found for |- ( ph -> ( C swapF D ) e. ( ( C Xc. D ) Func ( D Xc. C ) ) ) with typecode |-
23 7 8 opelxpd ⊢ φ → X Y ∈ A × B
24 9 10 opelxpd ⊢ φ → Z W ∈ A × B
25 eqid ⊢ Hom ⁡ C × c D = Hom ⁡ C × c D
26 13 14 opelxpd ⊢ φ → M N ∈ X H Z × Y J W
27 19 5 6 11 12 7 8 9 10 25 xpchom2 ⊢ φ → X Y Hom ⁡ C × c D Z W = X H Z × Y J W
28 26 27 eleqtrrd ⊢ φ → M N ∈ X Y Hom ⁡ C × c D Z W
29 20 22 3 23 24 25 28 cofu2 Could not format ( ph -> ( ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ` <. M , N >. ) = ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) ) : No typesetting found for |- ( ph -> ( ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) ` <. M , N >. ) = ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) ) with typecode |-
30 18 29 eqtrid Could not format ( ph -> ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) = ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) ) : No typesetting found for |- ( ph -> ( M ( <. X , Y >. ( 2nd ` ( F o.func ( C swapF D ) ) ) <. Z , W >. ) N ) = ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) ) with typecode |-
31 df-ov Could not format ( X ( 1st ` ( C swapF D ) ) Y ) = ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) : No typesetting found for |- ( X ( 1st ` ( C swapF D ) ) Y ) = ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) with typecode |-
32 1 2 swapfelvv Could not format ( ph -> ( C swapF D ) e. ( _V X. _V ) ) : No typesetting found for |- ( ph -> ( C swapF D ) e. ( _V X. _V ) ) with typecode |-
33 1st2nd2 Could not format ( ( C swapF D ) e. ( _V X. _V ) -> ( C swapF D ) = <. ( 1st ` ( C swapF D ) ) , ( 2nd ` ( C swapF D ) ) >. ) : No typesetting found for |- ( ( C swapF D ) e. ( _V X. _V ) -> ( C swapF D ) = <. ( 1st ` ( C swapF D ) ) , ( 2nd ` ( C swapF D ) ) >. ) with typecode |-
34 32 33 syl Could not format ( ph -> ( C swapF D ) = <. ( 1st ` ( C swapF D ) ) , ( 2nd ` ( C swapF D ) ) >. ) : No typesetting found for |- ( ph -> ( C swapF D ) = <. ( 1st ` ( C swapF D ) ) , ( 2nd ` ( C swapF D ) ) >. ) with typecode |-
35 7 5 eleqtrdi ⊢ φ → X ∈ Base C
36 8 6 eleqtrdi ⊢ φ → Y ∈ Base D
37 34 35 36 swapf1 Could not format ( ph -> ( X ( 1st ` ( C swapF D ) ) Y ) = <. Y , X >. ) : No typesetting found for |- ( ph -> ( X ( 1st ` ( C swapF D ) ) Y ) = <. Y , X >. ) with typecode |-
38 31 37 eqtr3id Could not format ( ph -> ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) = <. Y , X >. ) : No typesetting found for |- ( ph -> ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) = <. Y , X >. ) with typecode |-
39 df-ov Could not format ( Z ( 1st ` ( C swapF D ) ) W ) = ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) : No typesetting found for |- ( Z ( 1st ` ( C swapF D ) ) W ) = ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) with typecode |-
40 9 5 eleqtrdi ⊢ φ → Z ∈ Base C
41 10 6 eleqtrdi ⊢ φ → W ∈ Base D
42 34 40 41 swapf1 Could not format ( ph -> ( Z ( 1st ` ( C swapF D ) ) W ) = <. W , Z >. ) : No typesetting found for |- ( ph -> ( Z ( 1st ` ( C swapF D ) ) W ) = <. W , Z >. ) with typecode |-
43 39 42 eqtr3id Could not format ( ph -> ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) = <. W , Z >. ) : No typesetting found for |- ( ph -> ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) = <. W , Z >. ) with typecode |-
44 38 43 oveq12d Could not format ( ph -> ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) = ( <. Y , X >. ( 2nd ` F ) <. W , Z >. ) ) : No typesetting found for |- ( ph -> ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) = ( <. Y , X >. ( 2nd ` F ) <. W , Z >. ) ) with typecode |-
45 df-ov Could not format ( M ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) N ) = ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) : No typesetting found for |- ( M ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) N ) = ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) with typecode |-
46 11 oveqi ⊢ X H Z = X Hom ⁡ C Z
47 13 46 eleqtrdi ⊢ φ → M ∈ X Hom ⁡ C Z
48 12 oveqi ⊢ Y J W = Y Hom ⁡ D W
49 14 48 eleqtrdi ⊢ φ → N ∈ Y Hom ⁡ D W
50 34 35 36 40 41 47 49 swapf2 Could not format ( ph -> ( M ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) N ) = <. N , M >. ) : No typesetting found for |- ( ph -> ( M ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) N ) = <. N , M >. ) with typecode |-
51 45 50 eqtr3id Could not format ( ph -> ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) = <. N , M >. ) : No typesetting found for |- ( ph -> ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) = <. N , M >. ) with typecode |-
52 44 51 fveq12d Could not format ( ph -> ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) = ( ( <. Y , X >. ( 2nd ` F ) <. W , Z >. ) ` <. N , M >. ) ) : No typesetting found for |- ( ph -> ( ( ( ( 1st ` ( C swapF D ) ) ` <. X , Y >. ) ( 2nd ` F ) ( ( 1st ` ( C swapF D ) ) ` <. Z , W >. ) ) ` ( ( <. X , Y >. ( 2nd ` ( C swapF D ) ) <. Z , W >. ) ` <. M , N >. ) ) = ( ( <. Y , X >. ( 2nd ` F ) <. W , Z >. ) ` <. N , M >. ) ) with typecode |-
53 17 30 52 3eqtrd ⊢ φ → M X Y 2 nd ⁡ G Z W N = Y X 2 nd ⁡ F W Z ⁡ N M
54 df-ov ⊢ N Y X 2 nd ⁡ F W Z M = Y X 2 nd ⁡ F W Z ⁡ N M
55 53 54 eqtr4di ⊢ φ → M X Y 2 nd ⁡ G Z W N = N Y X 2 nd ⁡ F W Z M