Metamath Proof Explorer


Theorem srgi

Description: Properties of a semiring. (Contributed by NM, 26-Aug-2011) (Revised by Mario Carneiro, 6-Jan-2015) (Revised by Thierry Arnoux, 1-Apr-2018)

Ref Expression
Hypotheses srgi.b 𝐵 = ( Base ‘ 𝑅 )
srgi.p + = ( +g𝑅 )
srgi.t · = ( .r𝑅 )
Assertion srgi ( ( 𝑅 ∈ SRing ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑋 · ( 𝑌 + 𝑍 ) ) = ( ( 𝑋 · 𝑌 ) + ( 𝑋 · 𝑍 ) ) ∧ ( ( 𝑋 + 𝑌 ) · 𝑍 ) = ( ( 𝑋 · 𝑍 ) + ( 𝑌 · 𝑍 ) ) ) )

Proof

Step Hyp Ref Expression
1 srgi.b 𝐵 = ( Base ‘ 𝑅 )
2 srgi.p + = ( +g𝑅 )
3 srgi.t · = ( .r𝑅 )
4 eqid ( mulGrp ‘ 𝑅 ) = ( mulGrp ‘ 𝑅 )
5 eqid ( 0g𝑅 ) = ( 0g𝑅 )
6 1 4 2 3 5 issrg ( 𝑅 ∈ SRing ↔ ( 𝑅 ∈ CMnd ∧ ( mulGrp ‘ 𝑅 ) ∈ Mnd ∧ ∀ 𝑥𝐵 ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( ( 0g𝑅 ) · 𝑥 ) = ( 0g𝑅 ) ∧ ( 𝑥 · ( 0g𝑅 ) ) = ( 0g𝑅 ) ) ) ) )
7 6 simp3bi ( 𝑅 ∈ SRing → ∀ 𝑥𝐵 ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( ( 0g𝑅 ) · 𝑥 ) = ( 0g𝑅 ) ∧ ( 𝑥 · ( 0g𝑅 ) ) = ( 0g𝑅 ) ) ) )
8 7 r19.21bi ( ( 𝑅 ∈ SRing ∧ 𝑥𝐵 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ∧ ( ( ( 0g𝑅 ) · 𝑥 ) = ( 0g𝑅 ) ∧ ( 𝑥 · ( 0g𝑅 ) ) = ( 0g𝑅 ) ) ) )
9 8 simpld ( ( 𝑅 ∈ SRing ∧ 𝑥𝐵 ) → ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
10 9 3ad2antr1 ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
11 simpr2 ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → 𝑦𝐵 )
12 rsp ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) → ( 𝑦𝐵 → ∀ 𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ) )
13 10 11 12 sylc ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → ∀ 𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
14 simpr3 ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → 𝑧𝐵 )
15 rsp ( ∀ 𝑧𝐵 ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) → ( 𝑧𝐵 → ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) ) )
16 13 14 15 sylc ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → ( ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) ∧ ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) ) )
17 16 simpld ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → ( 𝑥 · ( 𝑦 + 𝑧 ) ) = ( ( 𝑥 · 𝑦 ) + ( 𝑥 · 𝑧 ) ) )
18 17 caovdig ( ( 𝑅 ∈ SRing ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( 𝑋 · ( 𝑌 + 𝑍 ) ) = ( ( 𝑋 · 𝑌 ) + ( 𝑋 · 𝑍 ) ) )
19 16 simprd ( ( 𝑅 ∈ SRing ∧ ( 𝑥𝐵𝑦𝐵𝑧𝐵 ) ) → ( ( 𝑥 + 𝑦 ) · 𝑧 ) = ( ( 𝑥 · 𝑧 ) + ( 𝑦 · 𝑧 ) ) )
20 19 caovdirg ( ( 𝑅 ∈ SRing ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑋 + 𝑌 ) · 𝑍 ) = ( ( 𝑋 · 𝑍 ) + ( 𝑌 · 𝑍 ) ) )
21 18 20 jca ( ( 𝑅 ∈ SRing ∧ ( 𝑋𝐵𝑌𝐵𝑍𝐵 ) ) → ( ( 𝑋 · ( 𝑌 + 𝑍 ) ) = ( ( 𝑋 · 𝑌 ) + ( 𝑋 · 𝑍 ) ) ∧ ( ( 𝑋 + 𝑌 ) · 𝑍 ) = ( ( 𝑋 · 𝑍 ) + ( 𝑌 · 𝑍 ) ) ) )