Articulo de referencia

Recursión inductiva

En la teoría de tipos intuicionista (TTI), una disciplina dentro de la lógica matemática , la inducción-recursión es una característica que permite declarar simultáneamente un t...

En la teoría de tipos intuicionista (TTI), una disciplina dentro de la lógica matemática , la inducción-recursión es una característica que permite declarar simultáneamente un tipo y una función sobre ese tipo. Permite la creación de tipos más grandes que los tipos inductivos , como los universos . Los tipos creados siguen siendo predicativos dentro de la TTI.

Una definición inductiva viene dada por reglas para generar elementos de un tipo. A partir de ese tipo, se pueden definir funciones por inducción sobre la forma en que se generan sus elementos. La recursión inductiva generaliza esta situación, ya que permite definir simultáneamente el tipo y la función, puesto que las reglas para generar elementos del tipo pueden referirse a la función. [ 1 ]

La inducción recursiva puede utilizarse para definir tipos grandes, incluyendo diversas construcciones de universos. Esto aumenta sustancialmente la solidez demostrativa de la teoría de tipos. Sin embargo, las definiciones inductivas recursivas aún se consideran predicativas .

Fondo

La inducción recursiva surgió de las investigaciones sobre las reglas de la teoría de tipos intuicionista de Martin-Löf . Esta teoría cuenta con varios "formadores de tipos" y cuatro tipos de reglas para cada uno. Martin-Löf había sugerido que las reglas para cada formador de tipos seguían un patrón que preservaba las propiedades de la teoría (por ejemplo, la normalización fuerte y la predicatividad ). Los investigadores comenzaron a buscar la descripción más general de este patrón, ya que esto indicaría qué tipos de formadores de tipos podrían añadirse (¡o no!) para extender la teoría de tipos.

El tipo "universo" fue el más interesante, porque cuando se escribieron las reglas "a la Tarski", definieron simultáneamente el "tipo universo" y una función que operaba sobre él. Esto finalmente llevó a Dybjer a la inducción-recursión.

Los trabajos iniciales de Dybjer llamaban a la inducción-recursión un "esquema" para reglas. Indicaba qué formadores de tipos podían añadirse a la teoría de tipos. Más tarde, él y Setzer escribirían un nuevo formador de tipos con reglas que permitían crear nuevas definiciones inductivo-recursivas dentro de la teoría de tipos. [ 2 ] Esto se añadió al asistente de prueba Half (una variante de Alf ).

La idea

Antes de abordar los tipos inductivos recursivos, veamos el caso más sencillo: los tipos inductivos. Los constructores para tipos inductivos pueden ser autorreferenciales, pero de forma limitada. Los parámetros del constructor deben ser "positivos":

  • no hacer referencia al tipo que se está definiendo
  • ser exactamente el tipo que se está definiendo, o
  • ser una función que devuelva el tipo que se está definiendo.

Con los tipos inductivos, el tipo de un parámetro puede depender de parámetros anteriores, pero no puede referirse a parámetros del tipo que se está definiendo. Los tipos inductivos recursivos van más allá: los tipos de un parámetro pueden referirse a parámetros anteriores que utilizan el tipo que se está definiendo. Estos deben ser "semipositivos":

  • ser una función que depende de un parámetro anterior si ese parámetro está incluido en la función que se está definiendo.

Entonces, siD{\displaystyle D}es el tipo que se está definiendo yF{\displaystyle f}Si la función se está definiendo (simultáneamente), estas declaraciones de parámetros son positivas:

  • a:A{\displaystyle a:A}
  • d:D{\displaystyle d:D}
  • gramo:ATypagmi{\displaystyle g:A\to {\mathsf {Type}}}
  • h:AD{\displaystyle h:A\to D}
  • i:ABD{\displaystyle i:A\to B\to D}
  • j:gramo a{\displaystyle j:g\ a} (Depende de parámetros anteriores, ninguno de los cuales es de tipoD{\displaystyle D}.)

Esto es parcialmente positivo:

  • k:(F d)D{\displaystyle k:(f\ d)\to D} (Depende del parámetro)d{\displaystyle d}de tipoD{\displaystyle D}pero solo a través de una llamada aF{\displaystyle f}.)

