En lógica matemática e informática , el cálculo lambda-mu es una extensión del cálculo lambda introducido por Michel Parigot. [1] Introduce dos nuevos operadores: el operador μ (que es completamente diferente tanto del operador μ que se encuentra en la teoría de computabilidad como del operador μ del cálculo modal μ ) y el operador de corchetes. Teóricamente demostrable , proporciona una formulación bien comportada de la deducción natural clásica .
Uno de los principales objetivos de este cálculo extendido es poder describir expresiones correspondientes a teoremas de la lógica clásica . Según el isomorfismo de Curry-Howard , el cálculo lambda por sí solo puede expresar teoremas en lógica intuicionista únicamente, y varios teoremas de lógica clásica no se pueden escribir en absoluto. Sin embargo, con estos nuevos operadores se pueden escribir términos que tengan el tipo, por ejemplo, de la ley de Peirce .
Semánticamente estos operadores corresponden a continuaciones , que se encuentran en algunos lenguajes de programación funcionales .
Podemos aumentar la definición de una expresión lambda para obtener una en el contexto del cálculo lambda-mu. Las tres expresiones principales que se encuentran en el cálculo lambda son las siguientes:
Para más detalles, consulte el artículo correspondiente .
Además de las variables λ tradicionales, el cálculo lambda-mu incluye un conjunto distinto de variables μ. Estas variables μ se pueden usar para nombrar o congelar subtérminos arbitrarios, lo que nos permite luego abstraer esos nombres. El conjunto de términos contiene términos sin nombre (todas las expresiones lambda tradicionales son de este tipo) y con nombre . Los términos que se suman mediante el cálculo lambda-mu son de la forma:
Las reglas básicas de reducción utilizadas en el cálculo lambda-mu son las siguientes:
Estas reglas hacen que el cálculo sea confluente . Se podrían agregar más reglas de reducción para proporcionarnos una noción más sólida de forma normal, aunque esto sería a expensas de la confluencia.