Putting Logic In Its Place C by David Christensen