En el libro de Hott, ¿son redundantes la mayoría de los formadores de tipos? Y si es así, ¿por qué?

14

En el capítulo 1 y el Apéndice A del libro de Hott , se presentan varias familias de tipos primitivos (tipos de universo, tipos de funciones dependientes, tipos de pares dependientes, tipos de coproductos, tipo vacío, tipo de unidad, tipo de número natural y tipos de identidad) para formar la base para la teoría del tipo de homotopía.

Sin embargo, parece que, dados los tipos de universo y los tipos de función dependientes, puede construir todos estos otros tipos "primitivos". Por ejemplo, el tipo Vacío podría definirse como

ΠT:U.T

Supongo que los otros tipos también podrían construirse de manera similar a como están en CC puro (es decir, simplemente derivar el tipo de la parte inductiva de la definición).

Muchos de estos tipos se vuelven explícitamente redundantes por los tipos inductivos / W que se presentan en los capítulos 5 y 6. Pero los tipos inductivos / W parecen ser una parte opcional de la teoría ya que hay preguntas abiertas sobre cómo interactúan con HoTT (en al menos cuando salió el libro).

Así que estoy muy confundido acerca de por qué estos tipos adicionales se presentan como primitivos. Mi intuición es que una teoría fundamental debería ser lo más mínima posible, y redefinir un tipo vacío redundante como primitivo en la teoría parece muy arbitrario.

¿Se hizo esta elección?

  • por algunas razones metateóricas que desconozco?
  • por razones históricas, para hacer que la teoría de tipos se parezca a teorías de tipos pasadas (que no necesariamente intentaban ser fundamentales)?
  • para la "usabilidad" de las interfaces de computadora?
  • para obtener alguna ventaja en la búsqueda de pruebas que desconozco?

Similar a: Especificación mínima de la teoría de tipo Martin-Löf , /cs/82810/reducing-products-in-hott-to-church-scott-encodings/82891#82891

usuario833970
fuente
Son redundantes, pero no de la manera que estás sugiriendo. Debería preguntarse para qué sirve la "minimidad de la base". ¿Y nos importa el propósito?
Andrej Bauer
1
Supongo que el trabajo técnico es mínimo por convención, donde las cosas no necesitan ser mínimas si obviamente es conveniente o se señala explícitamente lo contrario. El libro incluso se adhiere a esto en otros lugares, como cuando define los tipos de truncamiento (definidos por reglas, pero explícitamente no mínimos). Por ejemplo, si veía los nats definidos en términos de 0,1,10, el sucesor y la operación de potencia, estaría confundido, pero al menos podría ver por qué es conveniente a nivel notorio. Hott es un área de estudio mucho más compleja y quiero saber si me falta algo obvio.
user833970
1
Me interesaría saber cómo pueden ser perjudiciales. ¿Debo hacer una nueva pregunta al respecto?
user833970
1
@AndrejBauer Me gustaría saber por qué también serían perjudiciales. Mi razonamiento para creer que el lenguaje fundamental debería ser mínimo es el razonamiento detrás de la navaja de afeitar de occam, es una complejidad adicional injustificada. ¿Por qué parar ahí? ¿Por qué no agregar también listas, cadenas, pares, triples, vectores? Esas parecen elecciones arbitrarias, ¿qué las justifica? Editar: Acabo de notar que esta pregunta tiene respuestas; pero dejaré este comentario aquí solo para señalar por qué también me interesaría eso.
MaiaVictor
1
Escribiré una publicación de blog.
Andrej Bauer

Respuestas:

14

Permítanme explicar por qué la codificación sugerida del tipo vacío no funciona. Necesitamos ser explícitos sobre los niveles del universo y no barrerlos debajo de la alfombra.

Cuando las personas dicen "el tipo vacío", pueden significar una de dos cosas:

  1. Un solo tipo que está vacío con respecto a todos los tipos. Tal tipo tiene la regla de eliminación: por cada n y tipo de familia A : E T n , hay un mapa e n , A : E A .minorteUN:miUnorteminorte,UN:miUN

  2. Una familia de tipos , uno para cada nivel de universo k , de modo que E k es "el tipo vacío de U k ". Tal tipo tiene que satisfacer E k : T k , obviamente, y también: para cada familia de tipo A : E kU k , hay un mapa e k , A : E KA .mikkmikUkmik:UkUN:mikUkek,A:EkA

Sin ninguna condición, cuando las personas dicen "tipo vacío" esperan el primer significado anterior.

¿Cómo podemos obtener ? Un primer intento podría ser algo como E = Π ( T : U )E pero este es precisamente el tipo de barrido debajo de la alfombra que crea confusión. Debemos escribir niveles explícitos del universo. Si escribimos algo como E k = Π ( T : U k )

E=Π(T:U).T
entonces obtenemos una secuencia de tipos E 0 , E 1 , E 2 , ... , una para cada nivel k . Podríamos esperar que esta secuencia sea del tipo vacío en el sentido anterior, pero no lo es, porque E k está en U k + 1 pero se supone que está en U k .
Ek=Π(T:Uk).T
E0,E1,E2,kEkUk+1Uk

Otro intento es pero ahora tienes que explicar quése supone que es" Π n ". Es posible que sienta la tentación de decir que hay un tipo L de niveles de universo, por lo que E = Π ( n : L )

