Metamath Proof Explorer


Theorem domnlcanb

Description: Left-cancellation law for domains, biconditional version of domnlcan . (Contributed by Thierry Arnoux, 8-Jun-2025) Shorten this theorem and domnlcan overall. (Revised by SN, 21-Jun-2025)

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

Proof

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