Лекции по СЯП (987656), страница 8
Текст из файла (страница 8)
F(b+8,F(b+7,F(b+6,F(b+5,F(b+4, b+4))))),
и далее мы получаем
F(b+8,F(b+7,F(b+6,F(b+5, if b+4=b+4 then b+4+1
else F(b+4,F(b+4–1,b+4+1)))))).
F(b+8,F(b+7,F(b+6,F(b+5,b+5))))
:
F(b+8,F(b+7,F(b+6,b+6)))
:
F(b+8,F(b+7,F(b+6,b+6)))
:
F(b+8,F(b+7,b+7))
:
F(b+8,b+8)
:
b+9
Таким образом, F(a,b) = F(b+8,b) = b+9 = a+1. Отсюда видно, что F(a,b) = a+1, если a b и a–b четно.
Итак, мы получили, что вычисление по программе Q дает функцию f3(x,y).
Примеры. 1) Рассмотрим функционал τ : F(N+,N+) F(N+,N+), определяемый как
τ[F](x) = if x = 0 then 1 else x•F(x–1).
Далее через ┴ будем обозначать не только неопределенное значение, но и всюду неопределенную функцию: ┴(х) =┴.
Имеем:
τ[┴](x) = if x=0 then 1 else x• ┴(х–1) = if x=0 then 1 else ┴
τ2[┴](х) = τ[τ[┴]](х) = if x=0 then 1 else x• τ[┴](х–1)
= if x=0 then 1 else x• (if x–1=0 then 1 else ┴)
= if x=0 then 1 else x• (if x=1 then 1 else ┴)
= if x=0 then 1 else (if x=1 then x else ┴)
= if x<2 then 1 else ┴ = if x<2 then x! else ┴.
Докажем индукцией, что 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
τk[┴](х) = if x<k then x! else ┴ .
Если это верно, то
τk+1[┴](х) = ττk[┴](х) = τ[τk[┴]](х)
= if x=0 then 1 else х• τk[┴](х–1)
= if x=0 then 1 else х• (if x –1<k then (x–1)! else ┴)
= if x=0 then 1 else (if x<k+1 then x! else ┴)
= if x<k+1 then x! else ┴ .
Ясно, что τk[┴] τk+1[┴]. Следовательно,
sup{τk[┴] | k = 0,1,2,…}(x) = x!
2) Возьмем оператор
τ[F](x,y) = if x=y then y+1 else F(x,F(x–1,y+1))
и найдем его наименьшую неподвижную точку.
τ[┴](x,y) = if x=y then y+1 else ┴(x,┴(x–1,y+1)) =
= if x=y then y+1 else ┴ =
= if x=y then x+1 else ┴.
τ2[┴](х) = τ[τ[┴]](x) = if x=y then y+1 else τ[┴](x,τ[┴](x–1,y+1)) =
= if x=y then y+1 else τ[┴](х, if x–1=y+1 then x–1+1 else ┴) =
= if x=y then y+1 else τ[┴](х, if x=y+2 then x else ┴) =
= if x=y then y+1 else if x=(if x=y+2 then x else ┴) then
x+1 else ┴ =
= if x=y then y+1 else if x=(if x=y+2 then y+2 else ┴) then
(if x=y+2 then y+3 else ┴) else ┴.
Рассмотрим условие x=(if x=y+2 then x else┴). Возможны два случая: (1) х=у+2 и (2) х у+2. В случае (1) получаем х = х, т.е. это условие истинно, а в случае (2) получаем х= ┴, т.е. это условие имеет значение ┴..Следовательно,
τ2[┴](х) = if x=y then y+1 else if x=y+2 then х+1 else ┴ =
= if (x=у) (x=y+2) then х+1 else ┴ .
Докажем индукцией по k, что
τk[┴](х,y) = if (x=у) (x=y+2)
…
(х=у+2(k –1)) then х+1 else ┴ .
Условие (x=у) (x=y+2)
…
(х=у+2(k –1)) в доказываемом равенстве запишем короче: V{x–y=2j | j < k}. Предполагая равенство
τk+1[┴](х,y) = if V{x–y=2j | j < k} then х+1 else ┴
верным, для k+1 будем иметь:
τk+1[┴](х,y) = τ[τk[┴]](х,y) =
= if x=у then y+1 else τ[┴](x,τk[┴](x–1,y+1)) =
= if x=у then y+1 else
τ[┴](x, if V{(x–1) – (y+1) =2j | j<k} then х–1+1 else ┴) =
= if x=у then y+1 else
τ[┴](x, if V{x–y =2(j+1) | j<k} then х else ┴) =
= if x=у then y+1 else
τ[┴](x, if V{ x–y =2j) | 0<j<k+1} then х else ┴) =
= if x=у then y+1 else if
x=(if V{x–y=2j | 0<j<k+1} then х else ┴)
then x+1 else ┴).
Рассмотрим условие x=(if V{x–y=2j | 0<j<k+1} then х else ┴).