E=Πn.Π(T:Un).T
ΠnL Ahora has caído en una trampa, porque te preguntaré: ¿en qué universo vive E ? ¿Y en qué universo vive L ? Esto no va a funcionar.
E=Π(n:L).Π(T:Un).T
EL

UB:UUΠ(X:U)B(X)UUΠ(X:U)XU

Se pueden organizar universos impredecibles. Sin embargo, un famoso teorema de Thierry Coquand (si no me equivoco) muestra que tener dos universos impredecibles, uno contenido en el otro, conduce a una contradicción.

La moraleja de la historia es: simplemente axiomatiza el tipo vacío directamente y deja de codificar cosas.

Andrej Bauer
fuente
Ese es un razonamiento convincente para axiomatizar el tipo vacío, pero todavía tengo curiosidad sobre el razonamiento para axiomatizar todas esas cosas más pesadas.
MaiaVictor
@MaiaVictor: a diferencia de qué?
Andrej Bauer
¿Lo siento? Solo quiero decir que justificaste convincentemente por qué es una buena idea axiomatizar el tipo vacío en particular. Pero OP también preguntó sobre otras cosas: "tipos de universo, tipos de funciones dependientes, tipos de pares dependientes, tipos de coproductos, tipo vacío, tipo de unidad, tipo de número natural y tipos de identidad" (que supongo que también son primitivas en el sistema propuesto en el Libro de HoTT). (Estoy, obviamente, no le pide que justifique los de todo, sólo se manifiesta mi interés.)
MaiaVictor
1=X:U(XX)
@IngoBlechschmidt curioso por saber qué tipo de problemas! Me parece bien ...
MaiaVictor
15

Estás haciendo varias preguntas que son similares pero distintas.

  1. ¿Por qué el libro HoTT no usa codificaciones de la Iglesia para los tipos de datos?

    Las codificaciones de la iglesia no funcionan en la teoría de tipo Martin-Löf, por dos razones.

    nortek<norte

    En segundo lugar, incluso si definió tipos de datos como los números naturales con codificaciones de la Iglesia, para hacer pruebas con estos tipos, necesita principios de inducción para probar cosas sobre ellos. Para derivar los principios de inducción para las codificaciones de la Iglesia, debe utilizar un argumento basado en la parametricidad de Reynolds, y la cuestión de cómo internalizar los principios de parametricidad en la teoría de tipos aún no está completamente resuelta. (El estado del arte es Nuyts, Vezzosi y Devriese's ICFP 2017 Cuantificadores paramétricos para la teoría del tipo dependiente : ¡tenga en cuenta que esto es mucho después de que se escribió el libro HoTT!)

  2. A continuación, se pregunta por qué la base no es mínima. Esta es en realidad una de las características sociológicas distintivas de los fundamentos de la teoría de los tipos: los teóricos de los tipos consideran que tener un pequeño conjunto de reglas es una conveniencia técnica, sin mucha importancia fundamental. Es mucho, mucho más importante tener el conjunto correcto de reglas, en lugar del conjunto más pequeño de reglas.

    Desarrollamos teorías de tipo para ser utilizadas por matemáticos y programadores, y es muy, muy importante que las pruebas realizadas dentro de la teoría de tipo sean las que los matemáticos y programadores consideran que se hacen de la manera correcta. Esto se debe a que los argumentos que los matemáticos suelen considerar que tienen un buen estilo suelen estar estructurados utilizando los principios algebraicos y geométricos clave del dominio de estudio. Si tiene que usar codificaciones complicadas, se pierde u oculta mucha estructura.

    Esta es la razón por la que incluso las presentaciones teóricas de tipo de lógica clásica proposicional invariablemente dan todos los conectivos lógicos, aunque sea formalmente equivalente a una lógica con solo NAND. Claro, todos los conectores booleanos se pueden codificar con NAND, pero esa codificación oculta la estructura de la lógica.

Neel Krishnaswami
fuente
Gracias por esta respuesta! Necesitaré leer ese documento (y el tuyo) y podría tener más sentido. Pero, pensé que la jerarquía del universo fue diseñada para que parezca que puedes hacer cosas predicativas: por ejemplo (λA: U.λa: Aa) (ΠA: UA → A) se desugaría a (λA: Un + 1.λa: Aa) (ΠA: Un.A → A). Creo que es una extraña elección editorial no explicar esto, cada libro de lógica que conozco señala varias codificaciones mínimas más como CNF, DNF, NAND, etc. Y cualquiera que esté acostumbrado a establecer la teoría espera una codificación "natural" de los Nats, para demostrar la teoría. Pero eso puede ser solo mis prejuicios clásicos.
user833970
eso debería ser "impredecible" en mi último comentario
user833970
(T:Unorte).TUnorteUnorte+1Unorte
Quizás estoy malinterpretando algo sobre las jerarquías del universo. Pensé que nunca nos importa en qué universo específico se encuentra un tipo, solo que los números del universo se pueden asignar cuando queremos verificar una prueba. Entonces, técnicamente ΠT: UT es una familia de tipos indexados sobre universos. Al igual que la identidad polimórfica es una familia de tipos indexados sobre universos. ¿Pero no tenemos el mismo problema con la identidad polimórfica? Realmente agradecería que si pudieras ampliar las últimas 2 oraciones, no creo que entienda.
user833970
Cuando dice que no tiene las propiedades de eliminación correctas, ¿quiere decir que una vez que se repara el universo, hay tipos en universos superiores que no pueden sintetizarse directamente con un término de ΠT: Un.T?
user833970