Здесь скрыта огромная логическая ошибка:
LHS : n = (n-1) + 1
= O(1) + 1
= O(1) + O(1)
= O(1)
n - это функция, а Ο (1) - это набор функций.Ни одно из них не является числом (а индукционные доказательства - это доказательство всего множества отдельных чисел одним махом).Использование знаков равенства, таких как n = Ο (1), , является неофициальным сокращением для f ∈ Ο (1), где f (x) = x .
В этом доказательстве используется ошибка двусмысленности двумя способами:
- , притворяясь, что n - это число (следующее число в индуктивном путешествии), а не целая функция
- отпритворство в знаке равенства означает, что два числа равны, что и означает в доказательстве индукции, а не является сокращением для элемента * из 1015 *
Если вы хотите более четко понять, почему это доказательство не удается, замените n другим обозначением для функции, f (где f (x) = x), и знаками равенства с элементами-элементами, где это необходимо, и посмотрите, имеет ли доказательство смысл.
Базовый случай:
let h(x) = 1 in
h ∈ Ο(1) [Any function is in Ο(that function)]
Индуктивный случай:
n = (n - 1) + 1 [Algebraic identity]
n - 1 = n - 1 [Arithmetic]
let f(x) = x
g(x) = f(x) - 1 in
g ∈ Ο(1) [Assume g ∈ Ο(1) because a different function, h, was]
f ∈ Ο(1 + 1) [By definition of Ο]
f ∈ Ο(2) [Arithmetic]
Становится гораздо понятнее, что это вообще не доказательство индукции.Само по себе это даже не является действительным доказательством, потому что мы только доказали, что h ∈ Ο (1), который не имеет никакого отношения к тому, g ∈ Ο (1), поскольку эти функции действуют очень, очень по-разному друг от друга.