20 votos

[resuelto] cálculo secuencial como lenguaje de programación

Lógica intuicionista ~ programación

deducción natural ~ lambda-calculus

Sistema de Hilbert ~ lógica combinatoria {S, K}

Sistema Gentzen = cálculo secuencial ~ ?

¿Qué escribirías en lugar del signo de interrogación?

Actualización 0: La notación matemática común en árbol para las pruebas es demasiado engorrosa y redundante. Necesito un lenguaje tan compacto como, por ejemplo:

data Proof = Apply Proof Proof | S | K {- Haskell, combinatory logic -}

Actualización 1: Tras seguir los enlaces sugeridos por los comentaristas he encontrado este artículo perfectamente concreto y accesible: "Hugo Herbelin. A Lambda-calculus Structure Isomorphic to Gentzen-style Sequent Calculus Structure". Allí, el lenguaje "?" se denomina "la interpretación habitual de las pruebas sin corte LJ mediante términos lambda normales", es decir, está hecho de lambda-calculus.

21voto

Sekhat Puntos 2555

No existe una respuesta única a esta pregunta, debido al alto grado de no determinismo inherente al cálculo secuencial: para obtener una interpretación computacional, es necesario resolver la ambigüedad, y cada forma de hacerlo conduce a diferentes interpretaciones operativas. Además, las respuestas difieren en cierta medida para los cálculos secuenciales clásico e intuicionista.

Las asignaciones de términos de prueba para los cálculos secuenciales clásicos se corresponden estrechamente con los cálculos de continuación, como el de Herbelin $\lambda\mu$ cálculo. Ahora bien, las transformaciones de continuación corresponden a traslaciones de doble negación de la lógica clásica a la lógica intuicionista, y hay muchas traslaciones de doble negación posibles. Cada elección de traducción de doble negación da lugar a un orden de evaluación diferente, lo que explica por qué son tan valiosas para el estudio de las máquinas abstractas (como en el enlace de supercooldave) - se pueden obtener los beneficios de estudiar diferentes órdenes de evaluación a través de las transformaciones CPS, sin tener que codificar todo en funciones.

Ahora bien, también se puede intentar eliminar el no determinismo de otra manera: por decreto. Esto se basa en la idea de Andreoli de enfoque para la lógica lineal. En términos operativos, la idea es definir las conectivas lógicas en términos de sus valores o de sus formas de eliminación (esto se denomina polaridad ). Después de elegir uno, el otro viene determinado por la necesidad de satisfacer la eliminación de cortes. Para la lógica lineal, cada una de las conectivas tiene una polaridad única. Para la lógica clásica, cada conectiva puede tener una u otra polaridad (es decir, cada conectiva puede definirse en términos de valores o de continuaciones), y la elección de las polaridades de las conectivas determina esencialmente el orden de evaluación. Esto se explica muy bien en la tesis doctoral de Noam Zeilberger, http://www.cs.cmu.edu/~noam/tesis.pdf .

En el caso de los cálculos secuenciales intuicionistas, las asignaciones de términos de prueba aún contienen mucho no determinismo. Cuando se resuelve esto mediante la focalización, se encuentra que los cálculos resultantes son cálculos de concordancia de patrones . En la tesis de Noam también hay una hermosa versión abstracta de este tema, y yo escribí un artículo muy concreto al respecto para POPL 2009, "Centrarse en la concordancia de patrones" que mostraba cómo explicar la concordancia de patrones al estilo Haskell/ML en términos de asignación de términos de prueba para cálculos secuenciales focalizados.

15voto

dStulle Puntos 28

Para añadir algo a la respuesta de Neel, no puedes obtener una respuesta más concreta a menos que aclares a qué te refieres con "cálculo secuencial". Si te refieres a los sistemas originales LK o LJ de Gentzen, entonces la respuesta es simplemente que no existe ningún sistema computacional descubierto/motivado de forma independiente. (Recuerde que la motivación original de Gentzen para introducir el cálculo secuencial era como herramienta para estudiar demostrabilidad y la deducción natural como herramienta para estudiar pruebas .) Se han asociado diferentes interpretaciones operativas al cálculo secuencial apartándose de estos sistemas originales (o simplemente conformándose con una "correspondencia" más laxa), pero entonces las preguntas son 1. si realmente se puede llamar a estos sistemas "cálculo secuencial" (¿qué propiedades matemáticas son invariantes?), y 2. si realmente importa que se haga.

