Interested Article - Подстановка

В математике и информатике подстановка — это операция синтаксической замены подтермов данного терма другими термами, согласно определённым правилам. Обычно речь идёт о подстановке терма вместо переменной .

Определения и обозначения

Для подстановки не существует универсальной, согласованной нотации, равно как и стандартного определения. Понятие подстановки варьируется не только в рамках разделов, но и на уровне отдельных публикаций. В целом, можно выделить контекстную подстановку и подстановку «вместо» . В первом случае место в терме, где происходит замена, задаётся контекстом , то есть частью терма, «окружающего» это место. В частности, такое понятие подстановки используется в переписывании . Второй вариант более распространён. В этом случае подстановка обычно задаётся некоторой функцией σ : X T {\displaystyle \sigma :X\to T} из множества переменных в множество термов. Для обозначения действия подстановки , как правило, используют постфиксную нотацию . Например, t σ {\displaystyle t\sigma } означает результат действия подстановки σ {\displaystyle \sigma } на терм t {\displaystyle t} .

В подавляющем большинстве случаев требуется, чтобы подстановка имела конечный носитель, то есть чтобы множество { x x σ x } {\displaystyle \{x\mid x\neq \sigma x\}} было конечным. В таком случае её можно задать простым перечислением пар «переменная-значение» . Поскольку каждую такую подстановку можно свести к последовательности подстановок, замещающих всего по одной переменной каждая, не ограничивая общности, можно считать, что подстановка задаётся одной парой «переменная-значение» , что обычно и делается.

Последнее определение подстановки является, видимо, самым типичным и часто используемым. Однако и для него не существует единой общепринятой нотации. Наиболее часто для обозначения подстановки a вместо x в t используется запись t [ a / x ], t [ x := a ] или t [ x a ].

Подстановка переменной в λ-исчислении

В λ-исчислении подстановка определяется структурной индукцией. Для произвольных объектов P {\displaystyle P} , Q {\displaystyle Q} и произвольной переменной x {\displaystyle x} результат замещения произвольного свободного вхождения x {\displaystyle x} в Q {\displaystyle Q} считается подстановкой и определяется индукцией по построению Q {\displaystyle Q} :

(i) базис: Q x {\displaystyle Q\equiv x} : объект Q {\displaystyle Q} совпадает с переменной x {\displaystyle x} . Тогда [ P / x ] x P {\displaystyle [P/x]x\equiv P} ;
(ii) базис: Q c {\displaystyle Q\equiv c} : объект Q {\displaystyle Q} совпадает с константой c {\displaystyle c} . Тогда [ P / x ] c c {\displaystyle [P/x]c\equiv c} для произвольных атомарных c x {\displaystyle c\not \equiv x} ;
(iii) шаг: Q ( Q 1 Q 2 ) {\displaystyle Q\equiv (Q_{1}\,Q_{2})} : объект Q {\displaystyle Q} неатомарный и имеет вид аппликации ( Q 1 Q 2 ) {\displaystyle (Q_{1}\,Q_{2})} . Тогда [ P / x ] ( Q 1 Q 2 ) ( [ P / x ] Q 1 ) ( [ P / x ] Q 2 ) {\displaystyle [P/x](Q_{1}\,Q_{2})\equiv ([P/x]Q_{1})([P/x]Q_{2})} ;
(iv) шаг: Q λ x . M {\displaystyle Q\equiv \lambda x.M} : объект Q {\displaystyle Q} неатомарный и является x {\displaystyle x} -абстракцией λ x . M {\displaystyle \lambda x.M} . Тогда [ P / x ] ( λ x . M ) λ x . M {\displaystyle P/x](\lambda x.M)\equiv \lambda x.M} ;
(v) шаг: Q λ y . M {\displaystyle Q\equiv \lambda y.M} : объект Q {\displaystyle Q} неатомарный и является y {\displaystyle y} -абстракцией λ y . M {\displaystyle \lambda y.M} , причем y x {\displaystyle y\not \equiv x} . Тогда:
[ P / x ] ( λ y . M ) ( λ y . [ P / x ] M ) {\displaystyle [P/x](\lambda y.M)\equiv (\lambda y.[P/x]M)} для y x {\displaystyle y\not \equiv x} и y P {\displaystyle y\notin P} или x M {\displaystyle x\notin M} ;
( λ z . [ P / x ] [ z / y ] M ) {\displaystyle (\lambda z.[P/x][z/y]M)} для y x {\displaystyle y\not \equiv x} и y P {\displaystyle y\in P} и x M {\displaystyle x\in M} .

См. также

Ссылки

Same as Подстановка