Metamath Proof Explorer


Theorem isdomn4

Description: A ring is a domain iff it is nonzero and the cancellation law for multiplication holds. (Contributed by SN, 15-Sep-2024)

Ref Expression
Hypotheses isdomn4.b 𝐵 = ( Base ‘ 𝑅 )
isdomn4.0 0 = ( 0g𝑅 )
isdomn4.x · = ( .r𝑅 )
Assertion isdomn4 ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) )

Proof

Step Hyp Ref Expression
1 isdomn4.b 𝐵 = ( Base ‘ 𝑅 )
2 isdomn4.0 0 = ( 0g𝑅 )
3 isdomn4.x · = ( .r𝑅 )
4 domnnzr ( 𝑅 ∈ Domn → 𝑅 ∈ NzRing )
5 eqid ( -g𝑅 ) = ( -g𝑅 )
6 domnring ( 𝑅 ∈ Domn → 𝑅 ∈ Ring )
7 6 adantr ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → 𝑅 ∈ Ring )
8 eldifi ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) → 𝑎𝐵 )
9 8 3ad2ant1 ( ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) → 𝑎𝐵 )
10 9 adantl ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → 𝑎𝐵 )
11 simpr2 ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → 𝑏𝐵 )
12 simpr3 ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → 𝑐𝐵 )
13 1 3 5 7 10 11 12 ringsubdi ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) = ( ( 𝑎 · 𝑏 ) ( -g𝑅 ) ( 𝑎 · 𝑐 ) ) )
14 13 eqeq1d ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) = 0 ↔ ( ( 𝑎 · 𝑏 ) ( -g𝑅 ) ( 𝑎 · 𝑐 ) ) = 0 ) )
15 simpll ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → 𝑅 ∈ Domn )
16 10 adantr ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → 𝑎𝐵 )
17 eldifsni ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) → 𝑎0 )
18 17 3ad2ant1 ( ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) → 𝑎0 )
19 18 ad2antlr ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → 𝑎0 )
20 6 ringgrpd ( 𝑅 ∈ Domn → 𝑅 ∈ Grp )
21 1 5 grpsubcl ( ( 𝑅 ∈ Grp ∧ 𝑏𝐵𝑐𝐵 ) → ( 𝑏 ( -g𝑅 ) 𝑐 ) ∈ 𝐵 )
22 20 21 syl3an1 ( ( 𝑅 ∈ Domn ∧ 𝑏𝐵𝑐𝐵 ) → ( 𝑏 ( -g𝑅 ) 𝑐 ) ∈ 𝐵 )
23 22 3adant3r1 ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( 𝑏 ( -g𝑅 ) 𝑐 ) ∈ 𝐵 )
24 23 adantr ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → ( 𝑏 ( -g𝑅 ) 𝑐 ) ∈ 𝐵 )
25 simpr ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 )
26 1 3 2 domnmuln0 ( ( 𝑅 ∈ Domn ∧ ( 𝑎𝐵𝑎0 ) ∧ ( ( 𝑏 ( -g𝑅 ) 𝑐 ) ∈ 𝐵 ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) ) → ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) ≠ 0 )
27 15 16 19 24 25 26 syl122anc ( ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) ∧ ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 ) → ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) ≠ 0 )
28 27 ex ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( 𝑏 ( -g𝑅 ) 𝑐 ) ≠ 0 → ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) ≠ 0 ) )
29 28 necon4d ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( 𝑎 · ( 𝑏 ( -g𝑅 ) 𝑐 ) ) = 0 → ( 𝑏 ( -g𝑅 ) 𝑐 ) = 0 ) )
30 14 29 sylbird ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( ( 𝑎 · 𝑏 ) ( -g𝑅 ) ( 𝑎 · 𝑐 ) ) = 0 → ( 𝑏 ( -g𝑅 ) 𝑐 ) = 0 ) )
31 20 adantr ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → 𝑅 ∈ Grp )
32 id ( 𝑏𝐵𝑏𝐵 )
33 1 3 ringcl ( ( 𝑅 ∈ Ring ∧ 𝑎𝐵𝑏𝐵 ) → ( 𝑎 · 𝑏 ) ∈ 𝐵 )
34 6 8 32 33 syl3an ( ( 𝑅 ∈ Domn ∧ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) → ( 𝑎 · 𝑏 ) ∈ 𝐵 )
35 34 3adant3r3 ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( 𝑎 · 𝑏 ) ∈ 𝐵 )
36 id ( 𝑐𝐵𝑐𝐵 )
37 1 3 ringcl ( ( 𝑅 ∈ Ring ∧ 𝑎𝐵𝑐𝐵 ) → ( 𝑎 · 𝑐 ) ∈ 𝐵 )
38 6 8 36 37 syl3an ( ( 𝑅 ∈ Domn ∧ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑐𝐵 ) → ( 𝑎 · 𝑐 ) ∈ 𝐵 )
39 38 3adant3r2 ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( 𝑎 · 𝑐 ) ∈ 𝐵 )
40 1 2 5 grpsubeq0 ( ( 𝑅 ∈ Grp ∧ ( 𝑎 · 𝑏 ) ∈ 𝐵 ∧ ( 𝑎 · 𝑐 ) ∈ 𝐵 ) → ( ( ( 𝑎 · 𝑏 ) ( -g𝑅 ) ( 𝑎 · 𝑐 ) ) = 0 ↔ ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) ) )
41 31 35 39 40 syl3anc ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( ( 𝑎 · 𝑏 ) ( -g𝑅 ) ( 𝑎 · 𝑐 ) ) = 0 ↔ ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) ) )
42 1 2 5 grpsubeq0 ( ( 𝑅 ∈ Grp ∧ 𝑏𝐵𝑐𝐵 ) → ( ( 𝑏 ( -g𝑅 ) 𝑐 ) = 0𝑏 = 𝑐 ) )
43 31 11 12 42 syl3anc ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( 𝑏 ( -g𝑅 ) 𝑐 ) = 0𝑏 = 𝑐 ) )
44 30 41 43 3imtr3d ( ( 𝑅 ∈ Domn ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵𝑐𝐵 ) ) → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) )
45 44 ralrimivvva ( 𝑅 ∈ Domn → ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) )
46 4 45 jca ( 𝑅 ∈ Domn → ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) )
47 nzrring ( 𝑅 ∈ NzRing → 𝑅 ∈ Ring )
48 47 ringgrpd ( 𝑅 ∈ NzRing → 𝑅 ∈ Grp )
49 1 2 grpidcl ( 𝑅 ∈ Grp → 0𝐵 )
50 48 49 syl ( 𝑅 ∈ NzRing → 0𝐵 )
51 50 adantr ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → 0𝐵 )
52 oveq2 ( 𝑐 = 0 → ( 𝑎 · 𝑐 ) = ( 𝑎 · 0 ) )
53 52 eqeq2d ( 𝑐 = 0 → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) ↔ ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) ) )
54 eqeq2 ( 𝑐 = 0 → ( 𝑏 = 𝑐𝑏 = 0 ) )
55 53 54 imbi12d ( 𝑐 = 0 → ( ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ↔ ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) → 𝑏 = 0 ) ) )
56 55 rspcv ( 0𝐵 → ( ∀ 𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) → 𝑏 = 0 ) ) )
57 51 56 syl ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → ( ∀ 𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) → 𝑏 = 0 ) ) )
58 1 3 2 ringrz ( ( 𝑅 ∈ Ring ∧ 𝑎𝐵 ) → ( 𝑎 · 0 ) = 0 )
59 47 8 58 syl2an ( ( 𝑅 ∈ NzRing ∧ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ) → ( 𝑎 · 0 ) = 0 )
60 59 adantrr ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → ( 𝑎 · 0 ) = 0 )
61 60 eqeq2d ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) ↔ ( 𝑎 · 𝑏 ) = 0 ) )
62 61 imbi1d ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → ( ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 0 ) → 𝑏 = 0 ) ↔ ( ( 𝑎 · 𝑏 ) = 0𝑏 = 0 ) ) )
63 57 62 sylibd ( ( 𝑅 ∈ NzRing ∧ ( 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∧ 𝑏𝐵 ) ) → ( ∀ 𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) → ( ( 𝑎 · 𝑏 ) = 0𝑏 = 0 ) ) )
64 63 ralimdvva ( 𝑅 ∈ NzRing → ( ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) → ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0𝑏 = 0 ) ) )
65 isdomn5 ( ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0 → ( 𝑎 = 0𝑏 = 0 ) ) ↔ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0𝑏 = 0 ) )
66 64 65 syl6ibr ( 𝑅 ∈ NzRing → ( ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) → ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0 → ( 𝑎 = 0𝑏 = 0 ) ) ) )
67 66 imdistani ( ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) → ( 𝑅 ∈ NzRing ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0 → ( 𝑎 = 0𝑏 = 0 ) ) ) )
68 1 3 2 isdomn ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑎 · 𝑏 ) = 0 → ( 𝑎 = 0𝑏 = 0 ) ) ) )
69 67 68 sylibr ( ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) → 𝑅 ∈ Domn )
70 46 69 impbii ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ∀ 𝑎 ∈ ( 𝐵 ∖ { 0 } ) ∀ 𝑏𝐵𝑐𝐵 ( ( 𝑎 · 𝑏 ) = ( 𝑎 · 𝑐 ) → 𝑏 = 𝑐 ) ) )