Articulo de referencia

Lógica agrupada

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

La lógica de agrupamiento [ 1 ] es una variedad de lógica subestructural propuesta por Peter O'Hearn y David Pym . La lógica de agrupamiento proporciona primitivas para razonar sobre la composición de recursos , que ayudan en el análisis composicional de sistemas informáticos y otros sistemas. Tiene una semántica categórica y veritativo-funcional, que puede entenderse en términos de un concepto abstracto de recurso, y una teoría de la prueba en la que los contextos Γ en un juicio de implicación Γ ⊢ A son estructuras arbóreas (agrupaciones) en lugar de listas o ( multi ) conjuntos como en la mayoría de los cálculos de prueba . La lógica de agrupamiento 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 tenido 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 la conjunción y la implicación:

ABdosi y solo siABdo{\displaystyle A\wedge B\vdash C\quad {\mbox{si y solo si}}\quad A\vdash B\Rightarrow C}

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

ABdosi y solo siABdoy tambiénABdosi y solo siABdo{\displaystyle A*B\vdash C\quad {\mbox{si y solo si}}\quad A\vdash B{-\!\!*}C\qquad {\mbox{y también}}\qquad A\wedge B\vdash C\quad {\mbox{si y solo si}}\quad A\vdash B\Rightarrow C}

AB{\displaystyle A*B}yBdo{\displaystyle B{-\!\!*}C}son formas de conjunción e implicación que toman en cuenta los recursos (explicado más adelante). Además de estos conectores, 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{\displaystyle \wedge }y{\displaystyle \Rightarrow }eran los conectores de la lógica intuicionista , mientras que una variante booleana toma{\displaystyle \wedge }y{\displaystyle \Rightarrow }(y¬{\displaystyle \neg }) como en la lógica booleana tradicional . Por lo tanto, la lógica agrupada es compatible con los principios constructivos, pero no depende de ellos en absoluto.

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

La forma más sencilla de entender estas fórmulas es mediante su semántica veritativo-funcional. En esta semántica, una fórmula es verdadera o falsa con respecto a determinados recursos. AB{\displaystyle A*B}afirma que el recurso en cuestión puede descomponerse en recursos que satisfacenA{\displaystyle A}yB{\displaystyle B}. Bdo{\displaystyle B{-\!\!*}C}dice que si componemos el recurso disponible con un recurso adicional que satisfagaB{\displaystyle B}, entonces el recurso combinado satisfacedo{\displaystyle C}.{\displaystyle \wedge }y{\displaystyle \Rightarrow }tienen sus significados familiares.

La base para esta lectura de fórmulas fue proporcionada por una semántica forzante.rA{\displaystyle r\models A}propuesto por Pym, donde la relación de forzamiento significa ' A posee 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 se consideran recursos que pueden componerse y descomponerse, 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

rABsi y solo sirArB.rAA,rBB,yrArBr{\displaystyle r\models A*B\quad {\mbox{si y solo si}}\quad \exists r_{A}r_{B}.\,r_{A}\models A,\,r_{B}\models B,\,{\mbox{y}}\,r_{A}\bullet r_{B}\leq r}

dónderArB{\displaystyle r_{A}\bullet r_{B}}es una forma de combinar recursos y{\displaystyle \leq }es una relación de aproximación.

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 rrr{\displaystyle r\bullet r\leq r}y aceptando la semántica de las versiones intuicionistas o clásicas estándar de{\displaystyle \wedge }y{\displaystyle \Rightarrow }La propiedadrrr{\displaystyle r\bullet r\leq r} se justifica al pensar en la relevancia pero se niega por consideraciones de recursos; tener dos copias de un recurso no es lo mismo que tener una, y en algunos modelos (por ejemplo, modelos de montón )rr{\displaystyle r\bullet r}Puede que ni siquiera esté definido. La semántica estándar de {\displaystyle \Rightarrow }(o de negación) suele ser rechazada por los relevanteistas en su intento de escapar de las "paradojas de la implicación material", que no son un problema desde la perspectiva de los recursos de modelado 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{\displaystyle \wedge }y{\displaystyle \Rightarrow }, que en lógica lineal se rechaza en un intento de ser constructivo. Estas consideraciones se discuten en detalle en un artículo sobre semántica de recursos de Pym, O'Hearn y Yang. [ 7 ]

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 categórica correspondiente. Las demostraciones en lógica intuicionista pueden interpretarse en categorías cartesianas cerradas , es decir, categorías con productos finitos que satisfacen la correspondencia de adjunción ( natural en A y C ) que relaciona los conjuntos hom:

