Здравствуйте! Помогите решить задачу!
Язык элементарной арифметики предназначен для записи утверждений о натуральных числах. (включая ноль).
Сигнатура такого языка содержит:
функциональные символы(операции)
и предикатный символ

.
Степень означает количество принимаемых аргументов.

означает увеличение числа на 1. Остальные символы используются в привычной нам интерпретации.
(Возможно я описал арифметику Пеано, но я не уверен)
Кроме того, дана функция(двухместный предикат) Геделя -

, такая, что для произвольного(конечного) множества

найдется такое

, что

будет истиной для любого

в

. (кодируем любые последовательности одним числом)
На таком языке можно описать, например, следующие предикаты.





Теперь нам дали следующую операцию:

Нужно найти операции fst, snd такие что

.
Я попытался построить похожие операции: isFst, isSnd, но очевидно, что они не подходят под определение выше(отличаются арностью).


Подскажите, может быть я что-то упускаю, и есть какой-то трюк который превращает предикат в операцию?