The Logical Basis for Computer Programming

Deductive reasoning