An introduction to temporal logic