- •17.10.12 Лекция 5
- •[P(x), Q(x, y)] спецификация программы S(x: y), P(x) предусловие, Q(x, y) постусловие.
- •Теорема 2.1 тождества спецификации и программы
- •Система правил декомпозиции доказательства корректности программы.
- •Условный оператор
- •4. Система правил доказательства корректности операторов (прод1)
- •Оператор суперпозиции с корректным первым подоператором
- •Декомпозиция вхождений операторов
- •Правила для корректных подоператоров
- •Правило для параллельного оператора
- •Правило для оператора суперпозиции
- •Правило для оператора суперпозиции
- •Правило для оператора суперпозиции
- •Декомпозиция в случае однозначной спецификации
- •Задачи верификации и синтеза
- •5. Построение языка предикатного программирования. Методы доказательства корректности предикатных программ
- •Система правил доказательства корректности оператора суперпозиции, параллельного оператора и условного оператора
- •Язык P1: подстановка определения предиката на место вызова
- •Язык P2: оператор суперпозиции и параллельный оператор общего вида
- •Параллельный оператор общего вида
- •Правило опускания скобок:
- •Язык P2: другое обобщение оператора суперпозиции
- •Язык P3: выражения
- •Понятие выражения.
- •Правило для выражений в качестве аргументов:
- •3.Математические основы
- •Математическая индукция ― метод доказательства некоторого утверждения P(n) для всех значений натурального параметра
- •Индукционное предположение для полной индукции определяет истинность P(j) для всех j k; используя
- •Метод индукции, использующий меру
Математическая индукция ― метод доказательства некоторого утверждения P(n) для всех значений натурального параметра n; n = 0, 1, 2, … .
Схема доказательства:
Начальный шаг: утверждение P(n) доказывается для n = 0 (база индукции);
Индуктивный шаг: утверждение P(n) считается истинным для значения n (индуктивное предположение) и доказывается для
значения n + 1.
Переменная n называется индукционной переменной. Метод
математической индукции базируется на аксиоме индукции:
( P(0) & k.[ P(k) P(k + 1) ] ) n.P(n) |
(3.2) |
Обобщения. База индукции может быть отлична от нуля. Шаг индукции может быть отрицательным. Индукционных переменных может быть несколько. Эти и другие особенности учитываются методами полной индукции и структурной индукции
Индукционное предположение для полной индукции определяет истинность P(j) для всех j k; используя его требуется доказать P(k + 1).
Метод, сочетающий структурную и полную индукцию. На множестве X задан строгий частичный порядок
, удовлетворяющий свойству (3.1) обрыва бесконечных убывающих цепей (well-founded
partial order) всякое непустое подмножество S имеет минимальный элемент, т.е.
S X. (S a S s S. s a) . |
(3.1) |
Пусть утверждение, которое требуется доказать, есть W(t); t X. Параметр t определяет одну или несколько индукционных переменных.
t X. [ ( y X. y t W(y) ) W(t) ] u X. W(u)(3.3)
t X. [ ( y X. y t W(y) ) W(t) ] u X. W(u)(3.3)
Если элемент t в формуле (3.3) минимальный, то формула (3.3) вырождается в t X. W(t). Это значит, что для минимальных элементов доказательство W(t) надо проводить отдельно, что соответствует начальному шагу классической схемы. Пусть истинное значение предиката (t) определяет набор значений t, составляющих базу индукции, которая, по меньшей мере, должна содержать все минимальные элементы. Тогда формула (3.3) переписывается в виде:
t X.( (t) W(t)) &
& t X. [ ( y X. (t) & y t W(y) ) W(t) ] (3.4)
(t) ├ W(t)
(t) & y t W(y) ├ W(t)
Метод индукции, использующий меру
t X. [ ( y X. m(y) < m(t) W(y) ) W(t) ]
u X. W(u) |
(3.5) |
Функция m: X nat называется мерой
Вместо типа nat может использоваться ЧУМ со свойством обрыва бесконечно убывающих цепей (well-founded partial order)
Induct(t, W) y. m(y) < m(t) W(y)) |
|
t X. [ Induct(t, W) W(t) ] u X. W(u) |
(3.5) |
