102
Aritmetizacija 17.11.2011. (Teorija izraˇ cunljivosti) 17.11.2011. 1 / 31

Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

  • Upload
    others

  • View
    14

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Aritmetizacija

17.11.2011.

(Teorija izracunljivosti) 17.11.2011. 1 / 31

Page 2: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Pregled predavanja

1 Kodiranje programa

2 Kodiranje izracunavanja

3 Klinijeva teorema o normalnoj formi

(Teorija izracunljivosti) 17.11.2011. 2 / 31

Page 3: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Pregled predavanja

1 Kodiranje programa

2 Kodiranje izracunavanja

3 Klinijeva teorema o normalnoj formi

(Teorija izracunljivosti) 17.11.2011. 3 / 31

Page 4: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Naredbe RM-programa

Z(k), k ∈N+

[Rk := 0; isprazni registar Rk i predji na narednu instrukciju]Z(1), Z(2), Z(3), . . .

S(k), k ∈N+

[Rk := Rk + 1; sadrzaj registra Rk uvecaj za 1 i predji na narednuinstrukciju]S(1), S(2), S(3), . . .

T(k, `), k , ` ∈N+

[Rk := R`; sadrzaj registra Rk zameni sadrzajem registra R` (R` nemenjaj) i predji na narednu instrukciju]T(1,1), T(1,2), . . . , T(2,1), T(2,2), T(2,3), . . .

J(k , `,m), k, `,m ∈N+

[ako su sadrzaji registara Rk i R` jednaki predji na instrukciju broj m,a ako su razliciti predji na narednu instrukciju.]J(1,1,1), J(1,1,2), . . . , J(1,2,1), . . .

(Teorija izracunljivosti) 17.11.2011. 4 / 31

Page 5: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν(Z(k)) = 4(k−1)

ν(S(k)) = 4(k−1) + 1

ν(T(k , `)) = 4K2(k−1, `−1) + 2

ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3

(Teorija izracunljivosti) 17.11.2011. 5 / 31

Page 6: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν(Z(k)) = 4(k−1)

ν(S(k)) = 4(k−1) + 1

ν(T(k , `)) = 4K2(k−1, `−1) + 2

ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3

(Teorija izracunljivosti) 17.11.2011. 5 / 31

Page 7: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν(Z(k)) = 4(k−1)

ν(S(k)) = 4(k−1) + 1

ν(T(k , `)) = 4K2(k−1, `−1) + 2

ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3

(Teorija izracunljivosti) 17.11.2011. 5 / 31

Page 8: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν(Z(k)) = 4(k−1)

ν(S(k)) = 4(k−1) + 1

ν(T(k , `)) = 4K2(k−1, `−1) + 2

ν(J(k, `,m)) = 4K3(k−1, `−1,m−1) + 3

(Teorija izracunljivosti) 17.11.2011. 5 / 31

Page 9: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν :

(Z(1) Z(2) Z(3) Z(4) · · ·

0 4 8 12 · · ·

)

ν :

(S(1) S(2) S(3) S(4) · · ·

1 5 9 13 · · ·

)ν :

(T(1,1) T(1,2) T(2,1) T(1,3) · · ·

2 6 10 14 · · ·

)ν :

(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·

3 7 11 15 · · ·

)

(Teorija izracunljivosti) 17.11.2011. 6 / 31

Page 10: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν :

(Z(1) Z(2) Z(3) Z(4) · · ·

0 4 8 12 · · ·

)ν :

(S(1) S(2) S(3) S(4) · · ·

1 5 9 13 · · ·

)

ν :

(T(1,1) T(1,2) T(2,1) T(1,3) · · ·

2 6 10 14 · · ·

)ν :

(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·

3 7 11 15 · · ·

)

(Teorija izracunljivosti) 17.11.2011. 6 / 31

Page 11: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν :

(Z(1) Z(2) Z(3) Z(4) · · ·

0 4 8 12 · · ·

)ν :

(S(1) S(2) S(3) S(4) · · ·

1 5 9 13 · · ·

)ν :

(T(1,1) T(1,2) T(2,1) T(1,3) · · ·

2 6 10 14 · · ·

)

ν :

(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·

3 7 11 15 · · ·

)

(Teorija izracunljivosti) 17.11.2011. 6 / 31

Page 12: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje RM-naredbi

ν : Naredbe RM-programa→N

ν :

(Z(1) Z(2) Z(3) Z(4) · · ·

0 4 8 12 · · ·

)ν :

(S(1) S(2) S(3) S(4) · · ·

1 5 9 13 · · ·

)ν :

(T(1,1) T(1,2) T(2,1) T(1,3) · · ·

2 6 10 14 · · ·

)ν :

(J(1,1,1) J(1,1,2) J(1,2,1) J(1,1,3) · · ·

3 7 11 15 · · ·

)

(Teorija izracunljivosti) 17.11.2011. 6 / 31

Page 13: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

ν−1 :N→ Naredbe RM-programa

ν−1(x) =Z(κ(4,x) + 1), ρ(4,x) = 0,S(κ(4,x) + 1), ρ(4,x) = 1,T(κ2

1 (κ(4,x)) + 1,κ22 (κ(4,x)) + 1), ρ(4,x) = 2,

J(κ31 (κ(4,x)) + 1,κ3

2 (κ(4,x)) + 1,κ33 (κ(4,x)) + 1), ρ(4,x) = 3,

ν−1(x) =?

1) Odredi ρ(4,x) (ostatak pri deljenju x sa 4) (ovim je odredjen tipnaredbe)

2) U zavisnosti od tipa odredi parametre naredbe koristeci funkcije κ

(kolicnik), s (sledbenik) i Kantorove dekodirajuce funkcije κ21 , κ2

2 , κ31 , κ3

2 ,κ3

3

(Teorija izracunljivosti) 17.11.2011. 7 / 31

Page 14: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

ν−1 :N→ Naredbe RM-programa

ν−1(x) =Z(κ(4,x) + 1), ρ(4,x) = 0,S(κ(4,x) + 1), ρ(4,x) = 1,T(κ2

1 (κ(4,x)) + 1,κ22 (κ(4,x)) + 1), ρ(4,x) = 2,

J(κ31 (κ(4,x)) + 1,κ3

2 (κ(4,x)) + 1,κ33 (κ(4,x)) + 1), ρ(4,x) = 3,

ν−1(x) =?

1) Odredi ρ(4,x) (ostatak pri deljenju x sa 4) (ovim je odredjen tipnaredbe)

2) U zavisnosti od tipa odredi parametre naredbe koristeci funkcije κ

(kolicnik), s (sledbenik) i Kantorove dekodirajuce funkcije κ21 , κ2

2 , κ31 , κ3

2 ,κ3

3

(Teorija izracunljivosti) 17.11.2011. 7 / 31

Page 15: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Binarna reprezentacija broja

Svakom prirodnom broju x ∈N na jedinstven nacin pridruzujemo binarnizapis, tj. rec cncn−1 . . .c1c0 nad {0,1} takvu da je cn = 1 ukoliko je n > 0.

cn2n + cn−12n−1 + · · ·+ c121 + c020 = (cncn−1 . . .c1c0)2

c :N×N→{0,1}c(k ,x) =‘k-ta cifra binarnog zapisa broja x ’

c(k ,x) = ρ(2,κ(2k ,x))

(Teorija izracunljivosti) 17.11.2011. 8 / 31

Page 16: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Binarna reprezentacija broja

Svakom prirodnom broju x ∈N na jedinstven nacin pridruzujemo binarnizapis, tj. rec cncn−1 . . .c1c0 nad {0,1} takvu da je cn = 1 ukoliko je n > 0.

cn2n + cn−12n−1 + · · ·+ c121 + c020 = (cncn−1 . . .c1c0)2

c :N×N→{0,1}c(k ,x) =‘k-ta cifra binarnog zapisa broja x ’

c(k ,x) = ρ(2,κ(2k ,x))

(Teorija izracunljivosti) 17.11.2011. 8 / 31

Page 17: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Binarna reprezentacija broja

Teorema

(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)

d(x) = ‘Duzina binarnog zapisa broja x ’

= min{` ∈N | (∀k > `)c(k ,x) = 0)}

