О длине вычислений арифметических программ

( About difficulties of the calculations of the arithmetical proGrams
Preprint, Inst. Appl. Math., the Russian Academy of Science)

Попов С.В.
(S.V.Popov)

ИПМ им. М.В.Келдыша РАН

Москва, 2005

Аннотация

Рассматриваются программы над полным базисом, вычисляющие двоичные всюду определенные функции. Доказывается, что если функция, вычисляемая программой, обладают энтропией H, то имеется, по меньшей мере, одно вычисление программы длины 2 dH для некоторой положительной константы d.

Abstract

There are considered program on full base, computing binary all determined functions. It is proved; if function, computed by the program, possess entropy H, there is calculation of the program of the length 2dH for positive constant d.

 

Введение. В работе исследуются свойства программ над двоичным арифметическим базисом [1]. Инструментом исследования выступает обобщенный пропозициональный язык, формулы которого строятся над базисом, расширенным за счет введения бесконечных логических операций.

Обобщенные пропозициональные формулы представляют базисные арифметические и логические операторы. Поэтому средств обобщенного пропозиционального языка почти достаточно для представления арифметических программ. После преобразования программы в логическую формулу, в общем случае, получается формула, длина которой пропорциональна вычислению программы над множеством ее входных значений. Если длины вычисления программы не ограничена, то получается формула не ограниченной длины. Поэтому в работе рассматриваются программы для всюду определенных функций, длина вычисления которых ограничена некоторой функцией p(|x|) от длины входа x программы. В этом случае обобщенная функция F(x, y), представляющая функцию y = (x), вычисляемую программой (x), обладает длиной c p(|x|) для некоторой положительной константы c.

Пусть есть энтропия функции , определенная аргументом x. Показывается, что длина формулы F(x, y) ограничена снизу величиной 2dдля некоторой положительной константы d. Отсюда следует, что имеется хотя бы одно вычисление программы (x), длина которого также не меньше, чем 2d.

1. Определение программ и их свойства. Пусть X = {x1, x2, … } - входной, а Y = {y1, y2, …} – рабочий алфавиты. Буквы этих алфавитов назовем соответственно входными и рабочими переменными. Программой p(x1, x2, …, xn, y1, y2, …, ym) в базисе f1, f2, …, fl, P1, …, Ph , где f1, f2, …, fl - общерекурсивные функции, P1, …, Ph – рекурсивные предикаты, называется ориентированный граф, вершинами которого являются выражения следующих двух типов:

1)                      арифметические операторы yj Ü fi(y1, y2, …, ym), 1 £ i £ l;

2)                      логические операторы Pi(z1,, zq), где z1,, zq – входные и рабочие переменные, 1 £ i £ h.

При этом каждая арифметическая вершина имеет ровно одного последователя, логическая – двух (один из которых называется 0-последователем, другой 1-последователем), а заключительная  вершина последователей не имеет. Заключительная вершина помечена в точности одной рабочей переменной, которая называется выходной. Кроме того, одна из вершин является начальной вершиной программы.

Полагаем, что рассматривается программа p(x1, x2, …, xn, y1, y2, …, ym) с фиксированными наборами входных и рабочих переменных, а также с фиксированной выходной переменной.

Полным состоянием программы p(x1, x2, …, xn, y1, y2, …, ym) называется пара (x, v), где v – вершина, а x Î Nn+m. Если вершина v – заключительная, то полное состояние (x, v) называется заключительным. Если x = a1, a2, …, an, b1, b2, …, bm, то числа a1, a2, …, an, b1, b2, …, bm называются значениями переменных соответственно x1, x2, …, xn, y1, y2, …, ym в состоянии (x, v).

На множестве полных состояний программы p определяется отношение ®: пусть x1 = a1, a2, …, an, b¢1, b¢2, …, b¢m, x2 = a1, a, …, an, b²1, b²2, …, b²m, тогда  (x1, v1) ® (x2, v2)  Û выполняется одно из следующих условий.

1.                      Если v1 – арифметическая вершина yj Ü f(yj1, yj2,, yjr), то b²j =  f(c1, c2,, cr), где c1, c2,, cr – значения соответствующих переменных, и v2 является последователем v1.

2.                      Если v1 – логическая вершина P(xj1, xj2,, xjh, yj1, yj2,, yjl), то x1 = x2 и v2 является P(aj1, aj2,, ajh, bj1, bj2,, bjl)-последователем вершины v1.

Вычислением программы p для значений a1, a2, …, an входных переменных называется такая последовательность X полных состояний (x1, v1), (x2, v2), …., (xl, vl), … , что x1 = a1, a2, …, an, 0, …, 0; вершина v1 – начальная; (xi, vi) ® (xi+1, vi+1), i = 1, 2, … . Говорим, что путь t = v1, v2, …., vl, … соответствует вычислению X. Вычисление называется терминальным, если оно конечно и последнее его состояние – заключительное. Путь, соответствующий терминальному вычислению, назовем терминальным. Путь из начальной вершины назовем начальным путем, а начальный путь, кончающийся заключительной вершиной, - полным.

Пусть t =  v1, v2, …., vl, … ‑ начальный путь в программе p. Для каждой вершины этого пути определим значение рабочих переменных y1, y2, …, ym следующим образом.

1.                      В начальной вершине все их значения нулевые.

2.                      Если в арифметической вершине yj Ü f(yj1, yj2,, yjr) переменные y1, y2, …, ym имеют значения b1, b2, …, bm, то в ее последователе переменная yj имеет значение f(bj1, bj2,, bjr), а остальные переменные не меняют своих значений.

3.                      В последователях логической вершины все переменные сохраняют свои значения.

Поскольку функции в арифметических вершинах не зависят от входных переменных, то тем самым для любого начального пути значения рабочих переменных во всех его вершинах определены однозначно.

Функцией, вычисляемой программой p, называется частичная функция fp такая, что fp(a1, a2, …, an) = b Û существует терминальное вычисление, начинающееся состоянием (a1, a2, …, an, 0, 0, …, 0; v1) и для которого b является значением выходной переменной в заключительном состоянии.

Две программы эквивалентны, если они вычисляют одну функцию.

Вершина v программы называется фиктивной, если ни один полный путь, соответствующий какому-либо вычислению, не проходит через нее.

Справедливо утверждение.

Лемма 1. Любая программа эквивалентна программе, в которой нет фиктивных вершин.

Доказательство.  Пусть v есть фиктивная вершина программы. Рассмотрим возможности, которые существуют для различных путей в этой программе, которые завершаются вершиной v.

Пусть путь t = v1, v2, …, vl, v, l > 0, оканчивается фиктивной вершиной v, и все вершины v1, v2, …, vl  арифметические. В этом случае вершины v1, v2, …, vl так же фиктивные, так как если хотя бы одно вычисление содержит вершину vi, i = 1, 2, …, l, то это вычисление содержит и вершину v. Поэтому, исключив из программы вершины v1, v2, …, vl и направив все дуги, ведущие в эти вершины, в вершину v, получим программу эквивалентную исходной.

