../

Linear Temporal Logic

Table of Contents

Motivation

Linear temporal logic is a framework for expressing logical statements in time. Suppose a Boolean proposition $p$ is true if the robot’s battery is low. A propositional logical statement, such as $\neg p$, is either true or false at a given point in time. However, given an infinite expanse of discrete points in time, we might be interested in:

  • Will $p$ be true at the next point in time?
  • Will $p$ remain true until some other proposition, $q$, is satisfied?
  • Will $p$ eventually be true?
  • Is $p$ always true? (Is $p$ true at every point in time?)

These are questions of satisfiability in time. We can express these questions using temporal operators.

Temporal Operators

  • $Xp$ is true if $p$ is true at the neXt time step.
  • $pUq$ is true if $p$ is true at least Until $q$ is true. $q$ must be true at some time point.

$X$ and $U$ can be combined to create two additional linear temporal logical operators:

  • $\Diamond p$ is equivalent to $\text{True} Up$, and is true if $p$ is eventually true. (Also denoted as $Fp$, for Future.)
  • $\square p$ is equivalent to $\neg (\Diamond \neg p)$, and is true if $p$ is true at every point in time. (Also denoted as $Gp$, for Globally.)

Model Checking

A trace is an infinite sequence of states. Temporal logic can be used to specify properties of traces. To efficiently check that a property is always satisfied, represent as Büchi Automata.