En informática teórica , el cálculo π (o cálculo pi ) es un cálculo de procesos . El cálculo π permite comunicar los nombres de los canales a través de ellos mismos y, en este sentido, puede describir cálculos concurrentes cuya configuración de red puede cambiar durante el proceso.
El cálculo π tiene pocos términos y es un lenguaje pequeño pero expresivo (ver § Sintaxis ). Los programas funcionales pueden codificarse en el cálculo π , y la codificación enfatiza la naturaleza dialógica de la computación, estableciendo conexiones con la semántica de los juegos . Las extensiones del cálculo π , como el cálculo spi y el π aplicado , han tenido éxito en el razonamiento sobre protocolos criptográficos . Además de su uso original en la descripción de sistemas concurrentes, el cálculo π también se ha utilizado para razonar a través de procesos de negocios , [ 1 ] biología molecular . [ 2 ] y agentes autónomos en inteligencia artificial .
Definición informal
El cálculo π pertenece a la familia de cálculos de procesos , formalismos matemáticos para describir y analizar propiedades de computación concurrente. De hecho, el cálculo π , al igual que el cálculo λ , es tan minimalista que no contiene primitivas como números, booleanos, estructuras de datos, variables, funciones o incluso las sentencias de flujo de control habituales (como if-then-else, while).
Construcciones de procesos
Un elemento central del cálculo π es la noción de nombre . La simplicidad del cálculo radica en el doble papel que desempeñan los nombres como canales de comunicación y variables .
Las construcciones de proceso disponibles en el cálculo son las siguientes [ 3 ] (una definición precisa se da en la siguiente sección):
- concurrencia , escrito, dóndeyson dos procesos o hilos que se ejecutan simultáneamente.
- comunicación , donde
- prefijo de entradaes un proceso que espera un mensaje que fue enviado en un canal de comunicación llamadoantes de proceder como, vinculando el nombre recibido con el nombre x . Normalmente, esto modela un proceso que espera una comunicación de la red o una etiqueta
cque solo puede ser utilizada una vez por unagoto coperación. - prefijo de salidadescribe que el nombrese emite en el canalantes de proceder comoNormalmente , esto modela el envío de un mensaje en la red o una
goto coperación.
- prefijo de entradaes un proceso que espera un mensaje que fue enviado en un canal de comunicación llamadoantes de proceder como, vinculando el nombre recibido con el nombre x . Normalmente, esto modela un proceso que espera una comunicación de la red o una etiqueta
- replicación , escrita !\,P} , que puede verse como un proceso que siempre puede crear una nueva copia deNormalmente , esto modela un servicio de red o una etiqueta
cque espera una serie degoto coperaciones. - creación de un nuevo nombre , escrito, que puede verse como un proceso que asigna una nueva constante x dentroLas constantes del cálculo π se definen únicamente por sus nombres y son siempre canales de comunicación. La creación de un nuevo nombre en un proceso también se denomina restricción .
- el proceso nulo, escrito, es un proceso cuya ejecución ha finalizado y se ha detenido.
Aunque el minimalismo del cálculo π nos impide escribir programas en el sentido habitual, es fácil extenderlo. En particular, es fácil definir estructuras de control como la recursión, los bucles y la composición secuencial, así como tipos de datos como funciones de primer orden, valores de verdad , listas y enteros. Además, se han propuesto extensiones del cálculo π que tienen en cuenta la criptografía de distribución o de clave pública . El cálculo π aplicado por Abadi y FournetSe formalizó el estudio de estas diversas extensiones mediante la ampliación del cálculo π con tipos de datos arbitrarios.
Un pequeño ejemplo
A continuación se muestra un pequeño ejemplo de un proceso que consta de tres componentes en paralelo. El nombre del canal x solo es conocido por los dos primeros componentes.
Los dos primeros componentes pueden comunicarse en el canal x , y el nombre y queda vinculado a z . Por lo tanto, el siguiente paso en el proceso es:
Tenga en cuenta que la variable y restante no se ve afectada porque está definida en un ámbito interno. Los componentes paralelos segundo y tercero ahora pueden comunicarse en el canal z , y el nombre v queda vinculado a x . El siguiente paso en el proceso es ahora
Nótese que, dado que se ha emitido el nombre local x , el alcance de x se extiende para abarcar también el tercer componente. Finalmente, el canal x se puede utilizar para enviar el nombre x . Después de eso, todos los procesos que se ejecutan simultáneamente se han detenido.
Definición formal
Sintaxis
Sea Χ un conjunto de objetos llamados nombres . La sintaxis abstracta para el cálculo π se construye a partir de la siguiente gramática BNF (donde x e y son nombres cualesquiera de Χ): [ 4 ]
En la sintaxis concreta que se muestra a continuación, los prefijos se vinculan de forma más estrecha que la composición paralela (|), y los paréntesis se utilizan para desambiguar.
Los nombres están sujetos a las restricciones y a los prefijos de entrada. Formalmente, el conjunto de nombres libres de un proceso en el cálculo π se define inductivamente mediante la tabla que se muestra a continuación. El conjunto de nombres ligados de un proceso se define como aquellos nombres que no pertenecen al conjunto de nombres libres.
Congruencia estructural
Un concepto fundamental tanto para la semántica de reducción como para la semántica de transición etiquetada es la noción de congruencia estructural . Dos procesos son estructuralmente congruentes si son idénticos salvo por su estructura. En particular, la composición paralela es conmutativa y asociativa.
Más precisamente, la congruencia estructural se define como la relación de equivalencia mínima preservada por las construcciones del proceso y que satisface:
Conversión alfa :
- sise puede obtener decambiando el nombre de uno o más nombres vinculados en.
Axiomas para la composición paralela :
Axiomas para la restricción :
Axioma para la replicación :
Axioma que relaciona restricción y paralelismo :
- si x no es un nombre libre de.
Este último axioma se conoce como el axioma de "extensión de ámbito". Este axioma es fundamental, ya que describe cómo un nombre ligado x puede ser extruido por una acción de salida, lo que provoca que el ámbito de x se extienda. En los casos en que x es un nombre libre de, se puede utilizar la conversión alfa para permitir que la extensión continúe.
semántica de reducción
Escribimossipuede realizar un paso de cálculo, después del cual ahoraEsta relación de reducciónse define como la relación más pequeña cerrada bajo un conjunto de reglas de reducción.
La regla de reducción principal que captura la capacidad de los procesos para comunicarse a través de canales es la siguiente:
- dóndedenota el procesoen el que el nombre libreha sido sustituido por las ocurrencias libres de. Si ocurre una ocurrencia libre deocurre en un lugar dondeNo sería gratuito, podría ser necesaria la conversión alfa.
Hay tres reglas adicionales:
- Sientonces también.
- Esta regla establece que la composición paralela no inhibe el cálculo.
- Si, entonces también.
- Esta regla garantiza que el cálculo pueda continuar incluso bajo una restricción.
- Siyy, entonces también.
Esta última regla establece que los procesos que son estructuralmente congruentes tienen las mismas reducciones.
El ejemplo revisado
Consideremos nuevamente el proceso
Aplicando la definición de la semántica de reducción, obtenemos la reducción
Nótese cómo, aplicando el axioma de sustitución de reducción, ocurrencias libres deahora están etiquetados como.
A continuación, obtenemos la reducción.
Tenga en cuenta que, dado que se ha generado el nombre local x , el ámbito de x se extiende para abarcar también el tercer componente. Esto se capturó utilizando el axioma de extensión de ámbito.
A continuación, utilizando el axioma de sustitución de reducción, obtenemos:
Finalmente, utilizando los axiomas para la composición y restricción paralelas, obtenemos
semántica etiquetada
Alternativamente, se puede dar al cálculo pi una semántica de transición etiquetada (como se ha hecho con el Cálculo de Sistemas Comunicantes ). En esta semántica, una transición de un estadoa algún otro estadodespués de una acciónse anota como:
Donde los estadosyrepresentar procesos yes una acción de entrada, una acción de salida, o una acción silenciosa τ . [ 5 ]
Un resultado estándar sobre la semántica etiquetada es que coincide con la semántica de reducción salvo congruencia estructural, en el sentido de que si y solo si[ 6 ]
Extensiones y variantes
La sintaxis mostrada anteriormente es la mínima. Sin embargo, puede modificarse de diversas maneras.
Un operador de elección no deterministase puede agregar a la sintaxis.
Una prueba de igualdad de nombresse puede agregar a la sintaxis. Este operador de coincidencia puede proceder comosi y solo si x ytienen el mismo nombre. De manera similar, se puede agregar un operador de discrepancia para la desigualdad de nombres . Los programas prácticos que pueden pasar nombres (URL o punteros) suelen usar esta funcionalidad: para modelar directamente dicha funcionalidad dentro del cálculo, esta y otras extensiones relacionadas suelen ser útiles.
El cálculo π asíncrono [ 7 ] [ 8 ] solo permite salidas sin continuación, es decir, átomos de salida de la forma, lo que resulta en un cálculo más pequeño. Sin embargo, cualquier proceso en el cálculo original puede representarse mediante el cálculo π asíncrono más pequeño , utilizando un canal adicional para simular el acuse de recibo explícito del proceso receptor. Dado que una salida sin continuación puede modelar un mensaje en tránsito, este fragmento muestra que el cálculo π original , que se basa intuitivamente en la comunicación síncrona, tiene un modelo de comunicación asíncrona expresivo dentro de su sintaxis. Sin embargo, el operador de elección no determinista definido anteriormente no puede expresarse de esta manera, ya que una elección no protegida se convertiría en una protegida; este hecho se ha utilizado para demostrar que el cálculo asíncrono es estrictamente menos expresivo que el síncrono (con el operador de elección). [ 9 ]
El cálculo π poliádico permite comunicar más de un nombre en una sola acción:(salida poliádica) y(entrada poliádica) . Esta extensión poliádica, que es especialmente útil al estudiar tipos para procesos de paso de nombres, puede codificarse en el cálculo monádico pasando el nombre de un canal privado a través del cual se pasan los múltiples argumentos en secuencia. La codificación se define recursivamente mediante las cláusulas
está codificado como
está codificado como
El resto de las estructuras del proceso permanecen sin cambios tras la codificación.
En lo anterior,denota la codificación de todos los prefijos en la continuacióndel mismo modo.
Todo el poder de la replicaciónno es necesario. A menudo, solo se considera la entrada replicada, cuyo axioma de congruencia estructural es.
Proceso de entrada replicado comopueden entenderse como servidores que esperan en el canal x a ser invocados por los clientes. La invocación de un servidor genera una nueva copia del proceso.donde a es el nombre que el cliente pasa al servidor durante la invocación de este último.
Se puede definir un cálculo π de orden superior donde no solo se envían nombres sino también procesos a través de canales. La regla de reducción clave para el caso de orden superior es
Aquí,denota una variable de proceso que puede ser instanciada por un término de proceso. Sangiorgi estableció que la capacidad de pasar procesos no aumenta la expresividad del cálculo π : pasar un proceso P puede simularse simplemente pasando un nombre que apunte a P.
Propiedades
Completitud de Turing
El cálculo π es un modelo universal de computación . Esto fue observado por primera vez por Milner en su artículo "Funciones como procesos" [ 10 ] , en el que presenta dos codificaciones del cálculo lambda en el cálculo π . Una codificación simula la estrategia de evaluación ávida (llamada por valor) , la otra codificación simula la estrategia de orden normal (llamada por nombre). En ambas, la idea crucial es el modelado de las vinculaciones del entorno; por ejemplo, " x está vinculado al término"– como agentes replicantes que responden a las solicitudes de sus enlaces enviando de vuelta una conexión al término.
Las características del cálculo π que hacen posibles estas codificaciones son el paso de nombres y la replicación (o, equivalentemente, agentes definidos recursivamente). En ausencia de replicación/recursión, el cálculo π deja de ser Turing-completo. Esto se puede observar en el hecho de que la equivalencia de bisimulación se vuelve decidible para el cálculo sin recursión e incluso para el cálculo π de control finito, donde el número de componentes paralelas en cualquier proceso está limitado por una constante. [ 11 ]
Bisimulaciones en el cálculo π
En cuanto a los cálculos de procesos, el cálculo π permite definir la equivalencia de bisimulación. En el cálculo π , la definición de equivalencia de bisimulación (también conocida como bisimilitud) puede basarse en la semántica de reducción o en la semántica de transición etiquetada.
En el cálculo π existen al menos tres formas distintas de definir la equivalencia de bisimulación etiquetada : bisimilitud temprana, tardía y abierta. Esto se debe a que el cálculo π es un cálculo de procesos de paso de valores.
En el resto de esta sección, dejamosydenotan procesos ydenotan relaciones binarias sobre procesos.
Bisimilitud temprana y tardía
La bisimilitud temprana y tardía fueron formuladas por Milner, Parrow y Walker en su artículo original sobre el cálculo π . [ 12 ]
Una relación binariasobre procesos es una bisimulación temprana si para cada par de procesos,
- cuando seaentonces para cada nombreexiste algode tal manera quey;
- para cualquier acción que no sea de entrada, sientonces existe algode tal manera quey;
- y requisitos simétricos conyintercambiado.
ProcesosySe dice que son bisimilares tempranos, escritossi el parpara alguna bisimulación temprana.
En la bisimilitud tardía, la coincidencia de transición debe ser independiente del nombre que se transmite. Una relación binariasobre procesos es una bisimulación tardía si para cada par de procesos,
- cuando seaentonces para algunossostiene queypara cada nombre y ;
- para cualquier acción que no sea de entrada, siimplica que existe algunade tal manera quey;
- y requisitos simétricos conyintercambiado.
ProcesosySe dice que son bisimilares tardíos, escritossi el parpara alguna bisimulación tardía.
Ambosysufren del problema de que no son relaciones de congruencia en el sentido de que no se conservan en todas las construcciones de procesos. Más precisamente, existen procesosyde tal manera quepero. Se puede remediar este problema considerando las relaciones de congruencia máximas incluidas eny, conocidas respectivamente como congruencia temprana y congruencia tardía .
Bisimilitud abierta
Afortunadamente, es posible una tercera definición que evita este problema, a saber, la de bisimilitud abierta , debida a Sangiorgi. [ 13 ]
Una relación binariasobre procesos es una bisimulación abierta si para cada par de elementosy por cada sustitución de nombrey cada acción, cuando seaentonces existe algode tal manera quey.
ProcesosySe dice que son bisimilares abiertos, escritossi el parpara alguna bisimulación abierta.
La bisimilitud temprana, tardía y abierta son distintas.
La bisimilitud temprana, tardía y abierta son distintas. Las contenciones son propias, por lo que.
En ciertos subcálculos, como el cálculo pi asíncrono, se sabe que coinciden la bisimilitud tardía, temprana y abierta. Sin embargo, en este contexto, una noción más apropiada es la de bisimilitud asíncrona . En la literatura, el término bisimulación abierta suele referirse a una noción más sofisticada, donde los procesos y las relaciones se indexan mediante relaciones de distinción; los detalles se encuentran en el artículo de Sangiorgi citado anteriormente.
Equivalencia con púas
Alternativamente, se puede definir la equivalencia de bisimulación directamente a partir de la semántica de reducción. Escribimos:si el procesoPermite inmediatamente una entrada o una salida por nombre..
Una relación binariasobre procesos es una bisimulación con púas si es una relación simétrica que satisface que para cada par de elementostenemos eso
- (1)si y solo sipara cada nombre
y
- (2) por cada reducciónexiste una reducción
de tal manera que.
Decimos queyson bisimilares con púas si existe una bisimulación con púasdónde.
Definiendo un contexto como un término π con un agujero [] decimos que dos procesos P y Q son congruentes con púas , escritos, si para cada contextotenemos esoyson bisimilares con púas. Resulta que la congruencia con púas coincide con la congruencia inducida por la bisimilaridad temprana.
Aplicaciones
El cálculo π se ha utilizado para describir muchos tipos diferentes de sistemas concurrentes. De hecho, algunas de las aplicaciones más recientes se encuentran fuera del ámbito de la informática tradicional.
En 1997, Martin Abadi y Andrew Gordon propusieron una extensión del cálculo π , el cálculo Spi, como notación formal para describir y razonar sobre protocolos criptográficos. El cálculo Spi extiende el cálculo π con primitivas para cifrado y descifrado. En 2001, Martin Abadi y Cedric Fournet generalizaron el manejo de protocolos criptográficos para producir el cálculo π aplicado . Actualmente existe un amplio conjunto de trabajos dedicados a variantes del cálculo π aplicado , incluyendo varias herramientas de verificación experimental. Un ejemplo es la herramienta ProVerif.debido a Bruno Blanchet, basado en una traducción del cálculo π aplicado al marco de programación lógica de Blanchet . Otro ejemplo es Cryptyc., debido a Andrew Gordon y Alan Jeffrey, que utiliza el método de aserciones de correspondencia de Woo y Lam como base para sistemas de tipos que pueden verificar propiedades de autenticación de protocolos criptográficos.
Hacia 2002, Howard Smith y Peter Fingar se interesaron en que el cálculo π se convirtiera en una herramienta de descripción para modelar procesos de negocio. En julio de 2006, se debatía en la comunidad sobre su utilidad. Más recientemente, el cálculo π ha constituido la base teórica del Lenguaje de Modelado de Procesos de Negocio (BPML) y de XLANG de Microsoft. [ 14 ]
El cálculo π también ha despertado interés en la biología molecular. En 1999, Aviv Regev y Ehud Shapiro demostraron que se puede describir una vía de señalización celular (la denominada cascada RTK / MAPK ) y, en particular, el "lego" molecular que implementa estas tareas de comunicación mediante una extensión del cálculo π . [ 2 ] Tras este trabajo fundamental, otros autores describieron la red metabólica completa de una célula mínima. [ 15 ] En 2009, Anthony Nash y Sara Kalvala propusieron un marco de cálculo π para modelar la transducción de señales que dirige la agregación de Dictyostelium discoideum . [ 16 ]
Historia
El cálculo π fue desarrollado originalmente por Robin Milner , Joachim Parrow y David Walker en 1992, basándose en ideas de Uffe Engberg y Mogens Nielsen. [ 17 ] Puede considerarse una continuación del trabajo de Milner sobre el cálculo de procesos CCS ( Cálculo de Sistemas de Comunicación ). En su conferencia Turing, Milner describe el desarrollo del cálculo π como un intento de capturar la uniformidad de valores y procesos en los actores . [ 18 ]
Implementaciones
Los siguientes lenguajes de programación implementan el cálculo π o alguna de sus variantes:
- Lenguaje de modelado de procesos de negocio (BPML)
- occam-π
- picto
- JoCaml (basado en el cálculo de unión )
- RhoLang
Notas
- ↑ Especificación OMG (2011). "Modelo y Notación de Procesos de Negocio (BPMN) Versión 2.0" , Object Management Group . pág. 21
- 1 2 Regev, Aviv ; William Silverman; Ehud Y. Shapiro (2001). "Representación y simulación de procesos bioquímicos mediante el álgebra de procesos del cálculo pi". Biocomputing 2001: Actas del Simposio del Pacífico . págs. 459–470 . doi : 10.1142/9789814447362_0045 . ISBN 978-981-02-4515-3. PMID 11262964 .
- ↑ Wing, Jeannette M. (27 de diciembre de 2002). "Preguntas frecuentes sobre el cálculo π" (PDF) .
- ↑ Cálculo de procesos móviles, parte 1, página 10, por R. Milner, J. Parrow y D. Walker, publicado en Information and Computation 100(1), pp. 1-40, septiembre de 1992.
- ↑ Robin Milner, Sistemas de comunicación y móviles: El cálculo Pi, Cambridge University Press, ISBN 05216432011999
- ↑ Sangiorgi, D., & Walker, D. (2003). p51, El cálculo pi. Cambridge University Press.
- ↑ Boudol, G. (1992). Asincronía y el cálculo π . Informe técnico 1702, INRIA, Sophia-Antipolis .
- ↑ Honda, K.; Tokoro, M. (1991). Un cálculo de objetos para la comunicación asíncrona. ECOOP 91. Springer Verlag.
- ↑ Palamidessi, Catuscia (1997). "Comparación del poder expresivo del cálculo pi síncrono y asíncrono". Actas del 24.º Simposio ACM sobre Principios de Lenguajes de Programación : 256–265 . arXiv : cs/9809008 . Bibcode : 1998cs........9008P .
- ↑ Milner, Robin (1992). "Funciones como procesos" (PDF) . Estructuras matemáticas en informática . 2 (2): 119– 141. doi : 10.1017/s0960129500001407 . hdl : 20.500.11820/159b09c0-1147-4f32-baf0-23bed198f12a . S2CID 36446818 .
- ↑ Dam, Mads (1997). "Sobre la decidibilidad de las equivalencias de procesos para el cálculo pi". Theoretical Computer Science . 183 (2): 215– 228. doi : 10.1016/S0304-3975(96)00325-8 .
- ↑ Milner, R.; J. Parrow; D. Walker (1992). "Un cálculo de procesos móviles" (PDF) . Information and Computation . 100 (1): 1– 40. doi : 10.1016/0890-5401(92)90008-4 . hdl : 20.500.11820/cdd6d766-14a5-4c3e-8956-a9792bb2c6d3 .
- ^ Sangiorgi, D. (1996). "Una teoría de bisimulación para el cálculo π". Acta Informática . 33 : 69– 97. doi : 10.1007/s002360050036 . S2CID 18155730 .
- ↑ "BPML | BPEL4WS: Un camino de convergencia hacia una pila BPM estándar." Documento de posición de BPMI.org. 15 de agosto de 2002.
- ↑ Chiarugi, Davide; Pierpaolo Degano; Roberto Marangoni (2007). "Un enfoque computacional para el análisis funcional de genomas" . PLOS Computational Biology . 3 (9): 1801– 1806. Bibcode : 2007PLSCB...3..174C . doi : 10.1371/journal.pcbi.0030174 . PMC 1994977. PMID 17907794 .
- ↑ Nash, A.; Kalvala, S. (2009). "Una propuesta de marco para la localidad celular de Dictyostelium modelada en π-cálculo" (PDF) . CoSMoS 2009 .
- ↑ Engberg, U.; Nielsen, M. (1986). "Un cálculo de sistemas de comunicación con paso de etiquetas" . Serie de informes DAIMI . 15 (208). doi : 10.7146/dpb.v15i208.7559 .
- ↑ Robin Milner (1993). "Elementos de interacción: Conferencia del premio Turing" . Commun. ACM . 36 (1): 78– 89. doi : 10.1145/151233.151240 .
Referencias
- Milner, Robin (1999). Sistemas de comunicación y móviles: El cálculo π . Cambridge, Reino Unido: Cambridge University Press. ISBN 0-521-65869-1.
- Milner, Robin (1993). "El cálculo π poliádico: un tutorial" . En FL Hamer; W. Brauer; H. Schwichtenberg (eds.). Lógica y álgebra de especificación . Springer-Verlag.
- Sangiorgi, Davide ; Walker, David (2001). El cálculo π: una teoría de los procesos móviles . Cambridge, Reino Unido: Cambridge University Press. ISBN 0-521-78177-9.
- Mironov, Andrew (2025). Una prueba simple de la coincidencia de la equivalencia observacional y etiquetada de procesos en el cálculo pi aplicado .
- Cálculos de proceso
- informática teórica