Metamath Proof Explorer


Theorem isorng

Description: An ordered ring is a ring with a total ordering compatible with its operations. (Contributed by Thierry Arnoux, 18-Jan-2018)

Ref Expression
Hypotheses isorng.0 𝐵 = ( Base ‘ 𝑅 )
isorng.1 0 = ( 0g𝑅 )
isorng.2 · = ( .r𝑅 )
isorng.3 = ( le ‘ 𝑅 )
Assertion isorng ( 𝑅 ∈ oRing ↔ ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )

Proof

Step Hyp Ref Expression
1 isorng.0 𝐵 = ( Base ‘ 𝑅 )
2 isorng.1 0 = ( 0g𝑅 )
3 isorng.2 · = ( .r𝑅 )
4 isorng.3 = ( le ‘ 𝑅 )
5 elin ( 𝑅 ∈ ( Ring ∩ oGrp ) ↔ ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ) )
6 5 anbi1i ( ( 𝑅 ∈ ( Ring ∩ oGrp ) ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) ↔ ( ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ) ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
7 fvexd ( 𝑟 = 𝑅 → ( .r𝑟 ) ∈ V )
8 simpr ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → 𝑡 = ( .r𝑟 ) )
9 simpl ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → 𝑟 = 𝑅 )
10 9 fveq2d ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( .r𝑟 ) = ( .r𝑅 ) )
11 10 3 eqtr4di ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( .r𝑟 ) = · )
12 8 11 eqtrd ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → 𝑡 = · )
13 12 oveqd ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( 𝑎 𝑡 𝑏 ) = ( 𝑎 · 𝑏 ) )
14 13 breq2d ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( 0 𝑙 ( 𝑎 𝑡 𝑏 ) ↔ 0 𝑙 ( 𝑎 · 𝑏 ) ) )
15 14 imbi2d ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ) )
16 15 2ralbidv ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ) )
17 16 sbcbidv ( ( 𝑟 = 𝑅𝑡 = ( .r𝑟 ) ) → ( [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ) )
18 7 17 sbcied ( 𝑟 = 𝑅 → ( [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ) )
19 fvexd ( 𝑟 = 𝑅 → ( Base ‘ 𝑟 ) ∈ V )
20 simpr ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → 𝑣 = ( Base ‘ 𝑟 ) )
21 fveq2 ( 𝑟 = 𝑅 → ( Base ‘ 𝑟 ) = ( Base ‘ 𝑅 ) )
22 21 1 eqtr4di ( 𝑟 = 𝑅 → ( Base ‘ 𝑟 ) = 𝐵 )
23 22 adantr ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → ( Base ‘ 𝑟 ) = 𝐵 )
24 20 23 eqtrd ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → 𝑣 = 𝐵 )
25 raleq ( 𝑣 = 𝐵 → ( ∀ 𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
26 25 raleqbi1dv ( 𝑣 = 𝐵 → ( ∀ 𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
27 24 26 syl ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → ( ∀ 𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
28 27 sbcbidv ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → ( [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
29 28 sbcbidv ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → ( [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
30 29 sbcbidv ( ( 𝑟 = 𝑅𝑣 = ( Base ‘ 𝑟 ) ) → ( [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
31 19 30 sbcied ( 𝑟 = 𝑅 → ( [ ( Base ‘ 𝑟 ) / 𝑣 ] [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
32 fvexd ( 𝑟 = 𝑅 → ( 0g𝑟 ) ∈ V )
33 simpr ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → 𝑧 = ( 0g𝑟 ) )
34 fveq2 ( 𝑟 = 𝑅 → ( 0g𝑟 ) = ( 0g𝑅 ) )
35 34 2 eqtr4di ( 𝑟 = 𝑅 → ( 0g𝑟 ) = 0 )
36 35 adantr ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( 0g𝑟 ) = 0 )
37 33 36 eqtrd ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → 𝑧 = 0 )
38 37 breq1d ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( 𝑧 𝑙 𝑎0 𝑙 𝑎 ) )
39 37 breq1d ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( 𝑧 𝑙 𝑏0 𝑙 𝑏 ) )
40 38 39 anbi12d ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) ↔ ( 0 𝑙 𝑎0 𝑙 𝑏 ) ) )
41 37 breq1d ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ↔ 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) )
42 40 41 imbi12d ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
43 42 2ralbidv ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( ∀ 𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
44 43 sbcbidv ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
45 44 sbcbidv ( ( 𝑟 = 𝑅𝑧 = ( 0g𝑟 ) ) → ( [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
46 32 45 sbcied ( 𝑟 = 𝑅 → ( [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
47 31 46 bitr2d ( 𝑟 = 𝑅 → ( [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ [ ( Base ‘ 𝑟 ) / 𝑣 ] [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ) )
48 fvexd ( 𝑟 = 𝑅 → ( le ‘ 𝑟 ) ∈ V )
49 simpr ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → 𝑙 = ( le ‘ 𝑟 ) )
50 simpl ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → 𝑟 = 𝑅 )
51 50 fveq2d ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( le ‘ 𝑟 ) = ( le ‘ 𝑅 ) )
52 51 4 eqtr4di ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( le ‘ 𝑟 ) = )
53 49 52 eqtrd ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → 𝑙 = )
54 53 breqd ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( 0 𝑙 𝑎0 𝑎 ) )
55 53 breqd ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( 0 𝑙 𝑏0 𝑏 ) )
56 54 55 anbi12d ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) ↔ ( 0 𝑎0 𝑏 ) ) )
57 53 breqd ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( 0 𝑙 ( 𝑎 · 𝑏 ) ↔ 0 ( 𝑎 · 𝑏 ) ) )
58 56 57 imbi12d ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ↔ ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
59 58 2ralbidv ( ( 𝑟 = 𝑅𝑙 = ( le ‘ 𝑟 ) ) → ( ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
60 48 59 sbcied ( 𝑟 = 𝑅 → ( [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝐵𝑏𝐵 ( ( 0 𝑙 𝑎0 𝑙 𝑏 ) → 0 𝑙 ( 𝑎 · 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
61 18 47 60 3bitr3d ( 𝑟 = 𝑅 → ( [ ( Base ‘ 𝑟 ) / 𝑣 ] [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) ↔ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
62 df-orng oRing = { 𝑟 ∈ ( Ring ∩ oGrp ) ∣ [ ( Base ‘ 𝑟 ) / 𝑣 ] [ ( 0g𝑟 ) / 𝑧 ] [ ( .r𝑟 ) / 𝑡 ] [ ( le ‘ 𝑟 ) / 𝑙 ]𝑎𝑣𝑏𝑣 ( ( 𝑧 𝑙 𝑎𝑧 𝑙 𝑏 ) → 𝑧 𝑙 ( 𝑎 𝑡 𝑏 ) ) }
63 61 62 elrab2 ( 𝑅 ∈ oRing ↔ ( 𝑅 ∈ ( Ring ∩ oGrp ) ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
64 df-3an ( ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) ↔ ( ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ) ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )
65 6 63 64 3bitr4i ( 𝑅 ∈ oRing ↔ ( 𝑅 ∈ Ring ∧ 𝑅 ∈ oGrp ∧ ∀ 𝑎𝐵𝑏𝐵 ( ( 0 𝑎0 𝑏 ) → 0 ( 𝑎 · 𝑏 ) ) ) )