Articulo de referencia

Cálculo π

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 s...

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 , escritoPAGQ{\displaystyle P\mid Q}, dóndePAG{\displaystyle P}yQ{\displaystyle Q}son dos procesos o hilos que se ejecutan simultáneamente.
  • comunicación , donde
    • prefijo de entradado(incógnita).PAG{\displaystyle c\left(x\right).P}es un proceso que espera un mensaje que fue enviado en un canal de comunicación llamadodo{\displaystyle c}antes de proceder comoPAG{\displaystyle P}, 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 una goto coperación.
    • prefijo de salidado¯y.PAG{\displaystyle {\overline {c}}\langle y\rangle .P}describe que el nombrey{\displaystyle y}se emite en el canaldo{\displaystyle c}antes de proceder comoPAG{\displaystyle P}Normalmente , esto modela el envío de un mensaje en la red o una goto coperación.
  • replicación , escrita¡PAG{\displaystyle !\,P} , que puede verse como un proceso que siempre puede crear una nueva copia dePAG{\displaystyle P}Normalmente , esto modela un servicio de red o una etiqueta cque espera una serie de goto coperaciones.
  • creación de un nuevo nombre , escrito(νincógnita)PAG{\displaystyle \left(\nu x\right)P}, que puede verse como un proceso que asigna una nueva constante x dentroPAG{\displaystyle P}Las 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, escrito0{\displaystyle 0}, 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.

(νincógnita)(incógnita¯z.0|incógnita(y).y¯incógnita.incógnita(y).0)|z(v).v¯v.0{\displaystyle {\begin{aligned}(\nu x)&\;(\;{\overline {x}}\langle z\rangle .\;0\\&\;|\;x(y).\;{\overline {y}}\langle x\rangle .\;x(y).\;0\;)\\&\;|\;z(v).\;{\overline {v}}\langle v\rangle .0\end{aligned}}}

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:

(νincógnita)(0|z¯incógnita.incógnita(y).0)|z(v).v¯v.0{\displaystyle {\begin{aligned}(\nu x)&\;(\;0\\&\;|\;{\overline {z}}\langle x\rangle .\;x(y).\;0\;)\\&\;|\;z(v).\;{\overline {v}}\langle v\rangle .\;0\end{aligned}}}

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

(νincógnita)(0|incógnita(y).0|incógnita¯incógnita.0){\displaystyle {\begin{aligned}(\nu x)&\;(\;0\\&\;|\;x(y).\;0\\&\;|\;{\overline {x}}\langle x\rangle .\;0\;)\end{aligned}}}

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.

(νincógnita)(0|0|0){\displaystyle {\begin{aligned}(\nu x)&\;(\;0\\&\;|\;0\\&\;|\;0\;)\end{aligned}}}

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 ]

PAG,Q::=incógnita(y).PAGRecibir en el canal incógnita, vincular el resultado a y, luego corre PAG|incógnita¯y.PAGEnviar el valor y por canal incógnita, luego corre PAG|PAG|QCorrer PAG y Q simultáneamente|(νincógnita)PAGCrear un nuevo canal incógnita y correr PAG|¡PAGGenerar repetidamente copias de PAG|0Finalizar el proceso{\displaystyle {\begin{aligned}P,Q::=&\;x(y).P\,\,\,\,\,&{\text{Receive on channel }}x{\text{, bind the result to }}y{\text{, then run }}P\\&\;|\;{\overline {x}}\langle y\rangle .P\,\,\,\,\,&{\text{Send the value }}y{\text{ over channel }}x{\text{, then run }}P\\&\;|\;P|Q\,\,\,\,\,\,\,\,\,&{\text{Run }}P{\text{ and }}Q{\text{ simultaneously}}\\&\;|\;(\nu x)P\,\,\,&{\text{Create a new channel }}x{\text{ and run }}P\\&\;|\;!P\,\,\,&{\text{Repeatedly spawn copies of }}P\\&\;|\;0&{\text{Terminate the process}}\end{aligned}}}

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 :

  • PAGQ{\displaystyle P\equiv Q}siQ{\displaystyle Q}se puede obtener dePAG{\displaystyle P}cambiando el nombre de uno o más nombres vinculados enPAG{\displaystyle P}.

