Metamath Proof Explorer


Theorem ply1moneq

Description: Two monomials are equal iff their powers are equal. (Contributed by Thierry Arnoux, 20-Feb-2025)

Ref Expression
Hypotheses ply1moneq.p 𝑃 = ( Poly1𝑅 )
ply1moneq.x 𝑋 = ( var1𝑅 )
ply1moneq.e = ( .g ‘ ( mulGrp ‘ 𝑃 ) )
ply1moneq.r ( 𝜑𝑅 ∈ NzRing )
ply1moneq.m ( 𝜑𝑀 ∈ ℕ0 )
ply1moneq.n ( 𝜑𝑁 ∈ ℕ0 )
Assertion ply1moneq ( 𝜑 → ( ( 𝑀 𝑋 ) = ( 𝑁 𝑋 ) ↔ 𝑀 = 𝑁 ) )

Proof

Step Hyp Ref Expression
1 ply1moneq.p 𝑃 = ( Poly1𝑅 )
2 ply1moneq.x 𝑋 = ( var1𝑅 )
3 ply1moneq.e = ( .g ‘ ( mulGrp ‘ 𝑃 ) )
4 ply1moneq.r ( 𝜑𝑅 ∈ NzRing )
5 ply1moneq.m ( 𝜑𝑀 ∈ ℕ0 )
6 ply1moneq.n ( 𝜑𝑁 ∈ ℕ0 )
7 nzrring ( 𝑅 ∈ NzRing → 𝑅 ∈ Ring )
8 4 7 syl ( 𝜑𝑅 ∈ Ring )
9 eqid ( 0g𝑅 ) = ( 0g𝑅 )
10 eqid ( 1r𝑅 ) = ( 1r𝑅 )
11 1 2 3 8 5 9 10 coe1mon ( 𝜑 → ( coe1 ‘ ( 𝑀 𝑋 ) ) = ( 𝑘 ∈ ℕ0 ↦ if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) )
12 fvexd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 1r𝑅 ) ∈ V )
13 fvexd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 0g𝑅 ) ∈ V )
14 12 13 ifcld ( ( 𝜑𝑘 ∈ ℕ0 ) → if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ∈ V )
15 11 14 fvmpt2d ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) )
16 1 2 3 8 6 9 10 coe1mon ( 𝜑 → ( coe1 ‘ ( 𝑁 𝑋 ) ) = ( 𝑘 ∈ ℕ0 ↦ if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) )
17 12 13 ifcld ( ( 𝜑𝑘 ∈ ℕ0 ) → if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ∈ V )
18 16 17 fvmpt2d ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) = if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) )
19 15 18 eqeq12d ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) ↔ if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) = if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) )
20 10 9 nzrnz ( 𝑅 ∈ NzRing → ( 1r𝑅 ) ≠ ( 0g𝑅 ) )
21 4 20 syl ( 𝜑 → ( 1r𝑅 ) ≠ ( 0g𝑅 ) )
22 21 adantr ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 1r𝑅 ) ≠ ( 0g𝑅 ) )
23 ifnebib ( ( 1r𝑅 ) ≠ ( 0g𝑅 ) → ( if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) = if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ↔ ( 𝑘 = 𝑀𝑘 = 𝑁 ) ) )
24 22 23 syl ( ( 𝜑𝑘 ∈ ℕ0 ) → ( if ( 𝑘 = 𝑀 , ( 1r𝑅 ) , ( 0g𝑅 ) ) = if ( 𝑘 = 𝑁 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ↔ ( 𝑘 = 𝑀𝑘 = 𝑁 ) ) )
25 19 24 bitrd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) ↔ ( 𝑘 = 𝑀𝑘 = 𝑁 ) ) )
26 25 ralbidva ( 𝜑 → ( ∀ 𝑘 ∈ ℕ0 ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) ↔ ∀ 𝑘 ∈ ℕ0 ( 𝑘 = 𝑀𝑘 = 𝑁 ) ) )
27 eqid ( mulGrp ‘ 𝑃 ) = ( mulGrp ‘ 𝑃 )
28 eqid ( Base ‘ 𝑃 ) = ( Base ‘ 𝑃 )
29 1 2 27 3 28 ply1moncl ( ( 𝑅 ∈ Ring ∧ 𝑀 ∈ ℕ0 ) → ( 𝑀 𝑋 ) ∈ ( Base ‘ 𝑃 ) )
30 8 5 29 syl2anc ( 𝜑 → ( 𝑀 𝑋 ) ∈ ( Base ‘ 𝑃 ) )
31 1 2 27 3 28 ply1moncl ( ( 𝑅 ∈ Ring ∧ 𝑁 ∈ ℕ0 ) → ( 𝑁 𝑋 ) ∈ ( Base ‘ 𝑃 ) )
32 8 6 31 syl2anc ( 𝜑 → ( 𝑁 𝑋 ) ∈ ( Base ‘ 𝑃 ) )
33 eqid ( coe1 ‘ ( 𝑀 𝑋 ) ) = ( coe1 ‘ ( 𝑀 𝑋 ) )
34 eqid ( coe1 ‘ ( 𝑁 𝑋 ) ) = ( coe1 ‘ ( 𝑁 𝑋 ) )
35 1 28 33 34 ply1coe1eq ( ( 𝑅 ∈ Ring ∧ ( 𝑀 𝑋 ) ∈ ( Base ‘ 𝑃 ) ∧ ( 𝑁 𝑋 ) ∈ ( Base ‘ 𝑃 ) ) → ( ∀ 𝑘 ∈ ℕ0 ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) ↔ ( 𝑀 𝑋 ) = ( 𝑁 𝑋 ) ) )
36 8 30 32 35 syl3anc ( 𝜑 → ( ∀ 𝑘 ∈ ℕ0 ( ( coe1 ‘ ( 𝑀 𝑋 ) ) ‘ 𝑘 ) = ( ( coe1 ‘ ( 𝑁 𝑋 ) ) ‘ 𝑘 ) ↔ ( 𝑀 𝑋 ) = ( 𝑁 𝑋 ) ) )
37 5 6 eqelbid ( 𝜑 → ( ∀ 𝑘 ∈ ℕ0 ( 𝑘 = 𝑀𝑘 = 𝑁 ) ↔ 𝑀 = 𝑁 ) )
38 26 36 37 3bitr3d ( 𝜑 → ( ( 𝑀 𝑋 ) = ( 𝑁 𝑋 ) ↔ 𝑀 = 𝑁 ) )