1

There are many different computational models, e.g. Turing machines, register machines, lambda calculus, etc.

I am wondering if there exists an axiomatization of computation, that abstracts away from the specifically constructed computational model.

I.e. is there a more general theory about computation that deals with computational machines that are not perfectly specified, but that still captures their common characteristic as computation machines?

user56834
  • 3,722
  • 4
  • 18
  • 32
  • 2
    I'm not really sure what you mean. What's the difference between an "axiomatization of computation" and a "computational model"? Surely, any axiomatization would be a model of computation? – David Richerby Jun 01 '18 at 16:55
  • @DavidRicherby, I'm not sure what there is to explain about this. Obviously I can't tell you exactly what I'm looking for, because then I would have already invented it. But I am wondering if there is a theory of which the specific computational models (turing machines, lambda calculus, etc), are examples. Clearly, there is a difference between an (axiomatic) theory and a constructed model. A model is not an axiomatization, wouldn't you agree? In the same way that the structure arithmetic is not the same thing as Peano arithmetic, which is not a structure but a set of axioms in FOL – user56834 Jun 01 '18 at 17:44
  • For example, a specific group, (let's say the integers with addition), is not the same as the theory of groups, which is an incomplete set of axioms (incomplete in the sense that there are sentences not implied by the axioms, nor their negation is implied). This is what it means for a theory to apply to multiple models... – user56834 Jun 01 '18 at 17:46
  • 1
    Well, in the sense that the definition of "computable" is "there's a Turing machine that does it", a (Turing-complete) model of computation is essentially an axiomatization of computation; indeed, that's what Turing invented his model for. I suppose it's possible that, in the converse direction (which is what you're asking) there could be axiomatizations that aren't models but it's not really clear to me what they would mean. – David Richerby Jun 01 '18 at 17:51
  • @DavidRicherby, So your answer is "I don't that anything like that exists". it's not really clear to me what it looks like either, otherwise I wouldn't need to ask this question. – user56834 Jun 01 '18 at 17:55
  • So far, I think my answer is the much less definite, "I'm not confident that I understand well enough to be sure that I don't think anything like that exists." :-) (I'm not trying to be critical or obstructive. I fully take your point that being able to clearly articulate the question would be very close to answering it!) – David Richerby Jun 01 '18 at 18:11
  • @DavidRicherby, let me ask a different but related question which might help: Is there a certain particular canonical model of computation $M$, such that we can see all other models of computation as special cases of this model? Let me be clear, I do NOT mean that $M$ is able to simulate the other models. Of course a Turing machine can simulate lambda calculus and vice versa. What I mean is that any known model of computation is subsumed as a special case, (e.g. depending on certain parameter initiations) in $M$. By $M$ being canonical, I mean that its not simply a "concatenation" of models. – user56834 Jun 01 '18 at 18:27
  • Well, I think I understand that question fully. Unfortunately, my answer to that is "I don't know." – David Richerby Jun 01 '18 at 21:04

1 Answers1

4

The question "what is a computational model" is quite open ended and is difficult to answer definitely. It's a bit like asking "what is geometry". But people have given some answers.

As far as I can understand you, you are looking for a general theory of computation (so, not a model that "contains other, for what's that supposed to mean, nor an "axiomatization" of a specific thing). One such theory is offered by partial combinatory algebras (PCA), which are very simple structures that subsume many models of computation, including: Turing machines (with and without oracles), $\lambda$-calculus (with many of its extensions), enumeration operators, and even topological models of computation. There are further variants of PCAs: ordered PCAs, typed PCAs, etc.

One should never just "collect models of computation" but also ask how to relate them, so we should think about transformations between PCAs. John Longley gave a very good account of these, namely the applicative morphisms. Speaking a bit vaguely, an applicative morphism is an interpretr of one PCA implemented in another PCA.

If you are interested in this topic you can consul Jaap van Oosten's book on realizability.

Andrej Bauer
  • 30,396
  • 1
  • 70
  • 117