Axiomas para la composición paralela :

  • PAG|QQ|PAG{\displaystyle P|Q\equiv Q|P}
  • (PAG|Q)|RPAG|(Q|R){\displaystyle (P|Q)|R\equiv P|(Q|R)}
  • PAG|0PAG{\displaystyle P|0\equiv P}

Axiomas para la restricción :

  • (νincógnita)(νy)PAG(νy)(νincógnita)PAG{\displaystyle (\nu x)(\nu y)P\equiv (\nu y)(\nu x)P}
  • (νincógnita)00{\displaystyle (\nu x)0\equiv 0}

Axioma para la replicación :

  • ¡PAGPAG|¡PAG{\displaystyle !P\equiv P|!P}

Axioma que relaciona restricción y paralelismo :

  • (νincógnita)(PAG|Q)(νincógnita)PAG|Q{\displaystyle (\nu x)(P|Q)\equiv (\nu x)P|Q}si x no es un nombre libre deQ{\displaystyle Q}.

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 deQ{\displaystyle Q}, se puede utilizar la conversión alfa para permitir que la extensión continúe.

semántica de reducción

EscribimosPAGPAG{\displaystyle P\rightarrow P'}siPAG{\displaystyle P}puede realizar un paso de cálculo, después del cual ahoraPAG{\displaystyle P'}Esta relación de reducción{\displaystyle \rightarrow }se 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:

  • incógnita¯z.PAG|incógnita(y).QPAG|Q[z/y]{\displaystyle {\overline {x}}\langle z\rangle .P|x(y).Q\rightarrow P|Q[z/y]}
dóndeQ[z/y]{\displaystyle Q[z/y]}denota el procesoQ{\displaystyle Q}en el que el nombre librez{\displaystyle z}ha sido sustituido por las ocurrencias libres dey{\displaystyle y}. Si ocurre una ocurrencia libre dey{\displaystyle y}ocurre en un lugar dondez{\displaystyle z}No sería gratuito, podría ser necesaria la conversión alfa.

Hay tres reglas adicionales:

  • SiPAGQ{\displaystyle P\rightarrow Q}entonces tambiénPAG|RQ|R{\displaystyle P|R\rightarrow Q|R}.
Esta regla establece que la composición paralela no inhibe el cálculo.
  • SiPAGQ{\displaystyle P\rightarrow Q}, entonces también(νincógnita)PAG(νincógnita)Q{\displaystyle (\nu x)P\rightarrow (\nu x)Q}.
Esta regla garantiza que el cálculo pueda continuar incluso bajo una restricción.
  • SiPAGPAG{\displaystyle P\equiv P'}yPAGQ{\displaystyle P'\rightarrow Q'}yQQ{\displaystyle Q'\equiv Q}, entonces tambiénPAGQ{\displaystyle P\rightarrow Q}.

Esta última regla establece que los procesos que son estructuralmente congruentes tienen las mismas reducciones.

El ejemplo revisado

Consideremos nuevamente el proceso

(νincógnita)(incógnita¯z.0|incógnita(y).y¯incógnita.incógnita(y).0)|z(v).v¯v.0{\displaystyle (\nu x)({\overline {x}}\langle z\rangle .0|x(y).{\overline {y}}\langle x\rangle .x(y).0)|z(v).{\overline {v}}\langle v\rangle .0}

Aplicando la definición de la semántica de reducción, obtenemos la reducción

(νincógnita)(incógnita¯z.0|incógnita(y).y¯incógnita.incógnita(y).0)|z(v).v¯v.0(νincógnita)(0|z¯incógnita.incógnita(y).0)|z(v).v¯v.0{\displaystyle (\nu x)({\overline {x}}\langle z\rangle .0|x(y).{\overline {y}}\langle x\rangle .x(y).0)|z(v).{\overline {v}}\langle v\rangle .0\rightarrow (\nu x)(0|{\overline {z}}\langle x\rangle .x(y).0)|z(v).{\overline {v}}\langle v\rangle .0}

