Здравствуйте! Помогите решить задачу!
Язык элементарной арифметики предназначен для записи утверждений о натуральных числах. (включая ноль).
Сигнатура такого языка содержит:
функциональные символы(операции)
и предикатный символ
.
Степень означает количество принимаемых аргументов.
означает увеличение числа на 1. Остальные символы используются в привычной нам интерпретации.
(Возможно я описал арифметику Пеано, но я не уверен)
Кроме того, дана функция(двухместный предикат) Геделя -
, такая, что для произвольного(конечного) множества
найдется такое
, что
будет истиной для любого
в
. (кодируем любые последовательности одним числом)
На таком языке можно описать, например, следующие предикаты.
Теперь нам дали следующую операцию:
Нужно найти операции fst, snd такие что
.
Я попытался построить похожие операции: isFst, isSnd, но очевидно, что они не подходят под определение выше(отличаются арностью).
Подскажите, может быть я что-то упускаю, и есть какой-то трюк который превращает предикат в операцию?