33 votos

¿Asistente de prueba para trabajar en fundaciones más débiles?

En algunos de mis trabajos tengo que demostrar algunos resultados dentro de la lógica interna de las categorías con no mucho estructuras (como pretoposes o incluso simplemente categorías con límites finitos). El tipo de cosas que yo quiero probar normalmente implican la manipulación de tipo inductivo (como un número natural objeto, un tipo de árbol binario, algunas W-tipos, etc...) y demostrar algunas de sus propiedades en estos relativamente débil categorías.

Permítanme darles algunos ejemplos de la clase de resultados que me interesa:

  • Si C es un cartesiano categoría (o categorías con límites finitos) con una parametrización natural número de objetos de $N$ entonces $N \times N \simeq N$.

  • Si C es un cartesiano categoría con un (parametrización) número natural objetos de $N$,, a continuación, $N$ también es una parametrización de la lista de objetos para $N$, y un parametrizadas finito árbol de objetos.

  • Si C es un pre-topos con parametrizadas objetos de la lista, a continuación, esencialmente, cualquier tipo de finitary libre de construcciones (como libres de los grupos, libre monoids, libre de la izquierda categorías exactas etc...) se puede realizar.

  • Cual de estas libre de construcción ya se pueden realizar en un cartesiano categoría, una categoría con límites finitos/una extensa categoría ?

  • Si C es un pretopos en el que algunos (no finito) los objetos son exponentiable, y para la que el W-tipos existe, entonces la certeza de libre infinitary construcciones existe.

etc... estos son sólo algunos ejemplos, la mayoría de ellos son bien conocidos los resultados, pero son muy típicas de la clase de cosas que estoy tratando de hacer. Tenga en cuenta que quiero trabajar con la "interna" de la prueba, y no demuestra resultados externamente directamente en términos de tales categorías.

Creo que este tipo de cosas normalmente es un buen lugar para probar el uso de una prueba de asistente como la prueba tiene que ser escrita en un nivel muy alto de detalles de todos modos, y uno puede fácilmente a error.

Así que estoy buscando una prueba auxiliar que sería apropiado para este fin.

Ya he comenzado a experimentar en Coq. Mi estrategia actual es sólo tenga cuidado acerca de lo que estoy haciendo: por ejemplo, utilice sólo principio de inducción para las proposiciones sin cuantificador, o sólo aquellos autorizados por el marco específico en el que estoy trabajando... Y, por supuesto, no uso anythings procedente de una biblioteca, y sólo uso muy explícito tácticas para evitar la ocultación de posibles problemas. Así que no estoy usando la prueba de asistente como un testimonio definitivo de la validez de una prueba, pero sólo como algo que hace que cada uno de los pasos de una prueba lo suficientemente explícitas como para que me puede decir de inmediato si tiene sentido o no en el marco de la que estoy interesado.

Esto ya no es tan malo, pero esperaba encontrar una forma más precisa y formal manera de hacer esto.

  • Hay otra prueba auxiliar que tiene más flexible lógica de fondo ?

  • Desde mi experiencia (pero no estoy muy familiarizado con la precisión de marco lógico que la Coq utiliza, así que no hace lo que se desprende de una declaración formal, pero si alguien puede confirmar esto sería muy útil) todo lo que puedo definir en coq puede ser interpretado en una 'Pila' o 'Gavillas' semántica sobre la categoría en la que estoy trabajando. Así que la única cosa que tengo que tener cuidado, es no aplicar el principio de la inducción para la construcción de funciones en algo que no es un objeto de mi categoría. Así habría una manera en Coq, o en cualquier otro medio de prueba asistente, para decir que tengo una buena clase de conjuntos (que sería el representables), estable en algunas operaciones (correspondiente a la estructura me voy a poner en mi categoría) y que cuando me definen inductivo operaciones o el uso de las inducciones tiene que ser restringida a las cosas que toma valores en un conjunto en esta clase. Pero todavía me gustaría ser capaz de utilizar el buen maquinaria de "match", "inducción" "punto fijo" que la Coq ofrece. Tal vez un camino para revisar después ¿qué tipo de inducción que hace una determinada prueba utiliza ?

  • Alguna sugerencia sobre cómo hacer este tipo de cosas ?

PS: yo no estaba seguro de que esta pregunta era adecuado para la MO o no. Tenía la impresión de que era "matemática suficiente" pero tengo demasiado admitir que una buena respuesta podría ser algo técnico sobre el funcionamiento interno de alguna prueba asistente. Así que Si usted piensa que hay un mejor lugar para hacer esta pregunta, por favor dígame.

15voto

Leon Bambrick Puntos 10886

Una posibilidad que vale la pena pensar es el uso de un "meta-prueba-ayudante" como Twelf, que implementa un meta-teórico marco lógico dentro de los cuales se puede especificar cualquier "objeto" de lenguaje que te gusta. Es mejor adaptados a probar meta-teórico de las propiedades del objeto-lenguaje, pero también puede ser usado para demostrar teoremas en el objeto de lenguaje, a pesar de no tener buenos azúcar sintáctico como partido y punto fijo o el apoyo a las tácticas.

También podría ser posible para implementar el tipo de teorías usted está interesado en el interior de Isabelle o algo parecido, que se supone es un "genérico prueba asistente", pero no estoy muy familiarizado con eso.

Con respecto a la Coq, no sé de una "después del hecho" manera de comprobar qué tipo de inducción de la prueba de los usos. Pero si usted está dispuesto a llamar a la inducción de los principios explícitamente en lugar de utilizar partido/revisión, puede utilizar un "privado de tipo inductivo" hack similar a la forma en que implementamos HITs en HoTT. Es decir, el postulado de su familia de "representable" y con su cierre de condiciones, a continuación, definir su tipo inductivo como Private Inductive en un módulo, probar una versión del principio de inducción que requiere el objetivo de ser representable y, a continuación, exportar sólo que restringe el principio de la inducción.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X