Articulo de referencia

Lógica agrupada

La lógica agrupada [1] es una variedad de lógica subestructural propuesta por Peter O'Hearn y David Pym. La lógica agrupada proporciona primitivas para razonar sobre la composic...

La lógica agrupada [1] es una variedad de lógica subestructural propuesta por Peter O'Hearn y David Pym. La lógica agrupada proporciona primitivas para razonar sobre la composición de recursos , que ayudan en el análisis compositivo de computadoras y otros sistemas. Tiene semántica de teoría de categorías y de función de la verdad, que se puede entender en términos de un concepto abstracto de recurso, y una teoría de prueba en la que los contextos Γ en un juicio de implicación Γ ⊢ A son estructuras de tipo árbol (agrupaciones) en lugar de listas o ( multi ) conjuntos como en la mayoría de los cálculos de prueba . La lógica agrupada tiene una teoría de tipos asociada , y su primera aplicación fue proporcionar una forma de controlar el aliasing y otras formas de interferencia en programas imperativos . [2] La lógica ha visto más aplicaciones en la verificación de programas , donde es la base del lenguaje de aserción de la lógica de separación , [3] y en el modelado de sistemas , donde proporciona una forma de descomponer los recursos utilizados por los componentes de un sistema. [4] [5] [6]

Cimientos

El teorema de deducción de la lógica clásica relaciona conjunción e implicación:

A B do si y solo si A B do {\displaystyle A\cuña B\vdash C\quad {\mbox{iff}}\quad A\vdash B\Flecha derecha C}

La lógica agrupada tiene dos versiones del teorema de deducción:

A B do si y solo si A B do y también A B do si y solo si A B do {\displaystyle A*B\vdash C\quad {\mbox{iff}}\quad A\vdash B{-\!\!*}C\qquad {\mbox{y también}}\qquad A\wedge B\vdash C\quad {\mbox{iff}}\quad A\vdash B\Rightarrow C}

A B Estilo de visualización A*B y son formas de conjunción e implicación que tienen en cuenta los recursos (explicado más adelante). Además de estos conectivos, la lógica agrupada tiene una fórmula, a veces escrita I o emp, que es la unidad de *. En la versión original de la lógica agrupada y eran los conectivos de la lógica intuicionista , mientras que una variante booleana toma y (y ) como de la lógica booleana tradicional . Por lo tanto, la lógica agrupada es compatible con los principios constructivos, pero no depende de ellos en modo alguno. B do {\displaystyle B{-\!\!*}C} {\displaystyle \cuña} {\displaystyle \Flecha derecha} {\displaystyle \cuña} {\displaystyle \Flecha derecha} ¬ {\estilo de visualización \neg}

Semántica veritativo-funcional (semántica de recursos)

La forma más sencilla de entender estas fórmulas es en términos de su semántica veritativo-funcional. En esta semántica, una fórmula es verdadera o falsa con respecto a los recursos dados. afirma que el recurso disponible puede descomponerse en recursos que satisfacen y . dice que si componemos el recurso disponible con un recurso adicional que satisface , entonces el recurso combinado satisface . y tienen sus significados familiares. A B Estilo de visualización A*B A {\estilo de visualización A} B {\estilo de visualización B} B do {\displaystyle B{-\!\!*}C} B {\estilo de visualización B} do {\estilo de visualización C} {\displaystyle \cuña} {\displaystyle \Flecha derecha}

La base para esta lectura de fórmulas fue proporcionada por una semántica de forzamiento propuesta por Pym, donde la relación de forzamiento significa ' A contiene el recurso r ' . La semántica es análoga a la semántica de Kripke de la lógica intuicionista o modal , pero donde los elementos del modelo son considerados como recursos que pueden ser compuestos y descompuestos, en lugar de mundos posibles que son accesibles entre sí. Por ejemplo, la semántica de forzamiento para la conjunción es de la forma a A {\displaystyle r\modelos A}

a A B si y solo si a A a B . a A A , a B B , y a A a B a {\displaystyle r\modelos A*B\quad {\mbox{sí y sólo si}}\quad \existe r_{A}r_{B}.\,r_{A}\modelos A,\,r_{B}\modelos B,\,{\mbox{y}}\,r_{A}\bullet r_{B}\leq r}

donde es una forma de combinar recursos y es una relación de aproximación. a A a B {\displaystyle r_{A}\bullet r_{B}} {\estilo de visualización \leq}

