Metamath Proof Explorer


Theorem fucco

Description: Value of the composition of natural transformations. (Contributed by Mario Carneiro, 6-Jan-2017)

Ref Expression
Hypotheses fucco.q ⊢ Q = C FuncCat D
fucco.n ⊢ N = C Nat D
fucco.a ⊢ A = Base C
fucco.o ⊢ · ˙ = comp ⁡ D
fucco.x ⊢ ∙ ˙ = comp ⁡ Q
fucco.f ⊢ φ → R ∈ F N G
fucco.g ⊢ φ → S ∈ G N H
Assertion fucco ⊢ φ → S F G ∙ ˙ H R = x ∈ A ⟼ S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x

Proof

Step Hyp Ref Expression
1 fucco.q ⊢ Q = C FuncCat D
2 fucco.n ⊢ N = C Nat D
3 fucco.a ⊢ A = Base C
4 fucco.o ⊢ · ˙ = comp ⁡ D
5 fucco.x ⊢ ∙ ˙ = comp ⁡ Q
6 fucco.f ⊢ φ → R ∈ F N G
7 fucco.g ⊢ φ → S ∈ G N H
8 eqid ⊢ C Func D = C Func D
9 2 natrcl ⊢ R ∈ F N G → F ∈ C Func D ∧ G ∈ C Func D
10 6 9 syl ⊢ φ → F ∈ C Func D ∧ G ∈ C Func D
11 10 simpld ⊢ φ → F ∈ C Func D
12 funcrcl ⊢ F ∈ C Func D → C ∈ Cat ∧ D ∈ Cat
13 11 12 syl ⊢ φ → C ∈ Cat ∧ D ∈ Cat
14 13 simpld ⊢ φ → C ∈ Cat
15 13 simprd ⊢ φ → D ∈ Cat
16 1 8 2 3 4 14 15 5 fuccofval ⊢ φ → ∙ ˙ = v ∈ C Func D × C Func D , h ∈ C Func D ⟼ ⦋ 1 st ⁡ v / f⦌ ⦋ 2 nd ⁡ v / g⦌ b ∈ g N h , a ∈ f N g ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x
17 fvexd ⊢ φ ∧ v = F G ∧ h = H → 1 st ⁡ v ∈ V
18 simprl ⊢ φ ∧ v = F G ∧ h = H → v = F G
19 18 fveq2d ⊢ φ ∧ v = F G ∧ h = H → 1 st ⁡ v = 1 st ⁡ F G
20 op1stg ⊢ F ∈ C Func D ∧ G ∈ C Func D → 1 st ⁡ F G = F
21 10 20 syl ⊢ φ → 1 st ⁡ F G = F
22 21 adantr ⊢ φ ∧ v = F G ∧ h = H → 1 st ⁡ F G = F
23 19 22 eqtrd ⊢ φ ∧ v = F G ∧ h = H → 1 st ⁡ v = F
24 fvexd ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → 2 nd ⁡ v ∈ V
25 18 adantr ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → v = F G
26 25 fveq2d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → 2 nd ⁡ v = 2 nd ⁡ F G
27 op2ndg ⊢ F ∈ C Func D ∧ G ∈ C Func D → 2 nd ⁡ F G = G
28 10 27 syl ⊢ φ → 2 nd ⁡ F G = G
29 28 ad2antrr ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → 2 nd ⁡ F G = G
30 26 29 eqtrd ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → 2 nd ⁡ v = G
31 simpr ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → g = G
32 simprr ⊢ φ ∧ v = F G ∧ h = H → h = H
33 32 ad2antrr ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → h = H
34 31 33 oveq12d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → g N h = G N H
35 simplr ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → f = F
36 35 31 oveq12d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → f N g = F N G
37 35 fveq2d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ f = 1 st ⁡ F
38 37 fveq1d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ f ⁡ x = 1 st ⁡ F ⁡ x
39 31 fveq2d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ g = 1 st ⁡ G
40 39 fveq1d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ g ⁡ x = 1 st ⁡ G ⁡ x
41 38 40 opeq12d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x = 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x
42 33 fveq2d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ h = 1 st ⁡ H
43 42 fveq1d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ h ⁡ x = 1 st ⁡ H ⁡ x
44 41 43 oveq12d ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x = 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x
45 44 oveqd ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x = b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
46 45 mpteq2dv ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → x ∈ A ⟼ b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x = x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
47 34 36 46 mpoeq123dv ⊢ φ ∧ v = F G ∧ h = H ∧ f = F ∧ g = G → b ∈ g N h , a ∈ f N g ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x = b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
48 24 30 47 csbied2 ⊢ φ ∧ v = F G ∧ h = H ∧ f = F → ⦋ 2 nd ⁡ v / g⦌ b ∈ g N h , a ∈ f N g ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x = b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
49 17 23 48 csbied2 ⊢ φ ∧ v = F G ∧ h = H → ⦋ 1 st ⁡ v / f⦌ ⦋ 2 nd ⁡ v / g⦌ b ∈ g N h , a ∈ f N g ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ f ⁡ x 1 st ⁡ g ⁡ x · ˙ 1 st ⁡ h ⁡ x a ⁡ x = b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
50 opelxpi ⊢ F ∈ C Func D ∧ G ∈ C Func D → F G ∈ C Func D × C Func D
51 10 50 syl ⊢ φ → F G ∈ C Func D × C Func D
52 2 natrcl ⊢ S ∈ G N H → G ∈ C Func D ∧ H ∈ C Func D
53 7 52 syl ⊢ φ → G ∈ C Func D ∧ H ∈ C Func D
54 53 simprd ⊢ φ → H ∈ C Func D
55 ovex ⊢ G N H ∈ V
56 ovex ⊢ F N G ∈ V
57 55 56 mpoex ⊢ b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x ∈ V
58 57 a1i ⊢ φ → b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x ∈ V
59 16 49 51 54 58 ovmpod ⊢ φ → F G ∙ ˙ H = b ∈ G N H , a ∈ F N G ⟼ x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x
60 simprl ⊢ φ ∧ b = S ∧ a = R → b = S
61 60 fveq1d ⊢ φ ∧ b = S ∧ a = R → b ⁡ x = S ⁡ x
62 simprr ⊢ φ ∧ b = S ∧ a = R → a = R
63 62 fveq1d ⊢ φ ∧ b = S ∧ a = R → a ⁡ x = R ⁡ x
64 61 63 oveq12d ⊢ φ ∧ b = S ∧ a = R → b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x = S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x
65 64 mpteq2dv ⊢ φ ∧ b = S ∧ a = R → x ∈ A ⟼ b ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x a ⁡ x = x ∈ A ⟼ S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x
66 3 fvexi ⊢ A ∈ V
67 66 mptex ⊢ x ∈ A ⟼ S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x ∈ V
68 67 a1i ⊢ φ → x ∈ A ⟼ S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x ∈ V
69 59 65 7 6 68 ovmpod ⊢ φ → S F G ∙ ˙ H R = x ∈ A ⟼ S ⁡ x 1 st ⁡ F ⁡ x 1 st ⁡ G ⁡ x · ˙ 1 st ⁡ H ⁡ x R ⁡ x