
Is This a Turing Machine? - martyalain
http://lambdaway.free.fr/lambdawalks/?view=meta4
======
martyalain
I wonder why until now nobody wrote any comment about the content of this
paper, a very simple implementation of lambda calculus showing as simply as
possible how on two operations, abstraction and application, can be built the
data and control structures at the bottom of a programming language: booleans,
pairs, lists, recursion, numbers... And so, no answer to my question.

~~~
martyalain
About this paper Simon Peyton Jones (Haskell, ...) mailed me:

"It makes sense, yes, but it’s not clear what is new. This is just the untyped
lambda calculus and church numerals, isn’t it? All good, but not new. Of
course, old is good – it has stood the test of time. Lambda calculus is
fantastically small yet it is Turing complete. Sometimes the implementation
makes a difference."

And my answer was: " Yes "Sometimes the implementation makes a difference" and
here we are, the implementation of metatalk is absolutely different. As it can
be seen at the end of this page
[http://lambdaway.free.fr/lambdawalks/?view=meta3](http://lambdaway.free.fr/lambdawalks/?view=meta3)
in the "Annexe" section. Nothing but a hundred of vanilla javascript lines,
which are the kernel of lambdatalk.

Your opinion is welcome.

------
qubex
Isn’t this just an illustration of the Church-Turing Thesis?

[https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis](https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis)

~~~
bhntr3
From the article:

> It's not so amazing, the λ calculus is equivalent to a Turing machine.

It seems meta3 is a very basic implementation of the lambda calculus. But I
believe the equivalence of Turing machines and the lambda calculus is proven.
The church Turing thesis is a bit more. My understanding is that it
conjectures that there is nothing that can be computed that can't be computed
by a Turing machine or the lambda calculus. So nothing more powerful than the
lambda calculus exists. I'm not sure this article shows that.

~~~
isaachier
Usually the combination of names for the theory means that researchers
recognize both versions as largely equivalent (e.g. Newton-Leibnitz axiom).

The contention that the combined theories must be the definition of
computability should be true about each theory in isolation. If a Turing
machine cannot calculate any computable problem, then why bother defining a
Turing machine? What is the purpose of the definition if not to prove that any
computable problem can be solved using the device? The same goes for lambda
calculus.

~~~
bhntr3
I think you're commenting on this line?

> can't be computed by a Turing machine or the lambda calculus

I agree they're equivalent. That's been proven. Maybe that would be clearer if
it said "both a turing machine and the lambda calculus"? That's how I meant
it.

Anyway I was just trying to add to the discussion by pointing out that what
makes the Church-Turing Thesis a thesis or conjecture is that it hasn't been
proven that "any computable problem can be solved using the device". That's
generally accepted but not proven.

The equivalence of turing machines and the lambda calculus is actually a
theorem though because it has been proven.

~~~
tialaramex
Yet, it's a conjecture because it hasn't been proven. It's unprovable in fact.
Church-Turing is in effect a statement of belief about what computation is.
_Strong_ Church-Turing is a statement of belief about our universe.

But it's normal to accept Church-Turing (though not Strong Church-Turing)
because once you follow what Gödel, Church and Turing had uncovered the
alternatives seem intuitively crazy - Church-Turing has to be right. It's like
accepting Modus Ponens and Modus Tollens. I can't present a useful logical
argument for why you should accept those because my logical argument will end
up relying on them, if you won't accept them then we've nothing further to
talk about.

~~~
ncmncm
Not a belief: it is a definition. If somebody comes up with something useful
that doesn't fit, this becomes "classical" computation, and the new kind gets
an adjective -- say, "quantum", that's catchy -- and then they both get to be
computation.

Defining what you can't prove isn't a dodge. It's the foundation of all
rigorous thinking. You can only prove anything within the bounds of a
formalism, and anything is impossible only within that formalism. Thus in
Einstein Lorentz space, going faster than light is impossible. Out here, it's
true only if E-L is right about that. (And we know it's not right about
_everything_ , but still maybe -- probably -- about that.)

~~~
tialaramex
Quantum computers aren't doing anything that you couldn't do with a Turing
machine. You can get a perfectly nice emulator that will run all Quantum
computer algorithms on your Turing machine today. They'll just be annoyingly
slow.

There are some machines that don't exist which are categorically more capable
than a Turing machine, such as Clock Doubling Machines, (which get to do an
_infinite_ amount of Turing computation in finite time) but those don't exist
at all so while philosophers can insist upon debating them it won't do you any
practical good.

------
martyalain
This question is bound to two other pages: \-
[http://lambdaway.free.fr/lambdawalks/?view=meta3](http://lambdaway.free.fr/lambdawalks/?view=meta3)
\-
[http://lambdaway.free.fr/lambdawalks/?view=fromroots2canopy](http://lambdaway.free.fr/lambdawalks/?view=fromroots2canopy)

Please don't be evil. It's just a question.

------
M5x7wI3CmbEem10
could ML language models be turing complete if they are able to solve
functions given parameters in English?

e.g. “x is a variable. y is equal to two plus x. if x is two, what is y?”

and when run, it outputs four. what would be the implications of this?

~~~
frabert
Maybe a lame answer, but it is my understanding that current ML models are
based around neural networks, and NN can easily encode NAND gates which are
universal, so they are already Turing-complete.

~~~
bhntr3
Here's an interesting paper on the topic. It seems that only some NN
architectures are turing complete:
[https://arxiv.org/pdf/1901.03429.pdf](https://arxiv.org/pdf/1901.03429.pdf)

To the essence of what I think the original question is asking: It seems
possible (due to the turing completeness of some NN architectures) that a
language model could learn a sub-network that was a turing complete
computational framework + problem solver and then use that to solve problems
in natural language. But it also seems highly unlikely that it would actually
play out that way.

The linked paper has a nice summary of attempts to build neural nets that
learn algorithms. It seems this more direct approach would be likely to yield
a result faster than waiting for such a capability to emerge in GPT-12 or
something.

Of course most ML models execute from within a turing complete programming
language/execution environment anyway. If we want to solve math problems, it
might be easier to train a model to translate natural language into a more
formal definition (afaik this is still very hard) and then hand off the formal
definition of the problem to an automated theorem prover. After all, being
turing complete doesn't make all problems solvable or tractable from a run
time / memory perspective and that's probably the bigger bottleneck when it
comes to solving hard math problems.