Teorema

(∀x ∈N+)d(x) 6 x

(Teorija izracunljivosti) 17.11.2011. 9 / 31

Page 18: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Binarna reprezentacija broja

Teorema

(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)

d(x) = ‘Duzina binarnog zapisa broja x ’

= min{` ∈N | (∀k > `)c(k ,x) = 0)}

Teorema

(∀x ∈N+)d(x) 6 x

(Teorija izracunljivosti) 17.11.2011. 9 / 31

Page 19: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Binarna reprezentacija broja

Teorema

(∀x ∈N)(∃` ∈N)(∀k ∈N)(k > `⇒ c(k ,x) = 0)

d(x) = ‘Duzina binarnog zapisa broja x ’

= min{` ∈N | (∀k > `)c(k ,x) = 0)}

Teorema

(∀x ∈N+)d(x) 6 x

(Teorija izracunljivosti) 17.11.2011. 9 / 31

Page 20: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje konacnih nizova duzine bar 1

Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1

Teorema

d·e :Nfin1−1−→na N

Primer

d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1

= 21 + 24 + 25 + 27−1

= 177

(Teorija izracunljivosti) 17.11.2011. 10 / 31

Page 21: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje konacnih nizova duzine bar 1

Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1

Teorema

d·e :Nfin1−1−→na N

