Metamath Proof Explorer


Theorem drngidlhash

Description: A ring is a division ring if and only if it admits exactly two ideals. (Proposed by Gerard Lang, 13-Mar-2025.) (Contributed by Thierry Arnoux, 13-Mar-2025)

Ref Expression
Hypothesis drngidlhash.u 𝑈 = ( LIdeal ‘ 𝑅 )
Assertion drngidlhash ( 𝑅 ∈ Ring → ( 𝑅 ∈ DivRing ↔ ( ♯ ‘ 𝑈 ) = 2 ) )

Proof

Step Hyp Ref Expression
1 drngidlhash.u 𝑈 = ( LIdeal ‘ 𝑅 )
2 eqid ( Base ‘ 𝑅 ) = ( Base ‘ 𝑅 )
3 eqid ( 0g𝑅 ) = ( 0g𝑅 )
4 2 3 1 drngnidl ( 𝑅 ∈ DivRing → 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } )
5 4 fveq2d ( 𝑅 ∈ DivRing → ( ♯ ‘ 𝑈 ) = ( ♯ ‘ { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) )
6 drngnzr ( 𝑅 ∈ DivRing → 𝑅 ∈ NzRing )
7 nzrring ( 𝑅 ∈ NzRing → 𝑅 ∈ Ring )
8 eqid ( 1r𝑅 ) = ( 1r𝑅 )
9 2 8 ringidcl ( 𝑅 ∈ Ring → ( 1r𝑅 ) ∈ ( Base ‘ 𝑅 ) )
10 7 9 syl ( 𝑅 ∈ NzRing → ( 1r𝑅 ) ∈ ( Base ‘ 𝑅 ) )
11 8 3 nzrnz ( 𝑅 ∈ NzRing → ( 1r𝑅 ) ≠ ( 0g𝑅 ) )
12 nelsn ( ( 1r𝑅 ) ≠ ( 0g𝑅 ) → ¬ ( 1r𝑅 ) ∈ { ( 0g𝑅 ) } )
13 11 12 syl ( 𝑅 ∈ NzRing → ¬ ( 1r𝑅 ) ∈ { ( 0g𝑅 ) } )
14 nelne1 ( ( ( 1r𝑅 ) ∈ ( Base ‘ 𝑅 ) ∧ ¬ ( 1r𝑅 ) ∈ { ( 0g𝑅 ) } ) → ( Base ‘ 𝑅 ) ≠ { ( 0g𝑅 ) } )
15 10 13 14 syl2anc ( 𝑅 ∈ NzRing → ( Base ‘ 𝑅 ) ≠ { ( 0g𝑅 ) } )
16 15 necomd ( 𝑅 ∈ NzRing → { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) )
17 6 16 syl ( 𝑅 ∈ DivRing → { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) )
18 snex { ( 0g𝑅 ) } ∈ V
19 fvex ( Base ‘ 𝑅 ) ∈ V
20 hashprg ( ( { ( 0g𝑅 ) } ∈ V ∧ ( Base ‘ 𝑅 ) ∈ V ) → ( { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) ↔ ( ♯ ‘ { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) = 2 ) )
21 18 19 20 mp2an ( { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) ↔ ( ♯ ‘ { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) = 2 )
22 17 21 sylib ( 𝑅 ∈ DivRing → ( ♯ ‘ { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) = 2 )
23 5 22 eqtrd ( 𝑅 ∈ DivRing → ( ♯ ‘ 𝑈 ) = 2 )
24 23 adantl ( ( 𝑅 ∈ Ring ∧ 𝑅 ∈ DivRing ) → ( ♯ ‘ 𝑈 ) = 2 )
25 simpl ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → 𝑅 ∈ Ring )
26 simplr ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) = 2 )
27 2re 2 ∈ ℝ
28 26 27 eqeltrdi ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) ∈ ℝ )
29 simpl ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → 𝑅 ∈ Ring )
30 simpr ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) )
31 30 fveq2d ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ { ( 0g𝑅 ) } ) = ( ♯ ‘ ( Base ‘ 𝑅 ) ) )
32 fvex ( 0g𝑅 ) ∈ V
33 hashsng ( ( 0g𝑅 ) ∈ V → ( ♯ ‘ { ( 0g𝑅 ) } ) = 1 )
34 32 33 ax-mp ( ♯ ‘ { ( 0g𝑅 ) } ) = 1
35 31 34 eqtr3di ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ ( Base ‘ 𝑅 ) ) = 1 )
36 2 3 0ringidl ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ ( Base ‘ 𝑅 ) ) = 1 ) → ( LIdeal ‘ 𝑅 ) = { { ( 0g𝑅 ) } } )
37 29 35 36 syl2anc ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( LIdeal ‘ 𝑅 ) = { { ( 0g𝑅 ) } } )
38 1 37 eqtrid ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → 𝑈 = { { ( 0g𝑅 ) } } )
39 38 fveq2d ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) = ( ♯ ‘ { { ( 0g𝑅 ) } } ) )
40 hashsng ( { ( 0g𝑅 ) } ∈ V → ( ♯ ‘ { { ( 0g𝑅 ) } } ) = 1 )
41 18 40 ax-mp ( ♯ ‘ { { ( 0g𝑅 ) } } ) = 1
42 39 41 eqtrdi ( ( 𝑅 ∈ Ring ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) = 1 )
43 42 adantlr ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) = 1 )
44 1lt2 1 < 2
45 43 44 eqbrtrdi ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) < 2 )
46 28 45 ltned ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ( ♯ ‘ 𝑈 ) ≠ 2 )
47 46 neneqd ( ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) → ¬ ( ♯ ‘ 𝑈 ) = 2 )
48 26 47 pm2.65da ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ¬ { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) )
49 48 neqned ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) )
50 2 3 8 01eq0ring ( ( 𝑅 ∈ Ring ∧ ( 0g𝑅 ) = ( 1r𝑅 ) ) → ( Base ‘ 𝑅 ) = { ( 0g𝑅 ) } )
51 50 eqcomd ( ( 𝑅 ∈ Ring ∧ ( 0g𝑅 ) = ( 1r𝑅 ) ) → { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) )
52 51 ex ( 𝑅 ∈ Ring → ( ( 0g𝑅 ) = ( 1r𝑅 ) → { ( 0g𝑅 ) } = ( Base ‘ 𝑅 ) ) )
53 52 necon3d ( 𝑅 ∈ Ring → ( { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) → ( 0g𝑅 ) ≠ ( 1r𝑅 ) ) )
54 25 49 53 sylc ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ( 0g𝑅 ) ≠ ( 1r𝑅 ) )
55 54 necomd ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ( 1r𝑅 ) ≠ ( 0g𝑅 ) )
56 8 3 isnzr ( 𝑅 ∈ NzRing ↔ ( 𝑅 ∈ Ring ∧ ( 1r𝑅 ) ≠ ( 0g𝑅 ) ) )
57 25 55 56 sylanbrc ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → 𝑅 ∈ NzRing )
58 1 fvexi 𝑈 ∈ V
59 58 a1i ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → 𝑈 ∈ V )
60 simpr ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ( ♯ ‘ 𝑈 ) = 2 )
61 1 3 lidl0 ( 𝑅 ∈ Ring → { ( 0g𝑅 ) } ∈ 𝑈 )
62 25 61 syl ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → { ( 0g𝑅 ) } ∈ 𝑈 )
63 1 2 lidl1 ( 𝑅 ∈ Ring → ( Base ‘ 𝑅 ) ∈ 𝑈 )
64 25 63 syl ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ( Base ‘ 𝑅 ) ∈ 𝑈 )
65 hash2prd ( ( 𝑈 ∈ V ∧ ( ♯ ‘ 𝑈 ) = 2 ) → ( ( { ( 0g𝑅 ) } ∈ 𝑈 ∧ ( Base ‘ 𝑅 ) ∈ 𝑈 ∧ { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) ) → 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) )
66 65 imp ( ( ( 𝑈 ∈ V ∧ ( ♯ ‘ 𝑈 ) = 2 ) ∧ ( { ( 0g𝑅 ) } ∈ 𝑈 ∧ ( Base ‘ 𝑅 ) ∈ 𝑈 ∧ { ( 0g𝑅 ) } ≠ ( Base ‘ 𝑅 ) ) ) → 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } )
67 59 60 62 64 49 66 syl23anc ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } )
68 2 3 1 drngidl ( 𝑅 ∈ NzRing → ( 𝑅 ∈ DivRing ↔ 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) )
69 68 biimpar ( ( 𝑅 ∈ NzRing ∧ 𝑈 = { { ( 0g𝑅 ) } , ( Base ‘ 𝑅 ) } ) → 𝑅 ∈ DivRing )
70 57 67 69 syl2anc ( ( 𝑅 ∈ Ring ∧ ( ♯ ‘ 𝑈 ) = 2 ) → 𝑅 ∈ DivRing )
71 24 70 impbida ( 𝑅 ∈ Ring → ( 𝑅 ∈ DivRing ↔ ( ♯ ‘ 𝑈 ) = 2 ) )