Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семинарские занятия- общие рекомендации.doc
Скачиваний:
15
Добавлен:
18.11.2019
Размер:
231.42 Кб
Скачать

0 Иначе

  1. введем σ(x)=x 1

σ(0)=0

σ(x’)=(x+1) 1=x=U22

σ(x)=R0(U22)

  1. f(0,y)= 0 y=0

f(x’,y)=(x+1) y=x (y 1)

f(x,0)= x 0=x=U11

f(x,y’)= x (y+1)=(x y) 1=f(x,y) 1=σ(f(x,y))=σ(U13)=S13(σ,U13)

Ответ: f(x,y)=R2[U11, S13(R0(U22),U13)].

5. Знаковая функция

0 если x=0

Sgn(x)=

1 если x>0

f(x)=1 (1 x)

f(0)=0

f(x’)=1 (1 (x+1))=1=C12

Ответ: R0(C12).

6. Равенство

1 если x=y

Eql(x,y)=

0 Иначе

f(x,y)=1 [(x y)+(y x)]

f(0,y)=1 [(0 y)+(y 0)]=1 y= (1,y)= (C11,U11)=S21( ,C11,U11)

f(x’,y)=1 [((x+1) y)+(y (x+1))]=1 [(S(x) y)+(y S(x))]=1 [ (S(x),y), (y,S(x))]=

=1 [(S23( ,S(U23),U33),S23( ,U33,S(U23))]=

= [C13,S23(,S23( ,S(U23),U33),S23( ,U33,S(U23)))]=

=S23[ ,C13,S23(,S23( ,S(U23),U33),S23( ,U33,S(U23)))]

Ответ: f(x,y)=R2[S21( ,C11,U11),S23( ,C13,S23(,S23( ,S(U23),U33),S23( ,U33,S(U23))))].

7. Степень

f(x,y)=xy

f(x,0)=x0=1=C11

f(x,y’)=xy+1=f(x,y)x=Π(U13,U23)= S23[Π,U13,U23]

Ответ: f(x,y)=R2[C11,S23(Π,U13,U23)].

8. Модуль разности

x y если x>=y

Mod(x,y)=

y x иначе

9. Больше

1 если x>y

More(x,y)=

0 Иначе

10. Больше или равно

1 если x>=y

Moreql(x,y)=

0 Иначе

СЕМИНАР 12

Примитивная рекурсивность функций (продолжение).

1. Минимум

min(x,y)

Функцию минимума можно представить в виде

(здесь и далее знак ÷ означает псевдоразность).

2. Максимум

max(x,y)

Функцию максимума можно представить в виде

3. Остаток от деления аргумента x на 2.

rest2(x)

Докажем, что rest 2(x) – ПРФ.

rest2 (0) = 0

rest2 (x’) = 1, если rest2 (x)=0

0, если rest2 (x)=1

rest2 (x’) = unsg (rest2 (x)) = unsg (U21) = S21(unsg, U21),

где unsg – функция, возвращающая 1, если аргумент =0; 0 – иначе.

Схема примитивной рекурсии rest2 (x) = R0 [S21(unsg, U21)]

4. Целая часть от деления аргумента x на 2.

div2(x)

Докажем, что div2(x) – ПРФ.

d iv2(0) = 0

div2(x’) = div2(x) + mod2(x)

div2(x’) = div2(U22) + mod2(U22) = U21 + S21(mod2,U22) =

= S22 [,U21, S21(mod2,U22)]

Схема примитивной рекурсии div2(x) = R0 { S22 [,U21, S21(mod2,U22)]

Здесь и далее я буду опускать этап собственно построения примитивно-рекурсивных схем, полагая, что рисовать нужные индексы у суперпозиций не составляет особого труда. Признаком доказательства того, что функция - примитивно рекурсивная, будет являться выражение функции через другие функции (примитивная рекурсивность которых доказана ранее) и разрешенные базисом Клини операции.

5. Целая часть от деления аргумента X на y

div (x,y)

Чтобы иметь дело с всюду определенными функциями, дополнительно положим, что

div (x,0)=0.

Согласно определению, при y>0 число div (x,y) = n удовлетворяет соотношениям

ny<=x<(n+1)y.

Отсюда видно, что n равно числу нулей в последовательности

1y x, 2y x, … , ny x, … , xy x.

Поэтому для y>0 имеем формулу

div (x,y) = ∑ (unsg(iy x)) (i=1..x)

Непосредственная проверка показывает, что формула верна и при y=0. Так как функция (unsg(iy x)), стоящая под знаком суммы, примитивно рекурсивная, то на основании теоремы о суммировании заключаем, что функция div (x,y) примитивно рекурсивна.