Primer

d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1

= 21 + 24 + 25 + 27−1

= 177

(Teorija izracunljivosti) 17.11.2011. 10 / 31

Page 22: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje konacnih nizova duzine bar 1

Nfin - skup konacnih nizova nad N koji su duzine bar 1d·e :Nfin→Nda1,a2, . . . ,ane= 2a1 + 2a1+a2+1 + · · ·+ 2a1+a2+···+an+n−1−1, n > 1

Teorema

d·e :Nfin1−1−→na N

Primer

d1,2,0,1e = 21 + 21+2+1 + 21+2+0+2 + 21+2+0+1+3−1

= 21 + 24 + 25 + 27−1

= 177

(Teorija izracunljivosti) 17.11.2011. 10 / 31

Page 23: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 24: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 25: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 26: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 27: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 28: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

Primer

d?e= 371

1. Nadji binarni zapis broja 371 + 1 = 372

372 = (101110100)2

= 1 ·28 + 0 ·27 + 1 ·26 + 1 ·25 + 1 ·24 + 0 ·23 + 1 ·22 + 0 ·21 + 0 ·20

371 = 22 + 24 + 25 + 26 + 28−1.Dakle, duzina niza ciji je kod 371 jednaka je 5.

2. 371 = 22 + 22+x+1 + 22+x+y+2 + 22+x+y+z+3 + 22+x+y+z+u+4−1

371 = 22 + 22+1+1 + 22+1+0+2 + 22+1+0+0+3 + 22+1+0+0+1+4−1

Dakle, d2,1,0,0,1e= 371

(Teorija izracunljivosti) 17.11.2011. 11 / 31

Page 29: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 30: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 31: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 32: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).

2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 33: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.

3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1....

n. Poslednji clan niza ciji je kod x jea(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 34: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 35: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...

n. Poslednji clan niza ciji je kod x jea(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.

(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 36: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Dekodiranje

d?e= x

1. Odrediti najpre duzinu niza ciji je kod x :

lenght(x) = ∑k6x c(k ,x + 1) = ∑k6x ρ(2,κ(2k ,x + 1))[Primetimo da je c(k,x + 1) = 0, za k > x .]

2. b(k ,x) =

{(µ i 6 x)

(∑j6i c(j ,x + 1) = k

), 1 6 k 6 lenght(x),

0, inace.

Ako je lenght(x) = n, onda je• 0 6 b(1,x) < b(2,x) < .. . < b(n,x), i• x = 2b(1,x) + 2b(2,x) + · · ·+ 2b(n,x)−1.

1. Prvi clan niza ciji je kod x je a(1,x) = b(1,x).2. Drugi clan niza ciji je kod x je a(2,x) = b(2,x)−b(1,x)−1.3. Treci clan niza ciji je kod x je a(3,x) = b(3,x)−b(2,x)−1.

...n. Poslednji clan niza ciji je kod x je

a(lenght(x),x) = b(lenght(x),x)−b(lenght(x)−1,x)−1.(Teorija izracunljivosti) 17.11.2011. 12 / 31

Page 37: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.

π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e

Primer

P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?

ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22

π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1

= 35184376291329

(Teorija izracunljivosti) 17.11.2011. 13 / 31

Page 38: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.

π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e

Primer

P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?

ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22

π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1

= 35184376291329

(Teorija izracunljivosti) 17.11.2011. 13 / 31

Page 39: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.

π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e

Primer

P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?

ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22

π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1

= 35184376291329

(Teorija izracunljivosti) 17.11.2011. 13 / 31

Page 40: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Program je P je svaki konacan niz instrukcija I1,I2, . . . ,In, n > 1.

π : Programi→Nπ(P) = π(I1,I2, . . . ,In) = dν(I1),ν(I2), . . . ,ν(In)e

Primer

P = (S(1),J(1,2,1),Z(3),T(3,1))π(P) =?

ν(S(1)) = 1, ν(J(1,2,1)) = 11, ν(Z(3)) = 8, ν(T(3,1)) = 22

π(P) = dν(S(1)),ν(J(1,2,1)),ν(Z(3)),ν(T(3,1))e= d1,11,8,22e= 21 + 21+11+1 + 21+11+8+2 + 21+11+8+22+3−1

= 35184376291329

(Teorija izracunljivosti) 17.11.2011. 13 / 31

Page 41: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 42: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 8287

8287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 43: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1

d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 44: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 8287

2.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 45: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 46: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodiranje programa

Primer

π(?) = 8287

1. d?e= 82878287 = 25 + 26 + 213−1 = 25 + 25+0+1 + 25+0+6+2−1d5,0,6e= 82872.ν−1(5) = ν−1(4 · (2−1) + 1) = S(2)ν−1(0) = · · ·= Z(1)ν−1(6) = · · ·= T(1,2)

P = S(2),Z(1),T(1,2), π(P) = 8287

(Teorija izracunljivosti) 17.11.2011. 14 / 31

Page 47: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodovi programa

Svakom programu P pridruzujemo njegov kod π(P).

Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .

Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu

aritmeticku funkciju f(k)P duzine k takvu da je

dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}

i za svako ~x ∈ dom(f(k)P )

f(k)P (~x) = y ⇔ P(~x) ↓ y .

(Teorija izracunljivosti) 17.11.2011. 15 / 31

Page 48: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodovi programa

Svakom programu P pridruzujemo njegov kod π(P).

Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .

Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu

aritmeticku funkciju f(k)P duzine k takvu da je

dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}

i za svako ~x ∈ dom(f(k)P )

f(k)P (~x) = y ⇔ P(~x) ↓ y .

(Teorija izracunljivosti) 17.11.2011. 15 / 31

Page 49: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodovi programa

Svakom programu P pridruzujemo njegov kod π(P).

Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .

Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu

aritmeticku funkciju f(k)P duzine k takvu da je

dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}

i za svako ~x ∈ dom(f(k)P )

f(k)P (~x) = y ⇔ P(~x) ↓ y .

(Teorija izracunljivosti) 17.11.2011. 15 / 31

Page 50: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Kodovi programa

Svakom programu P pridruzujemo njegov kod π(P).

Svaki prirodan broj e je kod tacno jednog programa, tj. za svakiprirodan broj e postoji jedinstven program P takav da je π(P) = e.Jedinstveni program ciji je kod e oznacavacemo sa Pe .

Svaki program P za fiksirani prirodan broj k > 1, definice jedinstvenu

aritmeticku funkciju f(k)P duzine k takvu da je

dom(f(k)P ) = {~x ∈Nk | P(~x) ↓}

i za svako ~x ∈ dom(f(k)P )

f(k)P (~x) = y ⇔ P(~x) ↓ y .

(Teorija izracunljivosti) 17.11.2011. 15 / 31

Page 51: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Definicija

Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija

duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .

Napomena

Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)

