¿Cuál es el papel de la predicatividad en las definiciones inductivas en la teoría de tipos?


16

A menudo queremos definir un objeto AU acuerdo con algunas reglas de inferencia. Dichas normas denotan una función de generación F que, cuando es monotónica, se obtiene un punto menos fijo μF . Tomamos A:=μF como la "definición inductiva" de A . Además, la monotonicidad de F nos permite razonar con el "principio de inducción" para determinar cuándo un conjunto contiene A (es decir, cuando una propiedad se mantiene universalmente en A ).

En Coq esto corresponde a escribir una definición de A con términos de introducción explícitos. Si bien esta definición denota una función particular F , esa función no es necesariamente monotónica. Por lo tanto, Coq emplea algunas comprobaciones sintácticas para garantizar la "buena formación" de la definición. Aproximadamente, rechaza las ocurrencias de A en posiciones negativas en los tipos de los términos de introducción.InductiveAFA

(Si mi comprensión hasta este punto es defectuosa, ¡corríjame!)

Primero, algunas preguntas en el contexto de Coq:

1) ¿La verificación sintáctica en Coq sirve simplemente para garantizar que la definición de seapredicativa? (Si es así, ¿es la impredicatividad la única forma en que la definición estaría mal definida?) ¿O está controlando la monotonicidad? (En consecuencia, ¿es la no monotonía lo que podría matarlo?)A

2) ¿Una ocurrencia tan negativa de implica necesariamente queA definición 's es impredicativo / no monótona? ¿O es que Coq simplemente no puede verificar que esté bien definido en ese caso?A

Y más generalmente:

3) ¿Cuál es la relación entre la predicatividad de una definición inductiva y la monotonía de la función generadora de esa definición? ¿Son las dos caras de la misma moneda? ¿No están relacionados? Informalmente, ¿cuál importa más?

Respuestas:


14

No, en este caso, la predicatividad y la monotonicidad no están estrechamente relacionadas.

La verificación de positividad en Coq / Adga sirve para asegurarse de que está tomando el punto menos fijo de una cosa monótona, aproximadamente.

Aquí le mostramos cómo pensar en tipos inductivos en términos de redes y operadores monótonos. Recuerde que el teorema de Knaster-Tarski dice que en una red completa , cada operador monótono f : L L tiene un punto fijo mínimo μ ( f ) . A continuación, podemos pensar en los tipos en una teoría de tipos como formando una red bajo capacidad de prueba. Es decir, el tipo S es inferior a T si la verdad de S implica la de T . Ahora, lo que nos gustaría hacer es tomar un operador monótono F μ ( F ) . Lf:LLμ(f)STSTF en tipos y usar Knaster-Tarski para obtener una interpretación del punto menos fijo de este operadorμ(F)

