User:IssaRice/Computability and logic/S–m–n theorem: Difference between revisions

From Machinelearning
No edit summary
No edit summary
Line 1: Line 1:
The '''''s''–''m''–''n'' theorem''' (also called the '''parametrization theorem''') states that if <math>\varphi_e</math> is an <math>(m+n)</math> place [[../Computable partial function|computable partial function]] and <math>a_1,\ldots,a_m</math> are natural numbers, then there exists a [[../Primitive recursive function|primitive recursive function]] <math>s^m_n</math> such that <math>\varphi_{s^m_n(e,a_1,\ldots,a_m)} \simeq \lambda y_1 \cdots y_n [\varphi_e(x_1,\ldots,x_m,y_1,\ldots,y_n)]</math>.
The '''''s''–''m''–''n'' theorem''' (also called the '''parametrization theorem''') states that if <math>\varphi_e</math> is an <math>(m+n)</math> place [[../Computable partial function|computable partial function]] and <math>a_1,\ldots,a_m</math> are natural numbers, then there exists a [[../Primitive recursive function|primitive recursive function]] <math>s^m_n</math> such that <math>\varphi_{s^m_n(e,a_1,\ldots,a_m)} \simeq \lambda y_1 \cdots y_n [\varphi_e(x_1,\ldots,x_m,y_1,\ldots,y_n)]</math>.


Roughly speaking, the theorem states that if we start out with a computable partial function <math>\varphi_e</math> of <math>m+n</math> variables, then we can fill in <math>m</math> of the variables with actual values. When we do this, the resulting <math>n</math>-place partial function continues to be computable. Moreover, we can find the index of this new partial function in terms of the old index and the values in a primitive recursive way.
In other words, the theorem states that if we start out with a computable partial function <math>\varphi_e</math> of <math>m+n</math> variables, then we can fill in <math>m</math> of the variables with actual values. When we do this, the resulting <math>n</math>-place partial function continues to be computable. Moreover, we can find the index of this new partial function in terms of the old index and the values in a primitive recursive way.


The ''s''–''m''–''n'' theorem is essentially the same thing as currying in functional programming languages.<ref>https://cs.stackexchange.com/questions/80837/is-smn-theorem-the-same-concept-as-currying</ref>
The ''s''–''m''–''n'' theorem is essentially the same thing as currying in functional programming languages.<ref>https://cs.stackexchange.com/questions/80837/is-smn-theorem-the-same-concept-as-currying</ref>

Revision as of 07:13, 18 December 2018

The smn theorem (also called the parametrization theorem) states that if is an place computable partial function and are natural numbers, then there exists a primitive recursive function such that .

In other words, the theorem states that if we start out with a computable partial function of variables, then we can fill in of the variables with actual values. When we do this, the resulting -place partial function continues to be computable. Moreover, we can find the index of this new partial function in terms of the old index and the values in a primitive recursive way.

The smn theorem is essentially the same thing as currying in functional programming languages.[1]

The smn theorem, together with the universal function, is useful for proving other theorems and also to avoid the arbitrariness of the specific encoding used.

Different kinds of proofs:

  • Tape/register-based way
  • Using recursive functions and ways of encoding them

Etymology

The name "smn" comes from the notation (denoted in some texts) for the function that finds the new index.

References