moze da bude ϕ(k)e1 = ϕ

(k)e2 .

Definicija

Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.

indeks funkcije f ) takav da je f ' ϕ(k)e .

(Teorija izracunljivosti) 17.11.2011. 16 / 31

Page 52: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Definicija

Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija

duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .

Napomena

Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)

moze da bude ϕ(k)e1 = ϕ

(k)e2 .

Definicija

Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.

indeks funkcije f ) takav da je f ' ϕ(k)e .

(Teorija izracunljivosti) 17.11.2011. 16 / 31

Page 53: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje programa

Definicija

Za svaki prirodan broj e i svaki k > 1, neka je ϕ(k)e aritmeticka funkcija

duzine k cije vrednosti izracunava program Pe . Umesto ϕ(1)e pisacemo ϕe .

Napomena

Ako je e1 6= e2, tada je Pe1 6= Pe2 , medjutim za neko k (moguce i za svako)

moze da bude ϕ(k)e1 = ϕ

(k)e2 .

Definicija

Za svaku RM-izracunljivu funkciju f duzine k postoji prirodan broj e (tzv.

indeks funkcije f ) takav da je f ' ϕ(k)e .

(Teorija izracunljivosti) 17.11.2011. 16 / 31

Page 54: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Pregled predavanja

1 Kodiranje programa

2 Kodiranje izracunavanja

3 Klinijeva teorema o normalnoj formi

(Teorija izracunljivosti) 17.11.2011. 17 / 31

Page 55: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je

Φ(k)U (e,~x)' ϕ

(k)e (~x).

Umesto Φ(1)U pisacemo ΦU.

Da li je (za svako k) funkcija Φ(k)U izracunljiva?

Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.

(Teorija izracunljivosti) 17.11.2011. 18 / 31

Page 56: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je

Φ(k)U (e,~x)' ϕ

(k)e (~x).

Umesto Φ(1)U pisacemo ΦU.

Da li je (za svako k) funkcija Φ(k)U izracunljiva?

Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.

(Teorija izracunljivosti) 17.11.2011. 18 / 31

Page 57: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za k > 1, neka je Φ(k)U aritmeticka funkcija duzine k + 1 definisana sa je

Φ(k)U (e,~x)' ϕ

(k)e (~x).

Umesto Φ(1)U pisacemo ΦU.

Da li je (za svako k) funkcija Φ(k)U izracunljiva?

Oslanjajuci se na intuitivno shvacenu izracunljivost, odgovor je ‘DA’.

(Teorija izracunljivosti) 17.11.2011. 18 / 31

Page 58: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 59: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 60: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 61: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 62: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 63: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).

