Metamath Proof Explorer


Theorem signsvtp

Description: Adding a letter of the same sign as the highest coefficient does not change the sign. (Contributed by Thierry Arnoux, 12-Oct-2018)

Ref Expression
Hypotheses signsv.p = ( 𝑎 ∈ { - 1 , 0 , 1 } , 𝑏 ∈ { - 1 , 0 , 1 } ↦ if ( 𝑏 = 0 , 𝑎 , 𝑏 ) )
signsv.w 𝑊 = { ⟨ ( Base ‘ ndx ) , { - 1 , 0 , 1 } ⟩ , ⟨ ( +g ‘ ndx ) , ⟩ }
signsv.t 𝑇 = ( 𝑓 ∈ Word ℝ ↦ ( 𝑛 ∈ ( 0 ..^ ( ♯ ‘ 𝑓 ) ) ↦ ( 𝑊 Σg ( 𝑖 ∈ ( 0 ... 𝑛 ) ↦ ( sgn ‘ ( 𝑓𝑖 ) ) ) ) ) )
signsv.v 𝑉 = ( 𝑓 ∈ Word ℝ ↦ Σ 𝑗 ∈ ( 1 ..^ ( ♯ ‘ 𝑓 ) ) if ( ( ( 𝑇𝑓 ) ‘ 𝑗 ) ≠ ( ( 𝑇𝑓 ) ‘ ( 𝑗 − 1 ) ) , 1 , 0 ) )
signsvf.e ( 𝜑𝐸 ∈ ( Word ℝ ∖ { ∅ } ) )
signsvf.0 ( 𝜑 → ( 𝐸 ‘ 0 ) ≠ 0 )
signsvf.f ( 𝜑𝐹 = ( 𝐸 ++ ⟨“ 𝐴 ”⟩ ) )
signsvf.a ( 𝜑𝐴 ∈ ℝ )
signsvf.n 𝑁 = ( ♯ ‘ 𝐸 )
signsvt.b 𝐵 = ( ( 𝑇𝐸 ) ‘ ( 𝑁 − 1 ) )
Assertion signsvtp ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑉𝐹 ) = ( 𝑉𝐸 ) )

Proof

