Есть ли четкий способ найти термины в лямбда-исчислении? Например, предположим, что у нас есть конструктор пары
pair = λa. λb. λf. f a b
и у нас есть конструктор fst
fst = λp. p (λa. λb. a)
который возвращает первый элемент пары, теперь мы должны определить конструктор snd
, который возвращает второй элемент пары. Я пришел, чтобы определить это так
snd = λp. p (λa. λb. b)
с snd (pair a b) = b
.
snd можно определить также как
snd = λp. p (λb. λa. b)
,
вопрос в том, есть ли четкий способ определения новых конструкторов?
Как человек должен думать, когда мне нужно определить конструкторы, и как я могу проверить правильность моего ответа, когда меня просят определить новые конструкторы.