Metamath Proof Explorer


Theorem fuchom

Description: The morphisms in the functor category are natural transformations. (Contributed by Mario Carneiro, 6-Jan-2017)

Ref Expression
Hypotheses fucbas.q 𝑄 = ( 𝐶 FuncCat 𝐷 )
fuchom.n 𝑁 = ( 𝐶 Nat 𝐷 )
Assertion fuchom 𝑁 = ( Hom ‘ 𝑄 )

Proof

Step Hyp Ref Expression
1 fucbas.q 𝑄 = ( 𝐶 FuncCat 𝐷 )
2 fuchom.n 𝑁 = ( 𝐶 Nat 𝐷 )
3 eqid ( 𝐶 Func 𝐷 ) = ( 𝐶 Func 𝐷 )
4 eqid ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 )
5 eqid ( comp ‘ 𝐷 ) = ( comp ‘ 𝐷 )
6 simpl ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝐶 ∈ Cat )
7 simpr ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝐷 ∈ Cat )
8 eqid ( comp ‘ 𝑄 ) = ( comp ‘ 𝑄 )
9 1 3 2 4 5 6 7 8 fuccofval ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( comp ‘ 𝑄 ) = ( 𝑣 ∈ ( ( 𝐶 Func 𝐷 ) × ( 𝐶 Func 𝐷 ) ) , ∈ ( 𝐶 Func 𝐷 ) ↦ ( 1st𝑣 ) / 𝑓 ( 2nd𝑣 ) / 𝑔 ( 𝑏 ∈ ( 𝑔 𝑁 ) , 𝑎 ∈ ( 𝑓 𝑁 𝑔 ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( 𝑏𝑥 ) ( ⟨ ( ( 1st𝑓 ) ‘ 𝑥 ) , ( ( 1st𝑔 ) ‘ 𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( ( 1st ) ‘ 𝑥 ) ) ( 𝑎𝑥 ) ) ) ) ) )
10 1 3 2 4 5 6 7 9 fucval ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑄 = { ⟨ ( Base ‘ ndx ) , ( 𝐶 Func 𝐷 ) ⟩ , ⟨ ( Hom ‘ ndx ) , 𝑁 ⟩ , ⟨ ( comp ‘ ndx ) , ( comp ‘ 𝑄 ) ⟩ } )
11 catstr { ⟨ ( Base ‘ ndx ) , ( 𝐶 Func 𝐷 ) ⟩ , ⟨ ( Hom ‘ ndx ) , 𝑁 ⟩ , ⟨ ( comp ‘ ndx ) , ( comp ‘ 𝑄 ) ⟩ } Struct ⟨ 1 , 1 5 ⟩
12 homid Hom = Slot ( Hom ‘ ndx )
13 snsstp2 { ⟨ ( Hom ‘ ndx ) , 𝑁 ⟩ } ⊆ { ⟨ ( Base ‘ ndx ) , ( 𝐶 Func 𝐷 ) ⟩ , ⟨ ( Hom ‘ ndx ) , 𝑁 ⟩ , ⟨ ( comp ‘ ndx ) , ( comp ‘ 𝑄 ) ⟩ }
14 2 ovexi 𝑁 ∈ V
15 14 a1i ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑁 ∈ V )
16 eqid ( Hom ‘ 𝑄 ) = ( Hom ‘ 𝑄 )
17 10 11 12 13 15 16 strfv3 ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( Hom ‘ 𝑄 ) = 𝑁 )
18 17 eqcomd ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑁 = ( Hom ‘ 𝑄 ) )
19 df-hom Hom = Slot 1 4
20 19 str0 ∅ = ( Hom ‘ ∅ )
21 2 natffn 𝑁 Fn ( ( 𝐶 Func 𝐷 ) × ( 𝐶 Func 𝐷 ) )
22 funcrcl ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) → ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) )
23 22 con3i ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ¬ 𝑓 ∈ ( 𝐶 Func 𝐷 ) )
24 23 eq0rdv ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 𝐶 Func 𝐷 ) = ∅ )
25 24 xpeq2d ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( ( 𝐶 Func 𝐷 ) × ( 𝐶 Func 𝐷 ) ) = ( ( 𝐶 Func 𝐷 ) × ∅ ) )
26 xp0 ( ( 𝐶 Func 𝐷 ) × ∅ ) = ∅
27 25 26 eqtrdi ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( ( 𝐶 Func 𝐷 ) × ( 𝐶 Func 𝐷 ) ) = ∅ )
28 27 fneq2d ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 𝑁 Fn ( ( 𝐶 Func 𝐷 ) × ( 𝐶 Func 𝐷 ) ) ↔ 𝑁 Fn ∅ ) )
29 21 28 mpbii ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑁 Fn ∅ )
30 fn0 ( 𝑁 Fn ∅ ↔ 𝑁 = ∅ )
31 29 30 sylib ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑁 = ∅ )
32 fnfuc FuncCat Fn ( Cat × Cat )
33 32 fndmi dom FuncCat = ( Cat × Cat )
34 33 ndmov ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 𝐶 FuncCat 𝐷 ) = ∅ )
35 1 34 syl5eq ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑄 = ∅ )
36 35 fveq2d ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( Hom ‘ 𝑄 ) = ( Hom ‘ ∅ ) )
37 20 31 36 3eqtr4a ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → 𝑁 = ( Hom ‘ 𝑄 ) )
38 18 37 pm2.61i 𝑁 = ( Hom ‘ 𝑄 )