Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_okonchatelny_variant.doc
Скачиваний:
0
Добавлен:
05.01.2020
Размер:
553.98 Кб
Скачать

13. Основы лямбда исчисления

Лямбда выражение является таким выражением, значением которого есть функция. Является правилом безымянным для вычисления значения по некоторому аргументу.

Основные типы:

  1. Х

  2. С

  3. Применение функции

  4. Определение функции лямда х.e – x аргумент, е- тело функции

Люмда х. – связывающее вхождение

+2х – использующее вхождение

decodeOne :: String -> [(String, String)] -> String

decodeOne _ [] = "error!\n"

decodeOne str (x:xs)

| str == fst x = fst x ++ " " ++ snd x ++ "\n"

| otherwise = decodeOne str xs

decode :: [String] -> [(String, String)] -> String

decode bs ts = concat $ map (\b -> decodeOne b ts) bs

14. Правило преобразования лямбда выражения.

β-редукция

правило применения лямбда выражения к аргументу

(λх.е1)е2->е1{х|е2}

Берем тело функции е1 и заменяем в нем все входждения Х на аргумент е2

Α-редукция

λх.е1->αz.e1{x|z}

При этом структура выражения не меняется. Z не должна до преобразования входить в е1.

δ-редукция

fe1e2e3->результат

правило применяется встроенной функции. +2δ4=6

η-преобразование

λх.Ех->E

если телом выражения является применение Е к х и в самом вхождении Е нет других свободных вхождений, то можно заменитьэто выражение на Е.

15. Ромбическое свойство системы редукций.

Определение: Пусть R — бинарное отношение на множестве S. Рефлексивное замыкание (reflexive closure) R — это наименьшее рефлексивное отношение R′, содержащее в себе R. (<<Наименьшее>> здесь означает, что, если имеется какое-то другое рефлексивное отношение R″, включающее все пары из R, то R′  R″.) Аналогично, транзитивное замыкание (transitive closure) R — это наименьшее транзитивное отношение R′, содержащее R. Транзитивное замыкание R часто обозначается R+. Рефлексивно-транзитивное замыкание (reflexive and transitive closure) R — это наименьшее рефлексивное и транзитивное отношение, содержащее R. Оно часто обозначается R*.

Термы M и N назовем конгруэнтными (обозначим M ≡ N ), если один терм можно получить из другого переименованием связанных переменных. Далее, мы не будем различать конгруэнтные термы.

Понятие β -редукции определяется как следующее множество пар:

Tерм вида (λx. R)Q называется β -редексом (далее просто редексом), а терм R [x : = Q] = – его сверткой. Традиционным образом определяются отношение одношаговой β -редукции ,отношение β -редукции и отношение β - равенства Далее, условимся отношение одношаговой β -редукции называть просто одношаговой редукцией, а отношение β -редукции – просто редукцией. Будем также опускать символ β в соответствующих обозначениях, т.е. отношение обозначать →, отношение – →→, а отношение – =.

Терм, не содержащий редексов, называется β -нормальной формой (далее, просто нормальной формой). Множество всех нормальных форм условимся обозначать NF , а множество всех замкнутых нормальных форм – . Будем говорить, что терм M имеет нормальную форму, если существует терм N∈ NF такой, что M=N .

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

a) Если , то существует такой терм N , что и .

b) Если , то существует такой терм N , что .

Следствие теоремы Черча-Россера.

a) Если M = N , где N – нормальная форма, то M →→ N .

b) Если и , где N1 и N2 – нормальные формы, то .

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