A logic that speaks of the future: always, eventually, until. Linear temporal logic reads a formula against a path through time — not one state, but the whole unfolding — and decides what a system does forever, not just once. Rendered, not quoted.
source Amir Pnueli, The Temporal Logic of Programs, 18th FOCS, IEEE (1977), pp. 46–57 — doi:10.1109/SFCS.1977.32 (proceedings paywalled — DOI stable)
A path is an infinite sequence of states. We give it finitely as a lasso: a prefix then a loop that repeats forever. Each state fixes which atoms hold.
Atoms here: p, q. States s0 s1 s2, loop back from s2→s1. Position i maps to a real state by unfolding the loop, so the future from any i is well-defined.
Logic about time. Pnueli lifted tense logic onto program runs so a proof could say “this holds forever” or “this eventually happens.”
These same operators are the language that the-model-checking decides — a checker takes an LTL formula and a system and answers whether every run satisfies it. Here we evaluate on one path; a model checker quantifies over all of them.
A live re-check of the operator semantics against an independent reference (reachable-state scan). Green while the engine matches the definitions; it flips red the instant the tamper (6) corrupts F.
The lasso path and a formula to evaluate.
Pick a formula — evaluated live at position 0 over the infinite unfolding.
G p = false F q = true p U q = true
All operator laws (duality, expansion, until) verified exhaustively over the lasso.
Planted void (disclosed): evaluate F φ as “φ holds at position 0” instead of “at some position.” A formula that only becomes true later is then wrongly reported false. Witness (7) catches it live.