Esta semántica de la lógica agrupada se basa en trabajos previos en lógica de relevancia (especialmente la semántica operacional de Routley-Meyer), pero difiere de ella al no requerir y aceptar la semántica de las versiones intuicionistas o clásicas estándar de y . La propiedad está justificada cuando se piensa en la relevancia, pero se niega por consideraciones de recursos; tener dos copias de un recurso no es lo mismo que tener uno, y en algunos modelos (por ejemplo, los modelos de montón ) podría incluso no estar definida. La semántica estándar de (o de negación) es a menudo rechazada por los relevantesistas en su intento de escapar de las "paradojas de la implicación material", que no son un problema desde la perspectiva de modelar recursos y, por lo tanto, no son rechazadas por la lógica agrupada. La semántica también está relacionada con la "semántica de fase" de la lógica lineal , pero nuevamente se diferencia al aceptar la semántica estándar (incluso booleana) de y , que en la lógica lineal se rechaza en un intento de ser constructiva. Estas consideraciones se analizan en detalle en un artículo sobre semántica de recursos de Pym, O'Hearn y Yang. [7] a a a {\displaystyle r\bullet r\leq r} {\displaystyle \cuña} {\displaystyle \Flecha derecha} a a a {\displaystyle r\bullet r\leq r} a a {\displaystyle r\bullet r} {\displaystyle \Flecha derecha} {\displaystyle \cuña} {\displaystyle \Flecha derecha}

Semántica categórica (categorías doblemente cerradas)

La versión doble del teorema de deducción de la lógica agrupada tiene una estructura de teoría de categorías correspondiente. Las demostraciones en lógica intuicionista pueden interpretarse en categorías cerradas cartesianas , es decir, categorías con productos finitos que satisfacen la correspondencia de adjunción ( natural en A y C ) que relaciona conjuntos hom:

yo o metro ( A B , do ) es isomorfo a yo o metro ( A , B do ) {\displaystyle Hom(A\wedge B,C)\quad {\mbox{es isomorfo a}}\quad Hom(A,B\Rightarrow C)}

La lógica agrupada se puede interpretar en categorías que poseen dos estructuras de este tipo.

Un modelo categórico de lógica agrupada es una categoría única que posee dos estructuras cerradas, una monoidal simétrica cerrada y la otra cartesiana cerrada.

Se puede dar una gran cantidad de modelos categóricos utilizando la construcción del producto tensorial de Day . [8] Además, al fragmento implicacional de la lógica agrupada se le ha dado una semántica de juego . [9]

Semántica algebraica

La semántica algebraica de la lógica agrupada es un caso especial de su semántica categórica, pero es simple de enunciar y puede ser más accesible.

Un modelo algebraico de lógica agrupada es un conjunto parcial que es un álgebra de Heyting y que lleva una estructura reticular residual conmutativa adicional (para la misma red que el álgebra de Heyting): es decir, un monoide conmutativo ordenado con una implicación asociada que satisface . A B do si y solo si A B do {\displaystyle A*B\leq C\quad {\mbox{iff}}\quad A\leq B{-\!\!*}C}

La versión booleana de la lógica agrupada tiene modelos como los siguientes.

Un modelo algebraico de lógica agrupada booleana es un conjunto parcial que es un álgebra booleana y que lleva una estructura monoide conmutativa residual adicional.

Teoría de la prueba y teoría de tipos (grupos)

El cálculo de demostración de la lógica agrupada difiere de los cálculos secuenciales habituales en que tiene un contexto de hipótesis en forma de árbol en lugar de una estructura plana en forma de lista. En sus teorías de demostración basadas en secuencias, el contexto en un juicio de implicación es un árbol finito con raíz cuyas hojas son proposiciones y cuyos nodos internos están etiquetados con modos de composición correspondientes a las dos conjunciones. Los dos operadores de combinación, coma y punto y coma, se utilizan (por ejemplo) en las reglas de introducción para las dos implicaciones. Δ {\estilo de visualización \Delta} Δ A {\displaystyle \Delta \vdash A}

Γ , A B Γ A B Γ ; A B Γ A B {\displaystyle {\frac {\Gamma ,A\vdash B}{\Gamma \vdash A{-\!\!*}B}}\qquad \qquad {\frac {\Gamma ;A\vdash B}{\Gamma \vdash A{\Rightarrow }B}}}

La diferencia entre las dos reglas de composición proviene de reglas adicionales que se les aplican.

  • La composición multiplicativa niega las reglas estructurales del debilitamiento y la contracción. Δ , Γ {\displaystyle \Delta,\Gamma}
  • La composición aditiva permite el debilitamiento y la contracción de racimos enteros. Δ ; Γ {\displaystyle \Delta;\Gamma}

