Metamath Proof Explorer


Theorem domnrcanb

Description: Right-cancellation law for domains, biconditional version of domnrcan . (Contributed by SN, 21-Jun-2025)

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

Proof

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