Смекни!
smekni.com

2 Постановка задачи: о связном предъявлении теории информатики и практики программирования в теме исполнения для теоретического мышления. 13 (стр. 11 из 25)

Комбинаторная логика. Созидается теория, в которой фиксируется, что значит равенство термов. Фиксируется посредством доказательства. Подразумеваемая структура: A = <A, *, c1,¼,cm>. Язык: термы, построенные из переменных, K, S посредством операции *. Формулы: равенства термов. Аксиомы: t = t для атомарных термов. St1t2t3 = t1t3(t2t3) Kt1t2 = t1 для произвольных термов. Правила вывода:

Доказуемость: последовательность равенств a1, a2,¼, an называется доказательством an, если ai - аксиома, либо имеются j, k < i такие, что ai получается из aj и ak по правилу вывода.

{278 Гоген} Эквациональная логика, которая по существу является логикой подстановки “равных вместо равных”, составляет фундаментальное ядро (???) функционального программирования.

Вопрос о непротиворечивости сводится к доказательству того факта, что невозможно вывести все формулы соответствующего языка. Например, формулу K = S. Действительно, если K = S, то

То есть t1 = t2 (дал произвольные).

Исчисление редукций. Создается теория, в которой фиксируется, что значит редуцируется терм к другому. Фиксируется посредством доказательства. Язык: термы как в комбинаторной логике. Формулы: высказывания о редуцируемости t1 ® t1Аксиомы: t ® t для атомарных термов. St1t2t3 ® t1t3(t2t3) Kt1t2 ® t1 для произвольных термов. Правила вывода:

Редуцируемость: как доказуемость в комбинаторной логике.
Исчисление конверсий. Еще более общее понятие (эквивалентное одновременной конверсии). Язык: термы комбинаторной логики. Формулы: t1 ||® t2 (||® семантика этого знака - редуцируется равенством). Аксиомы: t ||® t для атомарных термов. St1t2t3 ||® t1t3(t2t3) Kt1t2 ||® t1 для произвольных термов. Правила вывода:

Конвертируемость: как доказуемость в комбинаторной логике.

Индукцией по длине доказательства можем доказать, что

Лемма 1. t1®t2Û t1||®t11* , t11||®t12, ¼, t1n||®t2. {Справа - это не тоже, что t1||®t2}.

Можем получить теорему Чёрча-Россера: если m=n в комбинаторной логике, тогда $z (m®z Ù n®z), причем строится z эффективно по доказательству m=n. (При доказательстве теоремы используются похожие свойства для редукции и конверсии. Для редукции: если (a®m Ù a®n) Þ $z (m®z Ù n®z). Для конверсии аналогично.)

Теорема. S=K недоказуемо в комбинаторной логике.

Доказательство: от противного. Пусть S=K доказуемо. Тогда $z (S®z Ù K®z) по теореме Чёрча-Россера. Тогда существует последовательность конверсий

S||®c11, ¼, c1n||®z, что невозможно, т.к. S||®S и только.

ˆ

3 Модели из термов (эрбрановская модель).

Подобные модели конкретны в той же степени, что и объекты классической математики вообще. Показав, что комбинаторная логика непротиворечива, мы получили разбиение термов комбинаторной логики на классы эквивалентности посредством доказуемости.

Итак, t~t¢ Û t=t¢ - можно доказать. Эта эквивалентность, по определению комбинаторной логики (t1=t2 Þ zt1=zt2 и t1z=t2z), является даже конгруэнтностью относительно операции *. То есть если t1=t1¢ и t2=t2¢ Þ t1*t2=t1¢*t2¢. Действительно, t1=t1¢ Þ t1*t2=t1¢*t2, t2=t2¢ Þ t1¢*t2=t1¢*t2¢.Тогда t1*t2=t1¢*t2¢.

Итак, определения.

Модель из термов. T = термы комбинаторной логики, t~t¢ Û t=t¢ доказуемо. Пусть `t = {t¢ | t~t¢}. Заметим, что отношение эквивалентности является конгруэнцией для *, т.е. t1~t1¢, t2~t2¢ влечет t1*t2 ~ t1¢*t2¢ Система <`A, *, `S, `K> является комбинаторной алгеброй, где

`A = {`t | tÎT}:

