Fundamentals of Reasoning