9

Here's my problem : I know from Curry-Howard that simply typed lambda-calculus is isomorphic to natural deduction.

Now I know that natural deduction admits cut-elimination. I also know that the pullback of cut-elimination through Curry-Howard is reduction of terms (aka execution of a program).

So, I should deduce that every term strongly normalizes, but that implies that simply typed lambda-calculus is not Turing-complete (or it would have halting-problem-like limitations), which annoys me. Lambda-calculus is famously Turing-complete, isn't it?

Is the mistake the confusion between typed and untyped lambda-calculus? If so, why do we always say that Curry-Howard is a correspondance between proofs and programs if it only maps proof to very particular programs that always halt?

Thanks for helping me!

1 Answers1

12

Your reasoning is right. Unlike untyped lambda calculus, simply typed lambda calculus is strongly normalizing. And unlike untyped lambda calculus, simply typed lambda calculus is not Turing complete.

  • I remember a theorem that the only functions on integers (Church-encoded) expressible in simply typed lambda calculus are polynomials and conditionals. – lisyarus Sep 15 '20 at 17:37
  • 4
    And in fact, this is pretty much necessary for the logic side to be a consistent proof system: a program which loops infinitely could be viewed as having a return value in the empty type, which would correspond to a proof of $\bot$ i.e. an inconsistency. – Daniel Schepler Sep 15 '20 at 17:40