Пусть теперь путь t = v1, v оканчивается фиктивной вершиной v, вершина v1 логическая и ее s-выход (s Î {0,1}) ведет в фиктивную вершину v. Выбросим вершину v1, а ведущие в нее дуги направим в ее (1-s)-последователя. Получим опять программу эквивалентную исходной.

Из этих преобразований видно, что, последовательно избавляясь от всех фиктивных вершин, мы получим эквивалентную программу, без фиктивных вершин.

Лемма доказана.

Полагаем, что рассматриваемые далее программы не содержат фиктивных вершин.

Будем рассматривать программы над двоичными числами над полным базисом s(x), 0(x) и x = y. При этом полагаем, что в арифметических операторах y Ü f(х), переменные y и х совпадают.

Нам потребуется следующее представление двоичных чисел. Каждое двоичное число представляется бесконечной бинарной последовательностью, младшие разряды числа расположены слева, а справа располагается бесконечная последовательность из нулей.

Логическую вершину вида x = x назовем несущественной. Легко доказывается

Лемма 2. Любая программа эквивалентна программе, в которой нет несущественных вершин.

Поэтому полагаем, что рассматриваемые далее программы не содержат несущественных вершин.

Для удобства пусть начало всякой программы представляет собой m операторов 0(y1), …, 0(ym). Назовем эти операторы установочными.

Каждый путь t = v1, v2, …., vl программы следующим образом определяет множество функций fti: fti(a1, a2, …, an, b1, b2, …, bm) = b¢i Û существует вычисление, соответствующее пути t, начинающееся состоянием (a1, a2, …, an, b1, b2, …, bm; v1), и оканчивающееся состоянием (a1, a2, …, an, b¢1, b¢2, …, b¢m; vl), i = 1, 2,, m. В свою очередь, каждый полный путь t определяет единственную функцию ft: ft(a1, a2, …, an) = b Û существует терминальное вычисление, соответствующее пути t и начинающееся состоянием (a1, a2, …, an, 0, 0, …, 0; v1), для которого b является значением выходной переменной в заключительном состоянии. Тогда функция, вычисляемая программой, представляет собой объединение функций, определяемых всеми ее полными путями.

Пусть t = v1, v2, …., vl, … ‑ путь в программе p. Заменим каждый предикат P(z1, z2, …, zr) в нем предикатом Ps(z1, z2, …, zr), где s Î {0, 1} таково, что следующая в t за P(z1, z2, …, zr) вершина является его s-последователем. Полученную таким образом последовательность назовем размеченным путем и обозначим t.

Программа p может рассматриваться как диаграмма конечного автомата, состояниями которого являются логические и заключительная вершины, а входной алфавит образован из следующих «букв». Если из логической вершины P в логическую вершину P1 ведет путь P, v1, …, vl, P1, где v1 является s-последователем вершины P, v1, …, vl – арифметические вершины и l ³ 0, то переход из состояния P в состояние P1 происходит под воздействием автоматной «буквы» Ps, v1, …, vl. Событие, представимое таким автоматом, состоит из всех полных размеченных путей программы. Представим регулярное выражение R, задающее множество всех полных путей, в виде суммы Rp = R1 Ú R2 ÚÚ Rr членов, не содержащих операции суммирования.

Покажем, как всякое регулярное подвыражение R выражения Ri определяет совокупность функций, i = 1, 2, …, r.

1.                      Пусть R не содержит оператора *. По построению оно задает единственный размеченный путь t, который определяет m частичных функций fti(x1, x2, …, xn, y1, y2, …, ym), i = 1, 2,, m, как описано выше. Будем говорить, что выражение R определяет эти функции. Если t есть полный путь, то определяемая им единственная функция ft(x1, x2, …, xn) описывает зависимость выходной переменной программы от входных.

2.                      Пусть выражение R = А*, регулярное выражение А задает совокупность {t} размеченных путей и {t}* есть совокупность всех размеченных путей, полученных всеми возможными конкатенациями путей из {t}. Каждый из этих путей определяет m частичных функций fti(x1, x2, …, xn, y1, y2, …, ym), i = 1, 2,, m, как описано выше. Будем полагать, что выражением R определяет совокупность всех этих функций.

3.                      Пусть выражение R = АВ, регулярное выражение А определят совокупность F функций, а выражение В – совокупность G. Тогда выражение R определяет совокупность всех возможных суперпозиций вида Gf, где G Î G и на места рабочих переменных функции G подставляются функции из F, задающие значения одноименных рабочих переменных и определяемые выражением A.

Из этого построения вытекает

Лемма 3. Каждое регулярное выражение Ri, i = 1, 2,, r, определяет функцию fi, описывающую зависимость выходной переменной от входных, а регулярное выражение Rp определяет функцию fp = Èi=1,r fi, вычисляемую программой p.

Доказательство. Каждое регулярное выражение Ri, i = 1, 2,, r, представляет некоторое множество полных путей программы. Последние, в свою очередь определяют совокупность функций, задающих выходное  значение в зависимости от входных. Их объединение есть функция fi. Все регулярное выражение Rp представляет множество всех полных путей программы. Поэтому объединение Èi=1,r fi есть функция, вычисляемая программой.

Лемма доказана.

Справедлива

Лемма 4. Всякое подвыражение Ri, i = 1, 2, …, r регулярного выражения Rp не может оканчиваться выражением вида A*.

Доказательство вытекает из того, что событие, представимое выражением Rp, состоит из всех полных размеченных путей программы p. Если выражение Ri, i Î{1, 2, …, r} оканчивается подвыражением A*, то Ri не определяет терминального пути. Это противоречит способу построения регулярного выражения Rp.

Лемма доказана.

Следствие. Всякое подвыражение Ri, i = 1,2, …, r регулярного выражения Rp оканчиваться автоматной буквой вида Ps, v1, …, vl , l ³ 0, sÎ {0, 1}.

Лемма 5. Пусть А* есть регулярное подвыражение выражения Rp, P1s1 - предикат, которым начинается первая автоматная буква выражения А, и Pqsq, v1, …, vl - последняя автоматная буква выражения А. Тогда, если l > 0, то в программе вершина vl соединена дугой с вершиной P1, если l = 0, то sq -дуга, выходящая из вершины Pq, ведет в вершину P1.

Доказательство вытекает из способа построения регулярного выражения Rp.

Лемма 6. Пусть А*В есть собственное регулярное подвыражение выражения Rp и P1s1 - предикат, которым начинается первая автоматная буква выражения А. Тогда первая автоматная буква выражения В начинается с предиката P11-s1.

