Marco lógico vs teoría de tipos

11

¿Cuál es la diferencia entre el marco lógico y la teoría de tipos? Ambos tienen tipos, términos y se basan en cálculos lambda tipificados de forma dependiente.

Tenemos Edinburg LF que se basa en el cálculo lambda-pi, sin embargo, me parece que hay alguna diferencia sutil allí.

Konstantin Solomatov
fuente

Respuestas:

12

Resumen. Un marco lógico es un metalenguaje para la formalización de sistemas deductivos, donde las deducciones se convierten en objetos sintácticos.

Por supuesto, lo que cuenta como metalenguaje es bastante vago, y es útil comprender el desarrollo histórico de los marcos lógicos. El primer marco lógico fue el Automath de Bruijn (1), que se basa en cálculo . Muchas de las ideas de la familia de idiomas de Automath han llegado a los marcos lógicos modernos. El trabajo de Martin-Löf sobre teorías de tipos constructivos, también basado en cálculos λ , también ha sido influyente.λλ

λABΠxA.BABΠxA.B

ΓM:ABΓN:AΓMN:BΓM:ΠxA.BΓN:AΓMN:B{N/x}

λ

λ

λλ

λ

  1. N. de Bruijn: El lenguaje matemático AUTOMATH, su uso y algunas de sus extensiones.

  2. RF Harper, F. Honsell, G. Plotkin: un marco para definir lógicas .

  3. F. Pfenning: marcos lógicos.

  4. F. Pfenning: marcos lógicos: una breve introducción .

Martin Berger
fuente
¿Conoces algún libro introductorio sobre asistentes de pruebas (marcos lógicos) adecuado para alguien que ya conoce los conceptos básicos de cálculo lambda simplemente mecanografiado y lógica de primer orden?
Trismegistos
1
@Trismegistos Me temo que no. Sugiero aprender un asistente específico. Es más fácil entrar en Agda, ya que es básicamente Haskell, pero con tipos dependientes. En mi experiencia, el marco lógico no es tan importante como otras dimensiones de los asistentes de prueba. Por ejemplo, Isabelle es un comprobador genérico que puede crear instancias con diferentes lógicas, por lo que realmente expone el marco lógico. Pero Isabelle / HOL es la única instancia utilizada en la práctica. Esto se debe a que todas las tácticas de prueba, todo el soporte de prueba se ha escrito para la lógica del objeto HOL. Y la usabilidad de un probador depende de eso.
Martin Berger