В формальном рассуждении, в частности в математической логике , компьютерной алгебре и автоматизированном доказательстве теорем , новая переменная — это переменная, которая не встречалась в рассматриваемом до сих пор контексте. [1] [ требуется цитирование ]
Это понятие часто используется без объяснения. [2] [ требуется цитирование ]
Свежие переменные могут использоваться для замены других переменных, для устранения затенения или захвата переменных. Например, в альфа-преобразовании , обработке терминов в лямбда-исчислении в эквивалентные термины с переименованными переменными, замена переменных свежими переменными может быть полезна как способ избежать случайного захвата переменных, которые должны быть свободными . [3] Другое использование свежих переменных включает разработку инвариантов цикла в формальной проверке программ , где иногда полезно заменять константы вновь введенными свежими переменными. [4]
Пример
Например, при переписывании терминов , прежде чем применять правило к данному термину , каждую переменную в следует заменить новой, чтобы избежать конфликтов с переменными, встречающимися в . [ необходима ссылка ]
Учитывая правило
и термин
- ,
попытка найти соответствующую замену левой части правила, , внутри потерпит неудачу, так как не может соответствовать . Однако, если правило заменено новой копией [a]
до этого сопоставление будет успешным с заменой ответа .
Примечания
- ^ то есть копия, в которой каждая переменная последовательно заменена новой переменной
Ссылки
- ^ Кармен Бруни (2018). Предикатная логика: естественная дедукция (PDF) (слайды лекций). Univ. of Waterloo.Здесь: слайд 13/26.
- ^ Михаэль Фарбер (февраль 2023 г.). Денотационная семантика и быстрый интерпретатор для jq (технический отчет). Инсбрукский ун-т. arXiv : 2302.10576 .Здесь: стр.4.
- ^ Гордон, Эндрю Д.; Мелхэм, Томас Ф. (1996). «Пять аксиом альфа-преобразования». В фон Райт, Йоаким; Гранди, Джим; Харрисон, Джон (ред.). Доказательство теорем в логике высшего порядка, 9-я международная конференция, TPHOLs'96, Турку, Финляндия, 26-30 августа 1996 г., Труды . Заметки лекций по информатике. Том 1125. Springer. стр. 173–190. doi :10.1007/BFB0105404.
- ^ Коэн, Эдвард (1990). «Циклы B — О замене констант новыми переменными». Программирование в 1990-х годах . Монографии по информатике. Нью-Йорк: Springer. С. 149–194. doi :10.1007/978-1-4613-9706-9. ISBN 9781461397069. S2CID 1509875.