This post is the last in the 3 part series that in the end shows where the beginning artificial life and viruses in program got a real mathematical foothold. Revisiting some of the nomenclature previously defined, we let the enumeration of all partial computable functions (to be understood as computable partial functions) be denoted by {φe:e ∈ N}. The index or code of φe is e. We also assume that there exists a computable bijective function that allows us to compute φe from e and also allows us to encode φe to e.

Let any integer u be given. We then define a recursive function ψ as follows:

ψ(x) = { φ(φu(u))(x) if φu(u)↓ else ↑ if φu(u)↑}

Explaning the above statement, the calculation of ψ(x) uses a set of instructions denoted by the Godel number u. When u processes itself (φu(u)), if the result is defined ,let’s name it w, we use the description w to compute ψ(x). It is obvious that the instructions for the function ψ are dependant on u. Thus abstracting the self-processing by using a recursive function g, which yields on input u, the Godel number representing the instructions for ψ. Therefore,

φg(u)(x) = { φ(φu(u))(x) if φu(u)↓ else ↑ if φu(u)↑}

Now taking any recursive function f , the composition of f and g is also recursive. Now let v be a Godel number for fog. Since φv = fog is a total function, since g is defined over all natural numbers, then φv(v) = ↓, i.e. can always be computed. Hence substituting v for u in g, we get,

φg(v) = φφv(v) = φfg(v)

Representing g(v) using n , we get φn = φf(n). What this basically means is that the same action / logic can be coded in two different forms. The significance of the above can be appreciated if interpreted as follows: if f is taken to be the identity function, we have source codes that are identical, wherein the implicit notion of self-reproduction has been defined, whereas for functions f which are not identity functions, the above represents the primitive version of code polymorphism.

### Like this:

Like Loading...

*Related*