Talk:Recursion theory

message: I significantly expanded the previous article.  It still needs a lot of work. 
* The relationship to proof theory needs to be made more explicit
* The History and Scope section is not complete
* The references should be expanded
Because this article doesn't need to contain any technical details, there is no reason why it should not be completely accessible to the general educated audience. CMummert 14:09, 27 June 2006 (UTC)
thread_title:  Rewrite of 2006-6-27 

message: wvbailey here: My questions:
(1) Can we concoct a way to describe "recursion" in terms of "simple machine" models such as Post-Turing, register or random-access machine models?
(2) partial versus general recursion versus primitive recursion (or whatever) --  a simple explanation? see below re Davis (1967)
Here's why I ask:
  
I ran into an interesting quote + derivations in a paper: Calvin C. Elgot and Abraham Robinson (1964), Random-Access Stored-Program machines, An Approach to Programming Languages, JACM Vol. 11, No. 4 (October, 1964) pp. 365-399.
This (for me) is a difficult paper. But I have a suspicion that, for some of us non-mathematicians, this recursion stuff wouldn't be so abstract if we could translate it into the action of little machines, or little models of humans-as-machines doing 'recursion' on ruled paper as if we were machines.   
In fact Elgot-Robinson do this, but as I say their paper is not so easy. (In the following, "x" is a "memory register" (i.e. a place in space) in their Random Access Stored Program "RASP" computer-model, and ^2 references Davis (1958) Computability and Unsolvability). They state that:
: :The class of partial recursive functions is the smallest class of functions closed under composition and minimalization [^2, p. 41] containing
# "the constant function c0(x), c0(x) = 0
# "the successor function S, S(x) = x+1
# "the projection functions Uin, Uin(x0, ... n-1) = xi, 0 ≤ i < n,  
# "addition,
# "proper subtraction (x ┴ y = 0 if x ≤ y, x ┴ y = x - y if x ≥ y)
# "multiplication" (pp. 379ff)
Question: Can "composition" and "minimalization" be explained in layman's terms? Examples?
They start with their greatly-reduced model of a "stored program machine" (i.e. program is together with the data in the common "register-space" like a universal Turing machine). The model includes:
# successor S(x): Add one to the contents of register x, then continue with the next instruction in sequence
# copy D(x, y), i.e. copy the contents of register x to register y & leave contents of x changed, then continue with the next instruction in sequence
# conditional transfer on equality C(x, y, z), IF the contents of register x equals the contents of register y THEN fetch the next instruction from register z, ELSE continue with the next instruction in sequence. 
And from these they show how (in this order) to:
# create the projection function 
# create the equality relation
# do addition of natural numbers
# do multiplication of natural numbers
# create the binary relation ≤
# do proper subtraction
I find this fascinating. That everything that is computable in all of mathematics can [hypothetically] be done by the above 6 arithmetic operations "with composition and minimization (whatever that is), and these can in turn be done by 3 machine instructions operating in/on a "register space" (a sequence of numbered boxes into which we can write numbers and then change them per a list of instructions). [Is this a true statement? Is there a simpler set rather than 6? But what then is 'full general recursion' -- is it it more "powerful" than partial recursion? etc]   
(2) Minsky: Then there's an interesting tidbit in Minsky (1967). Instead of using RASP models he uses "register models". (He calls them "program machines" but I find his choice of name unfortunate. With the register models it is very difficult to include the program in the registers, for instance.). He claims almost the same three simple instructions (he uses inequality rather than equality and concots some other similar trios). Minksy then "demonstrates" that a set of the three instructions { "set a register's contents to 0" [0], "successor function" ['], "IF register's contents = 0 then jump else decrement" [-] } "is equivalent to" (p. 208) the "general-recursive" functions. To do this he first creates "copy" and "jump unless equal".
There's more: he also creates a set of instructions and shows that they are equivalent to the primitive recursive functions. This set includes a "repeat instruction" [RPT]. But he observes that one kind of [RPT] computes the "partial recursive functions" while the other  creates the "full recursive functions". This has to do with whether or not the "repeat" command [RPT] includes or does not include itself 'in its range' <= huh? Does this have to do with self-modifying instructions?
So I ask: in layman's terms, what is the difference between all these kinds of recursion?
#Partial recursion
#Full general recursion
#Primitive recursion
And what is 'the minimization operator' that Elgot-Robinson and Minsky mention? Is this necessary for "full general recursion"?
Is there a way to use these machine-models to form "demonstrations" that are more 'concrete' -- less abstract, more constructive -- than pure "recursion theory" (which I find utterly opaque -- just masses of subscripts). For example:
: I always think of "partial recursion" and "lambda calculus" as something done by hand on paper by mathematicians, not done by machines. Is this a correct statement?
: Is there somewhere an example of multiplication done by recursion theory? Does this question even make sense? 
: All the machine models divide the machine into "instructions" contained a finite state machine (FSM) and "the machine memory". Sometimes, as in a Universal Turing machine and the RASP model, the data-memory also contains the instructions (but in the RAM and the register-machine models the instructions and data-memory are separate). In the UTM and RASP cases there's still a core FSM that interprets the "instructions-in-memory". Is there something equivalent to this FSM in recursion theory? (e.g. the mathematican's brain?) Just where do "the instructions" reside?
Examples would provide a nice tie-in with Register machine and Random access machine models, if a person can figure out how to do it so it isn't too abstract. As I look back, I realize that I could include some of the above in both articles, but I have to feel more confident that I know what I'm talking about with regards to recursion (I sure don't have that confidence now) [I really need to see an example of "multiply" that would help alot]. That would leave "lambda calculus" to be tackled (I know squat about that -- ditto for an example of "multiply") but then we would have the historical elements behind the Church-Turing thesis (more or less) covered.
wvbaileyWvbailey
:This article is still pretty high-level.  To make it more accessible to the general public, one thing that needs to be added is an explict explanation the the field recursion theory  was named for recursively defined functions but this formalization is not often used in contemporary research.  The origins of the name are well explored by Soare's 1996 paper  which is already a reference in the article.  I recommend that article for a thorough overview of the history of the word recursive.
:Moreover, the field of recursion theory has distanced itself from the use of specific models of computation.  Some formal model is often used to define the computable functions, but this is not necessary as they can be defined using the arithmetical hierarchy or inductively defined as a class of functions in various ways.  In any event, once the existence of an enumeration of the partial computable functions has been established, this enumeration is then used so that no additional reference to the model of computation is required (this goes back at least as far as Rogers' book). Thus a detailed description of various models of computation is not apropos here, although links are good.  Also, the field of recursion theory includes topics such as hyperarithmetical theory that study models of computation that are not Turing computable at all.
:My hope is to get this article to the point where it can be peer reviewed and, I hope, become a good article.  To achieve that, I think that the article should focus on a nontechnical introduction to the field.  CMummert 00:08, 18 September 2006 (UTC)
replies: text: Well, there's kind of an elephant in the room. It was my fault that this article was forked from computability theory (computer science). I really think the articles should be re-merged, but with the existing material at computability theory (computer science) edited to make it substantially shorter. Some of the material is probably duplicative of existing articles, and if it's not, then the more detailed parts can go to one or more new articles. But there ought to be one survey article of the entire field, and it needs to move along a bit faster than the existing CT(CS) article. Simply merging the existing recursion theory into that article is not a good option, because the interesting stuff would not show up until too late in the article. --Trovatore 06:09, 18 September 2006 (UTC)
replies: text: One problem I see with merging is that the CS article is important to computer scientists, so any merging and cutting of "their" ariticle would have to be done with great care.   I don't have the energy to coordinate so much with the computer science project, so I thought the slight duplication between articles was acceptable.  The CS side has Theory of computation as their main article, which says that "theory of computation" splits into computability theory and complexity theory.  I am not sure whether this is standard terminology or not.   Would we merge Recursion theory into computability theory or into theory of computation?  CMummert 10:30, 18 September 2006 (UTC)
thread_title:  An opportunity?: Can we use small computing machines to demonstrate partial recursion, general recursion, etc? But first: What are all these different types of recursion? 

message: I have added some topics of recursion theory but I think the list is still incomplete. So whenever you find something important topic to be added, please do so. The subsections should not be too long, but the most important things should be there. For example arithmetical hierarchy and index sets are still missing. Will do it when I have more time.
Frank Stephan 10:33, 25 February 2007 (UTC)
thread_title:  Adding Topics of Recursion Theory 

message: This page needs to be somehow merged with the page on computability theory.  Don't care what goes where but the two pages give the impression these are two distinct subjects rather than just different focuses on the same subject.  Maybe we should have a brief overview and then talk about the two directions studies have taken (oracular computation vs. deciding what other systems are turing complete) but the way things are now is wrong.  I know this has been mentioned before but any effort to fix things seems to have died. Logicnazi 02:15, 30 August 2007 (UTC)
replies: text: You mean Computability theory (computer science), since Computability theory is a dab page. I completely agree they should be merged, but have no energy to do it. You may want to inquire at Wikipedia:WikiProject Computer Science, since the other page is the CS page while this is the math page. — Carl (CBM · talk) 02:24, 30 August 2007 (UTC)
thread_title: Merge with computability theory

message: For anyone keeping this article on their watchlist: there is currently an attempt at merging a number of articles on (non-)recursive/(un)decidable/(un)computable sets/languages/decision problems into a single, thorough article. The experiment currently sits at Recursive languages and sets. Comments are very welcome. Pichpich (talk) 00:42, 21 February 2008 (UTC)
thread_title:  Attempt to merge 

message: To keep the discussion in one place, I have removed this comment, which is a duplicate of the discussion at Talk:Algorithm#A_paradoxical_situation. Please go to that page if you wish to discuss the matter. — Carl (CBM · talk) 20:41, 19 March 2008 (UTC)
thread_title:  A paradoxical situation 

message: I've heard from numerous sources that recursion theory was renamed to computability theory because one of the big shots was denied an NSF grant.  Who was it?  Soar himself?  I've also heard a really nice quote from this guy on the matter, but I can't reproduce it verbatim.  Can anyone give it accurately?  Thanks!  —Preceding unsigned comment added by 90.29.121.23 (talk) 17:00, 26 July 2009 (UTC)
thread_title: Who's grant denial precipitated the name change?

message: I implemented the moves and redirects from my post dated "11:37, 14 August 2009" above.  I had to do some creative history preservation; see the top of Talk:Computability theory. 
I think that the main flaw that this has created is that the article that is now computability is not very good at giving an overview of computability. So I think this is the best area to focus on first. There is also the issue of making computability theory a bit broader in scope, but several comments above say this is not such a serious issue. — Carl (CBM · talk) 15:23, 22 August 2009 (UTC)
thread_title:  Implemented