
- •0. Основное определение
- •I. Алгоритм генерации полиномиальных инвариантов ограниченной степени в императивныхпрограммах
- •1. Модели программ
- •2. Программы, интерпретированные над алгебрами данных
- •3. Инварианты программ
- •4. Теоретические результаты
- •5. Основные задачи и алгоритмы
- •II. Полиномиальные инварианты линейных циклов
- •III. Нелинейные инварианты линейных циклов и собственные полиномы линейных операторов
- •2. Собственные полиномы жордановых клеток
- •4. Собственные полиномы и -инварианты линейных операторов
- •Литература
3. Инварианты программ
Многочлен g(X) Î A[X] называется полиномиальным инвариантом программы P, если при любом начальном состоянии памяти a = < a1, …, an>, если программа P завершает работу, для заключительного состояния памяти b выполняется равенство g(b) = 0.
Множество всех
полиномиальных инвариантов рационально
определенных программ образует
радикальный идеал кольца A[X],
который мы будем обозначать через
.
В дальнейшем мы
будем рассматривать также множество
всех элементов
,
степени которых ограничены некоторой
константой M.
Множество таких многочленов образует
векторное пространство, которое
обозначается через
.
Понятно, что
.
4. Теоретические результаты
Теорема 1. Если ch(A) = 0 и язык условий L включает предикаты равенства и их отрицания (=, ), проблема построения базиса в классе линейно определенных программ алгоритмически неразрешима.
Понятно, что из этой теоремы сразу следует неразрешимость рассматриваемой проблемы для всех классов программ, рассматриваемых в настоящей лекции. Поэтому в дальнейших результатах условия в программах приходится игнорировать, считая программы абсолютно недетерминированными. Список (1) операций над программами при этом редуцируется до
,
. (6)
Основной результат [3] настоящей работы, состоит в следующем:
Теорема 2.
Пусть P
- программа, интерпретированная над
полиномиальным кольцом
A[X], и
.
Тогда:
а) Проблема
принадлежности
алгоритмически разрешима.
б) Проблема построения базиса векторного пространства алгоритмически разрешима.
Доказательство. (Индукция по структуре регулярного выражения, представляющего программу)
Пусть
все вычисляющие операторы, встречающиеся
в программе P,
и
.
Доказательство утверждения а) будем вести индукцией по структуре редуцированной программы P, т.е. по структуре ее регулярного выражения в сигнатуре (6), в которой вычисляющие операторы – суть атомы .
Пусть w = yj1*yj2*…*yjk – программа, представляющая собою последовательность вычисляющих операторов. Мы будем говорить, что w Î P, если P допускает вычисления, описанные w. Mы будем также называть w словом P. Собственно программа P ассоциируется тогда со множеством принадлежащих ей слов (множество слов – это множество всевозможных путей вычислений P).
Введём следующие
обозначения. Через g(w),
,
обозначим многочлен
,
а через
- множество многочленов вида g(w),
.
Идеал, порожденный множеством
,
обозначим через
.
Мы покажем, что
для каждой программы
существует и может быть эффективно
построено конечное подмножество слов
такое, что
.
Поскольку g
- инвариант программы P
тогда и только тогда, когда g(w)
= 0 для
любого
,
проверка инвариантности g
сведётся к проверке равенств g(w)
= 0,
.
1. (базис индукции)
.
Тогда
.
2. (шаг индукции)
а).
б)
Пусть
.
Поскольку из
следует
,
где
имеем
,
откудa
(7)
в)
Тогда
,
где E
– обозначение
тождественного вычисляющего оператора.
Рассмотрим последовательность идеалов:
Поскольку кольцо
A[X]
нетерово, эта последовательность
стабилизируется на некотором номере
.
Покажем, что
- наименьшее натуральное число такое,
что
(8)
В самом деле, из (7) следует
поэтому из равенства
следуют равенства
для любого натурального k, откуда
(9)
Поскольку проблема
принадлежности
алгоритмически разрешима, формулы (6) -
(8) описывают рекурсивный алгоритм
построения
.
Утверждение а) доказано.
Для доказательства
утверждения б) необходимо рассмотреть
многочлен
степени M
с неопределенными коэффициентами и для
него построить множество
.
Поскольку кольцо
также нетерово, это построение можно
осуществить с помощью алгоритма пункта
а).
Пусть
.
Система равенств
определяет систему линейных уравнений
над A
с неизвестными
,
фундаментальная система решений
которой задаёт искомый базис
.