Metamath Proof Explorer


Theorem curfuncf

Description: Cancellation of curry with uncurry. (Contributed by Mario Carneiro, 13-Jan-2017)

Ref Expression
Hypotheses uncfval.g ⊢ F = ⟨“ CDE ”⟩ uncurry F G
uncfval.c ⊢ φ → D ∈ Cat
uncfval.d ⊢ φ → E ∈ Cat
uncfval.f ⊢ φ → G ∈ C Func D FuncCat E
Assertion curfuncf ⊢ φ → C D curry F F = G

Proof

Step Hyp Ref Expression
1 uncfval.g ⊢ F = ⟨“ CDE ”⟩ uncurry F G
2 uncfval.c ⊢ φ → D ∈ Cat
3 uncfval.d ⊢ φ → E ∈ Cat
4 uncfval.f ⊢ φ → G ∈ C Func D FuncCat E
5 2 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → D ∈ Cat
6 3 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → E ∈ Cat
7 4 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → G ∈ C Func D FuncCat E
8 eqid ⊢ Base C = Base C
9 eqid ⊢ Base D = Base D
10 simplr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → x ∈ Base C
11 simpr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → y ∈ Base D
12 1 5 6 7 8 9 10 11 uncf1 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D → x 1 st ⁡ F y = 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y
13 12 mpteq2dva ⊢ φ ∧ x ∈ Base C → y ∈ Base D ⟼ x 1 st ⁡ F y = y ∈ Base D ⟼ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y
14 eqid ⊢ Base E = Base E
15 relfunc ⊢ Rel ⁡ D Func E
16 eqid ⊢ D FuncCat E = D FuncCat E
17 16 fucbas ⊢ D Func E = Base D FuncCat E
18 relfunc ⊢ Rel ⁡ C Func D FuncCat E
19 1st2ndbr ⊢ Rel ⁡ C Func D FuncCat E ∧ G ∈ C Func D FuncCat E → 1 st ⁡ G C Func D FuncCat E 2 nd ⁡ G
20 18 4 19 sylancr ⊢ φ → 1 st ⁡ G C Func D FuncCat E 2 nd ⁡ G
21 8 17 20 funcf1 ⊢ φ → 1 st ⁡ G : Base C ⟶ D Func E
22 21 ffvelcdmda ⊢ φ ∧ x ∈ Base C → 1 st ⁡ G ⁡ x ∈ D Func E
23 1st2ndbr ⊢ Rel ⁡ D Func E ∧ 1 st ⁡ G ⁡ x ∈ D Func E → 1 st ⁡ 1 st ⁡ G ⁡ x D Func E 2 nd ⁡ 1 st ⁡ G ⁡ x
24 15 22 23 sylancr ⊢ φ ∧ x ∈ Base C → 1 st ⁡ 1 st ⁡ G ⁡ x D Func E 2 nd ⁡ 1 st ⁡ G ⁡ x
25 9 14 24 funcf1 ⊢ φ ∧ x ∈ Base C → 1 st ⁡ 1 st ⁡ G ⁡ x : Base D ⟶ Base E
26 25 feqmptd ⊢ φ ∧ x ∈ Base C → 1 st ⁡ 1 st ⁡ G ⁡ x = y ∈ Base D ⟼ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y
27 13 26 eqtr4d ⊢ φ ∧ x ∈ Base C → y ∈ Base D ⟼ x 1 st ⁡ F y = 1 st ⁡ 1 st ⁡ G ⁡ x
28 2 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → D ∈ Cat
29 3 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → E ∈ Cat
30 4 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → G ∈ C Func D FuncCat E
31 simpllr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x ∈ Base C
32 simplrl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → y ∈ Base D
33 eqid ⊢ Hom ⁡ C = Hom ⁡ C
34 eqid ⊢ Hom ⁡ D = Hom ⁡ D
35 simprr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → z ∈ Base D
36 35 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → z ∈ Base D
37 eqid ⊢ Id ⁡ C = Id ⁡ C
38 funcrcl ⊢ G ∈ C Func D FuncCat E → C ∈ Cat ∧ D FuncCat E ∈ Cat
39 4 38 syl ⊢ φ → C ∈ Cat ∧ D FuncCat E ∈ Cat
40 39 simpld ⊢ φ → C ∈ Cat
41 40 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → C ∈ Cat
42 8 33 37 41 31 catidcl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ C ⁡ x ∈ x Hom ⁡ C x
43 simpr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → g ∈ y Hom ⁡ D z
44 1 28 29 30 8 9 31 32 33 34 31 36 42 43 uncf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
45 eqid ⊢ Id ⁡ D FuncCat E = Id ⁡ D FuncCat E
46 20 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → 1 st ⁡ G C Func D FuncCat E 2 nd ⁡ G
47 8 37 45 46 31 funcid ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x = Id ⁡ D FuncCat E ⁡ 1 st ⁡ G ⁡ x
48 eqid ⊢ Id ⁡ E = Id ⁡ E
49 22 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → 1 st ⁡ G ⁡ x ∈ D Func E
50 16 45 48 49 fucid ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ D FuncCat E ⁡ 1 st ⁡ G ⁡ x = Id ⁡ E ∘ 1 st ⁡ 1 st ⁡ G ⁡ x
51 47 50 eqtrd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x = Id ⁡ E ∘ 1 st ⁡ 1 st ⁡ G ⁡ x
52 51 fveq1d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x ⁡ z = Id ⁡ E ∘ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
53 25 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → 1 st ⁡ 1 st ⁡ G ⁡ x : Base D ⟶ Base E
54 fvco3 ⊢ 1 st ⁡ 1 st ⁡ G ⁡ x : Base D ⟶ Base E ∧ z ∈ Base D → Id ⁡ E ∘ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z = Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
55 53 36 54 syl2anc ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ E ∘ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z = Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
56 52 55 eqtrd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x ⁡ z = Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
57 56 oveq1d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → x 2 nd ⁡ G x ⁡ Id ⁡ C ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g = Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
58 eqid ⊢ Hom ⁡ E = Hom ⁡ E
59 53 32 ffvelcdmd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y ∈ Base E
60 eqid ⊢ comp ⁡ E = comp ⁡ E
61 53 36 ffvelcdmd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z ∈ Base E
62 24 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → 1 st ⁡ 1 st ⁡ G ⁡ x D Func E 2 nd ⁡ 1 st ⁡ G ⁡ x
63 simprl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → y ∈ Base D
64 9 34 58 62 63 35 funcf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → y 2 nd ⁡ 1 st ⁡ G ⁡ x z : y Hom ⁡ D z ⟶ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y Hom ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
65 64 ffvelcdmda ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g ∈ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y Hom ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
66 14 58 48 29 59 60 61 65 catlid ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ y 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g = y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
67 44 57 66 3eqtrd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D ∧ g ∈ y Hom ⁡ D z → Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
68 67 mpteq2dva ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = g ∈ y Hom ⁡ D z ⟼ y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
69 64 feqmptd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → y 2 nd ⁡ 1 st ⁡ G ⁡ x z = g ∈ y Hom ⁡ D z ⟼ y 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ g
70 68 69 eqtr4d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = y 2 nd ⁡ 1 st ⁡ G ⁡ x z
71 70 3impb ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base D ∧ z ∈ Base D → g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = y 2 nd ⁡ 1 st ⁡ G ⁡ x z
72 71 mpoeq3dva ⊢ φ ∧ x ∈ Base C → y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = y ∈ Base D , z ∈ Base D ⟼ y 2 nd ⁡ 1 st ⁡ G ⁡ x z
73 9 24 funcfn2 ⊢ φ ∧ x ∈ Base C → 2 nd ⁡ 1 st ⁡ G ⁡ x Fn Base D × Base D
74 fnov ⊢ 2 nd ⁡ 1 st ⁡ G ⁡ x Fn Base D × Base D ↔ 2 nd ⁡ 1 st ⁡ G ⁡ x = y ∈ Base D , z ∈ Base D ⟼ y 2 nd ⁡ 1 st ⁡ G ⁡ x z
75 73 74 sylib ⊢ φ ∧ x ∈ Base C → 2 nd ⁡ 1 st ⁡ G ⁡ x = y ∈ Base D , z ∈ Base D ⟼ y 2 nd ⁡ 1 st ⁡ G ⁡ x z
76 72 75 eqtr4d ⊢ φ ∧ x ∈ Base C → y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = 2 nd ⁡ 1 st ⁡ G ⁡ x
77 27 76 opeq12d ⊢ φ ∧ x ∈ Base C → y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = 1 st ⁡ 1 st ⁡ G ⁡ x 2 nd ⁡ 1 st ⁡ G ⁡ x
78 1st2nd ⊢ Rel ⁡ D Func E ∧ 1 st ⁡ G ⁡ x ∈ D Func E → 1 st ⁡ G ⁡ x = 1 st ⁡ 1 st ⁡ G ⁡ x 2 nd ⁡ 1 st ⁡ G ⁡ x
79 15 22 78 sylancr ⊢ φ ∧ x ∈ Base C → 1 st ⁡ G ⁡ x = 1 st ⁡ 1 st ⁡ G ⁡ x 2 nd ⁡ 1 st ⁡ G ⁡ x
80 77 79 eqtr4d ⊢ φ ∧ x ∈ Base C → y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = 1 st ⁡ G ⁡ x
81 80 mpteq2dva ⊢ φ → x ∈ Base C ⟼ y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = x ∈ Base C ⟼ 1 st ⁡ G ⁡ x
82 21 feqmptd ⊢ φ → 1 st ⁡ G = x ∈ Base C ⟼ 1 st ⁡ G ⁡ x
83 81 82 eqtr4d ⊢ φ → x ∈ Base C ⟼ y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g = 1 st ⁡ G
84 2 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → D ∈ Cat
85 3 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → E ∈ Cat
86 4 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → G ∈ C Func D FuncCat E
87 simprl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x ∈ Base C
88 87 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x ∈ Base C
89 simpr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → z ∈ Base D
90 simprr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → y ∈ Base C
91 90 ad2antrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → y ∈ Base C
92 simplr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → g ∈ x Hom ⁡ C y
93 eqid ⊢ Id ⁡ D = Id ⁡ D
94 9 34 93 84 89 catidcl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → Id ⁡ D ⁡ z ∈ z Hom ⁡ D z
95 1 84 85 86 8 9 88 89 33 34 91 89 92 94 uncf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x 2 nd ⁡ G y ⁡ g ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z z 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ Id ⁡ D ⁡ z
96 22 adantrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ G ⁡ x ∈ D Func E
97 96 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ G ⁡ x ∈ D Func E
98 15 97 23 sylancr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ 1 st ⁡ G ⁡ x D Func E 2 nd ⁡ 1 st ⁡ G ⁡ x
99 98 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → 1 st ⁡ 1 st ⁡ G ⁡ x D Func E 2 nd ⁡ 1 st ⁡ G ⁡ x
100 9 93 48 99 89 funcid ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → z 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ Id ⁡ D ⁡ z = Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
101 100 oveq2d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y ⁡ g ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z z 2 nd ⁡ 1 st ⁡ G ⁡ x z ⁡ Id ⁡ D ⁡ z = x 2 nd ⁡ G y ⁡ g ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z
102 9 14 98 funcf1 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ 1 st ⁡ G ⁡ x : Base D ⟶ Base E
103 102 ffvelcdmda ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z ∈ Base E
104 21 ffvelcdmda ⊢ φ ∧ y ∈ Base C → 1 st ⁡ G ⁡ y ∈ D Func E
105 104 adantrl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ G ⁡ y ∈ D Func E
106 105 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ G ⁡ y ∈ D Func E
107 1st2ndbr ⊢ Rel ⁡ D Func E ∧ 1 st ⁡ G ⁡ y ∈ D Func E → 1 st ⁡ 1 st ⁡ G ⁡ y D Func E 2 nd ⁡ 1 st ⁡ G ⁡ y
108 15 106 107 sylancr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ 1 st ⁡ G ⁡ y D Func E 2 nd ⁡ 1 st ⁡ G ⁡ y
109 9 14 108 funcf1 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → 1 st ⁡ 1 st ⁡ G ⁡ y : Base D ⟶ Base E
110 109 ffvelcdmda ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z ∈ Base E
111 eqid ⊢ D Nat E = D Nat E
112 16 111 fuchom ⊢ D Nat E = Hom ⁡ D FuncCat E
113 20 ad3antrrr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → 1 st ⁡ G C Func D FuncCat E 2 nd ⁡ G
114 8 33 112 113 88 91 funcf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y : x Hom ⁡ C y ⟶ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ G ⁡ y
115 114 92 ffvelcdmd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y ⁡ g ∈ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ G ⁡ y
116 111 115 nat1st2nd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y ⁡ g ∈ 1 st ⁡ 1 st ⁡ G ⁡ x 2 nd ⁡ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ 1 st ⁡ G ⁡ y 2 nd ⁡ 1 st ⁡ G ⁡ y
117 111 116 9 58 89 natcl ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y ⁡ g ⁡ z ∈ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z Hom ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z
118 14 58 48 85 103 60 110 117 catrid ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → x 2 nd ⁡ G y ⁡ g ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z comp ⁡ E 1 st ⁡ 1 st ⁡ G ⁡ y ⁡ z Id ⁡ E ⁡ 1 st ⁡ 1 st ⁡ G ⁡ x ⁡ z = x 2 nd ⁡ G y ⁡ g ⁡ z
119 95 101 118 3eqtrd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y ∧ z ∈ Base D → g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x 2 nd ⁡ G y ⁡ g ⁡ z
120 119 mpteq2dva ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = z ∈ Base D ⟼ x 2 nd ⁡ G y ⁡ g ⁡ z
121 20 adantr ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ G C Func D FuncCat E 2 nd ⁡ G
122 8 33 112 121 87 90 funcf2 ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ G y : x Hom ⁡ C y ⟶ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ G ⁡ y
123 122 ffvelcdmda ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → x 2 nd ⁡ G y ⁡ g ∈ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ G ⁡ y
124 111 123 nat1st2nd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → x 2 nd ⁡ G y ⁡ g ∈ 1 st ⁡ 1 st ⁡ G ⁡ x 2 nd ⁡ 1 st ⁡ G ⁡ x D Nat E 1 st ⁡ 1 st ⁡ G ⁡ y 2 nd ⁡ 1 st ⁡ G ⁡ y
125 111 124 9 natfn ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → x 2 nd ⁡ G y ⁡ g Fn Base D
126 dffn5 ⊢ x 2 nd ⁡ G y ⁡ g Fn Base D ↔ x 2 nd ⁡ G y ⁡ g = z ∈ Base D ⟼ x 2 nd ⁡ G y ⁡ g ⁡ z
127 125 126 sylib ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → x 2 nd ⁡ G y ⁡ g = z ∈ Base D ⟼ x 2 nd ⁡ G y ⁡ g ⁡ z
128 120 127 eqtr4d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C ∧ g ∈ x Hom ⁡ C y → z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x 2 nd ⁡ G y ⁡ g
129 128 mpteq2dva ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = g ∈ x Hom ⁡ C y ⟼ x 2 nd ⁡ G y ⁡ g
130 122 feqmptd ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → x 2 nd ⁡ G y = g ∈ x Hom ⁡ C y ⟼ x 2 nd ⁡ G y ⁡ g
131 129 130 eqtr4d ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x 2 nd ⁡ G y
132 131 3impb ⊢ φ ∧ x ∈ Base C ∧ y ∈ Base C → g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x 2 nd ⁡ G y
133 132 mpoeq3dva ⊢ φ → x ∈ Base C , y ∈ Base C ⟼ g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = x ∈ Base C , y ∈ Base C ⟼ x 2 nd ⁡ G y
134 8 20 funcfn2 ⊢ φ → 2 nd ⁡ G Fn Base C × Base C
135 fnov ⊢ 2 nd ⁡ G Fn Base C × Base C ↔ 2 nd ⁡ G = x ∈ Base C , y ∈ Base C ⟼ x 2 nd ⁡ G y
136 134 135 sylib ⊢ φ → 2 nd ⁡ G = x ∈ Base C , y ∈ Base C ⟼ x 2 nd ⁡ G y
137 133 136 eqtr4d ⊢ φ → x ∈ Base C , y ∈ Base C ⟼ g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = 2 nd ⁡ G
138 83 137 opeq12d ⊢ φ → x ∈ Base C ⟼ y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g x ∈ Base C , y ∈ Base C ⟼ g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z = 1 st ⁡ G 2 nd ⁡ G
139 eqid ⊢ C D curry F F = C D curry F F
140 1 2 3 4 uncfcl ⊢ φ → F ∈ C × c D Func E
141 139 8 40 2 140 9 34 37 33 93 curfval ⊢ φ → C D curry F F = x ∈ Base C ⟼ y ∈ Base D ⟼ x 1 st ⁡ F y y ∈ Base D , z ∈ Base D ⟼ g ∈ y Hom ⁡ D z ⟼ Id ⁡ C ⁡ x x y 2 nd ⁡ F x z g x ∈ Base C , y ∈ Base C ⟼ g ∈ x Hom ⁡ C y ⟼ z ∈ Base D ⟼ g x z 2 nd ⁡ F y z Id ⁡ D ⁡ z
142 1st2nd ⊢ Rel ⁡ C Func D FuncCat E ∧ G ∈ C Func D FuncCat E → G = 1 st ⁡ G 2 nd ⁡ G
143 18 4 142 sylancr ⊢ φ → G = 1 st ⁡ G 2 nd ⁡ G
144 138 141 143 3eqtr4d ⊢ φ → C D curry F F = G