(ii) для каждой булевой функции f, зависящей от n переменных

Доказательство. Пусть f - булева функция n переменных, P - программа, вычисляющая f. Каждому двоичному набору x длины n, рассматриваемому как двоичная запись натурального числа, поставим в соответствие его номер
NP(x) - целое число большее нуля, не превосходящее 2n и такое, что
NP(x) < NP(y), если TP(x) < TP(y); NP(x) < NP(y), если TP(x) = TP(y) и x < y.
Оценим число булевых функций средняя сложность каждой из которых не превосходит величины 2n-4/n. Пусть f - одна из таких функций, P - минимальная программа, вычисляющая f. Рассмотрим набор x0 такой, что NP(x0) = 2n-1. Тогда из определения средней сложности следует, что

Поэтому, TP(x0)<2T(f).
Так как T(f) не больше чем 2n-4/n, то легко видеть, что
| (1) |
Каждая функция однозначно определяется первыми TP(x0) операторами своей минимальной программы P и двоичным вектором длины не более чем 2n-1, состоящим из значений функции f на тех аргументах, время работы P на которых больше времени работы этой программы на x0. Обозначим через N0 число различных программ, состоящих не более чем из TP(x0) операторов. Тогда число функций, средняя сложность которых не превосходит 2n-4/n, ограничена сверху величиной

Оценим N0.
Любая программа P определяется списком своих операторов pi, каждый из которых однозначно задается следующими данными:
типом оператора - возможны всего два варианта, оператор может быть либо функциональным, либо оператором остановки;
двуместной булевой функцией fi, вычисляемой функциональным оператором (для оператора остановки эта информация опускается) - существует всего 16 различных двуместных булевых функций;
номером переменной, выходной или внутренней, являющейся выходом функционального оператора (для оператора остановки эта информация опускается) - если программа P состоит из L операторов, то общее число внутренних и выходной переменных не превосходит L и без ограничения общности полагаем, что внутренние переменные нумеруются числами от 1 до L -1, а выходной переменной присваивается номер L, номерами переменных, независимых или внутренних, являющихся входами оператора - полагаем, что независимые переменные нумеруются числами от L+1 до L+n, поэтому общее число пар номеров не превосходит (L+n)2.
Поэтому для числа N, равного числу различных программ, состоящих из L операторов, справедливо неравенство

Подставляя в это неравенство вместо L величину TP(x0) и учитывая полученное выше для этой величины неравенство
(1), видим, что при n > 4 имеет место неравенство

Следовательно, число функций, средняя сложность которых не превосходит 2n-4/n, не больше чем

Таким образом, средняя сложность почти каждой булевой
функции, зависящей от