Today I learned something new! At first it was startling, but in hindsight it makes perfect sense: The Simply Typed Lambda Calculus is not Turing complete. Any well-typed program will eventually terminate, and the intuition here is that your program can only have a finite number of arrow types, and evaluation will always reduce the number of arrow-
(
Read more... )
Comments 7
If you want a typed model of the untyped lambda calculus, the everything type, call it D, has to be isomorphic ("has to be effectively the same type as") to D → D. The everything type is a function type, and its functions expect an everything and return an everything.
To actually describe what this set of things is carefully, you sometimes resort to tricky domain-theory tricks invented by Dana Scott.
Reply
Reply
Reply
I actually don't know what this means, and the way I interpret it it shouldn't be possible...
Reply
As jcreed points out above, if you want to encode the untyped lambda calculus with a typed language, that language cannot be the simply typed lambda calculus, because it's not Turing complete.
Reply
Reply
Reply
Leave a comment