Linear temporal logic

Linear temporal logic (LTL) is a field of mathematical logic that is able to talk about the future of paths (LTL is a temporal logic). LTL is built up from proposition variables <math>p_1, p_2, ...<math>, the usual logic connectives <math>\neg,\or,\and,\rightarrow<math> and the following temporal operators. LTL formulas are generally evaluated over paths and a position on that path. A LTL formula as such is satisfied if and only if it is satisfied for position 0 on that path.

Textual Symbolic Explanation Diagram
Unary operators:
N <math>\phi<math> <math>\circ \phi<math> Next: <math>\phi<math> has to hold at the next state. (X is used synonymously.) <timeline>

ImageSize = width:240 height:60 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S
 from:0 till:1
 from:2 till:6

</timeline>

G <math>\phi<math> <math>\Box \phi<math> Globally: <math>\phi<math> has to hold on the entire subsequent path. <timeline>

ImageSize = width:240 height:60 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S

</timeline>

F <math>\phi<math> <math>\Diamond \phi<math> Finally: <math>\phi<math> eventually has to hold (somewhere on the subsequent path). <timeline>

ImageSize = width:240 height:60 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S
 from:0 till:3
 from:4 till:6

</timeline>

Binary operators:
<math>\phi<math> U <math>\psi<math> <math>\phi ~\mathcal{U}~ \psi<math> Until: <math>\phi<math> has to hold until at some position <math>\psi<math> holds. At that position <math>\phi<math> does not have to hold any more. <timeline>

ImageSize = width:240 height:100 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S
 from:3 till:6
 bar:q color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-q color:red width:10 align:left fontsize:S
 from:0 till:3
 from:4 till:6

</timeline>

<math>\phi<math> R <math>\psi<math> <math>\phi ~\mathcal{R}~ \psi<math> Release: <math>\phi<math> releases <math>\psi<math> if <math>\psi<math> ever stops to hold. I.e. either <math>\phi<math> holds after a finite number of steps and on the way to this state, including it, <math>\psi<math> holds, or <math>\psi<math> holds continuously forever. <timeline>

ImageSize = width:240 height:100 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S
 from:0 till:3
 from:4 till:6
 bar:q color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-q color:red width:10 align:left fontsize:S
 from:4 till:6

</timeline>

<math>\or<math>

<timeline> ImageSize = width:240 height:100 PlotArea = left:20 bottom:30 top:0 right:20 DateFormat = x.y Period = from:0 till:6 TimeAxis = orientation:horizontal AlignBars = justify ScaleMajor = gridcolor:black increment:1 start:0 ScaleMinor = gridcolor:black increment:1 start:0

PlotData=

 bar:p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-p color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:q color:red width:10 align:left fontsize:S
 from:0 till:6
 bar:-q color:red width:10 align:left fontsize:S

</timeline>

However one can reduce to two of those operators since the following is always satisfied:

  • F <math>\phi<math> = true U <math>\phi<math>
  • G <math>\phi<math> = <math>\neg<math> F <math>\neg<math><math>\phi<math>
  • <math>\phi<math>R<math>\psi<math> = <math>\neg<math>(<math>\neg<math><math>\phi<math>U<math>\neg<math><math>\psi<math>)

LTL can be shown to be equivalent to the first-order logic over one successor and the smaller relation, FO[S,<] as well as star-free regular expressions or deterministic finite automata with loop complexity 0.

See also

Navigation

<MenuNavigation7>

Toolbox
Personal tools