Skip to main content
Log in

Program Self-Reference in Constructive Scott Subdomains

  • Published:
Theory of Computing Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

Notes

  1. Thus, ⊥ may be thought of as the value of an infinite loop .

  2. A pairing function is computable, 1-1, onto, and of type ℕ2→ℕ [20, p. 64].

  3. In Sect. 2, the notion of effective is generalized to other types of functions.

  4. 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.

  5. krt similarly has constructive variants, which are considered, e.g., in [6, 21].

  6. 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.

  7. The effective numbering of \(\mathcal {PC}\) used in the proof of [18, Theorem 5.3] is the same as that used in the proof of [13, Theorem 3.6].

  8. Early examples of such programs are due to Lee [11] and Thatcher [27]. The term “quine” appears to have been inspired by Hofstadter [9]. Therein, Hofstadter refers to the operation of preceding a phrase by its own quotation as “quining”, in honor of Willard Van Orman Quine [17].

  9. In the terminology of [3], f(e) is the computable distortion of e wrought by f.

  10. 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= “#”.

  11. Thus, ψ e =λx·f(e)=λx·(λe·e)(e)=λx·e.

  12. The proof of Theorem 3 employs, among other things, techniques of Machtey, Winklmann, and Young [13, proof of Theorem 3.6].

  13. 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.

  14. An anonymous referee of the conference version of this paper attributes this notion to Scott. Flat partial orders are also considered in [23, 26].

  15. 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.

  16. In neither case is the choice of γ unique.

  17. Recall that \(\mathcal {P}\) is the set of all functions of type ℕ→ℕ ordered pointwise.

  18. The proof of Theorem 9 bears some resemblance to Royer’s proof of [21, Theorem 4.2.15].

  19. See, for example, [1, Theorem 2.1].

  20. Proposition 12 generalizes Riccardi’s [18, Theorem 5.1].

  21. Of course, \(\mathcal {PC}\) and \(\mathcal {CE}\) are not flat. Thus, neither are \(\mathcal {P}\) nor \(\mathalpha {\raisebox {.5ex}{$\wp $}}(\mathbb {N})\).

  22. 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.

  23. See [1, Theorem 2.1].

  24. 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.

  25. 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

  1. Badaev, S., Goncharov, S., Sorbi, A.: Completeness and universality of arithmetical numberings. In: Computability and Models, pp. 11–44. Springer, Berlin (2003)

    Chapter  Google Scholar 

  2. Blum, M.: A machine independent theory of the complexity of recursive functions. J. ACM 14(2), 322–336 (1967)

    Article  MATH  Google Scholar 

  3. Case, J.: A note on the degrees of self-describing Turing machines. J. ACM 18(3), 329–338 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  4. Case, J.: Periodicity in generations of automata. Math. Syst. Theory 8(1), 15–32 (1974)

    Article  MathSciNet  MATH  Google Scholar 

  5. Case, J.: Infinitary self-reference in learning theory. J. Exp. Theor. Artif. Intell. 6(1), 3–16 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Ershov, Y.L.: Theory of Numberings. Nauka, Moscow (1977). In Russian

    Google Scholar 

  9. Hofstadter, D.R.: Gödel, Escher, Bach: An Eternal Golden Braid (1979). Basic Books

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Machtey, M., Young, P.: An Introduction to the General Theory of Algorithms. North Holland, Amsterdam (1978)

    MATH  Google Scholar 

  13. Machtey, M., Winklmann, K., Young, P.: Simple Gödel numberings, isomorphisms, and programming properties. SIAM J. Comput. 7(1), 39–60 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  14. Mal’tsev, A.I.: Constructive algebras. Usp. Mat. Nauk 16(3), 3–60 (1961). In Russian

    Google Scholar 

  15. Mal’tsev, A.I.: Sets with complete numberings. Algebra Log. 2(2), 4–29 (1963). In Russian

    MATH  Google Scholar 

  16. Moore, K.: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text (1996). RFC2047

  17. Quine, W.V.: The Ways of Paradox and Other Essays (1966). Random House. Reprinted, Harvard University Press (1976)

    Google Scholar 

  18. Riccardi, G.: The independence of control structures in abstract programming systems. PhD thesis, SUNY Buffalo (1980)

  19. Rogers, H.: Gödel numberings of partial recursive functions. J. Symb. Log. 23(3), 331–341 (1958)

    Article  Google Scholar 

  20. Rogers, H.: Theory of Recursive Functions and Effective Computability. McGraw Hill, New York (1967). Reprinted, MIT Press, 1987

    MATH  Google Scholar 

  21. Royer, J.: A Connotational Theory of Program Structure. Lecture Notes in Computer Science, vol. 273. Springer, Berlin (1987)

    Book  MATH  Google Scholar 

  22. Spreen, D.: Computable one-to-one enumerations of effective domains. Inf. Comput. 84(1), 26–46 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  23. Spreen, D.: On effective topological spaces. J. Symb. Log. 63(1), 185–221 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  24. Spreen, D.: On domains witnessing increase in information. Applied General Topology 1(1) (2000)

  25. Spreen, D.: On some problems in computable topology. In: Logic Colloquium 2005, pp. 221–254. Cambridge University Press, Cambridge (2007)

    Chapter  Google Scholar 

  26. Stoltenberg-Hansen, V., Lindström, I., Griffor, E.R.: Mathematical Theory of Domains. Cambridge University Press, Cambridge (1994)

    MATH  Google Scholar 

  27. 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)

    Google Scholar 

  28. Thompson, G.P.: The Quine Page (1999). http://www.nyx.net/~gthompso/quine.htm

Download references

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

Authors

Corresponding author

Correspondence to Samuel E. Moelius III.

Additional information

This is an expanded version of [7].

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00224-011-9372-1

Keywords

Navigation