Las reglas estructurales y otras operaciones sobre racimos se aplican a menudo en lo profundo de un contexto de árbol, y no sólo en el nivel superior: se trata, en cierto sentido, de un cálculo de inferencia profunda .

La lógica agrupada corresponde a una teoría de tipos que tiene dos tipos de funciones. Siguiendo la correspondencia de Curry-Howard , las reglas de introducción para las implicaciones corresponden a las reglas de introducción para los tipos de funciones.

Γ , incógnita : A METRO : B Γ la incógnita . METRO : A B Γ ; incógnita : A METRO : B Γ alfa incógnita . METRO : A B {\displaystyle {\frac {\Gamma ,x:A\vdash M:B}{\Gamma \vdash \lambda xM:A{-\!\!*}B}}\qquad \qquad {\frac {\Gamma ;x:A\vdash M:B}{\Gamma \vdash \alpha xM:A{\Rightarrow }B}}}

Aquí, hay dos enlazadores distintos, y , uno para cada tipo de función. la {\estilo de visualización \lambda} alfa {\estilo de visualización \alpha}

La teoría de la prueba de la lógica agrupada tiene una deuda histórica con el uso de racimos en la lógica de relevancia. [10] Pero la estructura agrupada puede en cierto sentido derivarse de la semántica categórica y algebraica: para formular una regla de introducción para debemos imitar a la izquierda en los consecuentes, y para introducir debemos imitar . Esta consideración conduce al uso de dos operadores de combinación. {\estilo de visualización {-\!\!*}} {\estilo de visualización *} {\displaystyle \Flecha derecha} {\displaystyle \cuña}

James Brotherston ha realizado un trabajo significativo adicional sobre una teoría de prueba unificada para la lógica agrupada y sus variantes, [11] empleando la noción de lógica de visualización de Belnap . [12]

Galmiche, Méry y Pym han proporcionado un tratamiento exhaustivo de la lógica agrupada, incluida la completitud y otras metateorías, basadas en tablas etiquetadas . [13]

Aplicaciones

Control de interferencias

En lo que quizás sea el primer uso de la teoría de tipos subestructurales para controlar recursos, John C. Reynolds mostró cómo usar una teoría de tipos afines para controlar el aliasing y otras formas de interferencia en lenguajes de programación similares a Algol . [14] O'Hearn usó la teoría de tipos agrupados para extender el sistema de Reynolds al permitir que la interferencia y la no interferencia se mezclaran de manera más flexible. [2] Esto resolvió problemas abiertos relacionados con la recursión y los saltos en el sistema de Reynolds.

Lógica de separación

La lógica de separación es una extensión de la lógica de Hoare que facilita el razonamiento sobre estructuras de datos mutables que utilizan punteros . Siguiendo la lógica de Hoare, las fórmulas de la lógica de separación tienen la forma , pero las condiciones previas y posteriores son fórmulas interpretadas en un modelo de lógica agrupada. La versión original de la lógica se basaba en los siguientes modelos: { PAG a mi } pag a o gramo a a metro { PAG o s a } {\displaystyle \{Pre\}programa\{Publicar\}}

  • yo mi a pag s = yo F V {\displaystyle Montones=L\rightharpoonup _{f}V\qquad } ( funciones parciales finitas de posiciones a valores)
  • yo 0 yo 1 = {\displaystyle h_{0}\bullet h_{1}=} unión de montones con dominios disjuntos, indefinido cuando los dominios se superponen.

La idea de separación se modela por la falta de definición de la composición en montones superpuestos. Este es un modelo de la variante booleana de la lógica agrupada.

La lógica de separación se utilizó originalmente para demostrar propiedades de programas secuenciales, pero luego se extendió a la concurrencia utilizando una regla de prueba.

{ PAG 1 } do 1 { Q 1 } { PAG 2 } do 2 { Q 2 } { PAG 1 PAG 2 } do 1 do 2 { Q 1 Q 2 } {\displaystyle {\frac {\{P_{1}\}C_{1}\{Q_{1}\}\quad \{P_{2}\}C_{2}\{Q_{2}\}} {\{P_{1}*P_{2}\}C_{1}\parallel C_{2}\{Q_{1}*Q_{2}\}}}}

que divide el almacenamiento al que acceden los subprocesos paralelos. [15]

