En informática , se dice que un cálculo diverge si no termina o termina en un estado excepcional . [1] : 377 En caso contrario se dice que converge . En dominios donde se espera que los cálculos sean infinitos, como los cálculos de procesos , se dice que un cálculo diverge si no logra ser productivo (es decir, si no continúa produciendo una acción dentro de un período de tiempo finito).
Varios subcampos de la informática utilizan definiciones variables, pero matemáticamente precisas, de lo que significa que un cálculo converge o diverge.
En reescritura abstracta , un sistema de reescritura abstracta se llama convergente si es a la vez confluente y terminal . [2]
La notación t ↓ n significa que t se reduce a la forma normal n en cero o más reducciones , t ↓ significa que t se reduce a alguna forma normal en cero o más reducciones, y t ↑ significa que t no se reduce a una forma normal; esto último es imposible en un sistema de reescritura terminante.
En el cálculo lambda una expresión es divergente si no tiene forma normal . [3]
En semántica denotacional, una función objeto f : A → B se puede modelar como una función matemática donde ⊥ ( abajo ) indica que la función objeto o su argumento diverge.
En el cálculo de la comunicación de procesos secuenciales (CSP), la divergencia es una situación drástica en la que un proceso realiza una serie interminable de acciones ocultas. Por ejemplo, considere el siguiente proceso, definido por la notación CSP:
Las huellas de este proceso se definen como:
Ahora, considere el siguiente proceso, que oculta el evento tick del proceso Reloj :
Por definición, P se llama proceso divergente.