Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DM-6_lec.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.32 Mб
Скачать

Построение комбинаторной логики

Определение:

Комбинаторная логика (КЛ) - часть математической логики, изучающая комбинаторы и их свойства, где функциональная абстракция выражается без использования формальных переменных.

Введем комбинаторную логику как формальную систему:

1 . Алфавит: ( , ) , хi , сi, S, K, I,…

комбинаторы

2. Комбинаторные термы:

- все переменные являются термами ( хi – терм);

- все константы являются термами ( сi - терм);

- все комбинаторы являются термами (S,K,I,…- термы).

А-терм, В-терм (Если А- терм и В - терм, то аппликация (АВ)-терм )

(AB)-терм Таким образом (АВ) также является термом.

λ-абстракций в комбинаторной логике нет.

Скобки расставляются по ассоциации влево.

3. Правила вывода:

а→b (μ) a→b (υ) a→b (τ)

ca → cb ac→bc b→c a→c

4. Схема аксиом.

Ix → x

Kxy → x

Sxyz → xz(yz)

x → x

x,y,z

Примеры комбинаторов. Ix = x -тождество

Bxyz = x(yz) - композитор

Wxy = xyy - дупликатор

Cxyz = xzy - пермутатор

Sxyz = xz(yz) - коннектор

Kxy = x - канцелятор

I, B, W, K - также образуют базис.

Определения:

Выражение вида Ix, Kxy, Sxyz называются редексами.

Получившиеся свернутые выражения для редексов (соответственно х, х, xz(yz)) называются контрактами либо сверткой.

Говорят, что выражение А находится в нормальной форме, если оно не содержит редексов. Для любого комбинаторного выражения существует нормальная форма.

Пример

B = S(KS)K

W = SS(K(SKK))

C = S(BBS)(KK)

Теорема Черча-Россера.

If А→В, А→С

then D :B→D, C→D

Базис k, s.

Кроме базисного набора K, S будем использовать еще плюс к ним I.

Любое λ-выражение Р, не содержащее свободных переменных представляется в базисе IKS индукцией по построению терма Р.

Р: FV(P) = Ø –свободные переменные.

λх.х = I

λx.P = KP, если х FV(P)

λx.PQ = S(λx.P)(λx.Q)

Примеры.

λxy.yx = S(K(SI))(S(KK)I)

Babc = a(bc) Представим комбинатор B в базисе I,K,S.

B: λxyz.x(yz)

1-ый способ

λx.(λy.(λz.x(yz))) = λx.(λy.(S(λz.x)(λz.(yz))) = λx.λy.(S(Kx)(S(λz.y)(λz.z))) =

= λx.λy.((S(Kx)(S(Ky)I)) = λx.(S(λy.S(Kx))(λy.S(Ky))I)) = λx.(S(K(S(Kx)))

( S(λy.S(Ky))(λy.I))) = λx.(S(K(S(Kx)))(S(S(λy.S)(λy.Ky))(KI))) =

= λx.(S(K(S(Kx)))(S(S(KS)(S(KK)I))(KI))) = S(λx.(S(K(S(Kx))))(λx.[…])) =

нет свободных вхождений х

= S(S(λx.S)(λx.K(S(Kx)))( …) = S(S(KS)(S(λx.K)(λx.S(Kx)))( …) =

= (S(S(KS)(S(KK)(S(KS)(λx.Kx))))( …) = (S(S(KS)(S(KK)(S(KK)(I))( …) .

2-ой способ

a(bc) =(K) Kac(bc) =(S) S(Ka)bc =(K) KSa(Ka)bc =(S) S(KS)Kabc .

Базис I,b,c,s

Для всей комбинаторной логики I,B,C,S не является базисом, т.к. в нем нет укорачивающего правила, которое вводится Kxy = x. Однако для систем без укорачивающих правил I,B,C,S можно использовать как базис.

K – не может быть выражено через остальные комбинаторы, значит для всей комбинаторной логики I,B,C,S - не базис.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]