What’s left in classic program correctness?
Dijkstra’s weakest precondition (wp) formulation is a more popular alternative to Hoare triples
- wp(S,Q) is the weakest precondition such that if S is executed, Q will be true
Oh yeah, and procedure calls (with different parameter passing mechanisms), pointers, gotos (!!), concurrency, and other real programming language constructs (not even counting OO features like dynamic dispatch)