principles of reasoning