Algebraic semantics of imperative programs - Goguen, Joseph (Foundations of computing., 1996)