2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 64: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 65: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 66: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Primer

Izracunajmo Φ(2)U (24,17,15).

1 Prva koordinata ulaza – broj 24 je zapravo kod programa P24, a

2 preostale koordinate (17,15) su ulaz za program P24.

1. Nadji program P24.

24 = 20 + 23 + 24−1 = 20 + 20+2+1 + 20+2+0+2−1

P24 = Z(1),T(1,1),Z(1).2. Simuliraj izvrsavanje programa P24 na registar masini za ulaz (17,15).

P24(17,15) ↓ 0.

Φ(2)U (24,17,15) = 0

(Teorija izracunljivosti) 17.11.2011. 19 / 31

Page 67: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Teorema

Za svako k > 1 funkcija Φ(k)U je izracunljiva.

Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?

Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’

b(i ,e) =

{(µ j 6 e)

(∑`6j ρ(2,κ(2`,e + 1)) = i

), 1 6 i 6 lenght(e),

0, inace.

instr(i ,e) =

{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),

0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)

.(b(i ,e) + 1), i > 1.

(Teorija izracunljivosti) 17.11.2011. 20 / 31

Page 68: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Teorema

Za svako k > 1 funkcija Φ(k)U je izracunljiva.

Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?

Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’

b(i ,e) =

{(µ j 6 e)

(∑`6j ρ(2,κ(2`,e + 1)) = i

), 1 6 i 6 lenght(e),

0, inace.

instr(i ,e) =

{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),

0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)

.(b(i ,e) + 1), i > 1.

(Teorija izracunljivosti) 17.11.2011. 20 / 31

Page 69: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Teorema

Za svako k > 1 funkcija Φ(k)U je izracunljiva.

Dokaz. Neka je k > 1 fiksiran prirodan broj. Φ(k)U (e,~x) =?

Nadji program ciji je kod e.lenght(e) = ∑i6e ρ(2,κ(2i ,e + 1)) =‘broj komandi programa Pe ’

b(i ,e) =

{(µ j 6 e)

(∑`6j ρ(2,κ(2`,e + 1)) = i

), 1 6 i 6 lenght(e),

0, inace.

instr(i ,e) =

{kod i-te instrukcije programa Pe , 1 6 i 6 lenght(e),

0, inace.instr(e,0) = 0,instr(e,1) = b(1,e),instr(e, i + 1) = b(i + 1,e)

.(b(i ,e) + 1), i > 1.

(Teorija izracunljivosti) 17.11.2011. 20 / 31

Page 70: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x

Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.

Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1).

Napomena

Broj px11 · · ·p

xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a

broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .

Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.

(Teorija izracunljivosti) 17.11.2011. 21 / 31

Page 71: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x

Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.

Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1).

Napomena

Broj px11 · · ·p

xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a

broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .

Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.

(Teorija izracunljivosti) 17.11.2011. 21 / 31

Page 72: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x

Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.

Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1).

Napomena

Broj px11 · · ·p

xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a

broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .

Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.

(Teorija izracunljivosti) 17.11.2011. 21 / 31

Page 73: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Simuliraj izracunavanje registar masine po programu Pe za ulaz ~x

Stanje izracunavanja posle t karaka odredjeno je trenutnim sadrzajemregistara i redim brojem (u programu Pe) instrukcije koju treba izvrsiti unarednom koraku. U nastavku cemo kodirati stanja izracunavanja uzavisnosti od broja koraka t.

Za kod pocetnog stanja (posle 0 koraka izracunavanja) uzimamo:σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1).

Napomena

Broj px11 · · ·p

xkk predstavlja kod sadrzaja registara u pocetnom trenutku, a

broj 1 oznacava da u narednom koraku treba izvrsiti 1. instrukcijuprograma Pe .

Treba definisati vrednosti σk(e,~x , t) za t > 0, koje ce predstavljati kodovestanja izracunavanja registar masine po programu Pe za ulaz ~x nakontacno t koraka.

(Teorija izracunljivosti) 17.11.2011. 21 / 31

Page 74: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk

(k > 1) upisan broj (c)k .

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

c = p(c)1

1 · · ·p(c)k

k · · · Z(k)−→ c ′ = c : p(c)k

k = p(c)1

1 · · ·p0k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · S(k)−→ c ′ = c ·pk = p(c)1

1 · · ·p(c)k+1k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · T(k,`)−→ c ′ = (c : p(c)k

k ) ·p(c)`

k = p(c)1

1 · · ·p(c)`

k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · J(m,n,`)−→ c ′ = c = p(c)1

1 · · ·p(c)k

k · · ·

(Teorija izracunljivosti) 17.11.2011. 22 / 31

Page 75: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk

(k > 1) upisan broj (c)k .

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

c = p(c)1

1 · · ·p(c)k