.` Она называется моделью из термов.

Сравним конструкцию модели из термов с моделью поля рациональных чисел. Сделаем все последовательно. Рассмотрим натуральные числа N={1,2,¼} как абелеву полугруппу с дополнением, т.е.

<N, +>; x+y=y+x; x+(y+z)=(x+y)+z; x+y¹x;

x¹y Þ $z (x+z=y Ú x=y+z).

Перейдем к целым числам.

Если n £ m Þ вычитание не может быть натуральным числом; обозначим его временно символом n Q m: n Q m = x Û n = x+m.

Если мы хотим сохранить аксиомы сложения, тогда

m+k = x+(m+k), kÎN

m-k = x+m-k, 1 £ k < min(m,n), т.е.

(*)

Например, (1Q3) = (2Q4) = (3Q5) = (4Q6) = (5Q7) = ¼

Класс эквивалентности (*) можем задать в виде

(**) (n1Qm1) + (n2Qm2) Û n1+m2 + n2+m1

Рассмотрим теперь всевозможные выражения nQm, n,mÎN с законом отождествления (**). Посмотрим на сложение

,

т.е. складывать можем покомпонентно.

Посмотрим на вычитание

(nQm) Q (n¢Qm¢) Û yQz. Как обычно, выразим через сложение (nQm) = (yQz) + (n¢Qm¢) = (y+n¢) Q (z+m¢), т.е.

.

Это нужно, так как мы хотим представить (yQz) = (y+n¢+m¢)Q(z+n¢+m¢) = (n+n¢+k)Q(m+n¢+k) = (n+m¢)Q(m+n¢). Итак, (nQm)Q(n¢Qm¢) = (n+m¢)Q(m+n¢).

Рассмотрим класс эквивалентности, выберем для них формы представления и нормальные формы. Введем символ 0.

Итак, целые положительные представляются (n,0),

целые отрицательные представляются (0,n),

ноль представляется (0,0).

Классы эквивалентности образуют группу по сложению, она изоморфна множеству отрицательных чисел Z.

Установление равенства представителей целых чисел устанавливается или приводимостью к нормальной форме или по свойству

(m1,n1) = (m2,n2) Û m1+n2 = m2+n1.

Сравним с установлением равенства двух термов комбинаторной алгебры. Значительно сложнее. Дело в том, что вопрос о доказуемости равенства t = t¢ алгоритмически неразрешим.

4 Графиковые модели - существование комбинаторных алгебр.

Значение таких моделей, как подчеркивает Д. Скотт, в том, что они действительно делают приведенные теории исчислениями. Через интерпретацию фиксируется “истинность” равенства двух термов.

Попытаемся реализовать элементы комбина¢торной алгебры в виде множеств. Будем рассматривать (по Дирихле) график функции ¦

F = {<x, ¦(x)> | x Î D¦}.

Применение F{a} = {b | $xÎ{a}. <x, b>ÎF}.

В общем случае MÑN = {y | $xÎN. <x,y>ÎM}.

Вспомним сложность, возникающую из-за несоответствия мощностей. Поэтому опираемся на конечные множества. Здесь, в конечности множеств, конечно же “твердый орешек” и достижение Скотта.

Итак, M*N =Df{y | $xÍN. <x,y>ÎM Ù x - конечное}.

Чтобы легче воспринимать функциональные связи пишем (x®y) вместо <x,y>. Попробуем смастерить комбинатор K. (на множествах, вопрос об Универсуме пока открыт)

KMN=M={m | mÎM}

Хотелось бы иметь FM=N, это получим, если F = {(Æ®y) | yÎM}.

KM должен давать F, тогда K = {{y}®(Æ®y) | yÎУниверсума}.

Действительно,

Пусть Универсум формируется на основе множества A={a,b,c}. Кроме A он должен также содержать функции. Рассмотрим K{a}{b} = {{Æ®a}}*{b} = {a}.

Попробуем смастерить комбинатор S: SMNL = ML (NL). Рассмотрим выражение ML (NL), которое дает некоторое {s | “условие”}. Затем по “условию” попробуем восстановить S. {где ML применяют к NL}.

M*L*(N*L) = {непустому значению} = {s | $rÎN*L . (r®s)ÎM*L} =

= {s | $rÍN*L, $tÍL . (t®(r®s))ÎM} =

= {s | $n³0 $r1,¼,rn Î Универсума $s1,¼,snÎL . (s1®r1)ÎN Ù¼Ù(sn®rn)ÎN Ù (t®({r1,¼,rn}®s))ÎM}.

Тогда за S можем взять множество

S={{t®({r1,¼,rn}®s)} ® ({s1®r1,¼,sn®rn} ® (tÈs1ȼÈsn®s)) | n³0, r1,¼,rnÎУниверсума}.

Проверим правильность выбора S на простом примере

.

Чуть изменим SMN{a} = {{a,c}®c}*{a} = Æ,

.

Легко убедиться, что S¹K. Действительно,

.
Графиковые модели. Пусть A¹Æ. Тогда Go(A)=A, Gn+1(A)=Gn(A)È{(a®y) | yÎGn(A), aÍGn(A), a - конечно}. Пусть

, и пусть B = 2G(A) - множество-степень множества G(A). {MÍG(A) Û MÎB} К = {{y}®(Æ®y) | yÎG(A)}. /*yÎG(A), а не B, но KÎB*/ S={{t®({r1,¼,rn}®s)} ® ({s1®r1,¼,sn®rn} ® (tÈs1ȼÈsn®s)) | n³0, r1,¼,rnÎG(A); t, s1,¼,snÎB и конечны}. Итак, B = <B, *, S, K> - комбинаторная алгебра.

Универсум G(a) определяется довольно сложно. Приведем его в общем определении графиковой модели.