Por otra parte, todavía hay muchos aspectos de las pruebas como programas que no se entienden -como Neel y supercooldave mencionaron, la concordancia de patrones y la semántica operacional son ejemplos- y la gente ha tratado de obtener un control sobre ellos estudiando ideas del cálculo secuencial y de refinamientos del cálculo secuencial.

Por ejemplo, una idea importante del cálculo secuencial es la "propiedad de subfórmula", según la cual la demostración de una fórmula sólo necesita mencionar sus subfórmulas. En la deducción natural, esta propiedad se rompe en el caso de conectivas como la disyunción. La conexión entre pruebas de enfoque y concordancia de patrones que mencionó Neel puede entenderse como una forma de recuperar esta propiedad de forma normal para programas con tipos de suma.

12voto

Aissen Puntos 131

Para responder a tu pregunta sobre la representación de pruebas de cálculo secuencial en un ordenador, tienes que mirar el Isomorfismo de Curry-Howard . Las fórmulas en un secuente se anotan con términos y el cálculo secuencial para la lógica intuicionista se asemeja a las reglas de tipos para el cálculo lambda tipado. Si desea manipular esto, entonces usted necesita para registrar los supuestos (lado izquierdo de la turnstyle $\vdash$ ), que corresponde al registro de los tipos de variables libres. Entonces el lado derecho es un $\lambda$ -(que describe la prueba) y su tipo (la fórmula probada).

Hay mucha bibliografía al respecto. La referencia que probablemente desee es A $\lambda$ -estructura de cálculo isomorfa a la estructura de cálculo secuencial por Hugo Herbelin. En Libro de Morten Heine B. Sørensen y Pawel Urzyczyn es un amplio estudio del tema. Este tipo de codificación es la base de asistentes de pruebas como Coq .

Otras posibles correspondencias son Cálculo secuencial ~ Máquina abstracta. Véase Cálculos secuenciales y máquinas abstractas de Zena M. Ariola, Aaron Bohannon, Amr Sabry, ACM Transactions on Programming Languages and Systems (TOPLAS) Volumen 31 , Número 4 (mayo de 2009). O en términos más generales, y quizás más vagos, Cálculo secuencial ~ Semántica operativa. También tiene pruebas ~ procesos explorado por Abramsky y Saraswat en el contexto de la programación concurrente con restricciones.

1voto

KPthunder Puntos 206

Algunos trabajos adicionales sobre la coincidencia de patrones y la eliminación de cortes son los de Cerrito y Kesner:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.54.8703&rep=rep1&type=pdf

Sin embargo, la obra de Noam ofrece una visión más completa.

A menudo pienso en la situación como que hay una relación clara y fuerte, pero (hasta ahora) no tenemos una sintaxis concreta que funcione tan bien como lo hace C-H para las reglas de introducción y eliminación en la deducción natural.

0voto

lorengphd Puntos 21

No sé si sigues ahí o si te sigue interesando esta cuestión, pero quizá estos dos recursos puedan aportar algo de jugo a tu investigación sobre el aspecto de lógica intuitiva de tu pregunta.

"Las pruebas son programas: Lógica del siglo XIX e informática del siglo XXI" Philip Wadler, 2000. http://homepages.inf.ed.ac.uk/wadler/papers/frege/frege.pdf

"El desarrollo moderno de los fundamentos de las matemáticas a la luz de la filosofía" Kurt Gödel, Obras Completas, Volumen III (1961) publ. Oxford University Press, 1981. https://www.marxists.org/reference/subject/philosophy/works/at/godel.htm (perdone el dominio, no lo he encontrado en ningún otro sitio)

Actualmente estoy experimentando con una combinación de diagramas de prueba, pruebas axiomáticas y reducción fenomenológica, de forma muy amateur.

Quizá estos temas también le sean útiles. Para obtener información más técnica sobre la combinación del conocimiento matemático intuitivo y la demostración axiomática, tal vez esto sea instructivo: https://philarchive.org/archive/HIPPPAv1

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