Logical Derivation Of Computer Programs by Thomas G. Windeknecht