Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2021-03-18 | 78 |
5.00
из
|
Заказать работу |
|
|
λх.А - переменная х связана в выражении с А.
Определение.
х входит связанно в (АВ) тогда и только тогда, когда х входит связанно в А или связанно в B.
Определение.
х входит связанно в λу.А тогда и только тогда, когда (х ≡ у и х А) или х входит связанно в А.
На место свободной переменной возможна подстановка.
Определение.
Свободные переменные - это синтаксические объекты, встречающиеся обычно в некотором контексте, вместо которых можно подставлять другие синтаксические объекты.
Связанные переменные не допускают подстановки.
(λх.х)+у Можем что-либо подставить на место у и не можем подставить на место х.
Пример. х+((λх.х)3)
свободная связанная
Подстановка.
Определение.
Для термов М и N и переменной х результат подстановки [N/x]M -“ N на место х в М” определяется по индукции по построению терма М.
[N/x] x = N
[N/x] a = a
[N/x](M1M2) = ([N/x] M1)([N/x] M2)
[N/x](λх.M) = λх.M (т.к. х - связана)
[N/x](λу.M) = (λу.[N/x]М), если у ≠ х, у N (или х М), иначе
=(α)(λz.[N/x][z/y]M),
если у ≠ х, у N и x M, где z- новая переменная, не входящая ни в N, ни в М.
Это запрещает значению [N/x](λх.M) зависеть от связанной переменной у.
Пример. [3/y](y) →3
[3/y](x) →x
[3/y](y+x) →3+x
[3/y](λу.y)7+x+y) → ((λу.y)7+x+3)
┌───║───↓
λу.((λу.y)7+x+y)3)
↑
┌─↓
(λу.y+34) (λx.x) →((((λx.x)+)3)4) →((+3)4)
↑──────└───┘ ↑──┘
┌───↓ ┌───↓
|
Пример. (λx. λу. λz+ x(-yz))123→(λxyz.+x(-yz))123→((λyz.+1(-yz))2)3→
↑_________│ ↑_______│
| ↓
→(λz.+1(-2z))3→+1(-23)
↑
Вначале вычисляется выражение в скобках.
Коллизия имен переменных.
Чтобы ввести новые имена используется α - конверсия, она позволяет изменять имена свободной переменной x.
(х+(λx.-х3)2) не сможет дать какую-либо характеристику переменной.
Использование (α) - конверсии позволит изменить имя свободной переменной.
(х+(λx.-х3)2) (у+(λx.-х3)2) получим свободное вхождение у и связное вхождение х.
Изменение статуса переменной при подстановке называется коллизией переменных.
Коллизия переменных может служить источником ошибок в вычислениях.
Пример
Прямая редукция терма (λxy.x)y дает неверный результат
(λxy.x)y →(β) λy.y,
а если предварительно переименовать связанную переменную y, получится верный результат:
(λxy.x)y →(α) (λxz.x)y →(β) λz.y ≠ λy.y.
Редукция
Определение.
Х сворачивается к Y Y -результат замены части Х вида (λх.M)N на [N/x]M:
X редуцируется к Y Y получается из Х с помощью конечной (возможно, пустой) последовательности сворачиваний и замен имен связанных переменных.
Выражение вида (λх.M)N называется редекс.
Подстановка N на место х в М [N/x]M называется сверткой.
λ выражение Р находится в нормальной форме, если не содержит ни одного редекса.
Пример. 1) λх.х - является нормальной формой
2)(λх.+х((λу.у)х)) → не является нормальной формой → (λх.+хх) - является нормальной формой.
Говорят, что терм Р редуцируется к терму Q, если существует доказательство такого выражения: Р → Q.
Теорема Черча-Россера:
Если х конвертируется к у, т.е. х у (х редуцируется к у: х→у) и х конвертируется (редуцируется) к z,то а: у→а и z→а (у а и z а)
Следствие:
У λ - терма ! (единственная) нормальная форма.
|
Доказательство: (от противного)
Пусть у выражения x существует две нормальные формы a,b: х→a и х→b т.е. а,b (a ≠b): (a b)
По Т h C: a→c, b→c т.к. а может редуцироваться, то а не является нормальной формой, то же самое можно сказать про b.
Либо не редуцируются, либо совпадают.
Двух нормальных форм существовать не может. #
Если а редуцируется к b (а→b) и b редуцируется к а (b→a),то говорят что а и b
конвертируются одно в другое (а b),т.е. а→b, b→a: а b- взаимно конвертируются.
Теорема.
λ–теория не противоречива, т.е. в ней нельзя вывести любые утверждения.
Теорема: (О комбинаторной полноте).
Пусть λ- терм М содержит n свободных переменных х1…хn, тогда λ-терм F: х1…xn не являются свободными переменными F (X1…Xn FV(F)) и при этом FX1…Xn=M соответственно F=λx1…xn.M.
Погружение классических вычислений в λ-исчисление.
Определение:
Нумералы - объекты, обладающие свойствами натуральных чисел.
n = λxy.(xn)y n =(SB)n(KI), здесь S,B,K,I - простейшие комбинаторы
Системы комбинаторов предназначены для выполнения тех же функций, что и системы
-l - конверсии
B: Bfgx = f(gx)- элементарный композитор
S: Sfgx = fx(gx) –элементарный коннектор
K: Kcx =c – элементарный канцелятор
I: Ix = x – комбинатор тождества
Пусть z0= λyx.x (считаем это число нулем). Остальные целые числа введем по индукции: zn+1=σzn, где σ - функция добавления единицы: σ = λxyz.y(xyz)
Операция сложения PLUS:
PLUS = λxy.xσy
Утверждается, что PLUSz0b=b и PLUS(σa)b=σ(PLUSab) (проверяется подстановкой).
Определение:
Усеченная разность: DIF=λxу.yπx, где π-функция предшествования
π=λx.хω(kz0)z1, где ω= λx.D(σ(xz0))(xz0) πzi+1=zi, i ≥ 0
k= λxy.x πz0=z0.
D - декартово замкнутое произведение.
D: PROD = λxy.x(yσ)z0
TRUE λxy.x (так обозначим)
FALSE λxy.y
If X then Y else Z XYZ.
Нумералы.
Введем по индукции обозначение
anb n N n ab= anb
a0b=b
an+1b=a(anb)
Пример. a3b=a(a(ab))
Определение:
Нумераломn будем называть λ-выражение вида λху.хny, где n=0,1,2,…
|
n = λху.хny
n =(SB) n(KI) (то же выражение, но в терминах комбинаторной логики)
Введем функцию прибавления единицы σ.
σ = λхуz.y(хyz) (σ = λхуz.xy(yz))
σn = n+1
Пример. 0 = λху.y 2 = λху.x(xy)
Покажем, что для таких нумералов (n) σ прибавляет единицу:
┌───────↓
σ n ab = (λхуz.y(xyz))(λху.хny)ab = (((λx.(λy.(λz.y(xyz))))(λx.λy.хny))a)b └───σ──┘└── n ─┘ ↑───────────└─────┘
┌────↓───────↓ ┌─────────↓
= ((λy.(λz.(y((λx.λy.хny)yz)))a)b = (λz.a((λx.λy.хny))az))b = a((λx.λy.хny)ab) =
↑──────────────┘ ↑──────────┘ └─ n ───┘
= a(anb) =an+1b = /(λху.хn+1y)ab/ = (n+1) ab.
½ ↓
σ (SB) n(KI) = (λхуz.y(xyz))((SB) n(KI))(λхуz.y(xyz))[(SB) n(KI)]ab =
↑──────└─────┘
= a(((SB) n(KI)a)b) =B Ba[(SB) n(KI)a]b =S SB[(SB) n(KI)]ab = (SB) n+1(KI)ab
└a┘└──b───┘c x z└──y──┘ z
σ| = λхуz.xy(yz)- альтернативное определение σ, которое также приводится в литературе. Для него можно провести аналогичные выводы.
TRUE λху.x
FALSE λху.y
If x then y else z xyz
Как это проверить?
If TRUE then A else B A
If FALSE then A else B B
┌─↓
(λху.x)AB = A
┌─↓
(λху.y)AB = B
X&Y If X then Y else FALSE
XVY If X then TRUE else Y
Рекурсия
Определение:
Рекурсивное определение - это определение, которое внутри себя содержит ссылку
на определяемый объект.
Пример. 1) Факториал ƒac(x): x*ƒac(x-1),
if (х=0) then 1 ƒac(0)=1.
else x* ƒac(x-1)
2) Список:
Голова
|
cons(x.y)→(x.y) (точечная пара)
head(x.y) →x (голова)
|
length(x)
tail(x) = Nil
length(x) = 1+ length(tail(x))
length(x): if x = Nil then 0
else 1+(length(tail(x))).
Рекурсия в λ-исчислении.
Определение.
Выражение х является неподвижной точкой функции ƒ, если х = ƒх.
Теорема: (О неподвижной точке).
1)Для
2) -позволяет определить неподвижную точку.
↑обьект ↑неподвижная точка
Пример. Y = λƒ.(λx.ƒxx)(λx.ƒxx)
YH = …H(YH)
# w = λx.ƒxx – введем этот объект и скажем, что х = ww =
┌──↓─↓
= (λх.ƒ(x x))(λx.ƒ(xx)) = ƒ((λx.ƒ(xx))(λx.ƒ(xx))) = ƒ(x) 1) доказано. #
↑
Определение.
Комбинатор неподвижной точки - это терм М: , т.е. Мƒ - неподвижная точка.
Используется для выражения рекурсии в чистом виде (без самоссылки), т.к. в λ-исчислении не предусмотрено именование функций.
Пример. θ = (λxу.(у(хху))(λxу.у(хху))
С помощью комбинатора Y запишем и вычислим комбинатор какого-либо числа.
ƒac: λx.(if x=0,1,x* ƒac(-x1)) (λx.IF(=x0)1(*ƒac(-x1))
Вычислим факториал от 2: ƒac= λx.(… ƒac …).
Применяя λ - абстракцию, получим ƒac(2) λƒac1.ƒacƒac1= (λƒac1.(λх.(… ƒac1…)))ƒac
Введем дополнительную функцию H, которая в определении факториала позволяет абстрагироваться от определения факториала.
По правилу (η) λƒac1.ƒacƒac1=ƒac и ƒac= λƒac1.(λх.(…ƒac1…)))ƒac.
H=λƒac1.(λх.(IF x=0,1,x*ƒac1(-x1))
ƒac=Hƒac YH=H(YH)
ƒac2=YH2
Шаг за шагом произведем эти вычисления.
┌───↓─────↓
(λƒ.(λх.ƒхх)(λх.ƒхх))(λƒac.(λn.(if n=0,1,n*ƒac(n-1))))2 ((λƒac.(λn.(if n=0,1,
n*ƒac(n-1))))(YH))2 (λn.(if n=0,1,n*(YH)(n-1)))2 if (2=0),1,2*(YH)(2-1)
2*((YH)1) 2*[H(YH)1] 2*[(λƒac.λn.if n=0,1,n*ƒac(n-1))(YH)1]
2*[ if 1=0,1,1*(YH)(1-1)] 2*[1*(YH0)] 2*1*(YH0)
2*1*[H(YH)0] 2*1*[(λƒacn.if n=0,1,n*ƒac(n-1))(YH)0]
2*1*[ if 0=0,1,n*[(YH)(0-1)]] 2*1*1=2.
Определения:
Бестиповое λ - исчисление является синтактико-семантической системой, т.е. семантика выражения полностью определяется его синтаксисом.
Синтаксис - способ записи выражения.
Семантика – смысл выражения. Алгоритм вычисления выражения полностью определяется способом его записи.
|
Все вычисления в символьных системах сводятся к подстановке одних идентификаторов вместо других, при этом они вначале вычисляются в среде, результат вычисления выражения изменяет исходную среду на новую.
Контрольные вопросы
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!