No son ni positivos ni semipositivos:

  • k:DA{\displaystyle k:D\to A} (D{\displaystyle D}es un parámetro de la función.)
  • l:(AD)A{\displaystyle l:(A\to D)\to A} (El parámetro toma una función que devuelveD{\displaystyle D}pero regresaA{\displaystyle A}sí mismo.)
  • metro:z d{\displaystyle m:z\ d} (Depende ded{\displaystyle d}de tipoD{\displaystyle D}pero no a través de la funciónF{\displaystyle f}.)

Ejemplo del universo

Un ejemplo común y sencillo es el formador de tipos para un universo a la Tarski. Consiste en un tipoU{\displaystyle U}y una funciónT:UTypagmi{\displaystyle T:U\to {\mathsf {Type}}}de tal manera que existe un elemento deU{\displaystyle U}para cada tipo en la teoría de tipos (exceptoU{\displaystyle U}¡en sí mismo!), y la funciónT{\displaystyle T}mapea los elementos deU{\displaystyle U}al tipo asociado.

El tipoU{\displaystyle U}En la teoría de tipos, existe un constructor (o regla de introducción) para cada formador de tipos. El correspondiente a las funciones dependientes sería:

doonortestrdotorΠ(:U)(:T()U):U{\displaystyle {\mathsf {constructor}}_{\Pi }(u:U)(u':T(u)\to U):U}

Es decir, toma un elemento{\displaystyle u}de tipoU{\displaystyle U}que se asignará al tipo del parámetro y una función{\displaystyle u'}de tal manera que para todos los valoresincógnita:T(){\displaystyle x:T(u)},(incógnita){\displaystyle u'(x)}se asigna al tipo de retorno de la función (que depende del valor del parámetro,incógnita{\displaystyle x}). (El final:U{\displaystyle :U}dice que el resultado del constructor es un elemento de tipoU{\displaystyle U}.)

La regla de reducción (o de cálculo) dice queT(doonortestrdotorΠ(,)){\displaystyle T({\mathsf {constructor}}_{\Pi }(u,u'))}se reduce aincógnita:T()T((incógnita)){\displaystyle \prod _{x:T(u)}T(u'(x))}.

Después de la reducción, la funciónT{\displaystyle T}está operando sobre una parte más pequeña de la entrada. Si eso se cumple cuandoT{\displaystyle T}se aplica a cualquier constructor, entoncesT{\displaystyle T}siempre terminará.

Uso

La recursión inductiva está implementada en Agda e Idris . [ 3 ]

Véase también

Referencias

  1. Dybjer, Peter (junio de 2000). "Una formulación general de definiciones inductivo-recursivas simultáneas en teoría de tipos" (PDF) . Journal of Symbolic Logic . 65 (2): 525– 549. CiteSeerX 10.1.1.6.4575 . doi : 10.2307 / 2586554 . JSTOR 2586554. S2CID 18271311 .   
  2. Dybjer, Peter (1999). "Una axiomatización finita de definiciones inductivo-recursivas". Cálculos lambda tipados y aplicaciones . Notas de clase en informática. Vol. 1581. págs. 129–146 . CiteSeerX 10.1.1.219.2442 . doi : 10.1007/3-540-48959-2_11 . ISBN    978-3-540-65763-7.
  3. Bove, Ana; Dybjer, Peter; Norell, Ulf (2009). "Una breve descripción general de Agda: un lenguaje funcional con tipos dependientes" . En Berghofer, Stefan; Nipkow, Tobias; Urban, Christian; Wenzel, Makarius (eds.). Demostración de teoremas en lógicas de orden superior . Lecture Notes in Computer Science. Vol. 5674. Berlín, Heidelberg: Springer. pp. 73–78 . doi : 10.1007/978-3-642-03359-9_6 . ISBN   978-3-642-03359-9.
  • Lista de publicaciones de Peter Dybjer sobre inducción e inducción-recursión.
  • Diapositivas que abarcan la inducción-recursión y sus derivados.