recursive function is URM-computable

recursive function is URM-computable

Proposition 1

.

Every

recursive function is URM-computable

function

.

The proof can be broken down in several simple steps.

Proposition 2

.

The

zero function

, the successor function, and the projection functions are

URM-computable

.

Proof.

The zero function is computed by

Z

⁢

(

1

)

, the successor function is computed by

S

⁢

(

1

)

, and for any

n

>

0

, the

i

-th projection function

p

i

n

⁢

(

x

1

,

…

,

x

n

)

=

x

i

is computed by

T

⁢

(

i

,

1

)

.
∎

Proposition 3

.

URM-computability is

closed under

functional

composition

.

Proof.

This is proved in the entry on

combining URMs

. ∎

Proposition 4

.

URM-computability is closed under

primitive recursion

.

Proof.

Suppose

f

:

ℕ

m

→

ℕ

,

g

:

ℕ

m

+

2

→

ℕ

are computed by

M

,

N

respectively. Let

h

:

ℕ

m

+

1

→

ℕ

be obtained from

f

,

g

by primitive recursion, namely,

h

⁢

(

0

,

x

1

,

…

,

x

m

)

:=

f

⁢

(

x

1

,

…

,

x

m

)

h

⁢

(

n

+

1

,

x

1

,

…

,

x

m

)

:=

g

⁢

(

h

⁢

(

x

1

,

…

,

x

m

,

n

)

,

n

,

x

1

,

…

,

x

m

)

.

Let

P

be the following URM:

T

⁢

(

1

,

p

+

1

)

,

T

⁢

(

2

,

p

+

2

)

,

⋯

,

T

⁢

(

m

+

1

,

p

+

m

+

1

)

,

M

⁢

[

p

+

2

,

…

,

p

+

m

+

1

;

p

+

m

+

2

]

,

J

⁢

(

p

+

1

,

p

+

m

+

3

,

q

)

,

S

⁢

(

p

+

m

+

3

)

,

N

⁢

[

p

+

2

,

…

,

p

+

m

+

1

,

p

+

m

+

3

,

p

+

m

+

2

;

p

+

m

+

2

]

,

J

⁢

(

1

,

1

,

m

+

3

)

,

T

⁢

(

p

+

m

+

2

,

1

)

.

where

p

=

max

⁡

(

m

+

2

,

ρ

⁢

(

M

)

,

ρ

⁢

(

N

)

)

and

q

=

m

+

7

. The

program

works as follows:

𝑰

𝟏

,

…

,

𝑰

𝒎

+

𝟏

:

transfer the first

m

+

1

registers to another are on the tape:

T

⁢

(

1

,

p

+

1

)

,

T

⁢

(

2

,

p

+

2

)

,

⋯

,

T

⁢

(

m

+

1

,

p

+

m

+

1

)

𝑰

𝒎

+

𝟐

:

compute

h

⁢

(

0

,

x

1

,

…

,

x

m

)

using

M

⁢

[

p

+

2

,

…

,

p

+

m

+

1

;

p

+

m

+

2

]

𝑰

𝒎

+

𝟑

:

if the content of register

p

+

1

(formerly the content of register

1

) is the same as the content of

p

+

m

+

3

(initially set to

0

), go to the last instruction whose index is

q

(

=

m

+

7

)

; otherwise continue to the next instruction:

J

⁢

(

p

+

1

,

p

+

m

+

3

,

q

)

𝑰

𝒎

+

𝟒

:

increment register

p

+

m

+

3

by

1

:

S

⁢

(

p

+

m

+

3

)

𝑰

𝒎

+

𝟓

:

compute

h

⁢

(

i

,

x

1

,

…

,

x

m

)

, where

i

is the content of register

p

+

m

+

3

, using

N

⁢

[

p

+

2

,

…

,

p

+

m

+

1

,

p

+

m

+

3

,

p

+

m

+

2

;

p

+

m

+

2

]

𝑰

𝒎

+

𝟔

:

go to instruction

m

+

3

:

J

⁢

(

1

,

1

,

m

+

3

)

𝑰

𝒎

+

𝟕

:

transfer result back to register

1

:

T

⁢

(

p

+

m

+

2

,

1

)

.

Note that if

(

x

1

,

…

,

x

m

,

n

)

∈

dom

⁡

(

h

)

, then

P

⁢

(

x

1

,

…

,

x

m

,

n

)

↓

h

⁢

(

x

1

,

…

,

x

m

,

n

)

. Otherwise,

h

⁢

(

x

1

,

…

,

x

m

,

n

)

is undefined. This can happen either

f

⁢

(

x

1

,

…

,

x

m

)

is undefined, in which case

M

diverges

,

g

⁢

(

x

1

,

…

,

x

m

,

i

,

h

⁢

(

x

1

,

…

,

x

m

,

i

)

)

is undefined, in which case

