Questions: General Recursive Functions and the μ-Operator
5 questions to test your understanding
Score: 0 / 5
Question 1 Multiple Choice
A function f(n) is defined as f(n) = μx[g(x, n) = 0]. Which best describes f?
Af is always total, because the μ-operator is guaranteed to find a solution
Bf is total only when g is primitive recursive
Cf may be undefined for some n, if no x satisfies g(x, n) = 0 or g diverges on a smaller input
Df computes strictly more functions than a Turing machine, since unbounded search is more powerful
The μ-operator finds the *least* x satisfying the condition, but if no such x exists — or if g is undefined for some intermediate input — the search runs forever and f is undefined on that n. This partiality is the defining feature that distinguishes general recursive functions from primitive recursive ones. Option D is wrong: general recursive functions compute exactly the same class as Turing machines, not more.
Question 2 Multiple Choice
What is the most compelling mathematical evidence for the Church-Turing thesis?
AChurch personally verified that lambda calculus and Turing machines always produce identical results on test inputs
BThree entirely independent formalizations — recursive functions, lambda calculus, and Turing machines — each developed from different starting points and all define exactly the same class of computable functions
CNo counterexample to the thesis has been discovered using any physical hardware
DPrimitive recursive functions are a proper subset of all three frameworks, confirming a shared foundation
The compelling argument is the remarkable convergence: Gödel (recursive functions), Church (lambda calculus), and Turing (machines) each approached computability from entirely different mathematical starting points and independently arrived at the same class of functions. This robustness across three uncoordinated formalizations is strong evidence — though not proof — that the class captures something intrinsic about the nature of effective computation.
Question 3 True / False
The fact that partial recursive functions can be undefined on some inputs is a deficiency of the formalism — a complete theory of computation should cover most possible inputs.
TTrue
FFalse
Answer: False
Partiality is not a defect but a fundamental and necessary feature. The halting problem proves that no total computable function can decide whether an arbitrary program terminates. Any model that restricts to total functions is provably incomplete — primitive recursive functions already miss the Ackermann function. The μ-operator deliberately introduces partiality to match the natural limit of computability: some computations run forever, and the theory must represent this honestly.
Question 4 True / False
Nearly every total recursive function — one that terminates on most inputs — is also primitive recursive.
TTrue
FFalse
Answer: False
The Ackermann function is the canonical counterexample. It is total (defined and terminating for all natural number inputs) and general recursive (expressible with the μ-operator), but it grows faster than any primitive recursive function and provably cannot be expressed using only composition and primitive recursion. The total recursive functions strictly include the primitive recursive ones. Moreover, deciding whether a given general recursive function is total is itself undecidable.
Question 5 Short Answer
Why can we enumerate all partial recursive functions but not algorithmically identify which ones among them are total?
Think about your answer, then reveal below.
Model answer: We can enumerate all partial recursive functions by systematically listing all finite programs or recursive definitions — there are countably many. But deciding whether any given program halts on all inputs is the halting problem, which is undecidable. We have no algorithm to filter the enumeration to keep only the total ones. The 'total recursive functions' is a semantically-defined class (those general recursive functions that happen to always terminate), and membership is not algorithmically checkable.
This follows from Rice's theorem: any non-trivial semantic property of programs (including 'is total') is undecidable. You can generate an infinite list of all recursive programs, but you cannot build a halting filter. The distinction between the syntactically-defined class of all partial recursive programs and the semantically-defined subclass of total ones is a fundamental asymmetry in computability theory.