Practical Logic door Douglas J. Soccio