# Lógica temporal

La lógica temporal es una extensión de la lógica modal, la cual es prácticamente usada en sistemas de reglas, donde está presente el tiempo. Existe una cierta relación con otras variedades de lógica, por ejemplo, la lógica modal. Su estudio tiene importancia en la informática hasta nuestros días.
Por ejemplo, tomemos la sentencia: "Tengo hambre"; aunque su significado es independiente del tiempo, el valor de verdad o falsedad de la misma puede variar con el tiempo en un determinado sistema que incluya acciones de comer; así, en función del sistema, algunas veces será cierta y otras falsa, aunque nunca será cierta y falsa simultáneamente.

## Historia

La lógica temporal fue estudiada por Aristóteles, en algunos de sus escritos hay expresiones que guardan una cierta analogía con la lógica temporal de primer orden; es de esta manera como aparecen expresiones con cuantificadores existenciales y cuantificadores universales

## Sistemas basados en lógica temporal

En lógica temporal aparecen los mismos operadores que en una lógica de primer orden, junto con otros nuevos, entre los que se pueden encontrar: Siempre, algunas veces y nunca.
Algunos sistemas lógicos basados en lógica temporal son: Lógica computacional en árbol (Computational tree logic, CTL), lógica lineal temporal (Linear temporal logic, LTL) y Lógica temporal de intervalos (Interval temporal logic, ITL). Lógica de acciones temporal (Temporal Logic of Actions, TLA).

## Operadores temporales

La lógica temporal tiene dos clases de operadores: operadores lógicos y operadores modales. Los operadores lógicos son usualmente operadores truth-functional ($\neg ,\lor ,\land ,\rightarrow$). Los operadores modales usan el Linear Temporal Logic y Computation Tree Logic son definidos como sigue.
| Textual | Símbólico | Definición | Explicación |
| Operadores binarios ||||
| $\phi$ U $\psi$ | $\phi ~{\mathcal {U}}~\psi$ | ${\begin{matrix}(B{\mathcal {U}}C)(\phi )=\\(\exists i:C(\phi _{i})\land (\forall j<i:B(\phi _{j})))\end{matrix}}$ | Until: $\psi$ se cumple en el estado actual o uno posterior, y $\phi$ se tiene que cumplir hasta esa posición. A partir de esa posición $\phi$ no es necesario que se siga cumpliendo. |
| $\phi$ R $\psi$ | $\phi ~{\mathcal {R}}~\psi$ | ${\begin{matrix}(B{\mathcal {R}}C)(\phi )=\\(\forall i:C(\phi _{i})\lor (\exists j<i:B(\phi _{j})))\end{matrix}}$ | Release: $\phi$ releases $\psi$ si $\psi$ se cumple hasta que la primera posición en la cual $\phi$ se cumple (o siempre si dicha posición no existe). |
| Operadores unarios ||||
| X $\phi$ | $\circ \phi$ | ${\mathcal {N}}B(\phi _{i})=B(\phi _{i+1})$ | Next: $\phi$ se cumple en el siguiente estado. (X es usado como sinónimo.) |
| F $\phi$ | $\Diamond \phi$ | ${\mathcal {F}}B(\phi )=(true{\mathcal {U}}B)(\phi )$ | Finally: $\phi$ finalmente se cumple (en algún lugar del camino). |
| G $\phi$ | $\Box \phi$ | ${\mathcal {G}}B(\phi )=\neg {\mathcal {F}}\neg B(\phi )$ | Globally: $\phi$ se tiene que cumplir en todo el camino. |
| A $\phi$ | | ${\begin{matrix}({\mathcal {A}}B)(\psi )=\\(\forall \phi :\phi _{0}=\psi \to B(\phi ))\end{matrix}}$ | All: $\phi$ se tiene que cumplir en todos los caminos empezando en el estado actual. |
| E $\phi$ | | ${\begin{matrix}({\mathcal {E}}B)(\psi )=\\(\exists \phi :\phi _{0}=\psi \land B(\phi ))\end{matrix}}$ | Exists: existe al menos un camino que parte en el estado actual en el cual $\phi$ se cumple. |
Símbolos alternativos:
* El operador R es algunas veces denotado por V
* El operador W es el operador weak until: $fWg$ es equivalente a $fUg\lor Gf$
Operadores unarios son well-formed formulas cuandoquiera que B($\phi$) es bien formado. Los operadores binarios son fórmulas bien formadas cuandoquiera que B($\phi$) y C($\phi$) son bien formadas.
En algunas lógicas, algunos operadores no pueden ser expresados. Por ejemplo, el operador N no puede ser expresado en la Temporal Logic of Actions.

## Equivalencias

* $fRg=\neg (\neg fU\neg g)$
* $Gf=\neg F(\neg f)$
* $Ff=VUf$ donde V = verdadero
* $Af=\neg E(\neg f)$
* $AXf=\neg EX(\neg f)$

## Ejemplo

En la figura se muestra una estructura de Kripke de tres estados. Se puede describir de la siguiente manera:
* En el estado rojo (e$_R$) se cumple p, y hay transiciones hacia el resto de los estados.
* En el estado verde (e$_V$) q es verdadero, y las transiciones van hacia el estado azul o el mismo estado.
* En el estado azul (e$_A$) son verdaderas q y r, y tiene una única transición, hacia el estado verde.
Si se considera arbitrariamente al estado rojo como estado inicial, se cumple lo siguiente:
* EXr : pues tomando el camino e$_R$e$_A$e$_V$e$_V$... , en el segundo estado (e$_A$) r es verdadero, con lo que se encontró un camino que cumple Xr.
* AFq: pues para cualquier camino que se escoja inevitablemente habrá que entrar en los estados que hacen cumplir q, es decir, e$_V$ o e$_A$.