k · · · Z(k)−→ c ′ = c : p(c)k

k = p(c)1

1 · · ·p0k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · S(k)−→ c ′ = c ·pk = p(c)1

1 · · ·p(c)k+1k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · T(k,`)−→ c ′ = (c : p(c)k

k ) ·p(c)`

k = p(c)1

1 · · ·p(c)`

k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · J(m,n,`)−→ c ′ = c = p(c)1

1 · · ·p(c)k

k · · ·

(Teorija izracunljivosti) 17.11.2011. 22 / 31

Page 76: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk

(k > 1) upisan broj (c)k .

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

c = p(c)1

1 · · ·p(c)k

k · · · Z(k)−→ c ′ = c : p(c)k

k = p(c)1

1 · · ·p0k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · S(k)−→ c ′ = c ·pk = p(c)1

1 · · ·p(c)k+1k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · T(k,`)−→ c ′ = (c : p(c)k

k ) ·p(c)`

k = p(c)1

1 · · ·p(c)`

k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · J(m,n,`)−→ c ′ = c = p(c)1

1 · · ·p(c)k

k · · ·

(Teorija izracunljivosti) 17.11.2011. 22 / 31

Page 77: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk

(k > 1) upisan broj (c)k .

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

c = p(c)1

1 · · ·p(c)k

k · · · Z(k)−→ c ′ = c : p(c)k

k = p(c)1

1 · · ·p0k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · S(k)−→ c ′ = c ·pk = p(c)1

1 · · ·p(c)k+1k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · T(k,`)−→ c ′ = (c : p(c)k

k ) ·p(c)`

k = p(c)1

1 · · ·p(c)`

k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · J(m,n,`)−→ c ′ = c = p(c)1

1 · · ·p(c)k

k · · ·

(Teorija izracunljivosti) 17.11.2011. 22 / 31

Page 78: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Svaki broj c > 1 je kod sadrzaja registara pri cemu je u registru Rk

(k > 1) upisan broj (c)k .

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

c = p(c)1

1 · · ·p(c)k

k · · · Z(k)−→ c ′ = c : p(c)k

k = p(c)1

1 · · ·p0k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · S(k)−→ c ′ = c ·pk = p(c)1

1 · · ·p(c)k+1k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · T(k,`)−→ c ′ = (c : p(c)k

k ) ·p(c)`

k = p(c)1

1 · · ·p(c)`

k · · ·

c = p(c)1

1 · · ·p(c)k

k · · · J(m,n,`)−→ c ′ = c = p(c)1

1 · · ·p(c)k

k · · ·

(Teorija izracunljivosti) 17.11.2011. 22 / 31

Page 79: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

regs(c ,x) =‘kod konfiguracije koja se dobija primenom instrukcije ciji jekod x na konfiguraciju ciji je kod c ’

regs(c ,x) =

κ

(p

(c)κ(4,x)+1

κ(4,x)+1 ,c)

, ρ(4,x) = 0,

pκ(4,x)+1 · c , ρ(4,x) = 1,

κ

(p

(c)κ2

1 (κ(4,x))+1

κ21 (κ(4,x))+1

,p(c)

κ22 (κ(4,x))+1

κ21 (κ(4,x))+1

· c)

, ρ(4,x) = 2,

c , ρ(4,x) = 3.

(Teorija izracunljivosti) 17.11.2011. 23 / 31

Page 80: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

next(c ,x , i) =‘broj naredne instrukcije nakon primene instrukcije ciji je kodx i koja je u programu i-ta po redu na registre ciji je sadrzaj kodiran sa c ’,ako je i > 0,next(c ,x , i) = 0, ako je i = 0.

next(c ,x , i) =

0, i = 0,i + 1, ρ(4,x) 6= 3∧ i > 0,i + 1, ρ(4,x) = 3∧ i > 0∧

∧(c)κ31 (κ(4,x))+1 6= (c)κ3

2 (κ(4,x))+1,

κ33 (κ(4,x)) + 1, ρ(4,x) = 3∧ i > 0∧

∧(c)κ31 (κ(4,x))+1 = (c)κ3

2 (κ(4,x))+1.

(Teorija izracunljivosti) 17.11.2011. 24 / 31

Page 81: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .

REGS(e,σ) =