Sin embargo, los tipos en la teoría de tipos no son solo una red: forman una categoría. Es decir, dado dos tipos y T , potencialmente hay muchas maneras para que S por debajo de T , con una forma para cada prueba e : S T . Por lo tanto, un operador tipo F también tiene que hacer algo sensato en estas pruebas. La generalización apropiada de la monotonicidad es la functorialidad . Es decir, queremos que F tenga un operador en los tipos, y también que tenga una acción en las pruebas, de modo que si e : S T , entonces F (STSTe:STFFe:ST .F(e):F(S)F(T)

Ahora, la funcionalidad se conserva mediante sumas y productos (es decir, si y G son endofunctores en los tipos, entonces F + G y F × G (actuando puntualmente) también son functores en los tipos (suponiendo que tengamos sumas y productos en nuestro álgebra de tipos). Sin embargo, el espacio de funciones no lo conserva, ya que el bifunctor exponencial F G es contravariante en su argumento izquierdo. Entonces, cuando escribe una definición de tipo inductivo, está definiendo un functor para tomar un punto menos fijo. Para asegurarse de que realmente es un functor, debe descartar las ocurrencias del parámetro recursivo en el lado izquierdo de los espacios de funciones, de ahí la verificación de positividad.FGF+GF×GFG

La impredicatividad (en el sentido del Sistema F) generalmente se evita, porque es un principio que te obliga a elegir entre la lógica clásica y los modelos de teoría de conjuntos. No puede interpretar tipos como conjuntos en la teoría de conjuntos clásica si tiene indexación de estilo F. (Ver el famoso "Polimorfismo de Reynolds no es teórico").

Categóricamente, la impredicatividad de estilo F dice que la categoría de tipos y términos forma una pequeña categoría completa (es decir, homs y objetos son conjuntos y existen límites de todos los diagramas pequeños). Clásicamente, esto obliga a una categoría a ser un poset. Muchos constructivistas son constructivos porque quieren que sus teoremas mantengan más sistemas que la lógica clásica, por lo que no quieren probar nada que sea clásicamente falso. Por lo tanto, desconfían del polimorfismo impredecible.

Sin embargo, el polimorfismo le permite decir muchas condiciones que son clásicamente "grandes" internamente para su teoría de tipos, ¡y la positividad es una de ellas! Un operador tipo es functorial, si puede producir un término polimórfico:F

Fmap:α,β.(αβ)(F(α)F(β))

¿Ves cómo esto corresponde a la functorialidad? En mi opinión, esta sería una muy buena opción para tener en Coq, ya que le permitiría hacer una programación genérica mucho más fácilmente. La naturaleza sintáctica de la verificación de positividad es un gran obstáculo para la programación genérica, y me complacería cambiar la posibilidad de axiomas clásicos por programas funcionales más flexibles.

EDITAR: La pregunta que está haciendo sobre la diferencia entre Prop y Set surge del hecho de que los desarrolladores de Coq quieren permitirle pensar sobre los teoremas de Coq en términos ingenuos de teoría de conjuntos si lo desea, sin forzar a hacerlo. Técnicamente, dividen Prop y Set, y luego prohíben que los sets dependan del contenido computacional de Prop.

Por lo tanto, puede interpretar Prop como valores de verdad en ZFC, que son los booleanos verdadero y falso. En este mundo, todas las pruebas de proposiciones son iguales, por lo que obviamente no debería poder ramificarse en la prueba de una proposición. Por lo tanto, la prohibición de conjuntos que dependen del contenido computacional de las pruebas de Prop es totalmente sensata. Además, la red booleana de 2 elementos es obviamente una red completa, por lo que debe admitir la indexación impredecible, ya que existen reuniones arbitrarias con valores establecidos. La restricción de predicatividad en los conjuntos surge del hecho (mencionado anteriormente) de que la indexación de estilo F es degenerada en los modelos clásicos de teoría de conjuntos.

Coq tiene otros modelos (¡es una lógica constructiva!), Pero el punto es que nunca probará nada por lo que un matemático clásico se sorprendería.


FPropSetType

No entiendo tu pregunta: ¿Coq odia lo Inductive Blah : Prop := Foo : (Blah -> Blah) -> Blahmismo que cualquier otra cosa?
Neel Krishnaswami

1
Ah, tal vez estoy confundiendo la verificación de positividad con otra verificación relacionada con la impredicatividad. Considere Inductive prop : Prop := prop_intro : Prop -> prop.vs Inductive set : Set := set_intro: Set -> set.. ¿Por qué la distinción si la predicatividad no es de interés para la definición inductiva?
Scott Kilpatrick el

@ScottKilpatrick: esa es una verificación diferente, y sobre (im) predicatividad. Los tipos Sigma fuertes e impredecibles permiten codificar la paradoja de Girard, por lo que un tipo de datos que almacena un miembro de algún universo, por ejemplo Type@{i}, debe vivir en un universo más grande, al menos Type@{i+1}.
Blaisorblade

6

Existe una conexión muy profunda entre las definiciones inductivas y la impredicatividad, pero entiendo que en el contexto de lo que estás hablando la (im) predicatividad no es particularmente relevante y la prueba es puramente para garantizar la monotonicidad, de modo que la teoría del punto fijo puede ser aplicado, a saber, que el principio de inducción está bien definido. (Estoy dispuesto a ser corregido en este punto).

La relación entre impredicatividad y definiciones inductivas se explora en esta charla de Coquand. Se remonta a algunos resultados de los años 50 por G. Takeuti de que las definiciones impredecibles pueden reducirse a definiciones inductivas. El libro

  • Teoría de la Prueba de Subsistemas de Análisis Impredicativos - Monografías y Libros de Texto en Ciencias Físicas 2 por W. Buchholz, K. Schutte

da un buen análisis del tema, si puede tenerlo en sus manos. Estas diapositivas dan una visión general.


4

Solo para completar la excelente explicación de Neil, la impredicatividad tiene un sentido "suave": la definición de conjuntos o colecciones utilizando una referencia a sí mismos. En ese sentido:

Inductive Lam : Set :=
| Var : Nat -> Lam
| App : Lam -> Lam -> Lam
| Abs : (Lam -> Lam) -> Lam

es una definición impredecible, ya que define un tipo inductivo, Lam usa un espacio de funciones (Lam -> Lam) que se refiere a la colección misma. En esta situación, la impredicatividad es dañina : es posible usar el teorema de Cantor para probar Falso. De hecho, esta es la misma marca de impredicatividad que descarta la ingenua teoría de conjuntos como una base consistente para las matemáticas. Por lo tanto, no está permitido en Coq. Otra forma de impredicatividad es permitida, como saben:

Definition Unit : Prop := forall X:Prop, X -> X

La definición de Unidad como propuesta hace referencia a la colección de todas las Propuestas de las cuales es miembro. Sin embargo, por razones algo oscuras para mí, esta impredicatividad no es dañina ya que está presente en ZFC (en forma de comprensión ilimitada ) que no se sabe que sea inconsistente.

En conclusión, las ocurrencias negativas de los tipos inductivos en las definiciones es una forma de impredicatividad, pero no a la que generalmente se hace referencia cuando se habla de CoC como marco de referencia impredecible .


Entiendo que estás diciendo que ZFC tiene una comprensión ilimitada. Pero eso suena mal: math.stackexchange.com/q/24507/79293 . Chlipala discute esto cuando discute -impredicative-seten su libro: adam.chlipala.net/cpdt/html/Universes.html , y menciona algunas restricciones sobre la eliminación, pero esto también es oscuro para mí.
Blaisorblade

1
No debe confundir la comprensión sin restricciones y la comprensión sin límites . Esto último solo significa que puede formar subconjuntos de un conjunto dadoUNtomando la extensión de cualquier fórmula con una variable libre, no solo fórmulas con cuantificadores acotados (cuantificadores de la formaXsi o Xsi) La versión limitada es significativamente más débil, ya que cosas como los límites superiores mínimos son difíciles / imposibles de definir. Ver esto por ejemplo.
cody

¡Ah gracias! También veo cómo la impredicatividad anterior coincide con la de ZFC (aunque el mapeo que estoy usando es probablemente demasiado ingenuo). ¿Puedes agregar el enlace en la respuesta?
Blaisorblade

Desafortunadamente, esto parece difícil para Google (o no sé las palabras clave correctas). Lo que es peor, tanto Wikipedia como nLab distinguen entre "comprensión restringida" (en ZFC, en.wikipedia.org/wiki/Axiom_schema_of_specification ) y "separación restringida / limitada" (a lo que se vinculó). Ver ncatlab.org/nlab/show/axiom+of+separation . Pero toda esta terminología parece un malentendido a la espera de que suceda; por lo general, razono que la "separación ~ comprensión", como usted y el autor mathforum.org/kb/message.jspa?messageID=4492130 , también.
Blaisorblade

Tal vez las mejores palabras clave para este tipo de discusiones son "Teoría de conjuntos constructivos", consulte, por ejemplo , wikipedia , o este muy buen artículo de Rathjen.
cody
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.