Metamath Proof Explorer


Theorem domnlcan

Description: Left-cancellation law for domains. (Contributed by Thierry Arnoux, 22-Mar-2025)

Ref Expression
Hypotheses domncan.b 𝐵 = ( Base ‘ 𝑅 )
domncan.1 0 = ( 0g𝑅 )
domncan.m · = ( .r𝑅 )
domncan.x ( 𝜑𝑋 ∈ ( 𝐵 ∖ { 0 } ) )
domncan.y ( 𝜑𝑌𝐵 )
domncan.z ( 𝜑𝑍𝐵 )
domnlcan.r ( 𝜑𝑅 ∈ Domn )
domnlcan.2 ( 𝜑 → ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑍 ) )
Assertion domnlcan ( 𝜑𝑌 = 𝑍 )

Proof

Step Hyp Ref Expression
1 domncan.b 𝐵 = ( Base ‘ 𝑅 )
2 domncan.1 0 = ( 0g𝑅 )
3 domncan.m · = ( .r𝑅 )
4 domncan.x ( 𝜑𝑋 ∈ ( 𝐵 ∖ { 0 } ) )
5 domncan.y ( 𝜑𝑌𝐵 )
6 domncan.z ( 𝜑𝑍𝐵 )
7 domnlcan.r ( 𝜑𝑅 ∈ Domn )
8 domnlcan.2 ( 𝜑 → ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑍 ) )
9 oveq1 ( 𝑎 = 𝑋 → ( 𝑎 · 𝑏 ) = ( 𝑋 · 𝑏 ) )
10 oveq1 ( 𝑎 = 𝑋 → ( 𝑎 · 𝑐 ) = ( 𝑋 · 𝑐 ) )
11 9 10 eqeq12d ( 𝑎 = 𝑋 → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) ↔ ( 𝑋 · 𝑏 ) = ( 𝑋 · 𝑐 ) ) )
12 11 imbi1d ( 𝑎 = 𝑋 → ( ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ↔ ( ( 𝑋 · 𝑏 ) = ( 𝑋 · 𝑐 ) → 𝑏 = 𝑐 ) ) )
13 oveq2 ( 𝑏 = 𝑌 → ( 𝑋 · 𝑏 ) = ( 𝑋 · 𝑌 ) )
14 13 eqeq1d ( 𝑏 = 𝑌 → ( ( 𝑋 · 𝑏 ) = ( 𝑋 · 𝑐 ) ↔ ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑐 ) ) )
15 eqeq1 ( 𝑏 = 𝑌 → ( 𝑏 = 𝑐𝑌 = 𝑐 ) )
16 14 15 imbi12d ( 𝑏 = 𝑌 → ( ( ( 𝑋 · 𝑏 ) = ( 𝑋 · 𝑐 ) → 𝑏 = 𝑐 ) ↔ ( ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑐 ) → 𝑌 = 𝑐 ) ) )
17 oveq2 ( 𝑐 = 𝑍 → ( 𝑋 · 𝑐 ) = ( 𝑋 · 𝑍 ) )
18 17 eqeq2d ( 𝑐 = 𝑍 → ( ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑐 ) ↔ ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑍 ) ) )
19 eqeq2 ( 𝑐 = 𝑍 → ( 𝑌 = 𝑐𝑌 = 𝑍 ) )
20 18 19 imbi12d ( 𝑐 = 𝑍 → ( ( ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑐 ) → 𝑌 = 𝑐 ) ↔ ( ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑍 ) → 𝑌 = 𝑍 ) ) )
21 1 2 3 isdomn4 ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) )
22 7 21 sylib ( 𝜑 → ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) )
23 22 simprd ( 𝜑 → ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) )
24 12 16 20 23 4 5 6 rspc3dv ( 𝜑 → ( ( 𝑋 · 𝑌 ) = ( 𝑋 · 𝑍 ) → 𝑌 = 𝑍 ) )
25 8 24 mpd ( 𝜑𝑌 = 𝑍 )