Для Церкви, кодирующей N
натуральных чисел, можно определить принцип рекурсии nat_rec
:
Definition N : Type :=
forall (X:Type), X->(X->X)->X.
Definition nat_rec (z:N)(s:N->N)(n:N) : N :=
n N z s.
Каков принцип рекурсии equal_rec
для следующей церковной кодировки equal
равенства?
Definition equal (x:A) : A->Type :=
fun x' => forall (P:A->Type), P x -> P x'.
Definition equal_rec (* ... *)