Доказательство. Рассмотрим вначале простейший случай, когда выражение А не содержит оператора *. Тогда оно представляет собой последовательность P1s1 А1 P2s2 А2Pqsq Аq автоматных букв. Выражение P1s1 А1 P2s2 А2Pqsq Аq определяет размеченный путь t, который проходит через логические вершины P1, P2,… , Pq и содержит дуги, ведущие соответственно в их s1, s2, …, sq-последователи. 

Так как выражение A* содержит оператор *, то оно представляет совокупность размеченных путей, которые получаются n-кратным прохождением пути t, при всяком n ³ 0. Поэтому t есть цикл, начинающийся и заканчивающийся вершиной Р1, которая есть sq-последователь вершины Pq.

Покажем, что непосредственно после выражения A* следует буква входного алфавита, начинающаяся с предиката P11-s1. Действительно, после последнего прохождения пути t следующий путь может начинаться только в логической вершине Р1  и вести в ее (1-s1)-последователя. Поэтому непосредственно правее A* должно располагаться регулярное выражение, первая автоматная буква которого начинается с предиката P11-s1.

Пусть теперь выражение А есть последовательность регулярных выражений: А1 А2Аq, причем каждое из них может содержать оператор *. Допустим далее, что выражение А1 начинается с автоматной буквы, имеющей начальным предикат P1s1. В этом случае выражение А1 А2Аq определяет совокупность {t} размеченных путей, которые проходят через логическую вершину P1 и содержит дугу, ведущую в ее s1-последователя.

Выражение A* задает совокупность размеченных путей, которые получаются n-кратным прохождением путей совокупность {t}, при всяком n ³ 0. Поэтому каждый путь совокупности {t} есть цикл, который начинается и заканчивается вершиной Р1. Тем самым выражение A* представляет совокупность циклических вычислений программы, и выход из этих циклов возможен только по (1-s1)-дуге вершины Р1. Но это возможно лишь в случае, когда непосредственно после выражения A* располагается автоматная буква, начинающаяся с предиката P11-s1.

Рассмотрены все случаи. Лемма доказана.

Следствие. Программа, которая реализует всюду определенную функцию, определяет регулярное выражение, не содержащее подвыражений вида ((Рs А)* Р1-s В)*. (В данном случае выражение (Рs А)* Р1-s В следует понимать так: заключенное в скобках регулярное выражение Рs А  имеет первой автоматную букву, которая начинается с предиката Рs, а непосредственно после выражения (Рs А)* следует выражение, первая автоматная буква которого начинается с предиката Р1-s.)

Доказательство. Действительно, выражение ((Рs А)* Р1-s В)* определяет бесконечный цикл, проходящий через логическую вершину Р. Если путь начинается в Р и проходит через ее s-последователь, то он включает размеченный путь, определяемый выражением Рs А и возвращается вновь в логическую вершину Р. Если же путь начинается в Р и проходит через ее (1-s)-последователь, то он включает размеченный путь, определяемый выражением Р1-s В и возвращается вновь в логическую вершину Р. Противоречие с тем, что программа реализует всюду определенную функцию.

Следствие доказано.

Исходя из этого Следствия и того, что мы рассматриваем программы без фиктивных вершин, мы ограничимся лишь такими программами, для которых регулярные выражения не содержат подвыражений вида ((Рs А)* Р1-s В)*.

В последующем будем полагать, что число шагов, осуществляемое программой p при любом вычислении, ограничено некоторой конечной величиной, определяемой значениями входных переменных. В частности ограничимся рассмотрением вычислений программы над некоторым множеством входных значений, длина которых ограничена конечным числом p.

Исходя из этого, по выражению Rp построим так называемое параметрическое выражение Rp¢. Для этого представим каждое регулярное выражение Ri в параметрическом виде R¢i так, что при указанном ограничении на вычисления программы параметрическое выражение Rp¢ задает то же множество полных путей, что и исходное Rp. Выражение R¢i строим индукцией по выражению Ri. Для этого введем понятие текущего параметра, которое определяется следующим образом.

0.                      Полагаем, что текущий параметр каждого выражения Ri равен p, i = 1, 2, …, m. После этого просматриваем каждое выражение Ri слева направо, анализируя его подвыражения и определяя текущий параметр для каждого из них.

1.                      Если рассматриваемый оператор арифметический ai или логический Pj, то записываем его в виде соответственно (ai)1или (Pj)1, одновременно уменьшая текущий параметр на 1.

2.                      Если рассматриваемый оператор A*, то ставим ему в соответствие выражение  (A)r, где rтекущий параметр. При этом текущий параметр не меняется.

3.                      После очередного просмотра выражений Ri, i = 1, 2, …, m, мы переходим к рассмотрению выражений вида (A)r, где A - его собственное регулярное подвыражение, для которого текущим параметром является r.

4.                      Разбор выражения Ri, i = 1, 2, …, m, происходит до тех пор, пока не будут просмотрены все арифметические и логические операторы.

Сформулируем некоторые свойства параметрических выражений. Справедливы следующие леммы.

Лемма 7. Параметрическое выражение Rp¢ определяет множество всех полных путей программы p при введенном  ограничении p на число шагов вычисления.

Доказательство. Число вхождений каждого слова в событие, представимое регулярным выражением Rp¢, совпадает с числом вхождений каждого слова в событие, представимое исходным регулярным выражением. Это вытекает из того, что мы рассматриваем множество входов программы, для которых число шагов программы ограничено значением p.

Лемма доказана.

Тем самым, параметрическое выражение Rp¢ для рассматриваемого множества входов определяет ту же функцию, что и регулярное выражение Rp.

Теперь из леммы 5 следует

Лемма 8. Если в регулярном выражении Rp встречается выражение (A B* C)*, а в параметрическом Rp¢ ему  соответствует выражение (A Bm1 C) m2, то m1 < m2.

3. Представление программ обобщенными формулами.  Расширим булевский язык над обычным базисом {Ú, Ù, Ø} путем введения обобщений дизъюнкции и конъюнкции для не более, чем счетного множества аргументов. Для обобщенных дизъюнкции и конъюнкции будем использовать выражения соответственно Èi=k, h и Çi=k, h, где i называется индексом этой связки, k- нижней границей, а hверхней. k и h – это либо константы, либо символ бесконечности - , либо функции, зависящие от других индексов.

 

Для дальнейшего нам потребуется следующее соглашение. Всякой двоичной переменной y программы будем сопоставлять счетную последовательность y0y1yi… логических переменных. Когда y принимает двоичное значение, то i-ая логическая переменная означивается i-м разрядом этого числа, i = 0, 1, … . Напомним, что мы изображаем двоичные числа, младшие разряды которых располагаются левее. Таким образом, логические переменные y0y1yi… будут имеет слева некоторый конечный отрезок переменных, означенных в соответствии с двоичным числом, справа от которого будет располагать бесконечная последовательность переменных, означенных нулями. 

