Metamath Proof Explorer


Theorem nn0seqcvgd

Description: A strictly-decreasing nonnegative integer sequence with initial term N reaches zero by the N th term. Deduction version. (Contributed by Paul Chapman, 31-Mar-2011)

Ref Expression
Hypotheses nn0seqcvgd.1 ( 𝜑𝐹 : ℕ0 ⟶ ℕ0 )
nn0seqcvgd.2 ( 𝜑𝑁 = ( 𝐹 ‘ 0 ) )
nn0seqcvgd.3 ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≠ 0 → ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝐹𝑘 ) ) )
Assertion nn0seqcvgd ( 𝜑 → ( 𝐹𝑁 ) = 0 )

Proof

Step Hyp Ref Expression
1 nn0seqcvgd.1 ( 𝜑𝐹 : ℕ0 ⟶ ℕ0 )
2 nn0seqcvgd.2 ( 𝜑𝑁 = ( 𝐹 ‘ 0 ) )
3 nn0seqcvgd.3 ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≠ 0 → ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝐹𝑘 ) ) )
4 0nn0 0 ∈ ℕ0
5 ffvelrn ( ( 𝐹 : ℕ0 ⟶ ℕ0 ∧ 0 ∈ ℕ0 ) → ( 𝐹 ‘ 0 ) ∈ ℕ0 )
6 1 4 5 sylancl ( 𝜑 → ( 𝐹 ‘ 0 ) ∈ ℕ0 )
7 2 6 eqeltrd ( 𝜑𝑁 ∈ ℕ0 )
8 7 nn0red ( 𝜑𝑁 ∈ ℝ )
9 8 leidd ( 𝜑𝑁𝑁 )
10 fveq2 ( 𝑚 = 0 → ( 𝐹𝑚 ) = ( 𝐹 ‘ 0 ) )
11 oveq2 ( 𝑚 = 0 → ( 𝑁𝑚 ) = ( 𝑁 − 0 ) )
12 10 11 breq12d ( 𝑚 = 0 → ( ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ↔ ( 𝐹 ‘ 0 ) ≤ ( 𝑁 − 0 ) ) )
13 12 imbi2d ( 𝑚 = 0 → ( ( 𝜑 → ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ) ↔ ( 𝜑 → ( 𝐹 ‘ 0 ) ≤ ( 𝑁 − 0 ) ) ) )
14 fveq2 ( 𝑚 = 𝑘 → ( 𝐹𝑚 ) = ( 𝐹𝑘 ) )
15 oveq2 ( 𝑚 = 𝑘 → ( 𝑁𝑚 ) = ( 𝑁𝑘 ) )
16 14 15 breq12d ( 𝑚 = 𝑘 → ( ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ↔ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) )
17 16 imbi2d ( 𝑚 = 𝑘 → ( ( 𝜑 → ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ) ↔ ( 𝜑 → ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) ) )
18 fveq2 ( 𝑚 = ( 𝑘 + 1 ) → ( 𝐹𝑚 ) = ( 𝐹 ‘ ( 𝑘 + 1 ) ) )
19 oveq2 ( 𝑚 = ( 𝑘 + 1 ) → ( 𝑁𝑚 ) = ( 𝑁 − ( 𝑘 + 1 ) ) )
20 18 19 breq12d ( 𝑚 = ( 𝑘 + 1 ) → ( ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
21 20 imbi2d ( 𝑚 = ( 𝑘 + 1 ) → ( ( 𝜑 → ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ) ↔ ( 𝜑 → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) ) )
22 fveq2 ( 𝑚 = 𝑁 → ( 𝐹𝑚 ) = ( 𝐹𝑁 ) )
23 oveq2 ( 𝑚 = 𝑁 → ( 𝑁𝑚 ) = ( 𝑁𝑁 ) )
24 22 23 breq12d ( 𝑚 = 𝑁 → ( ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ↔ ( 𝐹𝑁 ) ≤ ( 𝑁𝑁 ) ) )
25 24 imbi2d ( 𝑚 = 𝑁 → ( ( 𝜑 → ( 𝐹𝑚 ) ≤ ( 𝑁𝑚 ) ) ↔ ( 𝜑 → ( 𝐹𝑁 ) ≤ ( 𝑁𝑁 ) ) ) )
26 2 9 eqbrtrrd ( 𝜑 → ( 𝐹 ‘ 0 ) ≤ 𝑁 )
27 8 recnd ( 𝜑𝑁 ∈ ℂ )
28 27 subid1d ( 𝜑 → ( 𝑁 − 0 ) = 𝑁 )
29 26 28 breqtrrd ( 𝜑 → ( 𝐹 ‘ 0 ) ≤ ( 𝑁 − 0 ) )
30 29 a1i ( 𝑁 ∈ ℕ0 → ( 𝜑 → ( 𝐹 ‘ 0 ) ≤ ( 𝑁 − 0 ) ) )
31 nn0re ( 𝑘 ∈ ℕ0𝑘 ∈ ℝ )
32 posdif ( ( 𝑘 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( 𝑘 < 𝑁 ↔ 0 < ( 𝑁𝑘 ) ) )
33 31 8 32 syl2anr ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝑘 < 𝑁 ↔ 0 < ( 𝑁𝑘 ) ) )
34 33 adantr ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( 𝑘 < 𝑁 ↔ 0 < ( 𝑁𝑘 ) ) )
35 breq1 ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ 0 < ( 𝑁𝑘 ) ) )
36 35 adantl ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ 0 < ( 𝑁𝑘 ) ) )
37 peano2nn0 ( 𝑘 ∈ ℕ0 → ( 𝑘 + 1 ) ∈ ℕ0 )
38 ffvelrn ( ( 𝐹 : ℕ0 ⟶ ℕ0 ∧ ( 𝑘 + 1 ) ∈ ℕ0 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℕ0 )
39 1 37 38 syl2an ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℕ0 )
40 39 nn0zd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℤ )
41 7 nn0zd ( 𝜑𝑁 ∈ ℤ )
42 nn0z ( 𝑘 ∈ ℕ0𝑘 ∈ ℤ )
43 zsubcl ( ( 𝑁 ∈ ℤ ∧ 𝑘 ∈ ℤ ) → ( 𝑁𝑘 ) ∈ ℤ )
44 41 42 43 syl2an ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝑁𝑘 ) ∈ ℤ )
45 zltlem1 ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℤ ∧ ( 𝑁𝑘 ) ∈ ℤ ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( ( 𝑁𝑘 ) − 1 ) ) )
46 40 44 45 syl2anc ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( ( 𝑁𝑘 ) − 1 ) ) )
47 nn0cn ( 𝑘 ∈ ℕ0𝑘 ∈ ℂ )
48 ax-1cn 1 ∈ ℂ
49 subsub4 ( ( 𝑁 ∈ ℂ ∧ 𝑘 ∈ ℂ ∧ 1 ∈ ℂ ) → ( ( 𝑁𝑘 ) − 1 ) = ( 𝑁 − ( 𝑘 + 1 ) ) )
50 48 49 mp3an3 ( ( 𝑁 ∈ ℂ ∧ 𝑘 ∈ ℂ ) → ( ( 𝑁𝑘 ) − 1 ) = ( 𝑁 − ( 𝑘 + 1 ) ) )
51 27 47 50 syl2an ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝑁𝑘 ) − 1 ) = ( 𝑁 − ( 𝑘 + 1 ) ) )
52 51 breq2d ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( ( 𝑁𝑘 ) − 1 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
53 46 52 bitrd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
54 53 adantr ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
55 34 36 54 3bitr2d ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( 𝑘 < 𝑁 ↔ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
56 55 biimpa ( ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) ∧ 𝑘 < 𝑁 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) )
57 56 an32s ( ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ 𝑘 < 𝑁 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) )
58 57 a1d ( ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ 𝑘 < 𝑁 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) = 0 ) → ( ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
59 39 nn0red ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℝ )
60 1 ffvelrnda ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝐹𝑘 ) ∈ ℕ0 )
61 60 nn0red ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝐹𝑘 ) ∈ ℝ )
62 44 zred ( ( 𝜑𝑘 ∈ ℕ0 ) → ( 𝑁𝑘 ) ∈ ℝ )
63 ltletr ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ∈ ℝ ∧ ( 𝐹𝑘 ) ∈ ℝ ∧ ( 𝑁𝑘 ) ∈ ℝ ) → ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝐹𝑘 ) ∧ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ) )
64 59 61 62 63 syl3anc ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝐹𝑘 ) ∧ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝑁𝑘 ) ) )
65 64 53 sylibd ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) < ( 𝐹𝑘 ) ∧ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
66 3 65 syland ( ( 𝜑𝑘 ∈ ℕ0 ) → ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≠ 0 ∧ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
67 66 adantr ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ 𝑘 < 𝑁 ) → ( ( ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≠ 0 ∧ ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
68 67 expdimp ( ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ 𝑘 < 𝑁 ) ∧ ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≠ 0 ) → ( ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
69 58 68 pm2.61dane ( ( ( 𝜑𝑘 ∈ ℕ0 ) ∧ 𝑘 < 𝑁 ) → ( ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
70 69 anasss ( ( 𝜑 ∧ ( 𝑘 ∈ ℕ0𝑘 < 𝑁 ) ) → ( ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) )
71 70 expcom ( ( 𝑘 ∈ ℕ0𝑘 < 𝑁 ) → ( 𝜑 → ( ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) ) )
72 71 a2d ( ( 𝑘 ∈ ℕ0𝑘 < 𝑁 ) → ( ( 𝜑 → ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝜑 → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) ) )
73 72 3adant1 ( ( 𝑁 ∈ ℕ0𝑘 ∈ ℕ0𝑘 < 𝑁 ) → ( ( 𝜑 → ( 𝐹𝑘 ) ≤ ( 𝑁𝑘 ) ) → ( 𝜑 → ( 𝐹 ‘ ( 𝑘 + 1 ) ) ≤ ( 𝑁 − ( 𝑘 + 1 ) ) ) ) )
74 13 17 21 25 30 73 fnn0ind ( ( 𝑁 ∈ ℕ0𝑁 ∈ ℕ0𝑁𝑁 ) → ( 𝜑 → ( 𝐹𝑁 ) ≤ ( 𝑁𝑁 ) ) )
75 7 7 9 74 syl3anc ( 𝜑 → ( 𝜑 → ( 𝐹𝑁 ) ≤ ( 𝑁𝑁 ) ) )
76 75 pm2.43i ( 𝜑 → ( 𝐹𝑁 ) ≤ ( 𝑁𝑁 ) )
77 27 subidd ( 𝜑 → ( 𝑁𝑁 ) = 0 )
78 76 77 breqtrd ( 𝜑 → ( 𝐹𝑁 ) ≤ 0 )
79 1 7 ffvelrnd ( 𝜑 → ( 𝐹𝑁 ) ∈ ℕ0 )
80 79 nn0ge0d ( 𝜑 → 0 ≤ ( 𝐹𝑁 ) )
81 79 nn0red ( 𝜑 → ( 𝐹𝑁 ) ∈ ℝ )
82 0re 0 ∈ ℝ
83 letri3 ( ( ( 𝐹𝑁 ) ∈ ℝ ∧ 0 ∈ ℝ ) → ( ( 𝐹𝑁 ) = 0 ↔ ( ( 𝐹𝑁 ) ≤ 0 ∧ 0 ≤ ( 𝐹𝑁 ) ) ) )
84 81 82 83 sylancl ( 𝜑 → ( ( 𝐹𝑁 ) = 0 ↔ ( ( 𝐹𝑁 ) ≤ 0 ∧ 0 ≤ ( 𝐹𝑁 ) ) ) )
85 78 80 84 mpbir2and ( 𝜑 → ( 𝐹𝑁 ) = 0 )