Curiosamente, existe una conexión entre la eliminación de corte y el teorema de interpolación. En primer lugar, el teorema de interpolación parece un reverso de la eliminación de la regla de mezcla utilizada durante la eliminación de corte. Esta eliminación dice:
If G |- A and D, A |- B are cut-free proofs,
then there is a cut-free proof G, D |- B
Ahora, una forma de teorema de interpolación basada en pruebas sin cortes se puede hacer de la siguiente manera. Es la versión invertida de la eliminación. Comienza con G, D | - B y da G | - A y D, A | - B:
If G; D |- B is a cut free proof,
then there is a formula A (the interpolant)
and cut free proofs G |- A and D, A |- B,
and A uses only propositions simultaneously from G and D
Puse a propósito un punto y coma entre las premisas G y D. Aquí es donde dibujamos la línea, qué premisas queremos ver como entregando el interpolante, y qué premisas queremos ver usando el interpolante.
Cuando la entrada es una prueba sin cortes, el esfuerzo del algoritmo es proporcional al número de nodos de la prueba sin cortes. Por lo tanto, es un método práctico lineal en la entrada. Con cada paso de prueba de la prueba sin cortes, el algoritmo ensambla el interpolante al introducir un nuevo conector.
La observación anterior es válida para la construcción de interpolación simple, donde solo requerimos que el interpolante tenga proposiciones simultáneas de G y D. Los interpolantes con una condición variable requieren un poco más de pasos, ya que también es necesario realizar algunas variaciones variables.
Probablemente hay una conexión entre la minimidad de la prueba sin cortes y el tamaño del interpolante. No todas las pruebas sin cortes son mínimas. Por ejemplo, las pruebas uniformes suelen ser más cortas que las pruebas sin cortes. El lema para pruebas uniformes es bastante simple, una aplicación de la regla de la forma:
G |- A G, B |- C
----------------------
G, A -> B |- C
Puede evitarse cuando B no se usa en la prueba de C. Cuando B no se usa en la prueba de C, ya tenemos G | - C, y por lo tanto debilitando G, A -> B | - C. La interpolación algoritmo mencionado aquí, no prestará atención a esto.
Atentamente
Referencias: Teorema de interpolación de Craig formalizado y mecanizado en Isabelle / HOL, Tom Ridge, Universidad de Cambridge, 12 de julio de 2006
http://arxiv.org/abs/cs/0607058v1
La referencia anterior no muestra exactamente la misma interpolación, ya que utiliza conjuntos múltiples en la parte de conclusión de una secuencia. Tampoco hace uso de implicación. Pero es interesante ya que respalda mi reclamo de complejidad, y ya que muestra una verificación mecanizada.