Свободные переменные (λx.xy) x и связанных переменных λxy.x
-
16-10-2019 - |
Вопрос
Я решал упражнения на исчислении Lambda. Тем не менее, мои решения отличаются от ответов, и я не вижу, что не так.
Найдите свободные переменные $ ( lambda x.xy) x $.
Мои работы: $ fv (( lambda x.xy) x) = fv ( lambda x.xy) cup fv (x) = {y } cup {x } = {x, y } $.
Ответ модели: $ fv (( lambda x.xy) x) = {x } $.Найдите связанные переменные $ lambda xy.x $.
Мои работы: переменная $ y $ имеет свою привязку, но, поскольку она не присутствует в теле $ lambda $-Abstraction, она не может быть связана и, следовательно, $ bv ( lambda xy.x) = {x } $ Только.
Ответ модели: $ bv ( lambda xy.x) = {x, y } $.
Решение
Ваш ответ верен, $ y $, безусловно, бесплатный. Модель - это неправильно. Может быть, была опечатка, и ответ был предназначен для $ ( lambda y.xy) x $
Это зависит от точного определения $ bv $. Часто только $ fv $ определяется формально, потому что это важнее. (Связанные переменные могут быть свободно переименовано В под термере, но свободные переменные не могут.) Поэтому, если $ bv $ определяется как begin {eqnarray*} bv (x) & = & {} bv (mn) & = & bv (m) cup BV (n) bv ( lambda xm) & = & {x } cup bv (m) end {eqnarray*} тогда ответ модели верен. Обратите внимание, что это определение имеет смысл: если у вас есть термин $ M $ и замените бесплатную переменную $ x $ Другой термин $ n $ без связанных переменных ($ bv (n) = {} $), вы ожидаете, что это $ Bv (m) = bv (m [x: = n]) $. Если вы рассмотрите только связанные переменные, которые также появляются в рамках $ lambda $, это свойство не будет удерживать.