Reasoning Foundations