Будем говорить, что логическая формула F(x, y), где x = x0x1xi…, y = y0y1yi  суть последовательности логических переменных, представляет двоичную функцию y = (x), если при означивании переменных x бинарным вектором  таким, что   Def , формула F(,) истинна тогда и только тогда, когда () = .

Пример 1. Обозначим x, y, u наборы двоичных переменных соответственно: x0, x1, …, xn,… ; y0, y1, …, yn,… и u0, u1, …, un,… . Нетрудно увидеть, что формула

S(x, y): (y0 `x0) Ù Çi=1, w (yi  xi + Çj=0, i-1 xi)

представляет функцию s(x) прибавления единицы двоичной арифметики. Подформула Çj=0, i-1 xi  представляет перенос в i-ый разряд, он равен 1 тогда и только тогда, когда все разряды до (i - 1)-го включительно равны 1.

В точности так же и формула

S(x, u, y): u0  x0 Ù Çi=0,w (ui+1  ui Ù xi) Ù (y0 `x0) Ù Çi=1,w (yi  xi + ui)

представляет функцию прибавления единицы. Легко увидеть, что новая переменная ui определяет перенос в i-ый разряд, который вычисляется после прибавления 1 к вектору с разрядами от нулевого до (i1)-го включительно. Перенос в нулевой разряд совпадает с нулевым разрядом самого числа.

Базисная функция 0(x) представима формулой Çi=0,w`xi .

Предикат x = y представим формулой E(x, y) = Çi=0,w (xi  yi).

Предикат x  y представим формулой (x, y) = Èi=0,w (xi  yi).

Теорема 9. Пусть формулы F(x, y) и G(y, z) представляют функции соответственно y = f(x) и z = G(y) двоичной арифметики.  Тогда конъюнкция F(x, y) Ù G(y, z) представляет суперпозицию z = f(G(y)).

Доказательство. Пусть бинарные векторы sx, sy, sz предствляют двоичные числа, такие, что sy = f(sx) и sz = G(sy). Для тех же бинарных векторов логические функции F(sx, sy) и G(sy, sz) истинны. Но тогда истинна и конъюнкция F(sx, sy) Ù G(sy, sz).

В обратную сторону. Пусть для бинарных векторов sx, sz предствляющих двоичные числа, имеет место равенство sz = G(f(sx)). Из того, что f  есть функция двоичной арифметики следует, что существует единственный бинарный вектор sy, представляющий двоичное число, для которого имеет место равенство sy = f(sx). Но тогда конъюнкция F(sx, sy) Ù G(sy, sz) истинна в силу того, что формулы F(x, y) и G(y, z) представляют функции соответственно y = f(x) и z = G(y).

Разобраны все случаи. Теорема доказана.

Пример 2. Используя последнюю теорему о суперпозиции функций, легко показать, что при фиксированном целом l > 0 функция y = x + l представима обобщенной формулой (обозначим ее Sl(x, y)). Приведем ряд формул, представляющих арифметические функции прибавления некоторых констант.


Арифметические функции

Представляющие формулы обобщенной логики

y = x + 2

y0  x0 Ù y1 `x1 Ù Çi=2,w yi  xi + Çj=1, i-1 xj     

y = x + 3

