Talk:General recursive function

message: This page was a REDIRECT to Talk:Recursive function. Let us have a real talk page instead. JRSpriggs 05:54, 11 August 2006 (UTC)

message: I brought back the old definition of the search operation because the new one introduced by CMummert is not actually computable. JRSpriggs 06:15, 11 August 2006 (UTC)
replies: text: My previous definition wasn't very clear; I was using the word function to mean total function.  Of course minimization of partial functions is not computable.  I saw last week that you had fixed it. Thanks.  CMummert 19:15, 13 August 2006 (UTC)
thread_title:  Definition of search operation mu 

message: To me, the title suggests that the purpose of the article is to define a certain class of functions. However, the same class is already defined in computable function. Wouldn't it make more sense for the title of the article to be "Mu-recursion", since what is unique to this article is that particular definition of "computable function"? Also, is there any reason the article should not be merged with Mu-operator? —The preceding unsigned comment was added by Quux0r (talk • contribs).
:The idea is that computable function is written so that it is independent of the specific model of computation, and this page is about one particular model of computation. The computable function article does not define this class of functions specifically, it just links here. You could merge this with mu operator but both this page and that page are quite long so it would take a lot of trimming to merge them. I for one would not object to the trimming.  You might want to put up merge tags and wait a few days, and/or write the merged version in a sandbox. CMummert · talk 02:20, 11 April 2007 (UTC)
thread_title:  Defines the same thing as [[Computable function]] 

message: This needs some cleanup to be readable. A large part of the article reads like a collection out-of-context snippets from Kleene's book. Pcap ping 05:07, 21 August 2009 (UTC)
replies: text: Get to work and do it. BillWvbailey (talk) 14:33, 21 August 2009 (UTC)
thread_title:  Cleanup needed 

message: I belive that the minimisation operator can only accept total functions, otherwise the recursive functions wouldnt be closed under the minimisation operator.
An example is:
 f(x, y) = 0 <==> (y = 0 and x ∈ A) or y = 1
