The Past, Present, and Future(s): Verifying Temporal Software Properties