Синтез функциональных программ при помощи метода дедуктивных таблиц.

Содержание

Слайд 2

Содержание

Автоматический синтез программ
Дедуктивные таблицы
Свойства дедуктивных таблиц
Дедуктивные правила
Пример синтеза
Вспомогательные таблицы
Пример ввода вспомогательных таблиц
Заключение

15.02.2009

Синтез

Содержание Автоматический синтез программ Дедуктивные таблицы Свойства дедуктивных таблиц Дедуктивные правила Пример
функциональных программ при помощи метода дедуктивных таблиц

Слайд 3

Автоматический синтез программ

Предпосылки :
Увеличение сложности ПО
Увеличение требований к надежности ПО
Основные направления:
Дедуктивный синтез
Индуктивный

Автоматический синтез программ Предпосылки : Увеличение сложности ПО Увеличение требований к надежности
синтез
Трансформационный синтез

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 4

Дедуктивные таблицы (1)

Один из методов дедуктивного синтеза.
Спецификация задается в виде формулы логики

Дедуктивные таблицы (1) Один из методов дедуктивного синтеза. Спецификация задается в виде
предикатов первого порядка
∀x ∃y Q[x,y]
где x – входная переменная,
y – выходная переменная,
Q – логическая формула, устанавливающая связь между входными и выходными переменными.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 5

Дедуктивные таблицы (2)

Структура дедуктивной таблицы
If(A1 ∨ … ∨ An) then (G1 ∧

Дедуктивные таблицы (2) Структура дедуктивной таблицы If(A1 ∨ … ∨ An) then
… ∧ Gm)

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 6

Дедуктивные таблицы (3)

Терм t, не содержащий свободных (на связанных с квантором) переменных,

Дедуктивные таблицы (3) Терм t, не содержащий свободных (на связанных с квантором)
удовлетворяет строке таблицы
или
если для некоторой подстановки λ:
Утверждение Aλ не содержит свободных переменных и является ложным (Gλ – истинным)
Если строка имеет выходной терм s, то sλ не содержит свободных переменных и равен tλ.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 7

Дедуктивные таблицы (4)

Доказательство в дедуктивной таблице проводиться до получения финальной строки
или

15.02.2009

Синтез функциональных

Дедуктивные таблицы (4) Доказательство в дедуктивной таблице проводиться до получения финальной строки
программ при помощи метода дедуктивных таблиц

Слайд 8

Свойства дедуктивных таблиц (1)

Двойственность
строка
эквивалентна строке

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Свойства дедуктивных таблиц (1) Двойственность строка эквивалентна строке 15.02.2009 Синтез функциональных программ

Слайд 9

Свойства дедуктивных таблиц (2)

Переименование свободных переменных
π – перестановка
строка
эквивалентна строке

15.02.2009

Синтез функциональных программ при

Свойства дедуктивных таблиц (2) Переименование свободных переменных π – перестановка строка эквивалентна
помощи метода дедуктивных таблиц

Слайд 10

Свойства дедуктивных таблиц (3)

Добавление примера
λ – подстановка
Таблица
эквивалентна

15.02.2009

Синтез функциональных программ при помощи

Свойства дедуктивных таблиц (3) Добавление примера λ – подстановка Таблица эквивалентна 15.02.2009
метода дедуктивных таблиц

Слайд 11

Свойства дедуктивных таблиц (4)

Тождественные преобразования
Эквивалентность таблиц не нарушается при применении в строках

Свойства дедуктивных таблиц (4) Тождественные преобразования Эквивалентность таблиц не нарушается при применении
тождественных преобразований на основе тождеств алгебры логики:
A ∧ A = A; A ∧ false = false;
A ∨ true = true; ¬ ¬ A = A;

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 12

Свойства дедуктивных таблиц (5)

Добавление и удаление тождественно истинного утверждения и тождественно ложной

Свойства дедуктивных таблиц (5) Добавление и удаление тождественно истинного утверждения и тождественно
цели
Добавление и удаление свободной переменной

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 13

Дедуктивные правила (1)

Вычислимые термы – термы, не содержащие свободных переменных, которые можно

Дедуктивные правила (1) Вычислимые термы – термы, не содержащие свободных переменных, которые
получить на основе уже определенных констант, функций и предикатов.
Таблицы, для которых совпадают множества удовлетворяющих им вычислимых термов термов совпадают, называются подобными.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 14

Дедуктивные правила (2)

Правило OR- и AND-разделения
G1,G2,A1,A2 – логические выражения, t – выходной