where A is recursively enumerable (but not recursive)
f is partial and is M-recursive.
g (x) = μ y. (f(x,y)=0)
g is total (if it's not 0 then its 1).
g cant be M-recursive, otherwise A would be recursive, since g would be its indicator function (absurd).
I'm going to modify the article, if i'm wrong please state the reason here.  — Preceding unsigned comment added by X-Overload-X (talk • contribs) 04:31, 27 June 2011 (UTC)
thread_title:  Minimisation operator and partial functions 

message: Sorry if this has been discussed before, but the introduction is identical to https://www.princeton.edu/~achaney/tmve/wiki100k/docs/%CE%9C-recursive_function.html
Which came first?
Also, a cosmetic note: The last line of the intro is very confusing and should be omitted in my opinion, so it's not clear to someone unfamiliar with the material what "recursive function" means in this case. It might easily be thought that "recurisive" is being used here as a synonym for "mu-recursive". This line also seems a bit irrelevant.  — Preceding unsigned comment added by Luv2run (talk • contribs) 21:33, 26 October 2012 (UTC)
replies: text: In a nutshell: the lead paragraph has been stable for 10 years. A bit of research in the history indicates that in May 2002 Axelboldt introduced a significant change in the first two or three sentences, then someone else came along and added the Ackermann function, and etc. You can ask Axelboldt, although I suggest that before spending any time on this and pestering Axelboldt, you should ask yourself the question: who cares? And given the answer:  "I really care", then go through "the seven whys" ("Why do you care?" . . . "Because it's academically dishonest [etc]" . . . Why is it academically dishonest? . . . [etc]). BillWvbailey (talk) 23:13, 26 October 2012 (UTC)

text: The Princeton page says (at the bottom) "The article content of this page came from Wikipedia and is governed by CC-BY-SA." Tijfo098 (talk) 13:18, 12 November 2012 (UTC)
thread_title:  Plagiarized Intro? 

message: The introduction states that all recursive functions are a part of the R class of functions.
However; the mu-operator described in this very page is not expected to halt in some conditions, therefore clearly not in R.
Am I missing something basic here? - 8 June 2019‎ 185.3.147.227
:No, it says the set of all total recursive functions (with values in {0,1}) is R. The restriction "total" means all mu-operators involved in a function definition must eventually halt. - Jochen Burghardt (talk) 16:42, 8 June 2019 (UTC)
replies: text: For the record, when the question was asked, the last sentence of the lead was wrongly stated, and there was therefore a contradiction between it and the remainder of the lead (thanks to the IP for pointing it). I have fixed this contradiction before Jochen reply, which uses the new formulation. I wrote a reply explaining this, but apparently, I forgot to save it. D.Lazard (talk) 08:31, 9 June 2019 (UTC)
thread_title:  Is There A Contradiction In The Introduction? 

message: It is not required to demand that function f in the definition of the μ-operator is total. The μ-operator can be implemented in any programming language by some code similar to
     μ(f)(x*) <= i := 0; while f(i, x*) > 0 do i := i + 1 end; return(i)
As f is a total and μ-recursive, f(i, x*) > 0 is decidable and consequently μ(f)(x*) is undefined iff f(i, x*) > 0 for each i (as the while-loop then never terminates). Now let 
     μ'(f)(x*) <= i := 0; while f(i, x*) > 0 do i := i + 1 end; return(i)
for each (i.e. not necessarily total) function f. μ'(f)(x*) is undefined iff f(i, x*) > 0 for each i (as before) or f(i, x*) is undefined and f(j, x*) > 0 for each j < i (as the test in the while-statement then does not terminate). It is immediately obvious from the definition with the while-loop, that μ'(f) is a computable function, and that μ(f) = μ'(f) if f is total.
Example 1: If f(i, x) computes the residue class of i+1 mod x if x > 0 and is undefined for x = 0, then μ cannot be applied to f. μ'(f)(0) is undefined and μ'(f)(n+1) = n.
Example 2: If f(i) := 42 - i, if i ≤ 42, and f(i) := f(i+1) otherwise, then μ cannot be applied to f. μ'(f) is a total function as μ'(f) = 42. 
The definition of μ-recursive functions gives a notation (syntax) for the definition of computable functions, as the syntax of any programming language L does. However, it is decidable whether a certain text defines a program of L (each compiler for L provides a decision procedure). But it is undecible, whether a certain text defines a μ-recursive function because it cannot be decided whether a computable function is total (this is even not semi-decidable in fact). By allowing the minimization of non-total functions, the notation of μ-recursive functions becomes decidable. Jack Rusell (talk) 13:04, 21 November 2019 (UTC)
replies: text: You are right. This is the reason why, some time ago, I have added  before the definition of the operators (see above thread). But I forgot to remove "total" in the definition of the μ operator. Now, this is done, and presently the article defines your function μ'. The formulation can certainly be improved, but, getting a formally correct result would needs a much deeper edit. D.Lazard (talk) 15:18, 21 November 2019 (UTC)

text: I have added an explanation in each case. Maybe the quoted sentence may be edited and removed. By the way, there was an edit conflict with your added note. I have tagged it because if some textbooks use the definition with "total", at list one must be cited. Also, as the general recursive functions have been originally defined by Gödel (this must be said in the article), the original definition must be checked. In any case, the assertion that the two definitions lead to the same class of function seems dubious, and, if true, it proof is certainly not easy. D.Lazard (talk) 17:42, 21 November 2019 (UTC)

text: I have provided the required references. However, I was unable to cite without creating a duplicate entry in the reference list (I searched for a while). Maybe you (or someone else) can replace my non-standard citations with the correct command. I also provided references for the "same class" statement. It is obvious that μ-computable entails μ'-computable. I think a direct proof for the opposite needs some work. It is easier to use equivalence proofs, i.e. μ'-computable implies Turing-computable implies μ-computable. I checked my course notes where I proved equivalence of μ'-recursion with a simple while-language. When proving while-computable implies μ'-computable, the μ'-operator is applied to a total function in the proof (the function which evaluates the while-condition), hence my proof works fore the μ-operator as well. As I cannot give a reference to this proof here, I used Kleene's Normalform Theorem as an evidence. (PS: This comment was written before the former comment was, but sended later.) Jack Rusell (talk) 21:12, 21 November 2019 (UTC)
thread_title:  Minimisation operator and partial functions again 

message: Thanks to  and  for Having fixed my approximative knowledge of the subject. It appears from the preceding discussion that the historical context is completely lacking, although it is fundamental to really understand the subject. It could be provided by a history section where should appear (at least)
* Who introduced the concept, and for which purpose (AFIK, this is Gödel for the purpose of decidability theory, which is now a part of computability theory).
* Equivalence with lambda calculus and Turing machines (AFIK, this is due to Kleene), relationship with Church–Turing thesis.
* History of the terminology (AFIK, "μ-recursive function" is relatively recent, and Kleene used "general recursive function"). I ignore whether Gödel used "general recursive function" or simply "recursive function"). See also next thread.
Such an historical section seems the best way for explaining the choice of not imposing "total" for the minimization operator.
By the way there are many other things that deserve to be added to this article. In particular the section "Equivalence with other models of computability" need to be rewritten and expanded; the assertion that μ-recursive functions and Turing machines are "parallel" theories must be corrected.
Also, examples of μ-recursive functions that are not primitive recursive must be given (Ackermann function). D.Lazard (talk) 15:06, 22 November 2019 (UTC)
replies: text: For the equivalence, an overview can be found in the Church–Turing thesis in footnote 6. Some snippets of that article's history information may also be useful here. - Jochen Burghardt (talk) 21:48, 22 November 2019 (UTC)
thread_title:  Historical section needed, and other things to do 

message: I'm removing this edit request because I looked it up in a textbook. I'll make a small clarification. TricksterWolf (talk) 13:16, 14 February 2021 (UTC)
thread_title:  Could "partial recursive function" please be clarified? 

message: Note that there is a related discussion at Wikipedia talk:WikiProject Mathematics#Proposal: change terminology from "recursive" to "computable". --Trovatore (talk) 05:14, 23 April 2021 (UTC)
thread_title:  Related discussion