Hometro(AB,do)es isomorfo aHometro(A,Bdo){\displaystyle Hom(A\wedge B,C)\quad {\mbox{es isomorfo a}}\quad Hom(A,B\Rightarrow C)}

La lógica agrupada puede interpretarse en categorías que poseen dos de dichas estructuras.

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

Se pueden dar numerosos modelos categóricos utilizando la construcción de 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 sencilla de enunciar y puede ser más accesible.

Un modelo algebraico de lógica agrupada es un poset que es un álgebra de Heyting y que lleva una estructura de retículo residuado conmutativo adicional (para el mismo retículo que el álgebra de Heyting): es decir, un monoide conmutativo ordenado con una implicación asociada que satisfaceABdosi y solo siABdo{\displaystyle A*B\leq C\quad {\mbox{si y solo si}}\quad A\leq B{-\!\!*}C}.

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

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

Teoría de la demostración y teoría de tipos (grupos)

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

Γ,ABΓABΓ;ABΓAB{\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 radica en las reglas adicionales que se les aplican.

  • Composición multiplicativaΔ,Γ{\displaystyle \Delta,\Gamma}Niega las reglas estructurales de debilitamiento y contracción.
  • Composición aditivaΔ;Γ{\displaystyle \Delta ;\Gamma } admite el debilitamiento y la contracción de grupos enteros.

Las reglas estructurales y otras operaciones sobre grupos se aplican a menudo en lo profundo de un contexto de árbol, y no solo en el nivel superior: es, por lo tanto, en cierto sentido, un cálculo de inferencia profunda .

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

Γ,incógnita:AMETRO:BΓλincógnita.METRO:ABΓ;incógnita:AMETRO:BΓαincógnita.METRO:AB{\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 carpetas distintas,λ{\displaystyle \lambda }yα{\displaystyle \alpha }, uno para cada tipo de función.

La teoría de la demostración de la lógica agrupada tiene una deuda histórica con el uso de grupos en la lógica de relevancia. [ 10 ] Pero la estructura agrupada puede, en cierto sentido, derivarse de la semántica categórica y algebraica: formular una regla de introducción para{\displaystyle {-\!\!*}}deberíamos imitar{\displaystyle *}a la izquierda en secuencias, y para introducir{\displaystyle \Rightarrow }deberíamos imitar{\displaystyle \wedge }Esta consideración lleva al uso de dos operadores de combinación.

James Brotherston has done further significant work on a unified proof theory for bunched logic and variants,[11] employing Belnap's notion of display logic.[12]

Galmiche, Méry, and Pym have provided a comprehensive treatment of bunched logic, including completeness and other meta-theory, based on labelled tableaux.[13]

Applications

Interference control

In perhaps the first use of substructural type theory to control resources, John C. Reynolds showed how to use an affine type theory to control aliasing and other forms of interference in ALGOL-like programming languages.[14] O'Hearn used bunched type theory to extend Reynolds' system by allowing interference and non-interference to be more flexibly mixed.[2] This resolved open problems concerning recursion and jumps in Reynolds' system.

Separation logic

Separation logic is an extension of Hoare logic that facilitates reasoning about mutable data structures that use pointers. Following Hoare logic the formulae of separation logic are of the form {Pre}program{Post}{\displaystyle \{Pre\}programa\{Publicar\}}, but the preconditions and postconditions are formulae interpreted in a model of bunched logic. The original version of the logic was based on models as follows:

  • Heaps=LfV{\displaystyle Montones=L\rightharpoonup _{f}V\qquad } (finite partial functions from locations to values)
  • h0h1={\displaystyle h_{0}\bullet h_{1}=} union of heaps with disjoint domains, undefined when domains overlap.

It is the undefinedness of the composition on overlapping heaps that models the separation idea. This is a model of the boolean variant of bunched logic.

Separation logic was used originally to prove properties of sequential programs, but then was extended to concurrency using a proof rule

{P1}C1{Q1}{P2}C2{Q2}{P1P2}C1C2{Q1Q2}{\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}\}}}}

that divides the storage accessed by parallel threads.[15]

Later, the greater generality of the resource semantics was utilized: an abstract version of separation logic works for Hoare triples where the preconditions and postconditions are formulae interpreted over an arbitrary partial commutative monoid instead of a particular heap model.[16] By suitable choice of commutative monoid, it was surprisingly found that the proofs rules of abstract versions of concurrent separation logic could be used to reason about interfering concurrent processes, for example by encoding rely-guarantee and trace-based reasoning.[17][18]

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

Recursos y procesos

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

