Metamath Proof Explorer


Theorem ismon

Description: Definition of a monomorphism in a category. (Contributed by Mario Carneiro, 2-Jan-2017)

Ref Expression
Hypotheses ismon.b 𝐵 = ( Base ‘ 𝐶 )
ismon.h 𝐻 = ( Hom ‘ 𝐶 )
ismon.o · = ( comp ‘ 𝐶 )
ismon.s 𝑀 = ( Mono ‘ 𝐶 )
ismon.c ( 𝜑𝐶 ∈ Cat )
ismon.x ( 𝜑𝑋𝐵 )
ismon.y ( 𝜑𝑌𝐵 )
Assertion ismon ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝑀 𝑌 ) ↔ ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 ismon.b 𝐵 = ( Base ‘ 𝐶 )
2 ismon.h 𝐻 = ( Hom ‘ 𝐶 )
3 ismon.o · = ( comp ‘ 𝐶 )
4 ismon.s 𝑀 = ( Mono ‘ 𝐶 )
5 ismon.c ( 𝜑𝐶 ∈ Cat )
6 ismon.x ( 𝜑𝑋𝐵 )
7 ismon.y ( 𝜑𝑌𝐵 )
8 1 2 3 4 5 monfval ( 𝜑𝑀 = ( 𝑥𝐵 , 𝑦𝐵 ↦ { 𝑓 ∈ ( 𝑥 𝐻 𝑦 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) } ) )
9 simprl ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → 𝑥 = 𝑋 )
10 simprr ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → 𝑦 = 𝑌 )
11 9 10 oveq12d ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( 𝑥 𝐻 𝑦 ) = ( 𝑋 𝐻 𝑌 ) )
12 9 oveq2d ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( 𝑧 𝐻 𝑥 ) = ( 𝑧 𝐻 𝑋 ) )
13 9 opeq2d ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ⟨ 𝑧 , 𝑥 ⟩ = ⟨ 𝑧 , 𝑋 ⟩ )
14 13 10 oveq12d ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( ⟨ 𝑧 , 𝑥· 𝑦 ) = ( ⟨ 𝑧 , 𝑋· 𝑌 ) )
15 14 oveqd ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) = ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) )
16 12 15 mpteq12dv ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) )
17 16 cnveqd ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) )
18 17 funeqd ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) ↔ Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) )
19 18 ralbidv ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → ( ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) ↔ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) )
20 11 19 rabeqbidv ( ( 𝜑 ∧ ( 𝑥 = 𝑋𝑦 = 𝑌 ) ) → { 𝑓 ∈ ( 𝑥 𝐻 𝑦 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑥 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑥· 𝑦 ) 𝑔 ) ) } = { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } )
21 ovex ( 𝑋 𝐻 𝑌 ) ∈ V
22 21 rabex { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } ∈ V
23 22 a1i ( 𝜑 → { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } ∈ V )
24 8 20 6 7 23 ovmpod ( 𝜑 → ( 𝑋 𝑀 𝑌 ) = { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } )
25 24 eleq2d ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝑀 𝑌 ) ↔ 𝐹 ∈ { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } ) )
26 oveq1 ( 𝑓 = 𝐹 → ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) )
27 26 mpteq2dv ( 𝑓 = 𝐹 → ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) )
28 27 cnveqd ( 𝑓 = 𝐹 ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) )
29 28 funeqd ( 𝑓 = 𝐹 → ( Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ↔ Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) )
30 29 ralbidv ( 𝑓 = 𝐹 → ( ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ↔ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) )
31 30 elrab ( 𝐹 ∈ { 𝑓 ∈ ( 𝑋 𝐻 𝑌 ) ∣ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝑓 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) } ↔ ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) )
32 25 31 bitrdi ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝑀 𝑌 ) ↔ ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ ∀ 𝑧𝐵 Fun ( 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ↦ ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) ) ) ) )