# Introduction to Logic & Philosophy (CSAI)

**Course Description**

Logic plays a fundamental role in a wide variety of disciplines and topics, including in computer architecture (Boolean logic, digital gates, hardware verification), software engineering (specification, verification), programming languages (semantics, type theory, logic programming), databases (relational algebra, database query language), artificial intelligence (automated theorem proving, knowledge representation), algorithms, and theories of computation (complexity, computability, expressiveness).

This course serves as an introduction to logic, providing students with a grasp of certain formal tools that will prove invaluable for future study. It particularly focuses on two logical systems: Truth-Functional Logic (TFL) and First Order Logic (FOL). For each, we discuss the syntax (what it means to construct a well formed sentence in the logic), the semantics (how one decides whether or not a sentence in the logic is true), a proof theory (how, if you know some true things, you can figure out what else is true), and how to translate between natural language and these formal languages. We will also discuss some meta-logic, as well as some basic set-theory.

**Learning Goals**

** **On the basis of their knowledge and comprehension of techniques covered in class, students will be able to:

- Identify, explain, and apply the notion and basic concepts of truth-functional and first-order formal logic
- Translate natural language sentences into sentences in truth-functional and first-order logic
- Test the validity of arguments and the consistency of sets of sentences in truth-functional logic and first-order logic
- State and apply a proof system for truth-functional and first-order logic
- Define and demonstrate familiarity with metalogical concepts, including the expressive adequacy, soundness, and completeness of truth-functional logic
- Define and demonstrate knowledge of fundamental concepts in set theory