N

diverges, or

h

⁢

(

x

1

,

…

,

x

m

,

i

)

≠

0

for all

i

∈

ℕ

, in which case

P

loops indefinitely. In all cases,

P

diverges. This shows that

P

computes

h

.
∎

Proposition 5

.

URM-computability is closed under minimization.

Proof.

Suppose

f

:

ℕ

m

+

1

→

ℕ

is computed by

M

. Let

g

:

ℕ

m

→

ℕ

be obtained from

f

by minimization. In other words, for any

𝒙

=

(

x

1

,

…

,

x

m

)

∈

ℕ

m

, set

A

⁢

(

𝒙

)

:=

{

y

∈

ℕ

∣

(

z

,

𝒙

)

∈

dom

⁡

(

f

)

⁢

for all

⁢

z

≤

y

⁢

and

⁢

f

⁢

(

y

,

𝒙

)

=

0

}

and define

g

⁢

(

𝒙

)

:=

{

min

⁡

A

⁢

(

𝒙

)

if

⁢

A

⁢

(

𝒙

)

≠

∅

,

undefined

otherwise.

Let

Q

be the following URM:

T

⁢

(

1

,

p

+

1

)

,

T

⁢

(

2

,

p

+

2

)

,

⋯

,

T

⁢

(

m

,

p

+

m

)

,

M

⁢

[

p

+

m

+

1

,

p

+

1

,

…

,

p

+

m

;

1

]

,

J

⁢

(

1

,

p

+

m

+

2

,

q

)

,

S

⁢

(

p

+

m

+

1

)

,

J

⁢

(

1

,

1

,

m

+

1

)

,

T

⁢

(

p

+

m

+

1

,

1

)

where

p

=

max

⁡

(

m

+

1

,

ρ

⁢

(

M

)

)

and

q

=

m

+

5

. The program works as follows:

𝑰

𝟏

,

…

,

𝑰

𝒎

:

transfer the first

m

registers to another are on the tape:

T

⁢

(

1

,

p

+

1

)

,

T

⁢

(

2

,

p

+

2

)

,

⋯

,

T

⁢

(

m

,

p

+

m

)

𝑰

𝒎

+

𝟏

:

compute

f

⁢

(

0

,

x

1

,

…

,

x

m

)

using

M

⁢

[

p

+

m

+

1

,

p

+

1

,

…

,

p

+

m

;

1

]

, where the content of register

p

+

m

+

1

is set to

0

initially.

𝑰

𝒎

+

𝟐

:

if the content of register

p

+

m

+

2

(which is always

0

) is the same as the content of register

1

(value of

f

⁢

(

0

,

x

1

,

…

,

x

m

)

, if defined), go to the last instruction whose index is

q

(

=

m

+

5

)

; otherwise continue to the next instruction:

J

⁢

(

1

,

p

+

m

+

2

,

q

)

𝑰

𝒎

+

𝟑

:

increment register

p

+

m

+

1

by

1

(counter):

S

⁢

(

p

+

m

+

1

)

𝑰

𝒎

+

𝟒

:

go to instruction

m

+

1

:

J

⁢

(

1

,

1

,

m

+

1

)

𝑰

𝒎

+

𝟓

:

transfer content of register

p

+

m

+

1

to register

1

:

T

⁢

(

p

+

m

+

1

,

1

)

.

If

(

x

1

,

…

,

x

m

)

∈

dom

⁡

(

g

)

, then

Q

⁢

(

x

1

,

…

,

x

m

)

↓

g

⁢

(

x

1

,

…

,

x

m

)

. Otherwise,

g

⁢

(

x

1

,

…

,

x

m

)

is undefined, which can happen either when

f

⁢

(

i

,

x

1

,

…

,

x

m

)

≠

0

for all

i

∈

ℕ

, in which case

Q

loops indefinitely, or

f

⁢

(

i

,

x

1

,

…

,

x

m

)

is undefined, while

f

⁢

(

j

,

x

1

,

…

,

x

m

)

are defined and non-zero, for all

j

<

i

, in which case

M

diverges. In both cases,

Q

diverges. Hence

Q

computes

g

.
∎

Since a

recursive function

is obtained by a finite application of functional

operations

specified in

Propositions

3,4,5 on the basic

arithmetic functions

specified in Proposition 2, every recursive function is URM computable as result, proving Proposition 1.

Title

recursive function is URM-computable

Canonical

name

RecursiveFunctionIsURMcomputable

Date of creation

2013-03-22 19:04:51

Last modified on

2013-03-22 19:04:51

Owner

CWoo (3771)

Last modified by

CWoo (3771)

Numerical id

7

Author

CWoo (3771)

Entry type

Result

Classification

msc 03D10

Classification

msc 68Q05

Related topic

RecursiveFunction

Generated on Thu Feb 8 20:01:28 2018 by

LaTeXML