A logical approach to discrete math - Gries, David (Springer, 1993)