Metamath Proof Explorer


Theorem idfu2nd

Description: Value of the morphism part of the identity functor. (Contributed by Mario Carneiro, 3-Jan-2017)

Ref Expression
Hypotheses idfuval.i 𝐼 = ( idfunc𝐶 )
idfuval.b 𝐵 = ( Base ‘ 𝐶 )
idfuval.c ( 𝜑𝐶 ∈ Cat )
idfuval.h 𝐻 = ( Hom ‘ 𝐶 )
idfu2nd.x ( 𝜑𝑋𝐵 )
idfu2nd.y ( 𝜑𝑌𝐵 )
Assertion idfu2nd ( 𝜑 → ( 𝑋 ( 2nd𝐼 ) 𝑌 ) = ( I ↾ ( 𝑋 𝐻 𝑌 ) ) )

Proof

Step Hyp Ref Expression
1 idfuval.i 𝐼 = ( idfunc𝐶 )
2 idfuval.b 𝐵 = ( Base ‘ 𝐶 )
3 idfuval.c ( 𝜑𝐶 ∈ Cat )
4 idfuval.h 𝐻 = ( Hom ‘ 𝐶 )
5 idfu2nd.x ( 𝜑𝑋𝐵 )
6 idfu2nd.y ( 𝜑𝑌𝐵 )
7 df-ov ( 𝑋 ( 2nd𝐼 ) 𝑌 ) = ( ( 2nd𝐼 ) ‘ ⟨ 𝑋 , 𝑌 ⟩ )
8 1 2 3 4 idfuval ( 𝜑𝐼 = ⟨ ( I ↾ 𝐵 ) , ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) ) ⟩ )
9 8 fveq2d ( 𝜑 → ( 2nd𝐼 ) = ( 2nd ‘ ⟨ ( I ↾ 𝐵 ) , ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) ) ⟩ ) )
10 2 fvexi 𝐵 ∈ V
11 resiexg ( 𝐵 ∈ V → ( I ↾ 𝐵 ) ∈ V )
12 10 11 ax-mp ( I ↾ 𝐵 ) ∈ V
13 10 10 xpex ( 𝐵 × 𝐵 ) ∈ V
14 13 mptex ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) ) ∈ V
15 12 14 op2nd ( 2nd ‘ ⟨ ( I ↾ 𝐵 ) , ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) ) ⟩ ) = ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) )
16 9 15 eqtrdi ( 𝜑 → ( 2nd𝐼 ) = ( 𝑧 ∈ ( 𝐵 × 𝐵 ) ↦ ( I ↾ ( 𝐻𝑧 ) ) ) )
17 simpr ( ( 𝜑𝑧 = ⟨ 𝑋 , 𝑌 ⟩ ) → 𝑧 = ⟨ 𝑋 , 𝑌 ⟩ )
18 17 fveq2d ( ( 𝜑𝑧 = ⟨ 𝑋 , 𝑌 ⟩ ) → ( 𝐻𝑧 ) = ( 𝐻 ‘ ⟨ 𝑋 , 𝑌 ⟩ ) )
19 df-ov ( 𝑋 𝐻 𝑌 ) = ( 𝐻 ‘ ⟨ 𝑋 , 𝑌 ⟩ )
20 18 19 eqtr4di ( ( 𝜑𝑧 = ⟨ 𝑋 , 𝑌 ⟩ ) → ( 𝐻𝑧 ) = ( 𝑋 𝐻 𝑌 ) )
21 20 reseq2d ( ( 𝜑𝑧 = ⟨ 𝑋 , 𝑌 ⟩ ) → ( I ↾ ( 𝐻𝑧 ) ) = ( I ↾ ( 𝑋 𝐻 𝑌 ) ) )
22 5 6 opelxpd ( 𝜑 → ⟨ 𝑋 , 𝑌 ⟩ ∈ ( 𝐵 × 𝐵 ) )
23 ovex ( 𝑋 𝐻 𝑌 ) ∈ V
24 resiexg ( ( 𝑋 𝐻 𝑌 ) ∈ V → ( I ↾ ( 𝑋 𝐻 𝑌 ) ) ∈ V )
25 23 24 mp1i ( 𝜑 → ( I ↾ ( 𝑋 𝐻 𝑌 ) ) ∈ V )
26 16 21 22 25 fvmptd ( 𝜑 → ( ( 2nd𝐼 ) ‘ ⟨ 𝑋 , 𝑌 ⟩ ) = ( I ↾ ( 𝑋 𝐻 𝑌 ) ) )
27 7 26 eqtrid ( 𝜑 → ( 𝑋 ( 2nd𝐼 ) 𝑌 ) = ( I ↾ ( 𝑋 𝐻 𝑌 ) ) )