Jump to content

Double recursion

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by OAbot (talk | contribs) at 15:41, 14 April 2020 (Open access bot: doi added to citation with #oabot.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In recursive function theory, double recursion is an extension of primitive recursion which allows the definition of non-primitive recursive functions like the Ackermann function.

Raphael M. Robinson called functions of two natural number variables G(nx) double recursive with respect to given functions, if

  • G(0, x) is a given function of x.
  • G(n + 1, 0) is obtained by substitution from the function G(n, ·) and given functions.
  • G(n + 1, x + 1) is obtained by substitution from G(n + 1, x), the function G(n, ·) and given functions.[1]

Robinson goes on to provide a specific double recursive function (originally defined by Rózsa Péter)

  • G(0, x) = x + 1
  • G(n + 1, 0) = G(n, 1)
  • G(n + 1, x + 1) = G(nG(n + 1, x))

where the given functions are primitive recursive, but G is not primitive recursive. In fact, this is precisely the function now known as the Ackermann function.

See also

References

  1. ^ Raphael M. Robinson (1948). "Recursion and Double Recursion". Bulletin of the American Mathematical Society. 54: 987–93. doi:10.1090/S0002-9904-1948-09121-2.