Metamath Proof Explorer


Theorem catccofval

Description: Composition in the category of categories. (Contributed by Mario Carneiro, 3-Jan-2017)

Ref Expression
Hypotheses catcbas.c 𝐶 = ( CatCat ‘ 𝑈 )
catcbas.b 𝐵 = ( Base ‘ 𝐶 )
catcbas.u ( 𝜑𝑈𝑉 )
catcco.o · = ( comp ‘ 𝐶 )
Assertion catccofval ( 𝜑· = ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) )

Proof

Step Hyp Ref Expression
1 catcbas.c 𝐶 = ( CatCat ‘ 𝑈 )
2 catcbas.b 𝐵 = ( Base ‘ 𝐶 )
3 catcbas.u ( 𝜑𝑈𝑉 )
4 catcco.o · = ( comp ‘ 𝐶 )
5 1 2 3 catcbas ( 𝜑𝐵 = ( 𝑈 ∩ Cat ) )
6 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
7 1 2 3 6 catchomfval ( 𝜑 → ( Hom ‘ 𝐶 ) = ( 𝑥𝐵 , 𝑦𝐵 ↦ ( 𝑥 Func 𝑦 ) ) )
8 eqidd ( 𝜑 → ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) = ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) )
9 1 3 5 7 8 catcval ( 𝜑𝐶 = { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } )
10 9 fveq2d ( 𝜑 → ( comp ‘ 𝐶 ) = ( comp ‘ { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } ) )
11 2 fvexi 𝐵 ∈ V
12 11 11 xpex ( 𝐵 × 𝐵 ) ∈ V
13 12 11 mpoex ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ∈ V
14 catstr { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } Struct ⟨ 1 , 1 5 ⟩
15 ccoid comp = Slot ( comp ‘ ndx )
16 snsstp3 { ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } ⊆ { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ }
17 14 15 16 strfv ( ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ∈ V → ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) = ( comp ‘ { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } ) )
18 13 17 ax-mp ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) = ( comp ‘ { ⟨ ( Base ‘ ndx ) , 𝐵 ⟩ , ⟨ ( Hom ‘ ndx ) , ( Hom ‘ 𝐶 ) ⟩ , ⟨ ( comp ‘ ndx ) , ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) ⟩ } )
19 10 4 18 3eqtr4g ( 𝜑· = ( 𝑣 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ ( 𝑔 ∈ ( ( 2nd𝑣 ) Func 𝑧 ) , 𝑓 ∈ ( Func ‘ 𝑣 ) ↦ ( 𝑔func 𝑓 ) ) ) )