Metamath Proof Explorer


Theorem isdomn2

Description: A ring is a domain iff all nonzero elements are nonzero-divisors. (Contributed by Mario Carneiro, 28-Mar-2015)

Ref Expression
Hypotheses isdomn2.b 𝐵 = ( Base ‘ 𝑅 )
isdomn2.t 𝐸 = ( RLReg ‘ 𝑅 )
isdomn2.z 0 = ( 0g𝑅 )
Assertion isdomn2 ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ( 𝐵 ∖ { 0 } ) ⊆ 𝐸 ) )

Proof

Step Hyp Ref Expression
1 isdomn2.b 𝐵 = ( Base ‘ 𝑅 )
2 isdomn2.t 𝐸 = ( RLReg ‘ 𝑅 )
3 isdomn2.z 0 = ( 0g𝑅 )
4 eqid ( .r𝑅 ) = ( .r𝑅 )
5 1 4 3 isdomn ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ) )
6 dfss3 ( ( 𝐵 ∖ { 0 } ) ⊆ 𝐸 ↔ ∀ 𝑥 ∈ ( 𝐵 ∖ { 0 } ) 𝑥𝐸 )
7 2 1 4 3 isrrg ( 𝑥𝐸 ↔ ( 𝑥𝐵 ∧ ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
8 7 baib ( 𝑥𝐵 → ( 𝑥𝐸 ↔ ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
9 8 imbi2d ( 𝑥𝐵 → ( ( 𝑥0𝑥𝐸 ) ↔ ( 𝑥0 → ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) ) )
10 9 ralbiia ( ∀ 𝑥𝐵 ( 𝑥0𝑥𝐸 ) ↔ ∀ 𝑥𝐵 ( 𝑥0 → ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
11 eldifsn ( 𝑥 ∈ ( 𝐵 ∖ { 0 } ) ↔ ( 𝑥𝐵𝑥0 ) )
12 11 imbi1i ( ( 𝑥 ∈ ( 𝐵 ∖ { 0 } ) → 𝑥𝐸 ) ↔ ( ( 𝑥𝐵𝑥0 ) → 𝑥𝐸 ) )
13 impexp ( ( ( 𝑥𝐵𝑥0 ) → 𝑥𝐸 ) ↔ ( 𝑥𝐵 → ( 𝑥0𝑥𝐸 ) ) )
14 12 13 bitri ( ( 𝑥 ∈ ( 𝐵 ∖ { 0 } ) → 𝑥𝐸 ) ↔ ( 𝑥𝐵 → ( 𝑥0𝑥𝐸 ) ) )
15 14 ralbii2 ( ∀ 𝑥 ∈ ( 𝐵 ∖ { 0 } ) 𝑥𝐸 ↔ ∀ 𝑥𝐵 ( 𝑥0𝑥𝐸 ) )
16 con34b ( ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ( ¬ ( 𝑥 = 0𝑦 = 0 ) → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) )
17 impexp ( ( ( ¬ 𝑥 = 0 ∧ ¬ 𝑦 = 0 ) → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) ↔ ( ¬ 𝑥 = 0 → ( ¬ 𝑦 = 0 → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) ) )
18 ioran ( ¬ ( 𝑥 = 0𝑦 = 0 ) ↔ ( ¬ 𝑥 = 0 ∧ ¬ 𝑦 = 0 ) )
19 18 imbi1i ( ( ¬ ( 𝑥 = 0𝑦 = 0 ) → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) ↔ ( ( ¬ 𝑥 = 0 ∧ ¬ 𝑦 = 0 ) → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) )
20 df-ne ( 𝑥0 ↔ ¬ 𝑥 = 0 )
21 con34b ( ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ↔ ( ¬ 𝑦 = 0 → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) )
22 20 21 imbi12i ( ( 𝑥0 → ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) ↔ ( ¬ 𝑥 = 0 → ( ¬ 𝑦 = 0 → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) ) )
23 17 19 22 3bitr4i ( ( ¬ ( 𝑥 = 0𝑦 = 0 ) → ¬ ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 ) ↔ ( 𝑥0 → ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
24 16 23 bitri ( ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ( 𝑥0 → ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
25 24 ralbii ( ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ∀ 𝑦𝐵 ( 𝑥0 → ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
26 r19.21v ( ∀ 𝑦𝐵 ( 𝑥0 → ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) ↔ ( 𝑥0 → ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
27 25 26 bitri ( ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ( 𝑥0 → ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
28 27 ralbii ( ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ∀ 𝑥𝐵 ( 𝑥0 → ∀ 𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0𝑦 = 0 ) ) )
29 10 15 28 3bitr4i ( ∀ 𝑥 ∈ ( 𝐵 ∖ { 0 } ) 𝑥𝐸 ↔ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) )
30 6 29 bitr2i ( ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ↔ ( 𝐵 ∖ { 0 } ) ⊆ 𝐸 )
31 30 anbi2i ( ( 𝑅 ∈ NzRing ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑥 ( .r𝑅 ) 𝑦 ) = 0 → ( 𝑥 = 0𝑦 = 0 ) ) ) ↔ ( 𝑅 ∈ NzRing ∧ ( 𝐵 ∖ { 0 } ) ⊆ 𝐸 ) )
32 5 31 bitri ( 𝑅 ∈ Domn ↔ ( 𝑅 ∈ NzRing ∧ ( 𝐵 ∖ { 0 } ) ⊆ 𝐸 ) )