y0 `x0 Ù y1  x0 +`x1 Ù Çi=2,w yi  xi +(x1 + x0`x1) Çj=2, i-1 xj

 

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

Базисные операторы программ представимы обобщенными формулами. Поэтому возникает вопрос о представлении функции, вычисляемой программой p, обобщенной логической формулой. Исходя из этого, построим по параметрическому выражению Rp¢ обобщенную формулу, определив вначале соответствующую формулу для его каждого дизъюнктивного члена, а затем дизъюнктивно объединив их. Поэтому наши построения будут касаться каждого параметрического выражения R¢i, i = 1, 2, …, m.

Во-первых, несколько преобразуем каждое выражение R¢i, сделав его более удобным для последующего построения. Если в выражении R¢i оператор s(y) встречается подряд l раз, где урабочая переменная, то заменим его на оператор sl(y). Аналогично, если в выражении R¢i оператор 0(y) встречается подряд l раз, где урабочая переменная, то заменим эту последовательность одним оператором 0(y).

Дальнейшее построение логической формулы заключается в замене арифметических и логических операторов, из которых состоят автоматные буквы регулярного выражения, на представляющие их обобщенные формулы. В качестве переменных используемых при этом логических формул будем использовать так называемые метапеременные. С этой целью вначале заменим все рабочие переменные y1, y2, …, ym в параметрическом выражении на метапеременные соответственно a1, a2, …, am. Считаем, что эти метапеременные порождены рабочими переменными и поэтому назовем их рабочими. Входные переменные мы не заменяем, для единообразия считая их также метапеременными, которые назовем входными. Если необходимо подчеркнуть, что метапеременная есть входная переменная, это будет оговорено специально.

Отметим следующее.

Регулярное выражение Rp включает в качестве компонентов арифметические и логические операторы, содержащие переменные, областью определения которых являются не отрицательные целые числа.

В точности так же, как мы представляем двоичные переменные счетными последовательностями булевских переменных, считаем, что каждая метапеременная a представима в виде последовательности a1a2 ai … логических метапеременных.  

Дальнейшее преобразование параметрического выражения приводит к появлению логических формул, которые имеют в качестве аргументов метапеременные.

Введем следующие соглашения.

1. Пусть a есть метапеременная и ее булевское представление выглядит так: a0a1a2 am … . Тогда 0(a)обозначим обобщенную формулу Çi=0,w`ai. Очевидно, что формула Çi=0,w`ai представляет арифметический оператор 0(a). В последующем, если это необходимо, будем оговаривать особо, когда 0(a) понимается как арифметический оператор, а когда как обобщенная формула.

2. Если a = a0a1a2 ai … ., b = b0b1b2 bi … . - это метапеременные, то обозначим E(a, b) бесконечную конъюнкцию Çi=0, w ai  bi, а (a, b) - дизъюнкцию Èi=0, w (ai  bi). 

Просматриваем каждое параметрическое выражение R¢i, i = 1, 2, …, m слева направо. При первом просмотре мы игнорируем параметры, которыми был заменен оператор *. В зависимости от вида очередного подвыражения осуществляем следующие действия.

Пусть таким выражением является автоматная буква Ps, v1, …, vl. В этом случае анализируем по очереди вид логического и арифметических операторов и ставим им в соответствие определенные логические формулы.

1. Предикат Ps(a, b) заменяем формулой Еs(a, b).

2. Оператор sl(a) заменяем формулой Sl(a, b), где b - это новая рабочая метапеременная, которая не использовалась ранее. Затем везде в этом выражении правее оператора sl(a) заменяем все вхождения метапеременной a на b. Назовем a входной метапеременной формулы Sl(a, b), а b выходной. При этом b назовем последователем a, а a - предшественником b.

3. Всякий установочный оператор 0(a) заменяем формулой 0(a). Если 0(a) не установочный арифметический оператор, то заменяем его на формулу 0(b), где b - это новая рабочая метапеременная, которая не использовалась ранее. Затем везде правее этого оператора заменяем все вхождения метапеременной a на b.

Замечание. Арифметический оператор 0(y) в программе устанавливает нулевое значение рабочей переменной y не зависимо от ее предыдущего значения. Прежнее значение этой переменной как бы забывается и его восстановление невозможно. Поэтому не установочный оператор 0(a) заменяем на формулу 0(b), где b - новая рабочая метапеременная. Последняя также считается порожденной той же рабочей переменной, которая порождала метапеременную a. При этом b назовем последователем a, которую в свою очередь назовем предшественником b.

Полагаем, что оба отношения «быть последователем» и «быть предшественником», определенные в двух последних пунктах, – транзитивные.

Из определения отношения «быть последователем» вытекает, что если метапеременная b есть последователь a, то в выражении Rp¢ они порождены одной рабочей переменной. То же относится к отношению «быть предшественником».

Введем следующее определение. Пусть в результирующем выражении R¢, полученном из исходного, метапеременная b есть последователь метапеременной a. Назовем b - тупиковым последователем метапеременной a в R¢, если b не имеет в нем последователя. Аналогично, a назовем тупиковым предшественником метапеременной b в R¢, если a не имеет предшественника в R¢. Напомним, что R¢ есть подобие регулярного выражения, в котором арифметические и логические операторы заменены представляющими их обобщенными формулами.

В результате описанных преобразований параметрическое выражение Rp¢ преобразуется в конструкцию Rp², которая вместо арифметических и логических операторов содержит представляющие их логические формулы, а вместо входных и рабочих переменных – соответственно рабочие и входные метапеременные. Каждая формула Sl обладает входными и выходными метапеременными, между которыми установлены отношения последовательности и предшествования. При этом входная метапеременная формулы Sl не встречается правее нее. Несколько раз могут встретиться лишь входные переменные программы и метапеременные, которые встречаются в формулах, представляющих логические операторы программы.

Пусть Ps, v1, …, vl – это автоматная буква рассматриваемого параметрического выражения, которая задает размеченный путь t. Этот путь, в свою очередь, определяет совокупность fti , i = 1, 2,, m  частичных функций, каждая из которых определяет значение одной рабочей переменной в зависимости от значений переменных перед выполнением логического оператора Р. Пусть рабочие переменные у1, у2, …, уm этой автоматной буквы порождают некоторое множество метапеременных, из которого выделим тупиковые предшественники a1, a2, …, am и соответственно тупиковые последователи b1, b2, …, bm относительно буквы Ps, v1, …, vl.

В соответствии с первым этапом нашего построения в результирующем выражении Rp²  отдельным компонентам буквы Ps, v1, …, vl соответствуют представляющие их формулы Es(a, b), W1, …, Wl. Поставим в соответствие автоматной букве Ps, v1, …, vl формулу

F = Es(a,b) Ù W1 ÙÙ Wl.

Справедливо утверждение.

Лемма 10. Формула F представляет все функции, определяемые автоматной буквой Ps, v1, …, vl с точностью до переименования рабочих переменных порожденными ими метапеременными.

Доказательство. Напомним, что если логическая функция F(x, y) представляет вычисляемую функцию y = f(x), функция G(z, w) - функцию w = G(z), то суперпозиция функций y = f(G(x)) представляется конъюнкций F(w, y) Ù G(х, w).

Если при выполнении  программы p предикат Ps принимает значение истина, то значения рабочих переменных определяются этим путем следующим образом. Если рабочая переменная y встречается в операторах v1, …, vl и не обнуляется, то ее новое значение есть сумма ее входного значения и некоторой константы, определяемой присутствующими в этом пути операторами прибавления единицы. Если же эта рабочая переменная y обнуляется, то ее значение равно некоторой константе, которая совпадает с числом единиц, прибавляемых к этой переменной после последнего ее обнуления в рассматриваемом пути. Но в точности так же вычисляется значение соответствующей тупиковой метапеременной b функцией, представимой конъюнкцией

Es(a, b)  W1  Wl.

Лемма доказана.

Таким образом, для автоматной буквы Ps, v1, …, vl , которая входит в исследуемое параметрическое выражение, верны следующие утверждения:

буква Ps, v1, …, vl определяет совокупность fti, i = 1, 2, …, m,  частичных функций, задающих значения рабочих переменных;

все эти функции представляются формулой F при введенном соответствии рабочих переменных и метапеременных.

Для подслова a1a2aq рассматриваемого параметрического выражения, которое состоит из нескольких автоматных букв, имеет место

Лемма 11. Пусть Fa1, Fa2, …, Faqформулы, поставленные в соответствие автоматным буквам соответственно a1, a2, …, aq. Тогда формула F = Fa1 Ù Fa2 ÙÙ Faq представляет все частичные функции, которые определяются регулярным выражением a1a2aq.

Доказательство вытекает из того, что тупиковые выходные метапеременные каждого выражения, определяемого буквой ai, i = 1, 2, …, q -1, совпадает с соответствующими тупиковыми входными метапеременными выражения, определяемого буквой ai+1. Тем самым, если буква ai определяет совокупность из m частичных функций (по числу рабочих переменных), то слово a1, a2, …, aq определяет частичные функции, полученные определенной суперпозицией из указанных, а формула F представляет все эти функции.

Лемма доказана.

Дальнейшее преобразование параметрического выражения в логическую формулу носит индуктивный характер. Из описанных ранее свойств параметрического выражения Rp¢ вытекает, что каждое его подвыражение вида Вh можно представить следующим образом: (РsА)h, где Р есть логический оператор программы и Aоставшаяся часть выражения B. В простейшем случае выражение А является последовательностью арифметических операторов.

Базис индукции. Пусть выражение В не имеет вложенных параметрических выражений, построенных по регулярным выражениям вида Q*. Поэтому оно определяет единственный размеченный путь t, начинающийся в логической вершине Р и включающий ее s–последователя. Будем полагать, что выражение РsА уже представляет формула F.

Пусть a и b– это последовательности соответственно тупиковых входных и выходных метапеременных выражения В. Поэтому формулу F обозначим следующим образом: Еs(a) Ù F(a, b). Последовательность a входных метапеременных может состоять из входных переменных программы и метапеременных, которые порождены рабочими переменными. Следовательно, длина последовательности a не превосходит n + m. Представим a в виде объединения двух последовательностей aw и aI. Здесь aw есть метапеременные, полученные по рабочим переменным, а aI - входные переменные.

Последовательность b выходных метапеременных может состоять только из метапеременных, которыми были заменены рабочие переменные, и ее размерность не превосходит m. Для простоты полагаем, что последовательность a имеет n + m метапеременных, включает входные переменные и метапеременные, полученные по рабочим переменным, а последовательность b состоит только из m метапеременных, полученных по рабочим переменным. Тогда отношения последовательности и предшествования для этих последовательностях устанавливаются просто. Полагаем, что aw = a1, a2, …, am и b = b1, b2, …, bm.

Образуем h различных множеств метапеременных: b1, b2, …, bh, каждое мощности m и между каждой парой множеств b, b1, …, bh определено изоморфное соответствие j. Назовем соответствующими следующие метапеременные: в множествах a и b – это метапеременные между которыми  установлено отношение быть последователем, а между каждой парой множеств из b, b1, …, bh соответствие определяется отображением j. Таким образом, для каждой входной метапеременной из множества a в каждом множестве из b, b1, …, bh можно выделить единственную метапеременную, которую также назовем выходной. И таких метапеременных в каждом из множеств b, b1, …, bh в точности m. Поэтому bi = b i1, b i2, …, b im.

Итак, для каждой входной метапеременной из a, полученной по рабочей переменной, в любом множестве bi всегда имеется в точности одна соответствующая выходная метапеременная. Обозначим a1, a2, …, ah множества метапеременных, которые получены добавлением к входным переменным множеств соответственно b1, b2, …, bh. Полагаем, что множества a и a1, a2, …, ah упорядочены так, что сохраняется одинаковый порядок на соответствующих метапеременных.

Введем такое соглашение. Пусть выражение aw = b обозначает m конъюнкций Çi=1, m E(aiw, bi), где E(aiw, bi) – обобщенная формула, представляющая равенство aiw = bi метапеременных. Аналогично bj = b обозначает конъюнкцию Çi=1, m E(bi j, bi), где E(bi j, bi) обобщенная формула, представляющая равенство bi j = bi , i = 1, 2, …, m.

Теперь выражению Вh ставим в соответствие логическую формулу

Fh = Е1-s (a)(aw = b) Ú Еs(a) F(a, b1) Е1-s(a1) (b1 = b) Ú

Еs(a)  F(a, b1) Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú

                                    . . .

Еs(a)F(a, b1) Еs(a1) F(a1, b2) …Еs(ah-1) F(ah-1, bh) Е1-s(ah)(bh = b).

В этой формуле Еs(ai) есть формула, представляющая предикат Рs(ai), в которой вместо метапеременных из a подставлены соответствующие метапеременные из ai, i = 1, 2,, h.

Покажем, что верна

Лемма 12. Формула Fh представляет все функции, определяемые параметрическим подвыражением Вh.

Доказательство. Во-первых, покажем, что каждый дизъюнктивный член этой формулы представляет определенное множество функций, объединение которых совпадает с семейством функций, определяемых выражением Вh.

1.                      Конъюнкция Е1-s(a) Ù (a = b) истинна тогда и только тогда, когда формула Е1-s(a) истинна и выходные переменные набора b совпадают с соответствующими входными набора a. Среди функций, определяемых выражением Вh, имеются функции, которые порождены нулевым прохождением пути t, что происходит, когда значения аргументов предиката Рs превращают его в ложь. В этом случае рабочие переменные после перехода в (1-s)-последователя вершины Р не меняются. Следовательно такой переход по дуге из вершины Р в 1 - s последователя соответствует тождественной функции. Но именно такую функцию представляет рассматриваемая конъюнкция.

2.                      Рассмотрим теперь i-кратное прохождение (0 < i £ h) размеченного пути t, завершающееся прохождением дуги d, ведущей в (1-s)-последователя вершины Р. Такой путь порождает частичные функции, которые суть суперпозиции глубины i функций, порождаемых самим путем t. При этом последний переход по дуге, ведущее в (1-s)-последователя вершины Р не меняет значений рабочих переменных, которые были получены после последнего прохождения вершины Р. 

Отсюда видно, что конъюнкция 

Еs(a) Ù F(a, b1) Ù Еs(a1) Ù F(a1, b2) ÙÙ Еs(ai -1) Ù F(ai -1, bi) Ù Е1-s(ai) (bi = b)

представляет все функции, определяемые i-кратным прохождением размеченного пути t, завершающееся прохождением дуги d, ведущей в (1-s)-последователя вершины Р. Действительно, всякая формула

Еs(a) Ù F(a, b1) Ù Еs(a1) Ù F(a1, b2) ÙÙ Еs(aj) Ù F(aj, bj+1)

представляет все функции, определяемые j-кратным прохождением пути t, в результате заданным способом совмещения входных и выходных метапеременных. После j-кратного прохождения пути t выход из цикла происходит лишь в том случае, когда предикат Р1-s истинен. Этот предикат представляется  формулой Е1-s(ai). Поэтому выходные метапеременные из b принимают те значения, которые принимают соответствующие метапеременные набора bi. 

Вся построенная дизъюнкция представляет объединение функций, которые представляются каждым из ее членов. Отсюда вытекает искомое утверждение.

Индуктивные рассуждения. Если параметрическое выражение А = А1А2, и для выражений А1 и А2 построены логические функции соответственно F1 и F2, представляющие все функции порождаемые выражениями А1 и А2, то конъюнкция F1 Ù F2 представляет все функции, порождаемые выражением А. Это вытекает из того, что конструируемая формула имеет в заключительных частях своих конъюнкций метапеременные, совпадающие с тупиковыми выходными метапеременными выражений, по которым они строятся. Для выражения B = A1 A2An рассуждения аналогичны.

Если выражение В имеет вложенные выражения, полученных из регулярных выражений вида Q*, то В определяет конечное семейство {t} размеченных путей, начинающихся в логической вершине Р и включающих ее s–последователя. Но тогда выражение Вh определяет все функции, которые определяются размеченными путями, полученными из {t} не более, чем h-кратными конкатенациями. В этом случае в силу конечности числа путей, участвующих в конкатенациях, наличие представляющей логической формулы для функций, порождаемых выражением Вh, следует из предыдущего абзаца индуктивных рассуждений.

Лемма доказана.

Из этих рассуждений вытекает, что при любом означивании метапеременных a формулы Fh истинным является в точности один из дизъюнктивных членов, в точности при одном означивании оставшихся метапеременных. Таким образом, все значения метапеременной a формулы Fh разбиваются на h + 1 классов эквивалентности.

3. О некоторых свойствах формул, порожденных программами. Пусть формула G представляет параметрическое выражение R¢p и программа p обладает ограничением p(|x|) на длину вычисления в зависимости от входных значений. Величину p(|x|) назовем длиной формулы G. Нашей задачей будет описание зависимости минимальной длины вычислений программы и, следовательно, длины формулы G от вида функции, которую вычисляет программа.

Рассмотрим свойства означиваний переменных логической формулы G. Для простоты считаем, что программа обладает единственной входной переменной, т.е. вычисляет функцию от одного аргумента. При этом полагаем, что означен начальный отрезок входных переменных, а метапеременные, порожденные рабочими переменными, означиваются следующим образом.

1. Если в формуле G встречается формула 0(a), где a = a0, …, am … , то a0 = … = am = … = 0. Очевидно, это единственное означивание логических метапеременных, при котором формула 0(a) истинная.

2. Если в формуле G встречается формула Sl(a, b), a = a0, …, am , …, b = b0,  …, bm , … , и логические метапеременные a0, …, am , … уже означены, то означивание логических метапеременных b0,  …, bm , … получается из двоичного представления числа |a| + l. Здесь |a| - это двоичное число, полученное из бесконечной последовательности значений метапеременных a0, …, am , … отбрасыванием правой бесконечной нулевой части, расположенной правее последнего единичного компонента. Очевидно, что при таком означивании метапеременных a, b формула Sl истинная. При любом другом означивании логических метапеременных b0,  …, bm , … она ложна.

Из описанных в п.п. 1, 2 означиваний метапеременных следует, что все Рабочие метапеременные означиваются единственным образом, если мы накладываем условие, что все формулы, представляющие арифметические операторы, должны быть истинными. Назовем такое означивание метапеременных, порожденных рабочими переменными программы, правильным. 

3. Отметим, что если в формуле (a, b) обе метапеременные a и b рабочие, то при правильном означивании она превращается в константу (0 или 1). Это следует из того, что все рабочие метапеременные означены конкретными значениями.

Из этого следует, что при правильном означивании формула (a, b) отлична от константы лишь в случае, когда один из ее аргументов является входной метапеременной.

Лемма 13. Всякая формула F, которая соответствует регулярному подвыражению и не содержит входных метапеременных, при правильном означивании принимает значение истина. При не правильном она ложна.

Проведем исследование отношения эквивалентности, которое порождается формулой E при различных начальных означиваниях ее аргументов.

Пусть E(a, b) = Çi=0, wai  bi,  и  - начальные означивания метапеременных соответственно a и b. Для определенности полагаем, что ||  ||, т.е.  и || = ||. Рассмотрим возможные случаи.

1.  = . После означивания наборами  и  метапеременных формула E(a, b) эквивалентно преобразуется в формулу, у которой начальный отрезок метапеременных b означен значениями набора . Обозначим ее через E(a,).

2.   . После означивания наборами  и  метапеременных формула E(a, b)  преобразуется в тождественно ложную формулу.

Таким образом, при начальных означиваниях  и  аргументов a и b выполняется следующее:

если набор  является префиксом набора , то формула E(a, b) превращается в новую формулу, не являющуюся тождественной константой. При этом результирующая формула определяется длиной вектора  и видом вектора ;

если набор  не является префиксом набора , то формула E(a, b) превращается в тождественную ложь.

Для отрицания (a, b) = Èi=0, w(ai  bi) и для начальных означиваний  и  таких, что ||  ||, т.е.  и || = ||, аналогично доказывается следующее.

Если набор  является префиксом набора , то формула (a, b) превращается в новую формулу, не являющуюся тождественной константой. Ее вид определяется длиной вектора  и видом вектора ;

Если набор  не является префиксом набора , то формула (a, b) превращается в тождественную истину.

Рассмотрим функцию

Fh = Е1-s (a) (aw = b) Ú Еs(a) F(a, b1) Е1-s(a1) (b1 = b) Ú

Еs(a) F(a, b1) Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú

                                    . . .

Еs(a) F(a, b1) Еs(a1) F(a1, b2) …Еs(ah-1) F(ah-1, bh) Е1-s(ah) (bh = b).

Исследуем свойства означиваний ее метапеременных. Особенность этой формулы состоит в том, что ее подформула F может быть конъюнкцией логических формул, представляющих лишь арифметические операторы, так и дизъюнкцией наподобие самой формулы Fh. В первом случае формула F получается по регулярному выражению, не содержащему оператора *, во втором – с оператором *. Поэтому рассуждения в данном случае носят индуктивный характер.

Базис индукции. Вначале полагаем, что подформула F построена по регулярному выражению, не содержащему оператора *.

Представим формулу Fh в виде . Справедливо утверждение.

Теорема 14. При начальном означивании входных метапеременных формулы Fh и некотором единственном i 0:

либо в точности одна формула Hi превращается в логическую единицу, а все остальные H0, H1, …,Hi-1, Hi+1, …, Hh – в логические нули;

либо все формулы H0, H1, …,Hi превращаются в тождественные нули, а остальные Hi+1, Hi+2, …, Hh  - в формулы, отличные от константы.

Доказательство. Полагаем, что при начальном означивании метапеременных a в формулах Sl(a, b)  метапеременные b означиваются единственным максимальным набором, при котором сама формула Sl(a, b)  превращается в тождественную 1. Это происходит по следующей причине.

Формула Sl(a, b) появляется вместо арифметического оператора sl(a), где b - это новая метапеременная. Поэтому слева от формулы  Sl(a, b) метапеременная b не встречается (но может встречаться правее). Следовательно, означивание всех метапеременных слева от этой формулы не означивает метапеременной b.

Метапеременная a представляется бесконечной последовательностью a0, …, am , …  булевских метапеременных. Следовательно, означивание логических метапеременных a0, …, am , … представляет собой некоторое начальное не нулевое означивание, за которым следует бесконечная последовательность нулей. Было показано, что при таком означивании метапеременной a имеется лишь единственное означивание метапеременной b, при котором формула Sl(a, b) истинная. При всех остальных значениях метапеременной b формула Sl(a, b) ложна. И полученное для формулы Sl(a, b) означивание b является означиванием и всех остальных ее вхождений, которые расположены правее.

Все метапеременные формулы 0(a) означиваются нулями.

Возможные означивания аргументов формул Еs приводят, как к тождественной константе, так и к некоторой формуле, не являющейся тождественной константой. Как было показано, это определяется тем, содержит ли эта формула аргументом – входную переменную программы.

Пусть  есть начальное означивание входных метапеременных рассматриваемой формулы. Возможны следующие случаи.

1. Формула Е1-s (a)  при этом означивании есть тождественная 1. Тогда выходные метапеременные b принимают значения, которые определяются означиваниями метапеременных aw. В итоге метапеременные b также приобретают конкретное значение. Все остальные подформулы H1, H2, …,Hi, …, Hh становятся тождественно ложными, как легко увидеть из их конструкции.

2. Формула Е1-s (a)  при этом означивании есть тождественный 0. В остальных формулах H1, H2, …,Hi, …, Hh присутствуют подформулы Еs(a), которые при означивании  становятся тождественно истинными. Логический оператор Еs(a) не порождает означивания новых метапеременных, как это делают арифметические операторы, и поэтому мы переходим к рассмотрению функции G вида

Е1-s(a1) (b1 = b) Ú Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú

                                    . . .

Еs(a1) F(a1, b2) … Еs(ah-1) F(ah-1, bh) Е1-s(ah) (bh = b),

для которой задано начальное означивание  ее входных метапеременных. Далее применимы индуктивные рассуждения.

3.                      При этом означивании функция Е1-s(a)  преобразуется в функцию, отличную от константы. В этом случае все формулы H1, H2, …,Hi, …, Hh превращаются в новые формулы, отличные от констант.

Рассуждая по индукции, заметим, что переход от исходной формулы к формуле G осуществляется только при условии, что функция Е1-s (a)  при этом означивании превращается в тождественный 0. Поэтому, если некоторая подформула Hi превращается в функцию не константу, то это означает, что все предыдущие функции H1, H2, …,Hi-1  тождественно ложны.

С другой стороны, если какая-либо формула Hi превращается в истину, то все остальные Hi+1, …, Hh превращаются в тождественную ложь. Это следует из того, что все функции H0, H1, …,Hi, …, Hh  в определенном смысле попарно ортогональны. А именно, для каждой формулы вида Еs из Hi во всех остальных формулах H0, H1, …,Hi-1, Hi+1, …, Hh найдутся подформулы с конъюнктивным членом Е1-s и с теми же аргументами. Отметим, что только в последнем случае выходные метапеременные b приобретают конкретные значения, которые определяются видом формулы Hi.

Теорема доказана.

Таким образом, логические формулы Еs определяют в исходной формуле Fh различные классы эквивалентности в зависимости от длины означивающих векторов. Увеличение длины означивающих векторов происходит в результате применения арифметических операторов. Поэтому, чтобы из нулевого вектора получить вектор, содержащий единичное значение в l-м компоненте, необходимо совершить 2l операций прибавления 1. Т.е. увеличение длины происходит в результате длинной последовательности арифметических операций программы, т.е. относительно редко.

Индукционный переход предполагает, что рассматриваемая формула Fh построена по регулярному выражению, содержащему оператор *. Отметим, что в базисном случае, т.е. когда формула Fh соответствует линейному регулярному выражению, значения выходных метапеременных b определены лишь в единственном случае, когда в точности одна подформула Hi  при заданном означивании истинная. И таких формул, превращающихся в тождественную единицу при означивании  – не более одной. Эта ситуация соответствует траектории вычисления программы, когда мы проходим цикл необходимое число раз после чего получаем определенное выходное значение.

Ситуация, когда исходная формула Fh  превращается в логическую формулу, отличную от константы, соответствует тому, что мы проходим несколько (k  0) раз цикл и потом логическое условие не имеет конкретного логического значения. Так как логическое значение не определено, то вычисление не продолжается. Поэтому при рассмотрении индукционного перехода мы рассматриваем две возможности: первая – когда означивание переменных формулы Fh приводит к тому, что эта формула становится истинной при соответствующем означивании выходным метапеременных, и вторая - когда эта формула превращается в логическую функцию, отличную от константы. В первом случае формула Fh становится константой. Во втором случае формула Fh превращается в логическую не константную функцию.

Следовательно, при начальном означивании входной переменной вид формулы Fh определяется лишь видом подформул E, в которых один аргумент - входная переменная. Очевидно, что число вхождений в программу логических вершин ограниченно некоторой константой. Всякое вхождение логической вершины с входным аргументом влечет появление в формуле Fh неопределенности, т.е. логической формулы, отличной от константы. И таких вхождений может быть несколько, пусть .

Так как эти формулы не являются логическими константами, то выполняются следующие условия: x-набор  является префиксом каждого значения метапеременной , i = 1, 2, …, h, и выполняются неравенства . Так как все значения  обладают одинаковым префиксом, то между ними расположены формулы Sl, сумма верхних индексов которых не менее . Поэтому можно считать, что h = 1 и в каждой формуле F встречается в точности одна подформула E, в которой один аргумент – входная метапеременная, а второй – метапеременная, полученная по одной и той же рабочей переменной.

3. О длине вычислений программ. В этом разделе покажем, что длина вычисления программы вычисляющей некоторую функцию, определяется ее энтропией.

Пусть задано множество Mx всех начальных означиваний длины n входной переменной x программы , вычисляющей функцию (x), и эти означивания характеризуются энтропией . Если обобщенная формула F(x, y)  представляет функцию y = (x), то для того же множества означиваний аргумента x имеем = . Допустим, что формула F(x, y), представляющая функцию y = (x), построена по программе , как описано выше. Каждый класс эквивалентности, на которые разбивается множество Mx означиваний, получается в результате означивания аргументов подформул  из F(x, y), у которых в точности один аргумент является входной переменной.

Пусть  есть некоторое начальное означивание из Mx, у которого самая правая единица располагается в l-м разряде. При правильном означивании второй аргумент всякой подформулы  из F(x, y), которая определяет отнесение набора  к соответствующему классу эквивалентности, должен также иметь единицу в l-м разряде правее которого следует еще некоторая последовательность ненулевых компонентов. Этим аргументом является рабочая метапеременная. Назовем такие последовательности дополнительными. С помощью этих дополнительных последовательностей осуществляется кодирование классов эквивалентности в следующем смысле: как показано, отнесение функции к тому или иному классу происходит на основании тех разрядов, которыми характеризуются дополнительные последовательности. Поэтому каждый класс обладает фиксированным набором дополнительных последовательностей. 

Из этих рассуждений следует

Теорема 15. Пусть (x)  - арифметическая программа, вычисляющая функцию (x) и F(x, y) – обобщенная функция, построенная по(x). Тогда, если Hx – есть энтропии, определяемая некоторым множеством всех начальных означиваний аргумента x одинаковой длины, то F(x, y) имеет длину не менее 2dHx для некоторой положительной константы d.

Доказательство. Если формула F(x, y) для заданного множества означиваний аргумента x обладает энтропией Hx, число классов k эквивалентности не менее, чем 2Hx. Кодирование классов эквивалентности, которое получается при правильном означивании, позволяет получить такое их число лишь при условии, что означивания некоторых рабочих метапеременных, обладают единичным компонентом в k-м разряде. Но чтобы получить такой вектор требуется не менее 2k операций прибавления единицы. Поэтому длина формулы F(x, y) должна быть не менее 2Hx.

Теорема доказана.

Следствие. Если все начальные наборы входной переменной обладают длиной n и всюду определенная функция(x) при таком означивании обладает энтропией H, то существуют вычисления программы(x) длины не менее 2dH для некоторой положительной константы d.

 

Литература.

1. Янов Ю.И. Сб. Проблемы кибернетики, вып. 32, М.:Наука, 1977.