Clase de funciones computables por Coq

22

Dado que no permite el cómputo no determinante, Coq no es necesariamente completo de Turing. ¿Cuál es la clase de funciones que Coq puede calcular? (¿hay una caracterización interesante de los mismos?)

Steve
fuente

Respuestas:

18

Benjamin Werner ha demostrado la capacidad de interpretación mutua de ZFC con innumerables inaccesibles y el cálculo de construcciones inductivas, en su papel Conjuntos en tipos, tipos en conjuntos .

Esto significa, más o menos, que cualquier función que se pueda demostrar que es total en ZFC con innumerables inaccesibles se puede definir en Coq. Entonces, a menos que sea un teórico de conjunto que trabaje en cardenales grandes, es poco probable que cualquier función computable que alguna vez haya deseado no pueda definirse en Coq.

Neel Krishnaswami
fuente
77
Excepto un intérprete de Coq ...
Jules
66
En realidad, puede implementar un intérprete de Coq (de hecho, funciones recursivas generales arbitrarias) dentro de Coq. Si CIC es consistente, no podrá probar que el intérprete es una función total, por supuesto, pero definitivamente puede implementarlo.
Neel Krishnaswami
2
Aνα.A+αcontexttermtypebool
1
@Neel: Eso es trampa. Y por una buena razón, de lo contrario tendríamos una inconsistencia.
Andrej Bauer
2
Es una trampa porque se supone que la función de evaluación evalúa cosas, no le da una falta de respuesta.
Andrej Bauer