Más tarde, se utilizó la mayor generalidad de la semántica de recursos: una versión abstracta de la lógica de separación funciona para los triples de Hoare donde las precondiciones y las poscondiciones son fórmulas interpretadas sobre un monoide conmutativo parcial arbitrario en lugar de un modelo de montón particular. [16] Mediante la elección adecuada del monoide conmutativo, se descubrió sorprendentemente que las reglas de prueba de las versiones abstractas de la lógica de separación concurrente se podían usar para razonar sobre procesos concurrentes que interfieren, por ejemplo, codificando el razonamiento basado en confianza-garantía y en trazas. [17] [18]

La lógica de separación es la base de una serie de herramientas para el razonamiento automático y semiautomático sobre programas, y se utiliza en el analizador de programas Infer actualmente implementado en Facebook. [19]

Recursos y procesos

La lógica agrupada se ha utilizado en conexión con el cálculo de recursos-procesos (sincrónico) SCRP [4] [5] [6] para dar una lógica (modal) que caracteriza, en el sentido de Hennessy - Milner , la estructura compositiva de sistemas concurrentes.

SCRP se destaca por interpretar en términos tanto de composición paralela de sistemas como de composición de sus recursos asociados. La cláusula semántica de la lógica de proceso de SCRP que corresponde a la regla de lógica de separación para concurrencia afirma que una fórmula es verdadera en el estado recurso-proceso , solo en caso de que haya descomposiciones del recurso y el proceso ~ , donde ~ denota bisimulación , de modo que es verdadera en el estado recurso-proceso , y es verdadera en el estado recurso-proceso , ; es decir, si y solo si y . A B Estilo de visualización A*B A B Estilo de visualización A*B R {\estilo de visualización R} mi {\estilo de visualización E} R = S yo {\displaystyle R=S\bullet T} mi {\estilo de visualización E} F × GRAMO {\displaystyle F\times G} A {\estilo de visualización A} S {\estilo de visualización S} F {\estilo de visualización F} B {\estilo de visualización B} yo {\estilo de visualización T} GRAMO {\estilo de visualización G} R , mi A {\displaystyle R,E\modelos A} S , F A {\displaystyle S,F\models A} T , G B {\displaystyle T,G\models B}

El sistema SCRP [4] [5] [6] se basa directamente en la semántica de recursos de la lógica agrupada; es decir, en monoides ordenados de elementos de recursos. Si bien esta elección es directa e intuitivamente atractiva, conduce a un problema técnico específico: el teorema de completitud de Hennessy-Milner se cumple solo para fragmentos de la lógica modal que excluyen la implicación multiplicativa y las modalidades multiplicativas. Este problema se resuelve basando el cálculo de procesos de recursos en una semántica de recursos en la que los elementos de recursos se combinan utilizando dos combinadores, uno correspondiente a la composición concurrente y otro correspondiente a la elección. [20]

Lógica espacial

Cardelli, Caires, Gordon y otros han investigado una serie de lógicas de cálculos de procesos, donde una conjunción se interpreta en términos de composición paralela. [ cita requerida ] A diferencia del trabajo de Pym et al. en SCRP, no distinguen entre la composición paralela de los sistemas y la composición de los recursos a los que acceden los sistemas.

Sus lógicas se basan en instancias de la semántica de recursos que dan lugar a modelos de la variante booleana de la lógica agrupada. Aunque estas lógicas dan lugar a instancias de lógica agrupada booleana, parecen haberse elaborado de forma independiente y, en cualquier caso, tienen una estructura adicional significativa en forma de modalidades y vinculantes. También se han propuesto lógicas relacionadas para modelar datos XML .

Véase también