{regs(κ2

1 (σ), instr(e,κ22 (σ))), 1 6 κ2

2 (σ) 6 lenght(e),κ2

1 (σ), inace.

NEXT(e,σ) ={next(κ2

1 (σ), instr(e,κ22 (σ)),κ2

2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.

(Teorija izracunljivosti) 17.11.2011. 25 / 31

Page 82: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .

REGS(e,σ) =

{regs(κ2

1 (σ), instr(e,κ22 (σ))), 1 6 κ2

2 (σ) 6 lenght(e),κ2

1 (σ), inace.

NEXT(e,σ) ={next(κ2

1 (σ), instr(e,κ22 (σ)),κ2

2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.

(Teorija izracunljivosti) 17.11.2011. 25 / 31

Page 83: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Kod stanja izracunavanja – σ = K2(c ,x) – u kome je kod sadrzajaregistara jednak c i kod naredne instrukcije jednak x .

REGS(e,σ) =

{regs(κ2

1 (σ), instr(e,κ22 (σ))), 1 6 κ2

2 (σ) 6 lenght(e),κ2

1 (σ), inace.

NEXT(e,σ) ={next(κ2

1 (σ), instr(e,κ22 (σ)),κ2

2 (σ)), ako je ovaj broj 6 lenght(e),0, inace.

(Teorija izracunljivosti) 17.11.2011. 25 / 31

Page 84: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

{σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1)

σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))

Ako se izracunavanje Pe(~x), onda se to desava posle

µt(κ22 (σk(e,~x , t)) = 0)

koraka i kod zavrsne konfiguracije je

κ21 (σk(e,~x ,µt(κ

22 (σk(e,~x , t)) = 0))).

Φ(k)U (e,~x) = (κ2

1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1

Φ(k)U je izracunljiva funkcija.

(Teorija izracunljivosti) 17.11.2011. 26 / 31

Page 85: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

{σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1)

σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))

Ako se izracunavanje Pe(~x), onda se to desava posle

µt(κ22 (σk(e,~x , t)) = 0)

koraka i kod zavrsne konfiguracije je

κ21 (σk(e,~x ,µt(κ

22 (σk(e,~x , t)) = 0))).

Φ(k)U (e,~x) = (κ2

1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1

Φ(k)U je izracunljiva funkcija.

(Teorija izracunljivosti) 17.11.2011. 26 / 31

Page 86: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

{σk(e,~x ,0) = K2(px1

1 · · ·pxkk ,1)

σk(e,~x , t + 1) = K2(REGS(e,σk(e,~x , t)),NEXT(e,σk(e,~x , t)))

Ako se izracunavanje Pe(~x), onda se to desava posle

µt(κ22 (σk(e,~x , t)) = 0)

koraka i kod zavrsne konfiguracije je

κ21 (σk(e,~x ,µt(κ

22 (σk(e,~x , t)) = 0))).

Φ(k)U (e,~x) = (κ2

1 (σk(e,~x ,µt(κ22 (σk(e,~x , t)) = 0))))1

Φ(k)U je izracunljiva funkcija.

(Teorija izracunljivosti) 17.11.2011. 26 / 31

Page 87: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Napomena

Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.

Posledica

Svaka RM-izracunljiva funkcija je izracunljiva.

Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada

je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :

ψ(~x)' Φ(k)U (e,~x).

(Teorija izracunljivosti) 17.11.2011. 27 / 31

Page 88: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Napomena

Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.

Posledica

Svaka RM-izracunljiva funkcija je izracunljiva.

Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada

je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :

ψ(~x)' Φ(k)U (e,~x).

(Teorija izracunljivosti) 17.11.2011. 27 / 31

Page 89: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Napomena

Moguca su i drugacija kodiranja. Izbor kodiranja nije od sustinskogznacaja, vec da ono postoji.

Posledica

Svaka RM-izracunljiva funkcija je izracunljiva.

Dokaz. Neka je ψ proizvoljna k-arna RM-izracunljiva funkcija. Tadapostoji program P koji izracunava njene vrednosti. Neka je π(P) = e. Tada

je (ψ(~x)' ϕ(k)e (~x)) za svako ~x ∈Nk :

ψ(~x)' Φ(k)U (e,~x).

(Teorija izracunljivosti) 17.11.2011. 27 / 31

Page 90: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu

numereciju svih k-arnih izracunljivih funkcija

jer:

za svako e, ϕ(k)e je k-arna izracunljiva funkcija,

za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je

ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,

postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve

~x ∈Nk :Φ

(k)U (e,~x) = ϕ

(k)e (~x).

(Teorija izracunljivosti) 17.11.2011. 28 / 31

Page 91: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu

numereciju svih k-arnih izracunljivih funkcija jer:

za svako e, ϕ(k)e je k-arna izracunljiva funkcija,

za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je

ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,

postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve

~x ∈Nk :Φ

(k)U (e,~x) = ϕ

(k)e (~x).

(Teorija izracunljivosti) 17.11.2011. 28 / 31

Page 92: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu

numereciju svih k-arnih izracunljivih funkcija jer:

za svako e, ϕ(k)e je k-arna izracunljiva funkcija,

za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je

ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,

postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve

~x ∈Nk :Φ

(k)U (e,~x) = ϕ

(k)e (~x).

(Teorija izracunljivosti) 17.11.2011. 28 / 31

Page 93: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Za svako k > 1, niz funkcija ϕ(k)e , e ∈N, predstavlja efektivnu

numereciju svih k-arnih izracunljivih funkcija jer:

za svako e, ϕ(k)e je k-arna izracunljiva funkcija,

za svaku k-arnu izracunljivu funkciju ψ postoji e takav da je

ψ(~x)' ϕ(k)e (~x), za sve ~x ∈Nk ,

postoji k + 1-arna izracunljiva funkcija Φ(k)U takva da je za sve e i sve

~x ∈Nk :Φ

(k)U (e,~x) = ϕ

(k)e (~x).

(Teorija izracunljivosti) 17.11.2011. 28 / 31

Page 94: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Posledice

Za svaki k > 1 predikat definisan sa

Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’

je primitivno rekurzivan.

Za svaki k > 1 predikat definisan sa

Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’

je primitivno rekurzivan.

Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2

1 (σk(e,~x , t)))1 = y

Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0

(Teorija izracunljivosti) 17.11.2011. 29 / 31

Page 95: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Posledice

Za svaki k > 1 predikat definisan sa

Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’

je primitivno rekurzivan.

Za svaki k > 1 predikat definisan sa

Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’

je primitivno rekurzivan.

Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2

1 (σk(e,~x , t)))1 = y

Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0

(Teorija izracunljivosti) 17.11.2011. 29 / 31

Page 96: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Posledice

Za svaki k > 1 predikat definisan sa

Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’

je primitivno rekurzivan.

Za svaki k > 1 predikat definisan sa

Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’

je primitivno rekurzivan.

Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2

1 (σk(e,~x , t)))1 = y

Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0

(Teorija izracunljivosti) 17.11.2011. 29 / 31

Page 97: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Posledice

Za svaki k > 1 predikat definisan sa

Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’

je primitivno rekurzivan.

Za svaki k > 1 predikat definisan sa

Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’

je primitivno rekurzivan.

Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2

1 (σk(e,~x , t)))1 = y

Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0

(Teorija izracunljivosti) 17.11.2011. 29 / 31

Page 98: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Kodiranje izracunavanja

Posledice

Za svaki k > 1 predikat definisan sa

Sk(e,~x ,y , t) ⇔ ‘Pe(~x) ↓ y za t ili manje koraka’

je primitivno rekurzivan.

Za svaki k > 1 predikat definisan sa

Hk(e,~x , t) ⇔ ‘Pe(~x) ↓ za t ili manje koraka’

je primitivno rekurzivan.

Dokaz. Sk(e,~x ,y , t) ⇔ κ22 (σk(e,~x , t)) = 0∧ (κ2

1 (σk(e,~x , t)))1 = y

Hk(e,~x , t) ⇔ κ22 (σk(e,~x , t)) = 0

(Teorija izracunljivosti) 17.11.2011. 29 / 31

Page 99: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Klinijeva teorema o normalnoj formi

Pregled predavanja

1 Kodiranje programa

2 Kodiranje izracunavanja

3 Klinijeva teorema o normalnoj formi

(Teorija izracunljivosti) 17.11.2011. 30 / 31

Page 100: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Klinijeva teorema o normalnoj formi

Klinijeva teorema o normalnoj formi

Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da

~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),

ϕ(k)e (~x)' U(µzTk(e,~x ,z)).

Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2

1 (z),κ22 (z))

U(z)def=(z)1

(Teorija izracunljivosti) 17.11.2011. 31 / 31

Page 101: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Klinijeva teorema o normalnoj formi

Klinijeva teorema o normalnoj formi

Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da

~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),

ϕ(k)e (~x)' U(µzTk(e,~x ,z)).

Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2

1 (z),κ22 (z))

U(z)def=(z)1

(Teorija izracunljivosti) 17.11.2011. 31 / 31

Page 102: Aritmetizacija - matf.bg.ac.rs · Kodiranje programa Pregled predavanja 1 Kodiranje programa 2 Kodiranje izra cunavanja 3 Klinijeva teorema o normalnoj formi (Teorija izra cunljivosti)

Klinijeva teorema o normalnoj formi

Klinijeva teorema o normalnoj formi

Postoji unarna primitivno rekurzivna funkcija U i za svako k > 1 primitivnorekurzivna relacija Tk(e,~x ,z) koja je k + 2-arna, takve da

~x ∈ dom(ϕ(k)e ) ⇔ (∃z)Tk(e,~x ,z),

ϕ(k)e (~x)' U(µzTk(e,~x ,z)).

Dokaz. Tk(e,~x ,z)def⇔Sk(e,~x ,κ2

1 (z),κ22 (z))

U(z)def=(z)1

(Teorija izracunljivosti) 17.11.2011. 31 / 31