Metamath Proof Explorer


Theorem rngdi

Description: Distributive law for the multiplication operation of a non-unital ring (left-distributivity). (Contributed by AV, 14-Feb-2025)

Ref Expression
Hypotheses rngdi.b B=BaseR
rngdi.p +˙=+R
rngdi.t ·˙=R
Assertion rngdi RRngXBYBZBX·˙Y+˙Z=X·˙Y+˙X·˙Z

Proof

Step Hyp Ref Expression
1 rngdi.b B=BaseR
2 rngdi.p +˙=+R
3 rngdi.t ·˙=R
4 eqid mulGrpR=mulGrpR
5 1 4 2 3 isrng Could not format ( R e. Rng <-> ( R e. Abel /\ ( mulGrp ` R ) e. Smgrp /\ A. a e. B A. b e. B A. c e. B ( ( a .x. ( b .+ c ) ) = ( ( a .x. b ) .+ ( a .x. c ) ) /\ ( ( a .+ b ) .x. c ) = ( ( a .x. c ) .+ ( b .x. c ) ) ) ) ) : No typesetting found for |- ( R e. Rng <-> ( R e. Abel /\ ( mulGrp ` R ) e. Smgrp /\ A. a e. B A. b e. B A. c e. B ( ( a .x. ( b .+ c ) ) = ( ( a .x. b ) .+ ( a .x. c ) ) /\ ( ( a .+ b ) .x. c ) = ( ( a .x. c ) .+ ( b .x. c ) ) ) ) ) with typecode |-
6 oveq1 a=Xa·˙b+˙c=X·˙b+˙c
7 oveq1 a=Xa·˙b=X·˙b
8 oveq1 a=Xa·˙c=X·˙c
9 7 8 oveq12d a=Xa·˙b+˙a·˙c=X·˙b+˙X·˙c
10 6 9 eqeq12d a=Xa·˙b+˙c=a·˙b+˙a·˙cX·˙b+˙c=X·˙b+˙X·˙c
11 oveq1 a=Xa+˙b=X+˙b
12 11 oveq1d a=Xa+˙b·˙c=X+˙b·˙c
13 8 oveq1d a=Xa·˙c+˙b·˙c=X·˙c+˙b·˙c
14 12 13 eqeq12d a=Xa+˙b·˙c=a·˙c+˙b·˙cX+˙b·˙c=X·˙c+˙b·˙c
15 10 14 anbi12d a=Xa·˙b+˙c=a·˙b+˙a·˙ca+˙b·˙c=a·˙c+˙b·˙cX·˙b+˙c=X·˙b+˙X·˙cX+˙b·˙c=X·˙c+˙b·˙c
16 oveq1 b=Yb+˙c=Y+˙c
17 16 oveq2d b=YX·˙b+˙c=X·˙Y+˙c
18 oveq2 b=YX·˙b=X·˙Y
19 18 oveq1d b=YX·˙b+˙X·˙c=X·˙Y+˙X·˙c
20 17 19 eqeq12d b=YX·˙b+˙c=X·˙b+˙X·˙cX·˙Y+˙c=X·˙Y+˙X·˙c
21 oveq2 b=YX+˙b=X+˙Y
22 21 oveq1d b=YX+˙b·˙c=X+˙Y·˙c
23 oveq1 b=Yb·˙c=Y·˙c
24 23 oveq2d b=YX·˙c+˙b·˙c=X·˙c+˙Y·˙c
25 22 24 eqeq12d b=YX+˙b·˙c=X·˙c+˙b·˙cX+˙Y·˙c=X·˙c+˙Y·˙c
26 20 25 anbi12d b=YX·˙b+˙c=X·˙b+˙X·˙cX+˙b·˙c=X·˙c+˙b·˙cX·˙Y+˙c=X·˙Y+˙X·˙cX+˙Y·˙c=X·˙c+˙Y·˙c
27 oveq2 c=ZY+˙c=Y+˙Z
28 27 oveq2d c=ZX·˙Y+˙c=X·˙Y+˙Z
29 oveq2 c=ZX·˙c=X·˙Z
30 29 oveq2d c=ZX·˙Y+˙X·˙c=X·˙Y+˙X·˙Z
31 28 30 eqeq12d c=ZX·˙Y+˙c=X·˙Y+˙X·˙cX·˙Y+˙Z=X·˙Y+˙X·˙Z
32 oveq2 c=ZX+˙Y·˙c=X+˙Y·˙Z
33 oveq2 c=ZY·˙c=Y·˙Z
34 29 33 oveq12d c=ZX·˙c+˙Y·˙c=X·˙Z+˙Y·˙Z
35 32 34 eqeq12d c=ZX+˙Y·˙c=X·˙c+˙Y·˙cX+˙Y·˙Z=X·˙Z+˙Y·˙Z
36 31 35 anbi12d c=ZX·˙Y+˙c=X·˙Y+˙X·˙cX+˙Y·˙c=X·˙c+˙Y·˙cX·˙Y+˙Z=X·˙Y+˙X·˙ZX+˙Y·˙Z=X·˙Z+˙Y·˙Z
37 15 26 36 rspc3v XBYBZBaBbBcBa·˙b+˙c=a·˙b+˙a·˙ca+˙b·˙c=a·˙c+˙b·˙cX·˙Y+˙Z=X·˙Y+˙X·˙ZX+˙Y·˙Z=X·˙Z+˙Y·˙Z
38 simpl X·˙Y+˙Z=X·˙Y+˙X·˙ZX+˙Y·˙Z=X·˙Z+˙Y·˙ZX·˙Y+˙Z=X·˙Y+˙X·˙Z
39 37 38 syl6com aBbBcBa·˙b+˙c=a·˙b+˙a·˙ca+˙b·˙c=a·˙c+˙b·˙cXBYBZBX·˙Y+˙Z=X·˙Y+˙X·˙Z
40 39 3ad2ant3 Could not format ( ( R e. Abel /\ ( mulGrp ` R ) e. Smgrp /\ A. a e. B A. b e. B A. c e. B ( ( a .x. ( b .+ c ) ) = ( ( a .x. b ) .+ ( a .x. c ) ) /\ ( ( a .+ b ) .x. c ) = ( ( a .x. c ) .+ ( b .x. c ) ) ) ) -> ( ( X e. B /\ Y e. B /\ Z e. B ) -> ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) ) ) ) : No typesetting found for |- ( ( R e. Abel /\ ( mulGrp ` R ) e. Smgrp /\ A. a e. B A. b e. B A. c e. B ( ( a .x. ( b .+ c ) ) = ( ( a .x. b ) .+ ( a .x. c ) ) /\ ( ( a .+ b ) .x. c ) = ( ( a .x. c ) .+ ( b .x. c ) ) ) ) -> ( ( X e. B /\ Y e. B /\ Z e. B ) -> ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) ) ) ) with typecode |-
41 5 40 sylbi RRngXBYBZBX·˙Y+˙Z=X·˙Y+˙X·˙Z
42 41 imp RRngXBYBZBX·˙Y+˙Z=X·˙Y+˙X·˙Z