Referencias

  1. ^ O'Hearn, Peter; Pym, David (1999). "La lógica de las implicaciones agrupadas" (PDF) . Boletín de lógica simbólica . 5 (2): 215– 244. CiteSeerX  10.1.1.27.4742 . doi :10.2307/421090. JSTOR  421090. S2CID  2948552.
  2. ^ ab O'Hearn, Peter (2003). "Sobre tipado agrupado" (PDF) . Revista de programación funcional . 13 (4): 747– 796. doi :10.1017/S0956796802004495.
  3. ^ Ishtiaq, Samin; O'Hearn, Peter (2001). "BI como lenguaje de aserción para estructuras de datos mutables" (PDF) . POPL . 28 (3): 14– 26. CiteSeerX 10.1.1.11.4925 . doi :10.1145/373243.375719. 
  4. ^ abc Pym, David; Tofts, Chris (2006). "Un cálculo y lógica de recursos y procesos" (PDF) . Aspectos formales de la informática . 8 (4): 495– 517. doi :10.1007/s00165-006-0018-z. S2CID  16623194.
  5. ^ abc Collinson, Matthew; Pym, David (2009). "Álgebra y lógica para el modelado de sistemas basados ​​en recursos". Estructuras matemáticas en informática . 19 (5): 959– 1027. CiteSeerX 10.1.1.153.3899 . doi :10.1017/S0960129509990077. S2CID  14228156. 
  6. ^ abc Collinson, Matthew; Monahan, Brian; Pym, David (2012). Una disciplina de modelado de sistemas matemáticos . Londres: College Publications. ISBN 978-1-904987-50-5.
  7. ^ Pym, David; O'Hearn, Peter; Yang, Hongseok (2004). "Mundos posibles y recursos: La semántica de BI". Ciencias Informáticas Teóricas . 315 (1): 257– 305. doi : 10.1016/j.tcs.2003.11.020 .
  8. ^ Day, Brian (1970). "Sobre categorías cerradas de funtores" (PDF) . Informes del Seminario de categorías del Medio Oeste IV . Apuntes de clase en matemáticas. Vol. 137. Springer. págs.  1– 38.
  9. ^ McCusker, Guy; Pym, David (2007). "Un modelo de juegos de implicaciones agrupadas" (PDF) . Lógica informática . Apuntes de clase sobre informática. Vol. 4646. Springer.
  10. ^ Read, Stephen (1989). Lógica relevante: un examen filosófico de la inferencia . Wiley-Blackwell.
  11. ^ Brotherston, James (2012). "Lógicas agrupadas mostradas" (PDF) . Studia Logica . 100 (6): 1223– 1254. CiteSeerX 10.1.1.174.8777 . doi :10.1007/s11225-012-9449-0. S2CID  13634990. 
  12. ^ Belnap, Nuel (1982). "Lógica de visualización". Revista de lógica filosófica . 11 (4): 375– 417. doi :10.1007/BF00284976. S2CID  41451176.
  13. ^ Galmiche, Didier; Méry, Daniel; Pym, David (2005). "La semántica de BI y cuadros de recursos". Estructuras matemáticas en informática . 15 (6): 1033–1088 . CiteSeerX 10.1.1.144.1421 . doi :10.1017/S0960129505004858 (inactivo el 1 de noviembre de 2024). S2CID  1700033. {{cite journal}}: CS1 maint: DOI inactive as of November 2024 (link)
  14. ^ Reynolds, John (1978). "Control sintáctico de la interferencia". Actas del 5º simposio ACM SIGACT-SIGPLAN sobre Principios de lenguajes de programación - POPL '78 . pp.  39– 46. doi : 10.1145/512760.512766 . ISBN . 9781450373487. Número de identificación del sujeto  18716926.
  15. ^ O'Hearn, Peter (2007). "Recursos, concurrencia y razonamiento local" (PDF) . Theoretical Computer Science . 375 ( 1–3 ): 271–307 . doi : 10.1016/j.tcs.2006.12.035 .
  16. ^ Calcagno, Cristiano; O'Hearn, Peter W.; Yang, Hongseok (2007). "Lógica de separación abstracta y acción local" (PDF) . 22.º Simposio anual IEEE sobre lógica en informática (LICS 2007) . pp.  366– 378. CiteSeerX 10.1.1.66.6337 . doi :10.1109/LICS.2007.30. ISBN .  978-0-7695-2908-0.S2CID1044254  .
  17. ^ Dinsdale-Young, Thomas; Birkedal, Lars; Gardner, Philippa; Parkinson, Matthew; Yang, Hongseok (2013). "Views: Compositional Reasoning for Concurrent Programs" (PDF) . Actas del 40.º Simposio anual ACM SIGPLAN-SIGACT sobre principios de lenguajes de programación . 48 : 287– 300. doi :10.1145/2480359.2429104.
  18. ^ Sergey, Ilya; Nanevski, Aleksandar; Banerjee, Anindya (2015). "Especificación y verificación de algoritmos concurrentes con historias y subjetividad" (PDF) . 24º Simposio Europeo de Programación . arXiv : 1410.0306 . Código Bibliográfico :2014arXiv1410.0306S.
  19. ^ Calcagno, Cristiano; Distefano, Dino; O'Hearn, Peter (11 de junio de 2015). "Facebook Infer de código abierto: identifica errores antes de publicar".
  20. ^ Anderson, Gabrielle; Pym, David (2015). "Un cálculo y lógica de recursos y procesos agrupados". Ciencias de la computación teórica . 614 : 63– 96. doi : 10.1016/j.tcs.2015.11.035 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Bunched_logic&oldid=1269337658"