partial recursive functions - cl.cam.ac.uk · function", which maps ... in other words, the...
TRANSCRIPT
![Page 1: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/1.jpg)
Partial Recursive Functions
Computation Theory , L 8 101/171
![Page 2: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/2.jpg)
AimA more abstract, machine-independent description of thecollection of computable partial functions than providedby register/Turing machines:
they form the smallest collection of partialfunctions containing some basic functions andclosed under some fundamental operations forforming new functions from old—composition,primitive recursion and minimization.
The characterization is due to Kleene (1936), building on work ofGödel and Herbrand.
Computation Theory , L 8 102/171
![Page 3: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/3.jpg)
Examples of recursive definitions!
f1(0) ! 0
f1(x + 1) ! f1(x) + (x + 1)f1(x) = sum of0, 1, 2, . . . , x
Computation Theory , L 8 103/169
![Page 4: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/4.jpg)
Examples of recursive definitions!
f1(0) ! 0
f1(x + 1) ! f1(x) + (x + 1)f1(x) = sum of0, 1, 2, . . . , x
"
#$
#%
f2(0) ! 0
f2(1) ! 1
f2(x + 2) ! f2(x) + f2(x + 1)
f2(x) = xth Fibonaccinumber
Computation Theory , L 8 103/169
![Page 5: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/5.jpg)
Examples of recursive definitions!
f1(0) ! 0
f1(x + 1) ! f1(x) + (x + 1)f1(x) = sum of0, 1, 2, . . . , x
"
#$
#%
f2(0) ! 0
f2(1) ! 1
f2(x + 2) ! f2(x) + f2(x + 1)
f2(x) = xth Fibonaccinumber
!
f3(0) ! 0
f3(x + 1) ! f3(x + 2) + 1f3(x) undefined exceptwhen x = 0
Computation Theory , L 8 103/169
![Page 6: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/6.jpg)
Examples of recursive definitions!
f1(0) ! 0
f1(x + 1) ! f1(x) + (x + 1)f1(x) = sum of0, 1, 2, . . . , x
"
#$
#%
f2(0) ! 0
f2(1) ! 1
f2(x + 2) ! f2(x) + f2(x + 1)
f2(x) = xth Fibonaccinumber
!
f3(0) ! 0
f3(x + 1) ! f3(x + 2) + 1f3(x) undefined exceptwhen x = 0
f4(x) ! if x > 100 then x" 10else f4( f4(x + 11))
f4 is McCarthy’s "91function", which mapsx to 91 if x # 100 andto x" 10 otherwise
Computation Theory , L 8 103/169
![Page 7: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/7.jpg)
Primitive recursionTheorem. Given f ! Nn
!N and g ! Nn+2!N,
there is a unique h ! Nn+1!N satisfying
!
h("x, 0) " f ("x)
h("x, x + 1) " g("x, x, h("x, x))
for all "x ! Nn and x ! N.
We write !n( f , g) for h and call it the partial functiondefined by primitive recursion from f and g.
Computation Theory , L 8 104/171
![Page 8: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/8.jpg)
Primitive recursionTheorem. Given f ! Nn
!N and g ! Nn+2!N,
there is a unique h ! Nn+1!N satisfying
(#)
!
h("x, 0) " f ("x)
h("x, x + 1) " g("x, x, h("x, x))
for all "x ! Nn and x ! N.
Proof (sketch). Existence: the seth ! {("x, x, y) ! Nn+2 | $y0, y1, . . . , yx
f ("x) = y0 % ("x&1
i=0 g("x, i, yi) = yi+1)% yx = y}defines a partial function satisfying (#).
Uniqueness: if h and h' both satisfy (#), then one can prove byinduction on x that ("x (h("x, x) = h'("x, x)).Computation Theory , L 8 105/171
![Page 9: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/9.jpg)
Example: addition
Addition add ! N2!N satisfies:
!
add(x1, 0) " x1
add(x1, x + 1) " add(x1, x) + 1
So add = !1( f , g) where
!
f (x1) ! x1
g(x1, x2, x3) ! x3 + 1
Note that f = proj11 and g = succ ) proj3
3; so add canbe built up from basic functions using composition andprimitive recursion: add = !1(proj1
1, succ ) proj33).
Computation Theory , L 8 106/171
![Page 10: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/10.jpg)
Example: predecessor
Predecessor pred ! N!N satisfies:
!
pred(0) " 0
pred(x + 1) " x
So pred = !0( f , g) where
!
f () ! 0
g(x1, x2) ! x1
Thus pred can be built up from basic functions usingprimitive recursion: pred = !0(zero0, proj2
1).
Computation Theory , L 8 107/171
![Page 11: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/11.jpg)
Example: multiplication
Multiplication mult ! N2!N satisfies:
!
mult(x1, 0) " 0
mult(x1, x + 1) " mult(x1, x) + x1
and thus mult = !1(zero1, add # (proj33, proj3
1)).
So mult can be built up from basic functions usingcomposition and primitive recursion (since add can be).
Computation Theory , L 8 108/170
![Page 12: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/12.jpg)
Definition. A [partial] function f is primitive recursive( f ! PRIM) if it can be built up in finitely many stepsfrom the basic functions by use of the operations ofcomposition and primitive recursion.
In other words, the set PRIM of primitive recursivefunctions is the smallest set (with respect to subsetinclusion) of partial functions containing the basicfunctions and closed under the operations of compositionand primitive recursion.
Computation Theory , L 8 109/171
![Page 13: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/13.jpg)
Definition. A [partial] function f is primitive recursive( f ! PRIM) if it can be built up in finitely many stepsfrom the basic functions by use of the operations ofcomposition and primitive recursion.
Every f ! PRIM is a total function, because:
" all the basic functions are total" if f , g1, . . . , gn are total, then so is f ) (g1, . . . , gn)
[why?]" if f and g are total, then so is !n( f , g) [why?]
Computation Theory , L 8 110/171
![Page 14: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/14.jpg)
Definition. A [partial] function f is primitive recursive( f ! PRIM) if it can be built up in finitely many stepsfrom the basic functions by use of the operations ofcomposition and primitive recursion.
Theorem. Every f ! PRIM is computable.
Proof. Already proved: basic functions are computable;composition preserves computability. So just have to show:
!n( f , g) ! Nn+1!N computable if f ! Nn
!N andg ! Nn+1
!N are.
Suppose f and g are computed by RM programs F and G (with ourusual I/O conventions). Then the RM specified on the next slidecomputes !n( f , g). (We assume X1, . . . , Xn+1, C are some registersnot mentioned in F and G; and that the latter only use registersR0, . . . , RN , where N * n + 2.)
Computation Theory , L 8 111/171
![Page 15: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/15.jpg)
START (X1,...,Xn+1,Rn+1)::=(R1,...,Rn+1,0)
F
C+ C=Xn+1? yes
no
HALT
(R1,...,Rn,Rn+1,Rn+2)::=(X1,...,Xn,C,R0)
G (R0,Rn+3,...,RN)::=(0,0,...,0)
Computation Theory , L 8 112/170
![Page 16: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/16.jpg)
START (X1,...,Xn+1,Rn+1)::=(R1,...,Rn+1,0)
F
C+ C=Xn+1? yes
no
HALT
(R1,...,Rn,Rn+1,Rn+2)::=(X1,...,Xn,C,R0)
G (R0,Rn+3,...,RN)::=(0,0,...,0)
Computation Theory , L 8 112/170
![Page 17: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/17.jpg)
AimA more abstract, machine-independent description of thecollection of computable partial functions than providedby register/Turing machines:
they form the smallest collection of partialfunctions containing some basic functions andclosed under some fundamental operations forforming new functions from old—composition,primitive recursion and minimization.
The characterization is due to Kleene (1936), building on work ofGödel and Herbrand.
Computation Theory , L 9 113/171
![Page 18: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/18.jpg)
MinimizationGiven a partial function f ! Nn+1
!N, defineµn f ! Nn
!N byµn f ("x) ! least x such that f ("x, x) = 0
and for each i = 0, . . . , x" 1,f ("x, i) is defined and > 0(undefined if there is no such x)
In other words
µn f = {("x, x) ! Nn+1 | #y0, . . . , yx
(x
!
i=0
f ("x, i) = yi)$ (x"1!
i=0
yi > 0)$ yx = 0}
Computation Theory , L 9 114/171
![Page 19: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/19.jpg)
Example of minimization
integer part of x1/x2 ! least x3 such that(undefined if x2=0) x1 < x2(x3 + 1)
Computation Theory , L 9 115/171
![Page 20: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/20.jpg)
Example of minimization
integer part of x1/x2 ! least x3 such that(undefined if x2=0) x1 < x2(x3 + 1)
! µ2 f (x1, x2)
where f " N3!N is
f (x1, x2, x3) !
!
1 if x1 # x2(x3 + 1)
0 if x1 < x2(x3 + 1)
Computation Theory , L 9 115/170
![Page 21: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/21.jpg)
Definition. A partial function f is partial recursive( f ! PR) if it can be built up in finitely many stepsfrom the basic functions by use of the operations ofcomposition, primitive recursion and minimization.
In other words, the set PR of partial recursive functionsis the smallest set (with respect to subset inclusion) ofpartial functions containing the basic functions andclosed under the operations of composition, primitiverecursion and minimization.
Computation Theory , L 9 116/171
![Page 22: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/22.jpg)
Definition. A partial function f is partial recursive( f ! PR) if it can be built up in finitely many stepsfrom the basic functions by use of the operations ofcomposition, primitive recursion and minimization.
Theorem. Every f ! PR is computable.
Proof. Just have to show:
µn f ! Nn!N is computable if f ! Nn+1
!N is.
Suppose f is computed by RM program F (with our usual I/Oconventions). Then the RM specified on the next slide computesµn f . (We assume X1, . . . , Xn, C are some registers not mentioned inF; and that the latter only uses registers R0, . . . , RN , whereN " n + 1.)
Computation Theory , L 9 117/171
![Page 23: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/23.jpg)
START
(X1,...,Xn)::=(R1,...,Rn)
(R1,...,Rn,Rn+1)::=(X1,...,Xn,C)
C+ (R0,Rn+2,...,RN)::=(0,0,...,0)
F
R!0 R0::=C HALT
Computation Theory , L 9 118/171
![Page 24: Partial Recursive Functions - cl.cam.ac.uk · function", which maps ... In other words, the set PR of partial recursive functions is the smallest set (with respect to subset inclusion)](https://reader034.vdocuments.mx/reader034/viewer/2022051406/5ace1bb47f8b9a56098b5dec/html5/thumbnails/24.jpg)
START
(X1,...,Xn)::=(R1,...,Rn)
(R1,...,Rn,Rn+1)::=(X1,...,Xn,C)
C+ (R0,Rn+2,...,RN)::=(0,0,...,0)
F
R!0 R0::=C HALT
Computation Theory , L 9 118/171