stringtranslate.com

Teorema de Rice-Shapiro

En teoría de la computabilidad , el teorema de Rice-Shapiro es una generalización del teorema de Rice , llamado así por Henry Gordon Rice y Norman Shapiro . Afirma que cuando una propiedad semidecidible de funciones computables parciales es verdadera en una determinada función parcial, se puede extraer una subfunción finita tal que la propiedad siga siendo verdadera.

La idea informal del teorema es que la "única forma general" de obtener información sobre el comportamiento de un programa es ejecutar el programa y, debido a que un cálculo es finito, uno sólo puede probar el programa en un número finito de entradas.

Un teorema estrechamente relacionado es el teorema de Kreisel-Lacombe-Shoenfield-Tseitin , que fue obtenido independientemente por Georg Kreisel , Daniel Lacombe y Joseph R. Shoenfield [1] , y por Grigori Tseitin [2] .

Declaración formal

Teorema de Rice-Shapiro. [3] : 482  [4] [5] Sea P un conjunto de funciones parciales computables tales que el conjunto de índices de P (es decir, el conjunto de índices e tales que φ eP , para alguna numeración admisible fija φ ) es semidecidible . Entonces, para cualquier función parcial computable f , se cumple que P contiene f si y solo si P contiene una subfunción finita de f (es decir, una función parcial definida en un número finito de puntos, que toma los mismos valores que f en esos puntos).

Teorema de Kreisel-Lacombe-Shoenfield-Tseitin. [3] : 362  [1] [2] [6] [7] [8] Sea P un conjunto de funciones computables totales tales que el conjunto de índices de P es decidible con la promesa de que la entrada es el índice de una función computable total (es decir, hay una función computable parcial D que, dado un índice e tal que φ e es total, devuelve 1 si φ eP y 0 en caso contrario; D ( e ) no necesita definirse si φ e no es total). Decimos que dos funciones totales f , g "concuerdan hasta n " si para todo kn se cumple que f ( k ) = g ( k ). Entonces, para cualquier función computable total f , existe n tal que para toda función computable total g que concuerde con f hasta n , fPgP .

Discusión

Los dos teoremas están estrechamente relacionados y también se relacionan con el teorema de Rice . En concreto:

Ejemplos

Según el teorema de Rice-Shapiro, no es ni semidecidible ni co-semidecidible si un programa dado:

Según el teorema de Kreisel-Lacombe-Shoenfield-Tseitin, es indecidible si un programa dado que se supone que siempre termina :

Demostración del teorema de Rice-Shapiro

Sea P un conjunto de funciones computables parciales con un conjunto de índices semidecidibles.

Cerramiento ascendente

Primero demostramos que P es un conjunto cerrado hacia arriba , es decir, si fg y fP , entonces gP (aquí, fg significa que f es una subfunción de g , es decir, el gráfico de f está contenido en el gráfico de g ). La demostración utiliza un argumento diagonal típico de los teoremas de computabilidad.

Supongamos por contradicción que existen dos funciones f y g tales que fP , gP y fg . Construimos un programa p de la siguiente manera. Este programa toma una entrada x . Utilizando una técnica de ensamblaje estándar, p ejecuta dos tareas en paralelo.

Distinguimos dos casos.

Extraer una subfunción finita

A continuación, demostramos que si P contiene una función computable parcial f , entonces contiene una subfunción finita de f . Fijemos una función computable parcial f en P . Construimos un programa p que toma la entrada x y ejecuta los siguientes pasos:

Supongamos que φ pP . Esto implica que el semialgoritmo para semidecidir P utilizado en el primer paso nunca devuelve verdadero. Entonces, p calcula f , y esto contradice el supuesto fP . Por lo tanto, debemos tener φ pP , y el algoritmo para semidecidir P devuelve verdadero en p después de una cierta cantidad de pasos n . La función parcial φ p solo se puede definir en entradas x tales que xn , y devuelve f ( x ) en tales entradas, por lo tanto, es una subfunción finita de f que pertenece a P .

