Once we have formal operational semantics for a programming language, it is in theory possible to prove any valid statement about a program meeting its specification. However, in applications, a more abstract mechanism is desirable; an axiomatic style of reasoning. Perhaps the most well known axiomatic semantics is Hoare Logic[5]. Hoare Logic is both elegant and simple though the underlying pro...