Скачиваний:
74
Добавлен:
09.05.2014
Размер:
935 Кб
Скачать

Интерпретация формул логики в теории функциональных отношений.

Функцией называется всякое отображение D в Т f = DТ

D – область значения х; Т – область значения f(x)

Одному значению х соответствует точно одно значение из области Т.

(f(x) = y) – функциональное отношение предикатов

р(f(x),y) = (f(x) = y) - может быть задана таблицей

Возможное дальнейшее обобщение: f = D1 x D2 x Dn  T f(x1, . . . xn)

Пример: р(f(x1, . . . xn), y) = (x1 x2  . . . xn = y)

Распространяется правило композиций:

p(f1(x1, f2(x2x3)),y) = (x1  x2x3 = y) Область определения может быть любой.

П ример: p(f(x), y) = (x2 = y)

Интерпретируется графиком

хy p(f(x), y) = хy (x2 = y) = тождественно истинно

С – правило (нужно для доказательства)

Исключаем «», заменяя вхождение соответствующих переменных на константы из области интерпретации (исключить = элиминировать). Для нашего примера С – правило: а2 = в, а,вР; (а2 = в)  функциональная зависимость (уравнение)

xу p(f(x), y) = xy (x2 = y) = F

a,bD  (a2 = b) & (b2 = a) & . . . = F, если а  b (=Т, если а = b = 0 или а = b =1)

Пример: р(f1(x), f2(y)) = (x2 = 2y)

Графическая интерпретация

хyz ((x2 = z) & (z = 2y) = T  система уравнений;

z – вспомогательная переменная

(a2 = c) & (c = 2в) – система уравнений

Пример:

Р(f(x),y) q(x,y) r(x,z) – предикаты

y=x2 y=x x<z

Тогда (r(x,0)  p(f(x),y) & (r(x,0)  q(x,y)

(r  p) & (p  q) = (r  p) & (r  q) = rq  pr  p & q

Правило общего склеивания:

rq  rp  pq = r  rp

Применение в теории алгоритмов.

Логическое отношение алгоритмов может быть сформулировано на основе неформального описания (например, блок-схемы алгоритмов, граф-схемы). Блок-схемы используются для описания «предшествующих» алгоритмов («вычислить - х» алгоритмов). Описание состоит из последовательности шагов – операторов и инструкции. Предписывающие алгоритмы исполняются (интерпретируются) неймановской машиной и является программой: предикатный символ  Qi(t1, . . . tn).

В программе выбираются контрольные точки (узлы), которые ставят в соответствие предикаты, обозначающие состояние программы в i-том узле.

ti – термы, обозначение состояния (значения) i-той переменной.

Порядок записи уравнения:

1 ) если i и j – это вход и выход операторной вершины (смотри рисунок S – оператор с инструкцией на выполнение преобразования). Переход из i в j – это дуга, которая определяется формулой: Qi(t1t2 . . . tn)  Qj(l1l2 . . .ln)

где lj = f(f1 . . . fn)

2 ) если i и j – вход и выход условной вершины. Тогда дуге «i  j» ставится в соответствие формула с контрольным предикатом:

Qi & P  Qi, P = P(t1 . . . tn)

3) начало программы Q0 -  - местный предикат - высказывание

4) конец программы Qk.

Пример: программа «умножение» х,у – целые

x – множимое; у – множитель

x  значит «ввод х»; z  «вывод z»

Контрольные формулы вводятся:

Q3 (x,y,z) & (z > 0)  Q5 (x,y - 1,z + x) & (z > x)

Q3 (x,y,z) & (z = 0)  Q5 (x,y - 1, x)

П ример задачи:

1  xy Q6 (x,y) & (y = 0)

- если эта формула выводится, то программа завершена.

2. Интерпретация формул для конкретных чисел данных обозначает исполнение алгоритма.

Интерпретация включает:

1) подстановка значений переменных после ввода данных.

2) интерпретация формул после подстановки значений переменных.

3) запуск итерационного процесса (Q1=T) который выполняется с формулами пока Fi+1 не равно Fi.

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

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

Задаемся множимым х = а; и множителем у = 3.

Интерпретация: подстановки

Q0Q1(x = a, y = 3, z = )

Q2(a, 3, )Q3(a, 3, )

Q5(a, y = 2, z = z + a)

Q2(a, 3, a)

Q5(a, y = 1, z = a + a)

Q2(a, 1, a + a)

Q5(a, y = , z = a + a + a)

Q2(a, , a + a + a)

Q4(a, , a + a + a)

Qk(a, ) - конец программы.

Подтверждается:

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

5. В традиционном программирований в неймановской машине используется контрольные формулы, в которых проверяется свойства данных в конкретных точках программы. Практически во всех процедурных языках программирования используется оператор assert(формула), сохраняется признак ( и 1), по которым можно судить о наличии ошибки.