Nótese cómo, aplicando el axioma de sustitución de reducción, ocurrencias libres dey{\displaystyle y}ahora están etiquetados comoz{\displaystyle z}.

A continuación, obtenemos la reducción.

(νincógnita)(0|z¯incógnita.incógnita(y).0)|z(v).v¯v.0(νincógnita)(0|incógnita(y).0|incógnita¯incógnita.0){\displaystyle (\nu x)(0|{\overline {z}}\langle x\rangle .x(y).0)|z(v).{\overline {v}}\langle v\rangle .0\rightarrow (\nu x)(0|x(y).0|{\overline {x}}\langle x\rangle .0)}

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:

(νincógnita)(0|0|0){\displaystyle (\nu x)(0|0|0)}

Finalmente, utilizando los axiomas para la composición y restricción paralelas, obtenemos

0{\displaystyle 0}

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 estadoPAG{\displaystyle P}a algún otro estadoPAG{\displaystyle P'}después de una acciónα{\displaystyle \alpha }se anota como:

  • PAGαPAG{\displaystyle P\,{\xrightarrow {\overset {}{\alpha }}}P'}

Donde los estadosPAG{\displaystyle P}yPAG{\displaystyle P'}representar procesos yα{\displaystyle \alpha }es una acción de entradaa(incógnita){\displaystyle a(x)}, una acción de salidaa¯incógnita{\displaystyle {\overline {a}}\langle x\rangle }, 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 PAGPAG{\displaystyle P\rightarrow P'}si y solo siPAGτPAG{\displaystyle P\,\xrightarrow {\overset {}{\tau }} \equiv P'}[ 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 deterministaPAG+Q{\displaystyle P+Q}se puede agregar a la sintaxis.

Una prueba de igualdad de nombres[incógnita=y]PAG{\displaystyle [x=y]P}se puede agregar a la sintaxis. Este operador de coincidencia puede proceder comoPAG{\displaystyle P}si y solo si x yy{\displaystyle y}tienen 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 formaincógnita¯y{\displaystyle {\overline {x}}\langle y\rangle }, 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:incógnita¯z1,...,znorte.PAG{\displaystyle {\overline {x}}\langle z_{1},...,z_{n}\rangle .P}(salida poliádica) yincógnita(z1,...,znorte).PAG{\displaystyle x(z_{1},...,z_{n}).P}(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

incógnita¯y1,,ynorte.PAG{\displaystyle {\overline {x}}\langle y_{1},\cdots ,y_{n}\rangle .P}está codificado como(νw)incógnita¯w.w¯y1..w¯ynorte.[PAG]{\displaystyle (\nu w){\overline {x}}\langle w\rangle .{\overline {w}}\langle y_{1}\rangle .\cdots .{\overline {w}}\langle y_{n}\rangle .[P]}

incógnita(y1,,ynorte).PAG{\displaystyle x(y_{1},\cdots ,y_{n}).P}está codificado comoincógnita(w).w(y1)..w(ynorte).[PAG]{\displaystyle x(w).w(y_{1}).\cdots .w(y_{n}).[P]}

El resto de las estructuras del proceso permanecen sin cambios tras la codificación.

En lo anterior,[PAG]{\displaystyle [P]}denota la codificación de todos los prefijos en la continuaciónPAG{\displaystyle P}del mismo modo.

Todo el poder de la replicación¡PAG{\displaystyle !P}no es necesario. A menudo, solo se considera la entrada replicada¡incógnita(y).PAG{\displaystyle !x(y).P}, cuyo axioma de congruencia estructural es¡incógnita(y).PAGincógnita(y).PAG|¡incógnita(y).PAG{\displaystyle !x(y).P\equiv x(y).P|!x(y).P}.

Proceso de entrada replicado como¡incógnita(y).PAG{\displaystyle !x(y).P}pueden 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.PAG[a/y]{\displaystyle P[a/y]}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

incógnita¯R.PAG|incógnita(Y).QPAG|Q[R/Y]{\displaystyle {\overline {x}}\langle R\rangle .P|x(Y).Q\rightarrow P|Q[R/Y]}

Aquí,Y{\displaystyle Y}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érminoMETRO{\textstyle M}"– como agentes replicantes que responden a las solicitudes de sus enlaces enviando de vuelta una conexión al términoMETRO{\displaystyle M}.

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, dejamospag{\displaystyle p}yq{\displaystyle q}denotan procesos yR{\displaystyle R}denotan 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 binariaR{\displaystyle R}sobre procesos es una bisimulación temprana si para cada par de procesos(pag,q)R{\displaystyle (p,q)\in R},

  • cuando seapaga(incógnita)pag{\displaystyle p\,{\xrightarrow {a(x)}}\,p'}entonces para cada nombrey{\displaystyle y}existe algoq{\displaystyle q'}de tal manera queqa(incógnita)q{\displaystyle q\,{\xrightarrow {a(x)}}\,q'}y(pag[y/incógnita],q[y/incógnita])R{\displaystyle (p'[y/x],q'[y/x])\in R};
  • para cualquier acción que no sea de entradaα{\displaystyle \alpha }, sipagαpag{\displaystyle {p{\xrightarrow {\overset {}{\alpha }}}p'}}entonces existe algoq{\displaystyle q'}de tal manera queqαq{\displaystyle q{\xrightarrow {\overset {}{\alpha }}}q'}y(pag,q)R{\displaystyle (p',q')\in R};
  • y requisitos simétricos conpag{\displaystyle p}yq{\displaystyle q}intercambiado.

Procesospag{\displaystyle p}yq{\displaystyle q}Se dice que son bisimilares tempranos, escritospagmiq{\displaystyle p\sim _{e}q}si el par(pag,q)R{\displaystyle (p,q)\in R}para alguna bisimulación tempranaR{\displaystyle R}.

En la bisimilitud tardía, la coincidencia de transición debe ser independiente del nombre que se transmite. Una relación binariaR{\displaystyle R}sobre procesos es una bisimulación tardía si para cada par de procesos(pag,q)R{\displaystyle (p,q)\in R},

  • cuando seapaga(incógnita)pag{\displaystyle p{\xrightarrow {a(x)}}p'}entonces para algunosq{\displaystyle q'}sostiene queqa(incógnita)q{\displaystyle q{\xrightarrow {a(x)}}q'}y(pag[y/incógnita],q[y/incógnita])R{\displaystyle (p'[y/x],q'[y/x])\in R}para cada nombre y ;
  • para cualquier acción que no sea de entradaα{\displaystyle \alpha }, sipagαpag{\displaystyle p{\xrightarrow {\overset {}{\alpha }}}p'}implica que existe algunaq{\displaystyle q'}de tal manera queqαq{\displaystyle q{\xrightarrow {\overset {}{\alpha }}}q'}y(pag,q)R{\displaystyle (p',q')\in R};
  • y requisitos simétricos conpag{\displaystyle p}yq{\displaystyle q}intercambiado.

Procesospag{\displaystyle p}yq{\displaystyle q}Se dice que son bisimilares tardíos, escritospaglq{\displaystyle p\sim _{l}q}si el par(pag,q)R{\displaystyle (p,q)\in R}para alguna bisimulación tardíaR{\displaystyle R}.

Ambosmi{\displaystyle \sim _{e}}yl{\displaystyle \sim _{l}}sufren 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 procesospag{\displaystyle p}yq{\displaystyle q}de tal manera quepagmiq{\displaystyle p\sim _{e}q}peroa(incógnita).pagmia(incógnita).q{\displaystyle a(x).p\not \sim _{e}a(x).q}. Se puede remediar este problema considerando las relaciones de congruencia máximas incluidas enmi{\displaystyle \sim _{e}}yl{\displaystyle \sim _{l}}, 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 binariaR{\displaystyle R}sobre procesos es una bisimulación abierta si para cada par de elementos(pag,q)R{\displaystyle (p,q)\in R}y por cada sustitución de nombreσ{\displaystyle \sigma }y cada acciónα{\displaystyle \alpha }, cuando seapagσαpag{\displaystyle p\sigma {\xrightarrow {\overset {}{\alpha }}}p'}entonces existe algoq{\displaystyle q'}de tal manera queqσαq{\displaystyle q\sigma {\xrightarrow {\overset {}{\alpha }}}q'}y(pag,q)R{\displaystyle (p',q')\in R}.

Procesospag{\displaystyle p}yq{\displaystyle q}Se dice que son bisimilares abiertos, escritospagoq{\displaystyle p\sim _{o}q}si el par(pag,q)R{\displaystyle (p,q)\in R}para alguna bisimulación abiertaR{\displaystyle R}.

La bisimilitud temprana, tardía y abierta son distintas.

La bisimilitud temprana, tardía y abierta son distintas. Las contenciones son propias, por lo queolmi{\displaystyle \sim _{o}\subsetneq \sim _{l}\subsetneq \sim _{e}}.

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:paga{\displaystyle p\Downarrow a}si el procesopag{\displaystyle p}Permite inmediatamente una entrada o una salida por nombre.a{\displaystyle a}.

Una relación binariaR{\displaystyle R}sobre procesos es una bisimulación con púas si es una relación simétrica que satisface que para cada par de elementos(pag,q)R{\displaystyle (p,q)\in R}tenemos eso

(1)paga{\displaystyle p\Downarrow a}si y solo siqa{\displaystyle q\Downarrow a}para cada nombrea{\displaystyle a}

y

(2) por cada reducciónpagpag{\displaystyle p\rightarrow p'}existe una reducciónqq{\displaystyle q\rightarrow q'}

de tal manera que(pag,q)R{\displaystyle (p',q')\in R}.

Decimos quepag{\displaystyle p}yq{\displaystyle q}son bisimilares con púas si existe una bisimulación con púasR{\displaystyle R}dónde(pag,q)R{\displaystyle (p,q)\in R}.

Definiendo un contexto como un término π con un agujero [] decimos que dos procesos P y Q son congruentes con púas , escritosPAGbQ{\displaystyle P\sim _{b}Q\,\!}, si para cada contextodo[]{\displaystyle C[]}tenemos esodo[PAG]{\displaystyle C[P]}ydo[Q]{\displaystyle C[Q]}son 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:

Notas

  1. Especificación OMG (2011). "Modelo y Notación de Procesos de Negocio (BPMN) Versión 2.0" , Object Management Group . pág. 21
  2. 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 . 
  3. Wing, Jeannette M. (27 de diciembre de 2002). "Preguntas frecuentes sobre el cálculo π" (PDF) .
  4. 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.
  5. Robin Milner, Sistemas de comunicación y móviles: El cálculo Pi, Cambridge University Press, ISBN 05216432011999
  6. Sangiorgi, D., & Walker, D. (2003). p51, El cálculo pi. Cambridge University Press.
  7. Boudol, G. (1992). Asincronía y el cálculo π . Informe técnico 1702, INRIA, Sophia-Antipolis .
  8. Honda, K.; Tokoro, M. (1991). Un cálculo de objetos para la comunicación asíncrona. ECOOP 91. Springer Verlag.
  9. 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 .
  10. 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 . 
  11. 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 .
  12. 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 .
  13. ^ 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 . 
  14. "BPML | BPEL4WS: Un camino de convergencia hacia una pila BPM estándar." Documento de posición de BPMI.org. 15 de agosto de 2002.
  15. 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 .  
  16. Nash, A.; Kalvala, S. (2009). "Una propuesta de marco para la localidad celular de Dictyostelium modelada en π-cálculo" (PDF) . CoSMoS 2009 .
  17. 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 .
  18. 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 .