Metamath Proof Explorer


Theorem moni

Description: Property of a monomorphism. (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 ( 𝜑𝑌𝐵 )
moni.z ( 𝜑𝑍𝐵 )
moni.f ( 𝜑𝐹 ∈ ( 𝑋 𝑀 𝑌 ) )
moni.g ( 𝜑𝐺 ∈ ( 𝑍 𝐻 𝑋 ) )
moni.k ( 𝜑𝐾 ∈ ( 𝑍 𝐻 𝑋 ) )
Assertion moni ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) ↔ 𝐺 = 𝐾 ) )

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 moni.z ( 𝜑𝑍𝐵 )
9 moni.f ( 𝜑𝐹 ∈ ( 𝑋 𝑀 𝑌 ) )
10 moni.g ( 𝜑𝐺 ∈ ( 𝑍 𝐻 𝑋 ) )
11 moni.k ( 𝜑𝐾 ∈ ( 𝑍 𝐻 𝑋 ) )
12 1 2 3 4 5 6 7 ismon2 ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝑀 𝑌 ) ↔ ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ ∀ 𝑧𝐵𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) ) ) )
13 9 12 mpbid ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ ∀ 𝑧𝐵𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) ) )
14 13 simprd ( 𝜑 → ∀ 𝑧𝐵𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) )
15 10 adantr ( ( 𝜑𝑧 = 𝑍 ) → 𝐺 ∈ ( 𝑍 𝐻 𝑋 ) )
16 simpr ( ( 𝜑𝑧 = 𝑍 ) → 𝑧 = 𝑍 )
17 16 oveq1d ( ( 𝜑𝑧 = 𝑍 ) → ( 𝑧 𝐻 𝑋 ) = ( 𝑍 𝐻 𝑋 ) )
18 15 17 eleqtrrd ( ( 𝜑𝑧 = 𝑍 ) → 𝐺 ∈ ( 𝑧 𝐻 𝑋 ) )
19 11 adantr ( ( 𝜑𝑧 = 𝑍 ) → 𝐾 ∈ ( 𝑍 𝐻 𝑋 ) )
20 19 17 eleqtrrd ( ( 𝜑𝑧 = 𝑍 ) → 𝐾 ∈ ( 𝑧 𝐻 𝑋 ) )
21 20 adantr ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) → 𝐾 ∈ ( 𝑧 𝐻 𝑋 ) )
22 simpllr ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → 𝑧 = 𝑍 )
23 22 opeq1d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ⟨ 𝑧 , 𝑋 ⟩ = ⟨ 𝑍 , 𝑋 ⟩ )
24 23 oveq1d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( ⟨ 𝑧 , 𝑋· 𝑌 ) = ( ⟨ 𝑍 , 𝑋· 𝑌 ) )
25 eqidd ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → 𝐹 = 𝐹 )
26 simplr ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → 𝑔 = 𝐺 )
27 24 25 26 oveq123d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) )
28 simpr ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → = 𝐾 )
29 24 25 28 oveq123d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) )
30 27 29 eqeq12d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) ↔ ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) ) )
31 26 28 eqeq12d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( 𝑔 = 𝐺 = 𝐾 ) )
32 30 31 imbi12d ( ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) ∧ = 𝐾 ) → ( ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) ↔ ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) → 𝐺 = 𝐾 ) ) )
33 21 32 rspcdv ( ( ( 𝜑𝑧 = 𝑍 ) ∧ 𝑔 = 𝐺 ) → ( ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) → 𝐺 = 𝐾 ) ) )
34 18 33 rspcimdv ( ( 𝜑𝑧 = 𝑍 ) → ( ∀ 𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) → 𝐺 = 𝐾 ) ) )
35 8 34 rspcimdv ( 𝜑 → ( ∀ 𝑧𝐵𝑔 ∈ ( 𝑧 𝐻 𝑋 ) ∀ ∈ ( 𝑧 𝐻 𝑋 ) ( ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) 𝑔 ) = ( 𝐹 ( ⟨ 𝑧 , 𝑋· 𝑌 ) ) → 𝑔 = ) → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) → 𝐺 = 𝐾 ) ) )
36 14 35 mpd ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) → 𝐺 = 𝐾 ) )
37 oveq2 ( 𝐺 = 𝐾 → ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) )
38 36 37 impbid1 ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐺 ) = ( 𝐹 ( ⟨ 𝑍 , 𝑋· 𝑌 ) 𝐾 ) ↔ 𝐺 = 𝐾 ) )