Computable Functions and the Church-Turing Thesis

Context: FIT2014_MOC · upgrades Turing Machines from acceptors to function computers · the bridge from “machine” to “algorithm” that licenses every later undecidability argument

Quick Revision

  • 🎯 Objective: define by a TM — domain , value the tape contents when halts ➔ is computable iff some TM computes it.
  • 📦 Core Components: encoding scheme ➔ objects as strings | unary code ➔ , tuples -separated | Church–Turing thesis ➔ algorithm TM.
  • ⚡ Key Constraint: the Church–Turing thesis is not a theorem — it equates an informal notion (algorithm) with a formal one (TM), so it can only be evidenced, never proved.

📝 How It Works

1. The function computed by a TM

For a Turing machine :

  • Domain — inputs on which halts in the Accept state. Inputs in or have no value, so the function is in general partial.
  • Value the string left on the tape after halts, excluding the trailing blanks.
  • Computable function is computable if it is the function computed by some Turing machine.
  • Objects other than strings ➔ to speak of computability for numbers, sequences, arrays, graphs you must fix an encoding of those objects as strings; is computable iff the induced string-to-string function is. The encoding is part of the claim, not an afterthought.

2. Encoding objects as strings

ObjectSchemeExample
CharacterASCII over , fixed 6 letters
Integerbinary over (, )
Integerunary, so ,
Tuple of unary parts, separated by
  • Why unary for hand-built machines ➔ “add one” becomes “write one more ”, so arithmetic reduces to marking and sweeping instead of carry propagation.
  • Negative integers ➔ adopt some convention letting one letter stand for the minus sign; the lecture leaves the choice open.

3. Three arithmetic machines (unary code)

Successor ➔ run right to the blank, write an .

stateDiagram-v2
    direction LR
    [*] --> s1
    s1: 1 Start
    s2: 2 Accept
    s1 --> s1: a→R
    s1 --> s2: ∆→a,R

Addition on input ➔ turn the separator into an (joining the two blocks), then delete one from the right end to cancel it.

stateDiagram-v2
    direction LR
    [*] --> s1
    s1: 1 Start
    s2: 2 Accept
    s1 --> s1: a→R
    s1 --> s3: b→a,R
    s3 --> s3: a→R
    s3 --> s4: ∆→L
    s4 --> s2: a→∆,R
  • Trace . ✓ And . ✓

Double ➔ per pass, mark one as , append an at the right end, restore the ; when the s run out, rewrite every as an .

stateDiagram-v2
    direction LR
    [*] --> s1
    s1: 1 Start
    s2: 2 Accept
    s1 --> s2: ∆→R
    s1 --> s3: a→#,R
    s3 --> s3: a→R
    s3 --> s3: A→R
    s3 --> s4: ∆→A,L
    s4 --> s4: a→L
    s4 --> s4: A→L
    s4 --> s5: #→a,R
    s5 --> s3: a→#,R
    s5 --> s6: A→a,R
    s6 --> s6: A→a,R
    s6 --> s2: ∆→L
  • Trace ; each original is kept and contributes one appended , giving . ✓
  • ⚡ Contrast with acceptors ➔ these machines still halt in State , but what matters is now the tape residue, not the fact of acceptance. Same formalism, different reading.

4. Robustness — variations that change nothing

  • Direction ➔ allowing “stay still” alongside .
  • Tapes ➔ two-way infinite; multiple tapes; separate input/output/work tapes; tapes of 2 or more dimensions.
  • Resultthe same class of computable functions in every case. Together with the equivalences to NTMs, TMs, 2PDAs and queue automata in Turing Machines, the class refuses to grow.

5. Other routes to computability, and the thesis

ApproachOriginatorYear
Recursive function theoryKurt Gödel1931
Lambda calculusAlonzo Church1936
Turing machinesAlan Turing1936–37

Church–Turing Thesis. Any function which can be defined by an algorithm can be computed by a Turing machine.

  • Not a theorem ➔ “algorithm” is an informal, pre-mathematical notion, so there is nothing to prove against. It is widely accepted, not derived.
  • Evidence 1 — convergence ➔ independently invented approaches (recursive functions, -calculus, TMs) all define the same class of functions.
  • Evidence 2 — long practice ➔ decades of experience that algorithms can be implemented as programs, and therefore on Turing machines.
  • Evidence 3 — no counterexample ➔ no algorithm has ever been exhibited that seems unimplementable on a TM.
  • Why it matters downstream ➔ it lets a proof say “there is no algorithm for having only shown “there is no TM for — the licence for every undecidability result.

⚠️ Common Mistakes

  • 💡 The thesis is not provable ➔ calling it “Church’s theorem”, or claiming it was proved by the equivalence of the three models, loses the mark. Convergence is evidence, not proof.
  • 💡 Computability is relative to an encoding ➔ a function on graphs or sequences has no computability status until you fix how those objects become strings; say so explicitly in an exam answer.
  • 💡 Trailing blanks are not output ➔ the value is the tape content with the trailing blanks stripped; forgetting this makes look ill-defined.
  • 💡 The domain is , not ➔ a TM computing may loop or crash on other inputs; computable functions are partial unless the machine is a decider.
  • 💡 in unary ➔ the code for zero is the empty string, which is why the tuple separator is mandatory: and differ only by where the separators fall.

🧠 Active Recall