Putting Logic In Its Place P door David Christensen