Conclusión

Sólo queda reunir las dos partes de la demostración. Si P contiene una función computable parcial f , entonces contiene una subfunción finita de f por la segunda parte, y a la inversa, si contiene una subfunción finita de f , entonces contiene a f , porque está cerrada hacia arriba por la primera parte. De esta forma, el teorema queda demostrado.

Demostración del teorema de Kreisel-Lacombe-Shoenfield-Tseitin

Preliminares

Se dice que una función total es en última instancia cero si siempre toma el valor cero excepto para un número finito de puntos, es decir, existe N tal que para todo nN , h ( n ) = 0. Nótese que dicha función siempre es computable (se puede calcular simplemente verificando si la entrada está en una cierta lista predefinida y, de lo contrario, devolviendo cero).

Fijamos U como una enumeración computable de todas las funciones totales que en última instancia son cero, es decir, U es tal que:

Podemos construir U mediante técnicas estándar (por ejemplo, para aumentar N , enumerar funciones finalmente cero que estén limitadas por N y cero en entradas mayores que N ).

Aproximación mediante funciones en última instancia nulas

Sea P como en el enunciado del teorema: un conjunto de funciones computables totales tales que existe un algoritmo que, dado un índice e y una promesa de que φ e es computable, decide si φ eP .

Primero demostramos un lema: Para toda función total computable f , y para todo entero N , existe una función h en última instancia nula tal que h concuerda con f hasta N , y fPhP .

Para demostrar este lema, fijemos una función computable total f y un entero N , y sea B el booleano fP. Construyamos un programa p que tome la entrada x y realice estos pasos:

Claramente, p siempre termina, es decir, φ p es total. Por lo tanto, la promesa de que P se ejecute en p se cumple.

Supongamos por contradicción que uno de f y φ p pertenece a P y el otro no, es decir, ( φ pP ) ≠ B . Entonces vemos que p calcula f , ya que P no devuelve B en p sin importar la cantidad de pasos. Por lo tanto, tenemos f = φ p , contradiciendo el hecho de que uno de f y φ p pertenece a P y el otro no. Este argumento prueba que fPφ pP . Luego, el segundo paso hace que p devuelva cero para x suficientemente grande , por lo que φ p es en última instancia cero; y por construcción (debido al primer paso), φ p concuerda con f hasta N . Por lo tanto, podemos tomar h = φ p y el lema está probado.

Prueba principal

Con el lema anterior, ahora podemos demostrar el teorema de Kreisel-Lacombe-Shoenfield-Tseitin. Nuevamente, fijemos P como en el enunciado del teorema, sea f una función computable total y sea B el booleano " fP ". Construyamos el programa p que toma la entrada x y ejecuta estos pasos:

Primero demostramos que P devuelve B en p . Supongamos por contradicción que este no es el caso ( P devuelve ¬ B o P no termina). Entonces p realmente calcula f . En particular, φ p es total, por lo que la promesa a P cuando se ejecuta en p se cumple, y P devuelve el booleano φ pP , que es fP , es decir, B , contradiciendo la suposición.

Sea n el número de pasos que P da para regresar a B en p . Afirmamos que n satisface la conclusión del teorema: para toda función total computable g que concuerda con f hasta n , se cumple que fPgP . Supongamos por contradicción que existe g total computable que concuerda con f hasta n y tal que ( gP ) ≠ B .

Aplicando nuevamente el lema, existe k tal que U ( k ) concuerda con g hasta n y gPU ( k ) ∈ P . Para tal k , U ( k ) concuerda con g hasta n y g concuerda con f hasta n , por lo tanto U ( k ) también concuerda con f hasta n , y como ( gP ) ≠ B y gPU ( k ) ∈ P , tenemos ( U ( k ) ∈ P ) ≠ B . Por lo tanto, U ( k ) satisface las condiciones del paso de búsqueda paralela en el programa p , a saber: U ( k ) concuerda con f hasta n y ( U ( k ) ∈ P ) ≠ B . Esto prueba que la búsqueda en el segundo paso siempre termina. Fijamos k como el valor que encuentra.

