Metamath Proof Explorer


Theorem fprodle

Description: If all the terms of two finite products are nonnegative and compare, so do the two products. (Contributed by Glauco Siliprandi, 5-Apr-2020)

Ref Expression
Hypotheses fprodle.kph 𝑘 𝜑
fprodle.a ( 𝜑𝐴 ∈ Fin )
fprodle.b ( ( 𝜑𝑘𝐴 ) → 𝐵 ∈ ℝ )
fprodle.0l3b ( ( 𝜑𝑘𝐴 ) → 0 ≤ 𝐵 )
fprodle.c ( ( 𝜑𝑘𝐴 ) → 𝐶 ∈ ℝ )
fprodle.blec ( ( 𝜑𝑘𝐴 ) → 𝐵𝐶 )
Assertion fprodle ( 𝜑 → ∏ 𝑘𝐴 𝐵 ≤ ∏ 𝑘𝐴 𝐶 )

Proof

Step Hyp Ref Expression
1 fprodle.kph 𝑘 𝜑
2 fprodle.a ( 𝜑𝐴 ∈ Fin )
3 fprodle.b ( ( 𝜑𝑘𝐴 ) → 𝐵 ∈ ℝ )
4 fprodle.0l3b ( ( 𝜑𝑘𝐴 ) → 0 ≤ 𝐵 )
5 fprodle.c ( ( 𝜑𝑘𝐴 ) → 𝐶 ∈ ℝ )
6 fprodle.blec ( ( 𝜑𝑘𝐴 ) → 𝐵𝐶 )
7 1red ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → 1 ∈ ℝ )
8 nfra1 𝑘𝑘𝐴 𝐵 ≠ 0
9 1 8 nfan 𝑘 ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 )
10 2 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → 𝐴 ∈ Fin )
11 5 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐶 ∈ ℝ )
12 3 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐵 ∈ ℝ )
13 rspa ( ( ∀ 𝑘𝐴 𝐵 ≠ 0 ∧ 𝑘𝐴 ) → 𝐵 ≠ 0 )
14 13 adantll ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐵 ≠ 0 )
15 11 12 14 redivcld ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → ( 𝐶 / 𝐵 ) ∈ ℝ )
16 9 10 15 fprodreclf ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) ∈ ℝ )
17 1 2 3 fprodreclf ( 𝜑 → ∏ 𝑘𝐴 𝐵 ∈ ℝ )
18 17 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐵 ∈ ℝ )
19 1 2 3 4 fprodge0 ( 𝜑 → 0 ≤ ∏ 𝑘𝐴 𝐵 )
20 19 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → 0 ≤ ∏ 𝑘𝐴 𝐵 )
21 4 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 0 ≤ 𝐵 )
22 12 21 14 ne0gt0d ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 0 < 𝐵 )
23 12 22 elrpd ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐵 ∈ ℝ+ )
24 6 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐵𝐶 )
25 divge1 ( ( 𝐵 ∈ ℝ+𝐶 ∈ ℝ ∧ 𝐵𝐶 ) → 1 ≤ ( 𝐶 / 𝐵 ) )
26 23 11 24 25 syl3anc ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 1 ≤ ( 𝐶 / 𝐵 ) )
27 9 10 15 26 fprodge1 ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → 1 ≤ ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) )
28 7 16 18 20 27 lemul2ad ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ( ∏ 𝑘𝐴 𝐵 · 1 ) ≤ ( ∏ 𝑘𝐴 𝐵 · ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) ) )
29 3 recnd ( ( 𝜑𝑘𝐴 ) → 𝐵 ∈ ℂ )
30 1 2 29 fprodclf ( 𝜑 → ∏ 𝑘𝐴 𝐵 ∈ ℂ )
31 30 mulid1d ( 𝜑 → ( ∏ 𝑘𝐴 𝐵 · 1 ) = ∏ 𝑘𝐴 𝐵 )
32 31 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ( ∏ 𝑘𝐴 𝐵 · 1 ) = ∏ 𝑘𝐴 𝐵 )
33 5 recnd ( ( 𝜑𝑘𝐴 ) → 𝐶 ∈ ℂ )
34 33 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐶 ∈ ℂ )
35 29 adantlr ( ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) ∧ 𝑘𝐴 ) → 𝐵 ∈ ℂ )
36 9 10 34 35 14 fproddivf ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) = ( ∏ 𝑘𝐴 𝐶 / ∏ 𝑘𝐴 𝐵 ) )
37 36 oveq2d ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ( ∏ 𝑘𝐴 𝐵 · ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) ) = ( ∏ 𝑘𝐴 𝐵 · ( ∏ 𝑘𝐴 𝐶 / ∏ 𝑘𝐴 𝐵 ) ) )
38 1 2 33 fprodclf ( 𝜑 → ∏ 𝑘𝐴 𝐶 ∈ ℂ )
39 38 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐶 ∈ ℂ )
40 30 adantr ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐵 ∈ ℂ )
41 9 10 35 14 fprodn0f ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐵 ≠ 0 )
42 39 40 41 divcan2d ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ( ∏ 𝑘𝐴 𝐵 · ( ∏ 𝑘𝐴 𝐶 / ∏ 𝑘𝐴 𝐵 ) ) = ∏ 𝑘𝐴 𝐶 )
43 37 42 eqtrd ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ( ∏ 𝑘𝐴 𝐵 · ∏ 𝑘𝐴 ( 𝐶 / 𝐵 ) ) = ∏ 𝑘𝐴 𝐶 )
44 28 32 43 3brtr3d ( ( 𝜑 ∧ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐵 ≤ ∏ 𝑘𝐴 𝐶 )
45 nne ( ¬ 𝐵 ≠ 0 ↔ 𝐵 = 0 )
46 45 rexbii ( ∃ 𝑘𝐴 ¬ 𝐵 ≠ 0 ↔ ∃ 𝑘𝐴 𝐵 = 0 )
47 rexnal ( ∃ 𝑘𝐴 ¬ 𝐵 ≠ 0 ↔ ¬ ∀ 𝑘𝐴 𝐵 ≠ 0 )
48 nfv 𝑗 𝐵 = 0
49 nfcsb1v 𝑘 𝑗 / 𝑘 𝐵
50 49 nfeq1 𝑘 𝑗 / 𝑘 𝐵 = 0
51 csbeq1a ( 𝑘 = 𝑗𝐵 = 𝑗 / 𝑘 𝐵 )
52 51 eqeq1d ( 𝑘 = 𝑗 → ( 𝐵 = 0 ↔ 𝑗 / 𝑘 𝐵 = 0 ) )
53 48 50 52 cbvrexw ( ∃ 𝑘𝐴 𝐵 = 0 ↔ ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 )
54 46 47 53 3bitr3i ( ¬ ∀ 𝑘𝐴 𝐵 ≠ 0 ↔ ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 )
55 nfv 𝑘 𝑗𝐴
56 1 55 50 nf3an 𝑘 ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 )
57 2 3ad2ant1 ( ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → 𝐴 ∈ Fin )
58 29 3ad2antl1 ( ( ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) ∧ 𝑘𝐴 ) → 𝐵 ∈ ℂ )
59 simp2 ( ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → 𝑗𝐴 )
60 52 biimparc ( ( 𝑗 / 𝑘 𝐵 = 0 ∧ 𝑘 = 𝑗 ) → 𝐵 = 0 )
61 60 3ad2antl3 ( ( ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) ∧ 𝑘 = 𝑗 ) → 𝐵 = 0 )
62 56 57 58 59 61 fprodeq0g ( ( 𝜑𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → ∏ 𝑘𝐴 𝐵 = 0 )
63 62 rexlimdv3a ( 𝜑 → ( ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 → ∏ 𝑘𝐴 𝐵 = 0 ) )
64 63 imp ( ( 𝜑 ∧ ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → ∏ 𝑘𝐴 𝐵 = 0 )
65 0red ( ( 𝜑𝑘𝐴 ) → 0 ∈ ℝ )
66 65 3 5 4 6 letrd ( ( 𝜑𝑘𝐴 ) → 0 ≤ 𝐶 )
67 1 2 5 66 fprodge0 ( 𝜑 → 0 ≤ ∏ 𝑘𝐴 𝐶 )
68 67 adantr ( ( 𝜑 ∧ ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → 0 ≤ ∏ 𝑘𝐴 𝐶 )
69 64 68 eqbrtrd ( ( 𝜑 ∧ ∃ 𝑗𝐴 𝑗 / 𝑘 𝐵 = 0 ) → ∏ 𝑘𝐴 𝐵 ≤ ∏ 𝑘𝐴 𝐶 )
70 54 69 sylan2b ( ( 𝜑 ∧ ¬ ∀ 𝑘𝐴 𝐵 ≠ 0 ) → ∏ 𝑘𝐴 𝐵 ≤ ∏ 𝑘𝐴 𝐶 )
71 44 70 pm2.61dan ( 𝜑 → ∏ 𝑘𝐴 𝐵 ≤ ∏ 𝑘𝐴 𝐶 )