Дедуктивные правила (2) Правило OR- и AND-разделения G1,G2,A1,A2 – логические выражения, t
терм.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 15

Дедуктивные правила (3)

Правило резолюции
G1,G2 – логические выражения,
P, P’ – некоторые подвыражения G1

Дедуктивные правила (3) Правило резолюции G1,G2 – логические выражения, P, P’ –
и G2,
λ – подстановка, для которой Pλ = P’λ,
s и t – выходные термы.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 16

Дедуктивные правила (4)

Правило индукции.
wf-отношение – отношение, исключающее бесконечно убывающие цепочки.
Спецификация:
где a –

Дедуктивные правила (4) Правило индукции. wf-отношение – отношение, исключающее бесконечно убывающие цепочки.
входной параметр, z – выходная переменная, Q – логическая формула.
Гипотеза индукции:
где

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 17

Дедуктивные правила (5)

Правило замены эквивалентных термов
где G1, G2 – логические выражения,
[L=R] –

Дедуктивные правила (5) Правило замены эквивалентных термов где G1, G2 – логические
подвыражение G1,
T – некоторый терм, входящий в G2, такой что для некоторой подстановки λ:Tλ = Lλ,
s и t – выходные термы.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 18

Пример синтеза функциональной программы (1)

Спецификация:
z = fact(n) is
if n = 0

Пример синтеза функциональной программы (1) Спецификация: z = fact(n) is if n
then z = 1 else z = n*fact(n-1)
В таблице
согласно тождеству
if A then B else C ≡ A ∧ B ∨ ¬A ∧ C

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 19

Пример синтеза функциональной программы (2)

OR-разделение
Резолюция. Общее подвыражение . (n=0).
Добавление примера{z1←1,z2 ← n*fact(n-1)

Пример синтеза функциональной программы (2) OR-разделение Резолюция. Общее подвыражение . (n=0). Добавление
}

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 20

Вспомогательные таблицы (1)

Пусть в таблице присутствуют строки
где G, F – логические выражения,

Вспомогательные таблицы (1) Пусть в таблице присутствуют строки где G, F –
a – входной параметр, t[a], t’[a] – термы над входным параметром, x, x’ – выходные переменная, r[a,x], r’[a,x’] – выходные термы. F содержит реплику G.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 21

Вспомогательные таблицы (2)

Если t’[a]

Вспомогательные таблицы (2) Если t’[a] 15.02.2009 Синтез функциональных программ при помощи метода дедуктивных таблиц
вхождения t[a] на произвольную константу и построить обобщенную цель G’[c,x], которая станет исходной целью для вспомогательной таблицы (соответственно – спецификацией для вспомогательных функций).

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 22

Вспомогательные таблицы (3)

Исходная цель
Гипотеза индукции
Воспроизведение шагов доказательства
Резолюция с гипотезой индукции

15.02.2009

Синтез функциональных программ

Вспомогательные таблицы (3) Исходная цель Гипотеза индукции Воспроизведение шагов доказательства Резолюция с
при помощи метода дедуктивных таблиц

Слайд 23

Вспомогательные таблицы (4)

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Лемма
имеющаяся строка (i)
их

Вспомогательные таблицы (4) 15.02.2009 Синтез функциональных программ при помощи метода дедуктивных таблиц
резолюция завершает доказательство

Слайд 24

Пример вывода вспомогательной таблицы (1)

Для функции сортировки списка чисел задается спецификация вида
z

Пример вывода вспомогательной таблицы (1) Для функции сортировки списка чисел задается спецификация
= sort(a) is perm(a,z) ∧ ord(z)
perm(x,y) – предикат, равный true, если его аргументы-списки есть перемтановки друг-друга.
ord(x) – предикат, равный true, если его аргумент-список упорядочен.

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 25

Пример вывода вспомогательной таблицы (2)

В ходе доказательства получается строка
Далее, строка

15.02.2009

Синтез функциональных программ

Пример вывода вспомогательной таблицы (2) В ходе доказательства получается строка Далее, строка
при помощи метода дедуктивных таблиц

Слайд 26

Исходная цель вспомогательной таблицы
Лемма

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Исходная цель вспомогательной таблицы Лемма 15.02.2009 Синтез функциональных программ при помощи метода дедуктивных таблиц

Слайд 27


Конец

15.02.2009

Синтез функциональных программ при помощи метода дедуктивных таблиц

Конец 15.02.2009 Синтез функциональных программ при помощи метода дедуктивных таблиц
Имя файла: Синтез-функциональных-программ-при-помощи-метода-дедуктивных-таблиц..pptx
Количество просмотров: 145
Количество скачиваний: 0