Metamath Proof Explorer


Theorem srgpcomp

Description: If two elements of a semiring commute, they also commute if one of the elements is raised to a higher power. (Contributed by AV, 23-Aug-2019)

Ref Expression
Hypotheses srgpcomp.s 𝑆 = ( Base ‘ 𝑅 )
srgpcomp.m × = ( .r𝑅 )
srgpcomp.g 𝐺 = ( mulGrp ‘ 𝑅 )
srgpcomp.e = ( .g𝐺 )
srgpcomp.r ( 𝜑𝑅 ∈ SRing )
srgpcomp.a ( 𝜑𝐴𝑆 )
srgpcomp.b ( 𝜑𝐵𝑆 )
srgpcomp.k ( 𝜑𝐾 ∈ ℕ0 )
srgpcomp.c ( 𝜑 → ( 𝐴 × 𝐵 ) = ( 𝐵 × 𝐴 ) )
Assertion srgpcomp ( 𝜑 → ( ( 𝐾 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝐾 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 srgpcomp.s 𝑆 = ( Base ‘ 𝑅 )
2 srgpcomp.m × = ( .r𝑅 )
3 srgpcomp.g 𝐺 = ( mulGrp ‘ 𝑅 )
4 srgpcomp.e = ( .g𝐺 )
5 srgpcomp.r ( 𝜑𝑅 ∈ SRing )
6 srgpcomp.a ( 𝜑𝐴𝑆 )
7 srgpcomp.b ( 𝜑𝐵𝑆 )
8 srgpcomp.k ( 𝜑𝐾 ∈ ℕ0 )
9 srgpcomp.c ( 𝜑 → ( 𝐴 × 𝐵 ) = ( 𝐵 × 𝐴 ) )
10 oveq1 ( 𝑥 = 0 → ( 𝑥 𝐵 ) = ( 0 𝐵 ) )
11 10 oveq1d ( 𝑥 = 0 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( ( 0 𝐵 ) × 𝐴 ) )
12 10 oveq2d ( 𝑥 = 0 → ( 𝐴 × ( 𝑥 𝐵 ) ) = ( 𝐴 × ( 0 𝐵 ) ) )
13 11 12 eqeq12d ( 𝑥 = 0 → ( ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ↔ ( ( 0 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 0 𝐵 ) ) ) )
14 13 imbi2d ( 𝑥 = 0 → ( ( 𝜑 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ) ↔ ( 𝜑 → ( ( 0 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 0 𝐵 ) ) ) ) )
15 oveq1 ( 𝑥 = 𝑦 → ( 𝑥 𝐵 ) = ( 𝑦 𝐵 ) )
16 15 oveq1d ( 𝑥 = 𝑦 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( ( 𝑦 𝐵 ) × 𝐴 ) )
17 15 oveq2d ( 𝑥 = 𝑦 → ( 𝐴 × ( 𝑥 𝐵 ) ) = ( 𝐴 × ( 𝑦 𝐵 ) ) )
18 16 17 eqeq12d ( 𝑥 = 𝑦 → ( ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ↔ ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) )
19 18 imbi2d ( 𝑥 = 𝑦 → ( ( 𝜑 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ) ↔ ( 𝜑 → ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) ) )
20 oveq1 ( 𝑥 = ( 𝑦 + 1 ) → ( 𝑥 𝐵 ) = ( ( 𝑦 + 1 ) 𝐵 ) )
21 20 oveq1d ( 𝑥 = ( 𝑦 + 1 ) → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) )
22 20 oveq2d ( 𝑥 = ( 𝑦 + 1 ) → ( 𝐴 × ( 𝑥 𝐵 ) ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) )
23 21 22 eqeq12d ( 𝑥 = ( 𝑦 + 1 ) → ( ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ↔ ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) ) )
24 23 imbi2d ( 𝑥 = ( 𝑦 + 1 ) → ( ( 𝜑 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ) ↔ ( 𝜑 → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) ) ) )
25 oveq1 ( 𝑥 = 𝐾 → ( 𝑥 𝐵 ) = ( 𝐾 𝐵 ) )
26 25 oveq1d ( 𝑥 = 𝐾 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( ( 𝐾 𝐵 ) × 𝐴 ) )
27 25 oveq2d ( 𝑥 = 𝐾 → ( 𝐴 × ( 𝑥 𝐵 ) ) = ( 𝐴 × ( 𝐾 𝐵 ) ) )
28 26 27 eqeq12d ( 𝑥 = 𝐾 → ( ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ↔ ( ( 𝐾 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝐾 𝐵 ) ) ) )
29 28 imbi2d ( 𝑥 = 𝐾 → ( ( 𝜑 → ( ( 𝑥 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑥 𝐵 ) ) ) ↔ ( 𝜑 → ( ( 𝐾 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝐾 𝐵 ) ) ) ) )
30 3 1 mgpbas 𝑆 = ( Base ‘ 𝐺 )
31 eqid ( 1r𝑅 ) = ( 1r𝑅 )
32 3 31 ringidval ( 1r𝑅 ) = ( 0g𝐺 )
33 30 32 4 mulg0 ( 𝐵𝑆 → ( 0 𝐵 ) = ( 1r𝑅 ) )
34 7 33 syl ( 𝜑 → ( 0 𝐵 ) = ( 1r𝑅 ) )
35 34 oveq1d ( 𝜑 → ( ( 0 𝐵 ) × 𝐴 ) = ( ( 1r𝑅 ) × 𝐴 ) )
36 1 2 31 srgridm ( ( 𝑅 ∈ SRing ∧ 𝐴𝑆 ) → ( 𝐴 × ( 1r𝑅 ) ) = 𝐴 )
37 5 6 36 syl2anc ( 𝜑 → ( 𝐴 × ( 1r𝑅 ) ) = 𝐴 )
38 34 oveq2d ( 𝜑 → ( 𝐴 × ( 0 𝐵 ) ) = ( 𝐴 × ( 1r𝑅 ) ) )
39 1 2 31 srglidm ( ( 𝑅 ∈ SRing ∧ 𝐴𝑆 ) → ( ( 1r𝑅 ) × 𝐴 ) = 𝐴 )
40 5 6 39 syl2anc ( 𝜑 → ( ( 1r𝑅 ) × 𝐴 ) = 𝐴 )
41 37 38 40 3eqtr4rd ( 𝜑 → ( ( 1r𝑅 ) × 𝐴 ) = ( 𝐴 × ( 0 𝐵 ) ) )
42 35 41 eqtrd ( 𝜑 → ( ( 0 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 0 𝐵 ) ) )
43 3 srgmgp ( 𝑅 ∈ SRing → 𝐺 ∈ Mnd )
44 5 43 syl ( 𝜑𝐺 ∈ Mnd )
45 44 adantr ( ( 𝜑𝑦 ∈ ℕ0 ) → 𝐺 ∈ Mnd )
46 simpr ( ( 𝜑𝑦 ∈ ℕ0 ) → 𝑦 ∈ ℕ0 )
47 7 adantr ( ( 𝜑𝑦 ∈ ℕ0 ) → 𝐵𝑆 )
48 3 2 mgpplusg × = ( +g𝐺 )
49 30 4 48 mulgnn0p1 ( ( 𝐺 ∈ Mnd ∧ 𝑦 ∈ ℕ0𝐵𝑆 ) → ( ( 𝑦 + 1 ) 𝐵 ) = ( ( 𝑦 𝐵 ) × 𝐵 ) )
50 45 46 47 49 syl3anc ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( 𝑦 + 1 ) 𝐵 ) = ( ( 𝑦 𝐵 ) × 𝐵 ) )
51 50 oveq1d ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( ( ( 𝑦 𝐵 ) × 𝐵 ) × 𝐴 ) )
52 9 eqcomd ( 𝜑 → ( 𝐵 × 𝐴 ) = ( 𝐴 × 𝐵 ) )
53 52 adantr ( ( 𝜑𝑦 ∈ ℕ0 ) → ( 𝐵 × 𝐴 ) = ( 𝐴 × 𝐵 ) )
54 53 oveq2d ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( 𝑦 𝐵 ) × ( 𝐵 × 𝐴 ) ) = ( ( 𝑦 𝐵 ) × ( 𝐴 × 𝐵 ) ) )
55 5 adantr ( ( 𝜑𝑦 ∈ ℕ0 ) → 𝑅 ∈ SRing )
56 30 4 mulgnn0cl ( ( 𝐺 ∈ Mnd ∧ 𝑦 ∈ ℕ0𝐵𝑆 ) → ( 𝑦 𝐵 ) ∈ 𝑆 )
57 45 46 47 56 syl3anc ( ( 𝜑𝑦 ∈ ℕ0 ) → ( 𝑦 𝐵 ) ∈ 𝑆 )
58 6 adantr ( ( 𝜑𝑦 ∈ ℕ0 ) → 𝐴𝑆 )
59 1 2 srgass ( ( 𝑅 ∈ SRing ∧ ( ( 𝑦 𝐵 ) ∈ 𝑆𝐵𝑆𝐴𝑆 ) ) → ( ( ( 𝑦 𝐵 ) × 𝐵 ) × 𝐴 ) = ( ( 𝑦 𝐵 ) × ( 𝐵 × 𝐴 ) ) )
60 55 57 47 58 59 syl13anc ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 𝐵 ) × 𝐵 ) × 𝐴 ) = ( ( 𝑦 𝐵 ) × ( 𝐵 × 𝐴 ) ) )
61 1 2 srgass ( ( 𝑅 ∈ SRing ∧ ( ( 𝑦 𝐵 ) ∈ 𝑆𝐴𝑆𝐵𝑆 ) ) → ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) = ( ( 𝑦 𝐵 ) × ( 𝐴 × 𝐵 ) ) )
62 55 57 58 47 61 syl13anc ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) = ( ( 𝑦 𝐵 ) × ( 𝐴 × 𝐵 ) ) )
63 54 60 62 3eqtr4d ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 𝐵 ) × 𝐵 ) × 𝐴 ) = ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) )
64 51 63 eqtrd ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) )
65 64 adantr ( ( ( 𝜑𝑦 ∈ ℕ0 ) ∧ ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) )
66 oveq1 ( ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) → ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) = ( ( 𝐴 × ( 𝑦 𝐵 ) ) × 𝐵 ) )
67 1 2 srgass ( ( 𝑅 ∈ SRing ∧ ( 𝐴𝑆 ∧ ( 𝑦 𝐵 ) ∈ 𝑆𝐵𝑆 ) ) → ( ( 𝐴 × ( 𝑦 𝐵 ) ) × 𝐵 ) = ( 𝐴 × ( ( 𝑦 𝐵 ) × 𝐵 ) ) )
68 55 58 57 47 67 syl13anc ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( 𝐴 × ( 𝑦 𝐵 ) ) × 𝐵 ) = ( 𝐴 × ( ( 𝑦 𝐵 ) × 𝐵 ) ) )
69 50 eqcomd ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( 𝑦 𝐵 ) × 𝐵 ) = ( ( 𝑦 + 1 ) 𝐵 ) )
70 69 oveq2d ( ( 𝜑𝑦 ∈ ℕ0 ) → ( 𝐴 × ( ( 𝑦 𝐵 ) × 𝐵 ) ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) )
71 68 70 eqtrd ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( 𝐴 × ( 𝑦 𝐵 ) ) × 𝐵 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) )
72 66 71 sylan9eqr ( ( ( 𝜑𝑦 ∈ ℕ0 ) ∧ ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) → ( ( ( 𝑦 𝐵 ) × 𝐴 ) × 𝐵 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) )
73 65 72 eqtrd ( ( ( 𝜑𝑦 ∈ ℕ0 ) ∧ ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) )
74 73 ex ( ( 𝜑𝑦 ∈ ℕ0 ) → ( ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) ) )
75 74 expcom ( 𝑦 ∈ ℕ0 → ( 𝜑 → ( ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) ) ) )
76 75 a2d ( 𝑦 ∈ ℕ0 → ( ( 𝜑 → ( ( 𝑦 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝑦 𝐵 ) ) ) → ( 𝜑 → ( ( ( 𝑦 + 1 ) 𝐵 ) × 𝐴 ) = ( 𝐴 × ( ( 𝑦 + 1 ) 𝐵 ) ) ) ) )
77 14 19 24 29 42 76 nn0ind ( 𝐾 ∈ ℕ0 → ( 𝜑 → ( ( 𝐾 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝐾 𝐵 ) ) ) )
78 8 77 mpcom ( 𝜑 → ( ( 𝐾 𝐵 ) × 𝐴 ) = ( 𝐴 × ( 𝐾 𝐵 ) ) )