Observamos que φ p = U ( k ). De hecho, o bien el segundo paso de p devuelve U ( k )( x ), o bien el tercer paso devuelve f ( x ), pero el último caso solo ocurre para xn , y sabemos que U ( k ) concuerda con f hasta n .

En particular, φ p = U ( k ) es total. Esto hace que la promesa a P se cumpla en p , por lo tanto, P devuelve φ pP en p .

Hemos encontrado una contradicción: por un lado, el booleano φ pP es el valor de retorno de P en p , que es B , y por otro lado, tenemos φ p = U ( k ), y sabemos que ( U ( k ) ∈ P ) ≠ B .

Perspectiva desde la topología efectiva

Para cualquier función unaria finita sobre números enteros, sea el 'truncado' de todas las funciones parcialmente recursivas que están definidas y concuerdan con , en el dominio de .

Equipe el conjunto de todas las funciones parcialmente recursivas con la topología generada por estos frusta como base . Tenga en cuenta que para cada frustum , el conjunto de índices es recursivamente enumerable. De manera más general, esto se cumple para cada conjunto de funciones parcialmente recursivas:

es recursivamente enumerable solo si y solo si es una unión recursivamente enumerable de frusta.

Aplicaciones

El teorema de Kreisel-Lacombe-Shoenfield-Tseitin se ha aplicado a problemas fundamentales en la elección social computacional (en sentido más amplio, teoría de juegos algorítmicos ). Por ejemplo, Kumabe y Mihara [9] [10] aplican este resultado a una investigación de los números de Nakamura para juegos simples en la teoría de juegos cooperativos y la teoría de la elección social .

Notas

  1. ^ ab Kreisel, Georg ; Lacombe, Daniel ; Shoenfield, Joseph R. (1959). "Funcionales recursivos parciales y operaciones efectivas". En Heyting, Arend (ed.). Constructividad en matemáticas . Estudios de lógica y fundamentos de las matemáticas. Ámsterdam: Holanda Septentrional. págs. 290–297.
  2. ^ ab Tseitin, Grigori (1959). "Operadores algorítmicos en espacios métricos constructivos, completos y separables". Doklady Akademii Nauk . 128 : 49-52.
  3. ^ ab Rogers Jr., Hartley (1987). Teoría de funciones recursivas y computabilidad efectiva . MIT Press. ISBN  0-262-68052-1.
  4. ^ Cutland, Nigel (1980). Computabilidad: una introducción a la teoría de funciones recursivas . Cambridge University Press. ;Teorema 7-2.16.
  5. ^ Odifreddi, Piergiorgio (1989). Teoría de la recursión clásica . Holanda Septentrional.
  6. ^ Moschovakis, Yiannis N. (junio de 2010). "El asombroso segundo teorema de recursión de Kleene" (PDF) . The Bulletin of Symbolic Logic . 16 (2).
  7. ^ Royer, James S. (junio de 1997). "Semántica vs. sintaxis vs. cálculos: modelos de máquina para funciones polinómicas de tipo 2 limitadas en el tiempo". Journal of Computer and System Sciences . 54 (3): 424–436. doi : 10.1006/jcss.1997.1487 .
  8. ^ Longley, Juan; Normann, Dag (2015). Computabilidad de orden superior . Saltador. pag. 441.doi : 10.1007 /978-3-662-47992-6.
  9. ^ Kumabe, M.; Mihara, HR (2008). "Los números de Nakamura para juegos simples computables". Elección social y bienestar . 31 (4): 621. arXiv : 1107.0439 . doi :10.1007/s00355-008-0300-5. S2CID  8106333.
  10. ^ Kumabe, M.; Mihara, HR (2008). "Computabilidad de juegos simples: una caracterización y aplicación al núcleo". Revista de Economía Matemática . 44 (3–4): 348–366. arXiv : 0705.3227 . doi :10.1016/j.jmateco.2007.05.012. S2CID  8618118.