The Logical Basis for Computer Programming, Volume 1 by Zohar Manna & Zohar Marra