Intuitionistic Logic Explorer < Previous   Next > Nearby theorems Mirrors  >  Home  >  ILE Home  >  Th. List  >  nn0seqcvgd GIF version

Theorem nn0seqcvgd 10242
 Description: A strictly-decreasing nonnegative integer sequence with initial term 𝑁 reaches zero by the 𝑁 th term. Deduction version. (Contributed by Paul Chapman, 31-Mar-2011.)
Hypotheses
Ref Expression
nn0seqcvgd.1 (𝜑𝐹:ℕ0⟶ℕ0)
nn0seqcvgd.2 (𝜑𝑁 = (𝐹‘0))
nn0seqcvgd.3 ((𝜑𝑘 ∈ ℕ0) → ((𝐹‘(𝑘 + 1)) ≠ 0 → (𝐹‘(𝑘 + 1)) < (𝐹𝑘)))
Assertion
Ref Expression
nn0seqcvgd (𝜑 → (𝐹𝑁) = 0)
Distinct variable groups:   𝑘,𝐹   𝑘,𝑁   𝜑,𝑘

Proof of Theorem nn0seqcvgd
Dummy variable 𝑚 is distinct from all other variables.
StepHypRef Expression
1 nn0seqcvgd.2 . . . . . 6 (𝜑𝑁 = (𝐹‘0))
2 nn0seqcvgd.1 . . . . . . 7 (𝜑𝐹:ℕ0⟶ℕ0)
3 0nn0 8253 . . . . . . 7 0 ∈ ℕ0
4 ffvelrn 5327 . . . . . . 7 ((𝐹:ℕ0⟶ℕ0 ∧ 0 ∈ ℕ0) → (𝐹‘0) ∈ ℕ0)
52, 3, 4sylancl 398 . . . . . 6 (𝜑 → (𝐹‘0) ∈ ℕ0)
61, 5eqeltrd 2130 . . . . 5 (𝜑𝑁 ∈ ℕ0)
76nn0red 8292 . . . . . 6 (𝜑𝑁 ∈ ℝ)
87leidd 7579 . . . . 5 (𝜑𝑁𝑁)
9 fveq2 5205 . . . . . . . 8 (𝑚 = 0 → (𝐹𝑚) = (𝐹‘0))
10 oveq2 5547 . . . . . . . 8 (𝑚 = 0 → (𝑁𝑚) = (𝑁 − 0))
119, 10breq12d 3804 . . . . . . 7 (𝑚 = 0 → ((𝐹𝑚) ≤ (𝑁𝑚) ↔ (𝐹‘0) ≤ (𝑁 − 0)))
1211imbi2d 223 . . . . . 6 (𝑚 = 0 → ((𝜑 → (𝐹𝑚) ≤ (𝑁𝑚)) ↔ (𝜑 → (𝐹‘0) ≤ (𝑁 − 0))))
13 fveq2 5205 . . . . . . . 8 (𝑚 = 𝑘 → (𝐹𝑚) = (𝐹𝑘))
14 oveq2 5547 . . . . . . . 8 (𝑚 = 𝑘 → (𝑁𝑚) = (𝑁𝑘))
1513, 14breq12d 3804 . . . . . . 7 (𝑚 = 𝑘 → ((𝐹𝑚) ≤ (𝑁𝑚) ↔ (𝐹𝑘) ≤ (𝑁𝑘)))
1615imbi2d 223 . . . . . 6 (𝑚 = 𝑘 → ((𝜑 → (𝐹𝑚) ≤ (𝑁𝑚)) ↔ (𝜑 → (𝐹𝑘) ≤ (𝑁𝑘))))
17 fveq2 5205 . . . . . . . 8 (𝑚 = (𝑘 + 1) → (𝐹𝑚) = (𝐹‘(𝑘 + 1)))
18 oveq2 5547 . . . . . . . 8 (𝑚 = (𝑘 + 1) → (𝑁𝑚) = (𝑁 − (𝑘 + 1)))
1917, 18breq12d 3804 . . . . . . 7 (𝑚 = (𝑘 + 1) → ((𝐹𝑚) ≤ (𝑁𝑚) ↔ (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
2019imbi2d 223 . . . . . 6 (𝑚 = (𝑘 + 1) → ((𝜑 → (𝐹𝑚) ≤ (𝑁𝑚)) ↔ (𝜑 → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))))
21 fveq2 5205 . . . . . . . 8 (𝑚 = 𝑁 → (𝐹𝑚) = (𝐹𝑁))
22 oveq2 5547 . . . . . . . 8 (𝑚 = 𝑁 → (𝑁𝑚) = (𝑁𝑁))
2321, 22breq12d 3804 . . . . . . 7 (𝑚 = 𝑁 → ((𝐹𝑚) ≤ (𝑁𝑚) ↔ (𝐹𝑁) ≤ (𝑁𝑁)))
2423imbi2d 223 . . . . . 6 (𝑚 = 𝑁 → ((𝜑 → (𝐹𝑚) ≤ (𝑁𝑚)) ↔ (𝜑 → (𝐹𝑁) ≤ (𝑁𝑁))))
251, 8eqbrtrrd 3813 . . . . . . . 8 (𝜑 → (𝐹‘0) ≤ 𝑁)
267recnd 7112 . . . . . . . . 9 (𝜑𝑁 ∈ ℂ)
2726subid1d 7373 . . . . . . . 8 (𝜑 → (𝑁 − 0) = 𝑁)
2825, 27breqtrrd 3817 . . . . . . 7 (𝜑 → (𝐹‘0) ≤ (𝑁 − 0))
2928a1i 9 . . . . . 6 (𝑁 ∈ ℕ0 → (𝜑 → (𝐹‘0) ≤ (𝑁 − 0)))
30 nn0re 8247 . . . . . . . . . . . . . . . . 17 (𝑘 ∈ ℕ0𝑘 ∈ ℝ)
31 posdif 7523 . . . . . . . . . . . . . . . . 17 ((𝑘 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑘 < 𝑁 ↔ 0 < (𝑁𝑘)))
3230, 7, 31syl2anr 278 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ ℕ0) → (𝑘 < 𝑁 ↔ 0 < (𝑁𝑘)))
3332adantr 265 . . . . . . . . . . . . . . 15 (((𝜑𝑘 ∈ ℕ0) ∧ (𝐹‘(𝑘 + 1)) = 0) → (𝑘 < 𝑁 ↔ 0 < (𝑁𝑘)))
34 breq1 3794 . . . . . . . . . . . . . . . 16 ((𝐹‘(𝑘 + 1)) = 0 → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ 0 < (𝑁𝑘)))
3534adantl 266 . . . . . . . . . . . . . . 15 (((𝜑𝑘 ∈ ℕ0) ∧ (𝐹‘(𝑘 + 1)) = 0) → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ 0 < (𝑁𝑘)))
36 peano2nn0 8278 . . . . . . . . . . . . . . . . . . . 20 (𝑘 ∈ ℕ0 → (𝑘 + 1) ∈ ℕ0)
37 ffvelrn 5327 . . . . . . . . . . . . . . . . . . . 20 ((𝐹:ℕ0⟶ℕ0 ∧ (𝑘 + 1) ∈ ℕ0) → (𝐹‘(𝑘 + 1)) ∈ ℕ0)
382, 36, 37syl2an 277 . . . . . . . . . . . . . . . . . . 19 ((𝜑𝑘 ∈ ℕ0) → (𝐹‘(𝑘 + 1)) ∈ ℕ0)
3938nn0zd 8416 . . . . . . . . . . . . . . . . . 18 ((𝜑𝑘 ∈ ℕ0) → (𝐹‘(𝑘 + 1)) ∈ ℤ)
406nn0zd 8416 . . . . . . . . . . . . . . . . . . 19 (𝜑𝑁 ∈ ℤ)
41 nn0z 8321 . . . . . . . . . . . . . . . . . . 19 (𝑘 ∈ ℕ0𝑘 ∈ ℤ)
42 zsubcl 8342 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℤ ∧ 𝑘 ∈ ℤ) → (𝑁𝑘) ∈ ℤ)
4340, 41, 42syl2an 277 . . . . . . . . . . . . . . . . . 18 ((𝜑𝑘 ∈ ℕ0) → (𝑁𝑘) ∈ ℤ)
44 zltlem1 8358 . . . . . . . . . . . . . . . . . 18 (((𝐹‘(𝑘 + 1)) ∈ ℤ ∧ (𝑁𝑘) ∈ ℤ) → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ (𝐹‘(𝑘 + 1)) ≤ ((𝑁𝑘) − 1)))
4539, 43, 44syl2anc 397 . . . . . . . . . . . . . . . . 17 ((𝜑𝑘 ∈ ℕ0) → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ (𝐹‘(𝑘 + 1)) ≤ ((𝑁𝑘) − 1)))
46 nn0cn 8248 . . . . . . . . . . . . . . . . . . 19 (𝑘 ∈ ℕ0𝑘 ∈ ℂ)
47 ax-1cn 7034 . . . . . . . . . . . . . . . . . . . 20 1 ∈ ℂ
48 subsub4 7306 . . . . . . . . . . . . . . . . . . . 20 ((𝑁 ∈ ℂ ∧ 𝑘 ∈ ℂ ∧ 1 ∈ ℂ) → ((𝑁𝑘) − 1) = (𝑁 − (𝑘 + 1)))
4947, 48mp3an3 1232 . . . . . . . . . . . . . . . . . . 19 ((𝑁 ∈ ℂ ∧ 𝑘 ∈ ℂ) → ((𝑁𝑘) − 1) = (𝑁 − (𝑘 + 1)))
5026, 46, 49syl2an 277 . . . . . . . . . . . . . . . . . 18 ((𝜑𝑘 ∈ ℕ0) → ((𝑁𝑘) − 1) = (𝑁 − (𝑘 + 1)))
5150breq2d 3803 . . . . . . . . . . . . . . . . 17 ((𝜑𝑘 ∈ ℕ0) → ((𝐹‘(𝑘 + 1)) ≤ ((𝑁𝑘) − 1) ↔ (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
5245, 51bitrd 181 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ ℕ0) → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
5352adantr 265 . . . . . . . . . . . . . . 15 (((𝜑𝑘 ∈ ℕ0) ∧ (𝐹‘(𝑘 + 1)) = 0) → ((𝐹‘(𝑘 + 1)) < (𝑁𝑘) ↔ (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
5433, 35, 533bitr2d 209 . . . . . . . . . . . . . 14 (((𝜑𝑘 ∈ ℕ0) ∧ (𝐹‘(𝑘 + 1)) = 0) → (𝑘 < 𝑁 ↔ (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
5554biimpa 284 . . . . . . . . . . . . 13 ((((𝜑𝑘 ∈ ℕ0) ∧ (𝐹‘(𝑘 + 1)) = 0) ∧ 𝑘 < 𝑁) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))
5655an32s 510 . . . . . . . . . . . 12 ((((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) ∧ (𝐹‘(𝑘 + 1)) = 0) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))
5756a1d 22 . . . . . . . . . . 11 ((((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) ∧ (𝐹‘(𝑘 + 1)) = 0) → ((𝐹𝑘) ≤ (𝑁𝑘) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
58 nn0seqcvgd.3 . . . . . . . . . . . . . 14 ((𝜑𝑘 ∈ ℕ0) → ((𝐹‘(𝑘 + 1)) ≠ 0 → (𝐹‘(𝑘 + 1)) < (𝐹𝑘)))
5938nn0red 8292 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ ℕ0) → (𝐹‘(𝑘 + 1)) ∈ ℝ)
602ffvelrnda 5329 . . . . . . . . . . . . . . . . 17 ((𝜑𝑘 ∈ ℕ0) → (𝐹𝑘) ∈ ℕ0)
6160nn0red 8292 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ ℕ0) → (𝐹𝑘) ∈ ℝ)
6243zred 8418 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ ℕ0) → (𝑁𝑘) ∈ ℝ)
63 ltletr 7165 . . . . . . . . . . . . . . . 16 (((𝐹‘(𝑘 + 1)) ∈ ℝ ∧ (𝐹𝑘) ∈ ℝ ∧ (𝑁𝑘) ∈ ℝ) → (((𝐹‘(𝑘 + 1)) < (𝐹𝑘) ∧ (𝐹𝑘) ≤ (𝑁𝑘)) → (𝐹‘(𝑘 + 1)) < (𝑁𝑘)))
6459, 61, 62, 63syl3anc 1146 . . . . . . . . . . . . . . 15 ((𝜑𝑘 ∈ ℕ0) → (((𝐹‘(𝑘 + 1)) < (𝐹𝑘) ∧ (𝐹𝑘) ≤ (𝑁𝑘)) → (𝐹‘(𝑘 + 1)) < (𝑁𝑘)))
6564, 52sylibd 142 . . . . . . . . . . . . . 14 ((𝜑𝑘 ∈ ℕ0) → (((𝐹‘(𝑘 + 1)) < (𝐹𝑘) ∧ (𝐹𝑘) ≤ (𝑁𝑘)) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
6658, 65syland 281 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ ℕ0) → (((𝐹‘(𝑘 + 1)) ≠ 0 ∧ (𝐹𝑘) ≤ (𝑁𝑘)) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
6766adantr 265 . . . . . . . . . . . 12 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → (((𝐹‘(𝑘 + 1)) ≠ 0 ∧ (𝐹𝑘) ≤ (𝑁𝑘)) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
6867expdimp 250 . . . . . . . . . . 11 ((((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) ∧ (𝐹‘(𝑘 + 1)) ≠ 0) → ((𝐹𝑘) ≤ (𝑁𝑘) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
6939adantr 265 . . . . . . . . . . . . 13 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → (𝐹‘(𝑘 + 1)) ∈ ℤ)
70 0zd 8313 . . . . . . . . . . . . 13 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → 0 ∈ ℤ)
71 zdceq 8373 . . . . . . . . . . . . 13 (((𝐹‘(𝑘 + 1)) ∈ ℤ ∧ 0 ∈ ℤ) → DECID (𝐹‘(𝑘 + 1)) = 0)
7269, 70, 71syl2anc 397 . . . . . . . . . . . 12 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → DECID (𝐹‘(𝑘 + 1)) = 0)
73 dcne 2231 . . . . . . . . . . . 12 (DECID (𝐹‘(𝑘 + 1)) = 0 ↔ ((𝐹‘(𝑘 + 1)) = 0 ∨ (𝐹‘(𝑘 + 1)) ≠ 0))
7472, 73sylib 131 . . . . . . . . . . 11 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → ((𝐹‘(𝑘 + 1)) = 0 ∨ (𝐹‘(𝑘 + 1)) ≠ 0))
7557, 68, 74mpjaodan 722 . . . . . . . . . 10 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑘 < 𝑁) → ((𝐹𝑘) ≤ (𝑁𝑘) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
7675anasss 385 . . . . . . . . 9 ((𝜑 ∧ (𝑘 ∈ ℕ0𝑘 < 𝑁)) → ((𝐹𝑘) ≤ (𝑁𝑘) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1))))
7776expcom 113 . . . . . . . 8 ((𝑘 ∈ ℕ0𝑘 < 𝑁) → (𝜑 → ((𝐹𝑘) ≤ (𝑁𝑘) → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))))
7877a2d 26 . . . . . . 7 ((𝑘 ∈ ℕ0𝑘 < 𝑁) → ((𝜑 → (𝐹𝑘) ≤ (𝑁𝑘)) → (𝜑 → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))))
79783adant1 933 . . . . . 6 ((𝑁 ∈ ℕ0𝑘 ∈ ℕ0𝑘 < 𝑁) → ((𝜑 → (𝐹𝑘) ≤ (𝑁𝑘)) → (𝜑 → (𝐹‘(𝑘 + 1)) ≤ (𝑁 − (𝑘 + 1)))))
8012, 16, 20, 24, 29, 79fnn0ind 8412 . . . . 5 ((𝑁 ∈ ℕ0𝑁 ∈ ℕ0𝑁𝑁) → (𝜑 → (𝐹𝑁) ≤ (𝑁𝑁)))
816, 6, 8, 80syl3anc 1146 . . . 4 (𝜑 → (𝜑 → (𝐹𝑁) ≤ (𝑁𝑁)))
8281pm2.43i 47 . . 3 (𝜑 → (𝐹𝑁) ≤ (𝑁𝑁))
8326subidd 7372 . . 3 (𝜑 → (𝑁𝑁) = 0)
8482, 83breqtrd 3815 . 2 (𝜑 → (𝐹𝑁) ≤ 0)
852, 6ffvelrnd 5330 . . 3 (𝜑 → (𝐹𝑁) ∈ ℕ0)
8685nn0ge0d 8294 . 2 (𝜑 → 0 ≤ (𝐹𝑁))
8785nn0red 8292 . . 3 (𝜑 → (𝐹𝑁) ∈ ℝ)
88 0re 7084 . . 3 0 ∈ ℝ
89 letri3 7157 . . 3 (((𝐹𝑁) ∈ ℝ ∧ 0 ∈ ℝ) → ((𝐹𝑁) = 0 ↔ ((𝐹𝑁) ≤ 0 ∧ 0 ≤ (𝐹𝑁))))
9087, 88, 89sylancl 398 . 2 (𝜑 → ((𝐹𝑁) = 0 ↔ ((𝐹𝑁) ≤ 0 ∧ 0 ≤ (𝐹𝑁))))
9184, 86, 90mpbir2and 862 1 (𝜑 → (𝐹𝑁) = 0)
 Colors of variables: wff set class Syntax hints:   → wi 4   ∧ wa 101   ↔ wb 102   ∨ wo 639  DECID wdc 753   = wceq 1259   ∈ wcel 1409   ≠ wne 2220   class class class wbr 3791  ⟶wf 4925  ‘cfv 4929  (class class class)co 5539  ℂcc 6944  ℝcr 6945  0cc0 6946  1c1 6947   + caddc 6949   < clt 7118   ≤ cle 7119   − cmin 7244  ℕ0cn0 8238  ℤcz 8301 This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-mp 7  ax-ia1 103  ax-ia2 104  ax-ia3 105  ax-in1 554  ax-in2 555  ax-io 640  ax-5 1352  ax-7 1353  ax-gen 1354  ax-ie1 1398  ax-ie2 1399  ax-8 1411  ax-10 1412  ax-11 1413  ax-i12 1414  ax-bndl 1415  ax-4 1416  ax-13 1420  ax-14 1421  ax-17 1435  ax-i9 1439  ax-ial 1443  ax-i5r 1444  ax-ext 2038  ax-coll 3899  ax-sep 3902  ax-nul 3910  ax-pow 3954  ax-pr 3971  ax-un 4197  ax-setind 4289  ax-iinf 4338  ax-cnex 7032  ax-resscn 7033  ax-1cn 7034  ax-1re 7035  ax-icn 7036  ax-addcl 7037  ax-addrcl 7038  ax-mulcl 7039  ax-addcom 7041  ax-addass 7043  ax-distr 7045  ax-i2m1 7046  ax-0id 7049  ax-rnegex 7050  ax-cnre 7052  ax-pre-ltirr 7053  ax-pre-ltwlin 7054  ax-pre-lttrn 7055  ax-pre-apti 7056  ax-pre-ltadd 7057 This theorem depends on definitions:  df-bi 114  df-dc 754  df-3or 897  df-3an 898  df-tru 1262  df-fal 1265  df-nf 1366  df-sb 1662  df-eu 1919  df-mo 1920  df-clab 2043  df-cleq 2049  df-clel 2052  df-nfc 2183  df-ne 2221  df-nel 2315  df-ral 2328  df-rex 2329  df-reu 2330  df-rab 2332  df-v 2576  df-sbc 2787  df-csb 2880  df-dif 2947  df-un 2949  df-in 2951  df-ss 2958  df-nul 3252  df-pw 3388  df-sn 3408  df-pr 3409  df-op 3411  df-uni 3608  df-int 3643  df-iun 3686  df-br 3792  df-opab 3846  df-mpt 3847  df-tr 3882  df-eprel 4053  df-id 4057  df-po 4060  df-iso 4061  df-iord 4130  df-on 4132  df-suc 4135  df-iom 4341  df-xp 4378  df-rel 4379  df-cnv 4380  df-co 4381  df-dm 4382  df-rn 4383  df-res 4384  df-ima 4385  df-iota 4894  df-fun 4931  df-fn 4932  df-f 4933  df-f1 4934  df-fo 4935  df-f1o 4936  df-fv 4937  df-riota 5495  df-ov 5542  df-oprab 5543  df-mpt2 5544  df-1st 5794  df-2nd 5795  df-recs 5950  df-irdg 5987  df-1o 6031  df-2o 6032  df-oadd 6035  df-omul 6036  df-er 6136  df-ec 6138  df-qs 6142  df-ni 6459  df-pli 6460  df-mi 6461  df-lti 6462  df-plpq 6499  df-mpq 6500  df-enq 6502  df-nqqs 6503  df-plqqs 6504  df-mqqs 6505  df-1nqqs 6506  df-rq 6507  df-ltnqqs 6508  df-enq0 6579  df-nq0 6580  df-0nq0 6581  df-plq0 6582  df-mq0 6583  df-inp 6621  df-i1p 6622  df-iplp 6623  df-iltp 6625  df-enr 6868  df-nr 6869  df-ltr 6872  df-0r 6873  df-1r 6874  df-0 6953  df-1 6954  df-r 6956  df-lt 6959  df-pnf 7120  df-mnf 7121  df-xr 7122  df-ltxr 7123  df-le 7124  df-sub 7246  df-neg 7247  df-inn 7990  df-n0 8239  df-z 8302 This theorem is referenced by:  ialgcvg  10249
 Copyright terms: Public domain W3C validator