численной минимизации (3). В качестве дальнейшего предмета исследования является открытым вопрос построения, по возможности, явного решения задачи (3).
ЛИТЕРАТУРА
1. Бентли Дж. Жемчужины программирования. СПб.: Питер, 2002. 272 с.
2. Столяр С. Е. Массивы. СПб.: ЦПО «Информатизация образования», 2002. 39 с.
3. Kernighan В. and Plauger P. J. Software Tools in Pascal. Boston: Addison-Wesley, 1981.
4. Холл М. Теория групп. М.: ИЛ, 1962. 460 с.
УДК 519.682 DOI 10.17223/2226308X/10/58
АНАЛОГ ТЕОРЕМЫ О НЕЯВНОМ ОТОБРАЖЕНИИ ДЛЯ ФОРМАЛЬНЫХ ГРАММАТИК
О. И. Егорушкин, И. В. Колбасина, К. В. Сафонов
В работе продолжается исследование систем некоммутативных полиномиальных уравнений, которые интерпретируются как грамматики формальных языков. Такие системы решаются в виде формальных степенных рядов (ФСР), выражающих нетерминальные символы через терминальные символы алфавита и рассматриваемых как формальные языки. Всякому ФСР поставлен в соответствие его коммутативный образ, который получается в предположении, что все символы обозначают коммутативные переменные, принимающие значения из поля комплексных чисел. В продолжение исследований совместности систем некоммутативных полиномиальных уравнений, которая напрямую не связана с совместностью её коммутативного образа, получено достаточное условие совместности в виде аналога теоремы о неявном отображении для формальных грамматик: если для коммутативного образа системы выполнено условие теоремы о неявном отображении, то не только она, но и исходная система некоммутативных уравнений имеет единственное решение в виде ФСР.
Ключевые слова: системы полиномиальных уравнений, некоммутативные переменные, формальный степенной ряд, коммутативный образ, якобиан.
Продолжая исследование, начатое в работах [1, 2], рассмотрим систему полиномиальных уравнений
Pj (z,x) = 0, Pj (0, 0) = 0, j = 1 ,...,k, (1)
которая решается относительно символов z = (zi,... , zn) в виде ФСР, зависящих от символов x = (x1,... , xm).
Такие системы имеют приложения в теории формальных языков, поскольку являются грамматиками, порождающими важные классы формальных языков: контекстно-свободных, языков непосредственно составляющих, языков в нормальной форме Грейбах и др. [3, 4].
В теории формальных языков символы x1,... , xm называются терминальными и образуют словарь (алфавит) данного языка, а символы z1,... ,zn называются нетерминальными и необходимы для задания грамматических правил. Над всеми символами определены некоммутативная операция умножения (конкатенации), коммутативная операция формальной суммы, а также коммутативная операция умножения на комплексные числа, поэтому можно рассматривать символьные многочлены и ФСР с числовыми (комплексными) коэффициентами. Наконец, мономы от терминальных символов интерпретируются как предложения языка, а каждый ФСР, который является
150
Прикладная дискретная математика. Приложение
решением системы (1), рассматривается как порождённый грамматикой формальный язык, т. е. формальная сумма всех «правильных» предложений этого языка [3, 4].
Исследовать решения символьных систем (1) достаточно трудно, поскольку некоммутативность умножения и отсутствие деления препятствуют исключению неизвестных, и поэтому в работах [1, 2] наряду с некоммутативной системой (1) рассмотрен её коммутативный образ, который получается в предположении, что все переменные, входящие в систему, принимают значения из поля комплексных чисел.
Так, предположим, следуя [1], что все мономы от Х\,... ,хт занумерованы в лексикографическом порядке по возрастанию степеней в последовательность п0,п1,..., играющую роль базиса, тогда каждый ряд в можно единственным образом записать в виде разложения по этому базису с числовыми коэффициентами {в,щ) при мономах щ:
те
в = Е {з,щ)щ. (2)
г=0
Теперь поставим в соответствие ФСР (2) его коммутативный образ й(в) —степенной ряд, который получается из в в предположении, что символы х1,... ,хт (равно как и г1,... , гп) обозначают коммутативные переменные, принимающие значения из поля комплексных чисел [5].
В работе [1] рассмотрен коммутативный образ системы уравнений (1)
с (Ру (г,х)) = 0, з = 1,...,к, (3)
и отмечено, что из совместности некоммутативной системы (1) следует совместность коммутативной системы (3), однако обратное утверждение неверно. Как результат, вопрос о достаточном условии совместности системы уравнений (1), важный для приложений, оставался открытым.
Ниже дадим решение этого вопроса, получая достаточное условие совместности (и единственности решения) исходной некоммутативной системы (1) в терминах совместности коммутативной системы (3), которая легче поддаётся исследованию.
Для этого рассмотрим систему уравнений (1) в случае, когда к = п. Пусть
3 (г,х) = &^((с\(Рг(г,х)))'х.)
— якобиан системы уравнений (3) относительно переменных г1,... , гп.
Дискретным (символьным) аналогом теоремы о неявном отображении является следующая теорема.
Теорема 1. Если для некоммутативной символьной системы уравнений (1) выполнено неравенство 3(0, 0) = 0, то она имеет единственное решение в виде ФСР.
Замечание 1. Неравенство 3(0,0) = 0 является условием теоремы о неявном отображении для коммутативной системы уравнений (3) с переменными в ,... , гп и влечёт существование и единственность её голоморфного решения; тем не менее оказывается, что это неравенство влечёт также существование и единственность решения исходной некоммутативной символьной системы уравнений (1).
Поскольку ФСР, которые являются компонентами решения системы (1), интерпретируются как формальные языки, порождённые грамматикой (1), то теорема 1 позволяет установить случаи, когда грамматика действительно определяет формальный язык.
Заметим также, что решением системы (3) являются алгебраические функции, которые могут быть исследованы аналитическими методами [6-8].
ЛИТЕРАТУРА
1. Егорушкин О. И., Колбасина И. В., Сафонов К. В. О совместности систем символьных полиномиальных уравнений и их приложении // Прикладная дискретная математика. Приложение. 2016. №9. С. 119-121.
2. Egorushkin O. I., Kolbasina I. V., and Safonov K. V. On solvability of systems of symbolic polynomial equations // Журн. СФУ. Сер. Матем. и физ. 2016. Т. 9. Вып. 2. С. 166-172.
3. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Алгебра. Языки. Программирование. Киев: Наукова думка, 1973.
4. Salomaa A. and Soitolla M. Automata-Theoretic Aspects of Formal Power Series. N.Y.: Springer Verlag, 1978.
5. Семёнов А. Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик // Доклады АН СССР. 1973. №212. С. 50-52.
6. Сафонов К. В., Егорушкин О. И. О синтаксическом анализе и проблеме В. М. Глушкова распознавания контекстно-свободных языков Хомского // Вестник Томского государственного университета. 2006. Приложение № 17. С. 63-67.
7. Сафонов К. В. Об условиях алгебраичности и рациональности суммы степенного ряда // Матем. заметки. 1987. Т. 41. Вып.3. С. 325-332.
8. Safonov K. V. On power series of algebraic and rational functions in Cn // J. Math. Analysis Appl. 2000. V. 243. P. 261-277.
УДК 519.714 DOI 10.17223/2226308X/10/59
ЗАВЕРШЕНИЕ ЭСКИЗОВ ПРЕДИКАТНЫХ ПРОГРАММ МЕТОДОМ СИНТЕЗА ЧЕРЕЗ КОНТРПРИМЕРЫ1
М. С. Чушкин
Программа на языке P представляет собой набор определений предикатов. Для языка P разработана операционная семантика. На базе операционной семантики определена формула тотальной корректности предиката относительно его спецификации. Для незаконченной программы на языке P ставится задача её завершения до корректной относительно спецификации. Метод синтеза выражений на основе контрпримеров успешно адаптирован для этой задачи.
Ключевые слова: предикатное программирование, формальная операционная семантика, программный синтез, синтез на основе контрпримеров, дедуктивная верификация.
1. Система предикатного программирования
Программа на языке P0 определяется следующей конструкцией:
<имя предиката> (<аргументы>:<результаты>){<оператор>},
аргументы и результаты — непересекающиеся наборы имён переменных. Набор аргументов может быть пустым.
Операторами языка Po являются: B(x : z); C(z : y) —последовательный оператор; B(x : y)||C(x : z) —параллельный оператор и if (e) B(x : y) else C(x : y) —условный оператор. Здесь B и C — операторы, e — логическое выражение [1].
Операционной семантикой программы H(x : y) назовём формулу R(H)(x,y), смысл которой на естественном языке звучит следующим образом: «для значения на-
1 Работа поддержана грантом РФФИ, проект №16-01-00498.