Software Verification And Analysis by William Stanley & Janusz Laski