SCRP es notable por interpretarAB{\displaystyle A*B}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 procesos de SCRP que corresponde a la regla de la lógica de separación para la concurrencia afirma que una fórmulaAB{\displaystyle A*B}es cierto en el estado de proceso de recursosR{\displaystyle R},mi{\displaystyle E}por si acaso se producen descomposiciones del recursoR=ST{\displaystyle R=S\bullet T}y proceso mi{\displaystyle E}~F×GRAMO{\displaystyle F\times G}, donde ~ denota bisimulación , tal queA{\displaystyle A}es cierto en el estado de proceso de recursosS{\displaystyle S},F{\displaystyle F}yB{\displaystyle B}es cierto en el estado de proceso de recursosT{\displaystyle T},GRAMO{\displaystyle G}; eso esR,miA{\displaystyle R,E\models A}si y solo siS,FA{\displaystyle S,F\models A}yT,GRAMOB{\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, conlleva un problema técnico específico: el teorema de completitud de Hennessy-Milner solo se cumple 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 mediante dos combinadores, uno correspondiente a la composición concurrente y otro correspondiente a la elección. [ 20 ]

Lógicas espaciales

Cardelli, Caires, Gordon y otros han investigado una serie de lógicas de cálculo de procesos, donde una conjunción se interpreta en términos de composición paralela. A diferencia del trabajo de Pym et al. en SCRP, no distinguen entre la composición paralela de sistemas y la composición de 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. Si bien estas lógicas generan instancias de lógica agrupada booleana, parecen haberse desarrollado de forma independiente y, en cualquier caso, presentan una estructura adicional significativa en cuanto a modalidades y conectores. También se han propuesto lógicas similares para el modelado de 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. 1 2 O'Hearn, Peter (2003). "Sobre la agrupación de caracteres" (PDF) . Journal of Functional Programming . 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) . ACM SIGPLAN Notices . 28.º (3): 14–26 . CiteSeerX 10.1.1.11.4925 . doi : 10.1145/373243.375719 . 
  4. 1 2 3 Pym, David; Tofts, Chris (2006). "Un cálculo y lógica de recursos y procesos" (PDF) . Aspectos formales de la computación . 8 (4): 495– 517. doi : 10.1007/s00165-006-0018-z . S2CID 16623194 . 
  5. 1 2 3 Collinson, Matthew; Pym, David (2009). "Álgebra y lógica para el modelado de sistemas basados ​​en recursos". Estructuras matemáticas en ciencias de la computación . 19 (5): 959– 1027. CiteSeerX 10.1.1.153.3899 . doi : 10.1017/S0960129509990077 . S2CID 14228156 .  
  6. 1 2 3 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 y recursos posibles: La semántica de BI" . Theoretical Computer Science . 315 (1): 257– 305. doi : 10.1016/j.tcs.2003.11.020 .
  8. Day, Brian (1970). "Sobre categorías cerradas de functores" (PDF) . Informes del Seminario de Categorías del Medio Oeste IV . Notas 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 de la informática . Notas de clase en 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 la exhibición". Journal of Philosophical Logic . 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 . S2CID 1700033 .  
  14. Reynolds, John (1978). «Control sintáctico de la interferencia». Actas del 5.º simposio ACM SIGACT-SIGPLAN sobre principios de los lenguajes de programación - POPL '78 . págs. 39-46 . doi : 10.1145/512760.512766 . ISBN  9781450373487. S2CID 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). "Acción local y lógica de separación abstracta" (PDF) . 22.º Simposio Anual IEEE sobre Lógica en Ciencias de la Computación (LICS 2007) . págs. 366–378 . CiteSeerX 10.1.1.66.6337 . doi : 10.1109/LICS.2007.30 . ISBN   978-0-7695-2908-0. S2CID 1044254 . 
  17. Dinsdale-Young, Thomas; Birkedal, Lars; Gardner, Philippa; Parkinson, Matthew; Yang, Hongseok (2013). "Views: Compositional reasoning for concurrent programs" (PDF) . ACM SIGPLAN Notices . 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 historiales y subjetividad" (PDF) . 24º Simposio Europeo de Programación . arXiv : 1410.0306 . Bibcode : 2014arXiv1410.0306S .
  19. Calcagno, Cristiano; Distefano, Dino; O'Hearn, Peter (2015-06-11). "Liberar el código fuente de Facebook Infer: Identifique errores antes de lanzar" .
  20. Anderson, Gabrielle; Pym, David (2015). "Un cálculo y lógica de recursos y procesos agrupados" . Theoretical Computer Science . 614 : 63–96 . doi : 10.1016/j.tcs.2015.11.035 .