Step Hyp Ref Expression
1 signsv.p = ( 𝑎 ∈ { - 1 , 0 , 1 } , 𝑏 ∈ { - 1 , 0 , 1 } ↦ if ( 𝑏 = 0 , 𝑎 , 𝑏 ) )
2 signsv.w 𝑊 = { ⟨ ( Base ‘ ndx ) , { - 1 , 0 , 1 } ⟩ , ⟨ ( +g ‘ ndx ) , ⟩ }
3 signsv.t 𝑇 = ( 𝑓 ∈ Word ℝ ↦ ( 𝑛 ∈ ( 0 ..^ ( ♯ ‘ 𝑓 ) ) ↦ ( 𝑊 Σg ( 𝑖 ∈ ( 0 ... 𝑛 ) ↦ ( sgn ‘ ( 𝑓𝑖 ) ) ) ) ) )
4 signsv.v 𝑉 = ( 𝑓 ∈ Word ℝ ↦ Σ 𝑗 ∈ ( 1 ..^ ( ♯ ‘ 𝑓 ) ) if ( ( ( 𝑇𝑓 ) ‘ 𝑗 ) ≠ ( ( 𝑇𝑓 ) ‘ ( 𝑗 − 1 ) ) , 1 , 0 ) )
5 signsvf.e ( 𝜑𝐸 ∈ ( Word ℝ ∖ { ∅ } ) )
6 signsvf.0 ( 𝜑 → ( 𝐸 ‘ 0 ) ≠ 0 )
7 signsvf.f ( 𝜑𝐹 = ( 𝐸 ++ ⟨“ 𝐴 ”⟩ ) )
8 signsvf.a ( 𝜑𝐴 ∈ ℝ )
9 signsvf.n 𝑁 = ( ♯ ‘ 𝐸 )
10 signsvt.b 𝐵 = ( ( 𝑇𝐸 ) ‘ ( 𝑁 − 1 ) )
11 7 fveq2d ( 𝜑 → ( 𝑉𝐹 ) = ( 𝑉 ‘ ( 𝐸 ++ ⟨“ 𝐴 ”⟩ ) ) )
12 1 2 3 4 signsvfn ( ( ( 𝐸 ∈ ( Word ℝ ∖ { ∅ } ) ∧ ( 𝐸 ‘ 0 ) ≠ 0 ) ∧ 𝐴 ∈ ℝ ) → ( 𝑉 ‘ ( 𝐸 ++ ⟨“ 𝐴 ”⟩ ) ) = ( ( 𝑉𝐸 ) + if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) ) )
13 5 6 8 12 syl21anc ( 𝜑 → ( 𝑉 ‘ ( 𝐸 ++ ⟨“ 𝐴 ”⟩ ) ) = ( ( 𝑉𝐸 ) + if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) ) )
14 11 13 eqtrd ( 𝜑 → ( 𝑉𝐹 ) = ( ( 𝑉𝐸 ) + if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) ) )
15 14 adantr ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑉𝐹 ) = ( ( 𝑉𝐸 ) + if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) ) )
16 0red ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 0 ∈ ℝ )
17 5 adantr ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐸 ∈ ( Word ℝ ∖ { ∅ } ) )
18 17 eldifad ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐸 ∈ Word ℝ )
19 1 2 3 4 signstf ( 𝐸 ∈ Word ℝ → ( 𝑇𝐸 ) ∈ Word ℝ )
20 wrdf ( ( 𝑇𝐸 ) ∈ Word ℝ → ( 𝑇𝐸 ) : ( 0 ..^ ( ♯ ‘ ( 𝑇𝐸 ) ) ) ⟶ ℝ )
21 18 19 20 3syl ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑇𝐸 ) : ( 0 ..^ ( ♯ ‘ ( 𝑇𝐸 ) ) ) ⟶ ℝ )
22 eldifsn ( 𝐸 ∈ ( Word ℝ ∖ { ∅ } ) ↔ ( 𝐸 ∈ Word ℝ ∧ 𝐸 ≠ ∅ ) )
23 5 22 sylib ( 𝜑 → ( 𝐸 ∈ Word ℝ ∧ 𝐸 ≠ ∅ ) )
24 23 adantr ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝐸 ∈ Word ℝ ∧ 𝐸 ≠ ∅ ) )
25 lennncl ( ( 𝐸 ∈ Word ℝ ∧ 𝐸 ≠ ∅ ) → ( ♯ ‘ 𝐸 ) ∈ ℕ )
26 fzo0end ( ( ♯ ‘ 𝐸 ) ∈ ℕ → ( ( ♯ ‘ 𝐸 ) − 1 ) ∈ ( 0 ..^ ( ♯ ‘ 𝐸 ) ) )
27 24 25 26 3syl ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( ♯ ‘ 𝐸 ) − 1 ) ∈ ( 0 ..^ ( ♯ ‘ 𝐸 ) ) )
28 1 2 3 4 signstlen ( 𝐸 ∈ Word ℝ → ( ♯ ‘ ( 𝑇𝐸 ) ) = ( ♯ ‘ 𝐸 ) )
29 18 28 syl ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ♯ ‘ ( 𝑇𝐸 ) ) = ( ♯ ‘ 𝐸 ) )
30 29 oveq2d ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 0 ..^ ( ♯ ‘ ( 𝑇𝐸 ) ) ) = ( 0 ..^ ( ♯ ‘ 𝐸 ) ) )
31 27 30 eleqtrrd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( ♯ ‘ 𝐸 ) − 1 ) ∈ ( 0 ..^ ( ♯ ‘ ( 𝑇𝐸 ) ) ) )
32 21 31 ffvelrnd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) ∈ ℝ )
33 8 adantr ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐴 ∈ ℝ )
34 32 33 remulcld ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) ∈ ℝ )
35 simpr ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 0 < ( 𝐴 · 𝐵 ) )
36 9 oveq1i ( 𝑁 − 1 ) = ( ( ♯ ‘ 𝐸 ) − 1 )
37 36 fveq2i ( ( 𝑇𝐸 ) ‘ ( 𝑁 − 1 ) ) = ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) )
38 10 37 eqtri 𝐵 = ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) )
39 38 32 eqeltrid ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐵 ∈ ℝ )
40 39 recnd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐵 ∈ ℂ )
41 33 recnd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝐴 ∈ ℂ )
42 40 41 mulcomd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝐵 · 𝐴 ) = ( 𝐴 · 𝐵 ) )
43 35 42 breqtrrd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 0 < ( 𝐵 · 𝐴 ) )
44 38 oveq1i ( 𝐵 · 𝐴 ) = ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 )
45 43 44 breqtrdi ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 0 < ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) )
46 16 34 45 ltnsymd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ¬ ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 )
47 46 iffalsed ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) = 0 )
48 47 oveq2d ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( 𝑉𝐸 ) + if ( ( ( ( 𝑇𝐸 ) ‘ ( ( ♯ ‘ 𝐸 ) − 1 ) ) · 𝐴 ) < 0 , 1 , 0 ) ) = ( ( 𝑉𝐸 ) + 0 ) )
49 1 2 3 4 signsvvf 𝑉 : Word ℝ ⟶ ℕ0
50 49 a1i ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → 𝑉 : Word ℝ ⟶ ℕ0 )
51 50 18 ffvelrnd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑉𝐸 ) ∈ ℕ0 )
52 51 nn0cnd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑉𝐸 ) ∈ ℂ )
53 52 addid1d ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( ( 𝑉𝐸 ) + 0 ) = ( 𝑉𝐸 ) )
54 15 48 53 3eqtrd ( ( 𝜑 ∧ 0 < ( 𝐴 · 𝐵 ) ) → ( 𝑉𝐹 ) = ( 𝑉𝐸 ) )