Abstract
Intuitively, a recursion theorem asserts the existence of self-referential programs . Two well-known recursion theorems are Kleene’s Recursion Theorem (krt) and Rogers’ Fixpoint Recursion Theorem (fprt). Does one of these two theorems better capture the notion of program self-reference than the other? In the context of the partial computable functions over the natural numbers (\(\mathcal {PC}\)), fprt is strictly weaker than krt, in that fprt holds in any effective numbering of \(\mathcal {PC}\) in which krt holds, but not vice versa. It is shown that, in this context, the existence of self-reproducing programs (a.k.a. quines ) is assured by krt, but not by fprt. Most would surely agree that a self-reproducing program is self-referential. Thus, this result suggests that krt is better than fprt at capturing the notion of program self-reference in \(\mathcal {PC}\) .
A generalization of krt to arbitrary constructive Scott subdomains is then given. (For fprt, a similar generalization was already known.) Surprisingly, for some such subdomains, the two theorems turn out to be equivalent . A precise characterization is given of those constructive Scott subdomains in which this occurs. For such subdomains, the two theorems capture the notion of program self-reference equally well.
Similar content being viewed by others
Notes
Thus, ⊥ may be thought of as the value of an infinite loop .
A pairing function is computable, 1-1, onto, and of type ℕ2→ℕ [20, p. 64].
In Sect. 2, the notion of effective is generalized to other types of functions.
In this paper, we shall generally use lowercase Greek letters (e.g., γ, ψ) for numberings, and lowercase Roman letters (e.g., f, g, h) for other functions.
By standard we mean acceptable as defined just prior to Lemma 4 below. Given that krt holds in any such standard numbering, one might consider an effective numbering in which krt does not hold to be pathological . However, independence proofs (e.g., in set theory and herein) often require the construction of pathological models.
In the terminology of [3], f(e) is the computable distortion of e wrought by f.
ISO-8859-1 is a character encoding commonly used on the Internet (see, for example, [16]). This encoding associates a character with each value in {0,…,255}. One can treat each program in Fig. 1 as a base-256 number, e.g., where each character is a digit whose value is determined by the ISO-8859-1 encoding, and where the leading character is least significant. In this way, “#include …” mod 256= “#”.
Thus, ψ e =λx·f(e)=λx·(λe·e)(e)=λx·e.
The proof of Theorem 3 employs, among other things, techniques of Machtey, Winklmann, and Young [13, proof of Theorem 3.6].
Thus, the acceptable effective numberings of \(\mathcal {PC}\) are exactly those into which every effective numbering of \(\mathcal {PC}\) can be compiled. Any effective numbering based on a real-world, general purpose programming language (e.g., C, Java, Haskell) is acceptable.
A function ψ:ℕ→S can be effective via γ, but not via γ′. The following is an example. Let K be the diagonal halting problem [20, p. 62]. Let {k 0<k 1<⋯}=K and \(\{ \bar {\smash {k}}_{0} < \bar {\smash {k}}_{1} < \cdots \}= \bar{K} \stackrel {\mathrm {def}}{=}\mathbb {N}- K\). Let f:ℕ→ℕ be such that, for each i, f(2i)=k i and \(f(2i + 1) = \bar {\smash {k}}_{i}\). Let \(\mathalpha {\raisebox {.5ex}{$\wp $}}(\mathbb {N})\) be the set of all subsets of ℕ ordered by ⊆, and let \(\lambda i \centerdot D_{i} : \mathbb {N}\rightarrow \textsf {K}(\mathalpha {\raisebox {.5ex}{$\wp $}}(\mathbb {N}))\) be a canonical enumeration of the finite subsets of ℕ [12, 20]. Note that, for each i, \(f(D_{i}) \subseteq \bar{K}\Leftrightarrow D_{i} \subseteq 2\mathbb {N}+ 1\). Thus, \(\lambda p \centerdot {\bar{K}}\) is effective via λi·f(D i ). However, \(\lambda p \centerdot {\bar{K}}\) is not effective via λi·D i , as this would imply \(\{ i \mid D_{i} \subseteq \bar{K} \}\) is computably enumerable.
In neither case is the choice of γ unique.
Recall that \(\mathcal {P}\) is the set of all functions of type ℕ→ℕ⊥ ordered pointwise.
The proof of Theorem 9 bears some resemblance to Royer’s proof of [21, Theorem 4.2.15].
See, for example, [1, Theorem 2.1].
Proposition 12 generalizes Riccardi’s [18, Theorem 5.1].
Of course, \(\mathcal {PC}\) and \(\mathcal {CE}\) are not flat. Thus, neither are \(\mathcal {P}\) nor \(\mathalpha {\raisebox {.5ex}{$\wp $}}(\mathbb {N})\).
The reader may recall that the notion of a complete partial order was introduced in Sect. 2. The two notions are altogether different, and should not be confused.
See [1, Theorem 2.1].
Intuitively, the 1-1 Operator Recursion Theorem allows one to construct an infinite sequence of distinct φ-programs e 0,e 1,… such that each program e i knows all programs in the sequence and its own index i.
For any partial computable function, many such measures exist. For example, if φ is based on a standard enumeration of all Turing machines [20], then one possible Blum complexity measure for φ is
$$\lambda p,x \centerdot \left\{\begin{array}{l@{\quad}l}\mbox{the number of steps taken before the $p$th} & \mbox{if the $p$th Turing machine}\\\mbox{\quad Turing machine halts on input $x$,} & \mbox{\phantom{if }halts on input $x$;}\\[3pt]\bot, & \mbox{otherwise.}\end{array}\right.$$
References
Badaev, S., Goncharov, S., Sorbi, A.: Completeness and universality of arithmetical numberings. In: Computability and Models, pp. 11–44. Springer, Berlin (2003)
Blum, M.: A machine independent theory of the complexity of recursive functions. J. ACM 14(2), 322–336 (1967)
Case, J.: A note on the degrees of self-describing Turing machines. J. ACM 18(3), 329–338 (1971)
Case, J.: Periodicity in generations of automata. Math. Syst. Theory 8(1), 15–32 (1974)
Case, J.: Infinitary self-reference in learning theory. J. Exp. Theor. Artif. Intell. 6(1), 3–16 (1994)
Case, J., Moelius, S.: Independence results for n-ary recursion theorems. In: FCT’09: Proc. of 17th International Symposium on Fundamentals of Computation Theory. Lecture Notes in Computer Science, vol. 5699, pp. 38–49 (2009)
Case, J., Moelius, S.: Program self-reference in constructive Scott subdomains. In: CiE’09: Proc. of Fifth Conference of Computability in Europe. Lecture Notes in Computer Science, vol. 5635, pp. 89–98 (2009)
Ershov, Y.L.: Theory of Numberings. Nauka, Moscow (1977). In Russian
Hofstadter, D.R.: Gödel, Escher, Bach: An Eternal Golden Braid (1979). Basic Books
Jain, S., Stephan, F., Teutsch, J.: Index sets and universal numberings. In: CiE’09: Proc. of Fifth Conference of Computability in Europe. Lecture Notes in Computer Science, vol. 5635, pp. 270–279 (2009)
Lee, C.Y.: A Turing machine which prints its own code script. In: Proc. of the Symposium on Mathematical Theory of Automata, pp. 155–164 (1963)
Machtey, M., Young, P.: An Introduction to the General Theory of Algorithms. North Holland, Amsterdam (1978)
Machtey, M., Winklmann, K., Young, P.: Simple Gödel numberings, isomorphisms, and programming properties. SIAM J. Comput. 7(1), 39–60 (1978)
Mal’tsev, A.I.: Constructive algebras. Usp. Mat. Nauk 16(3), 3–60 (1961). In Russian
Mal’tsev, A.I.: Sets with complete numberings. Algebra Log. 2(2), 4–29 (1963). In Russian
Moore, K.: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text (1996). RFC2047
Quine, W.V.: The Ways of Paradox and Other Essays (1966). Random House. Reprinted, Harvard University Press (1976)
Riccardi, G.: The independence of control structures in abstract programming systems. PhD thesis, SUNY Buffalo (1980)
Rogers, H.: Gödel numberings of partial recursive functions. J. Symb. Log. 23(3), 331–341 (1958)
Rogers, H.: Theory of Recursive Functions and Effective Computability. McGraw Hill, New York (1967). Reprinted, MIT Press, 1987
Royer, J.: A Connotational Theory of Program Structure. Lecture Notes in Computer Science, vol. 273. Springer, Berlin (1987)
Spreen, D.: Computable one-to-one enumerations of effective domains. Inf. Comput. 84(1), 26–46 (1990)
Spreen, D.: On effective topological spaces. J. Symb. Log. 63(1), 185–221 (1998)
Spreen, D.: On domains witnessing increase in information. Applied General Topology 1(1) (2000)
Spreen, D.: On some problems in computable topology. In: Logic Colloquium 2005, pp. 221–254. Cambridge University Press, Cambridge (2007)
Stoltenberg-Hansen, V., Lindström, I., Griffor, E.R.: Mathematical Theory of Domains. Cambridge University Press, Cambridge (1994)
Thatcher, J.M.: The construction of a self-describing Turing machine. In: Proc. of the Symposium on Mathematical Theory of Automata, pp. 165–171 (1963)
Thompson, G.P.: The Quine Page (1999). http://www.nyx.net/~gthompso/quine.htm
Acknowledgements
We would like to thank the anonymous reviewers for their meticulous reading of our manuscript, and for their many helpful suggestions.
Author information
Authors and Affiliations
Corresponding author
Additional information
This is an expanded version of [7].
Rights and permissions
About this article
Cite this article
Case, J., Moelius, S.E. Program Self-Reference in Constructive Scott Subdomains. Theory Comput Syst 51, 22–49 (2012). https://doi.org/10.1007/s00224-011-9372-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00224-011-9372-1