Unformatted text preview:

MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.6.080/6.089 GITCS Feb 12, 2008 Lecture 3 Lecturer: Scott Aaronson Scribe: Adam Rogal 1 Administrivia 1.1 Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my own, these notes are intended to incorporate other information we may mention during class - a record for future reference. 1.2 Problem sets A few comments on the problem sets. Firstly, you are welcome to collaborate, but please mark on your problem s ets the names of whom you worked with. Our hope is to try all the problems. Some are harder than others; there are those marked challenge problems as well. If you can’t solve the given problem, be sure to state what methods you tried and your pro cess up to the point you could not continue. This is partial credit and much better than writing a complete, but incorrect solution. After all, according to Socrates the key to knowledge is to know what you don’t know. 1.3 Office hours We will have office hours once a week. 2 Recap 2.1 Computer science as a set of rules We can view computer science as the study of simple set of rules and what you can and can’t build with them. Maybe the first example of that could be considered Euclidian geometry. And the key to discovering what processes we can build is that these rules are well-defined. 2.2 Logic The field of logic focuses on automating or systematizing not just any mechanical processes, but rational thought itself. If we could represent our thoughts by manipulations of s equences of symbols, then in principle we could program a computer to do our reasoning for us. We talked the simplest logical systems which were the only ones for thousands of years. Syllo-gisms and propositional logic, the logic of Boolean variables that can be either true or false, and related to each other through operators like and, or, and not. We finally discussed first order logic. 3-12.2.1 First order logic The system of first order logic is built up of sentences. Each of these sentences contain variables, such as x, y, and z. Furthermore we can define functions which take th ese variables as inp ut. For example: let’s define a function P rime(x). Given an integer, it will return true if the number is prime, false if it is composite. Just like functions in any programming languages, we can build functions out of other functions by calling them as subroutines. In fact, many programming languages themselves were modeled after first order logic. Furthermore, as in propositional logic, symbols such as ∧ (and), ∨ (or), ¬ (not), and → (implies) allow us to relate objects to each other. Quantifiers are a crucial part of first order logic. Quantifiers allow us to state propositions such as “Every positive integer x is either prime or composite.” ∀x.P rime(x) ∨ Composite(x) There’s a counterexample, of course, namely 1. We can also say: “There exists an x, such that something is true.” ∃x.Something(x) When people talk about first-order logic, they also norm ally assum e that the equals sign is available. 2.2.2 Inference rules We want a set of rules that will allow us to form true statements from other true s tatements. Propositional tautologies: A ∨ ¬A Modus ponens : A ∧ (A → B) → B Equals: Equals(X, X) Equals(X, Y ) ⇐⇒ Equals(Y, X) Transitivity property: Equals(X, Y ) ∧ Equals(Y, Z) → Equals(X, Z) Furthermore, we have the rule of change of variables. If you have a valid sentence, that sentence will remain valid if we change variables. 2.2.3 Quantifier rules If A(x) is a valid sentence for any choice of x, then for all x, A(x) is a valid sentence. Conversely, if A(x) is a valid sentence for all x, then any A(x) for a fixed x is a valid sentence. A(X) ⇐⇒ ∀x.A(x) We also have rules for dealing with quantifiers. For example, it is false, that for all x, A(x) iff there exists an x, ¬A(x). ¬∀x.A(x) ⇐⇒ ∃¬A(x) 3-22.2.4 Completeness theorem Kurt G¨odel proved that the rules thus stated were all the rules we need. He proved that if you could not derive a logical contradiction by using this set of rules, there must be a way of assigning variables, su ch that all the sentences are satisfied. 3 Circuits Electrical engineers views circuits to be complete loops typically represented in figure 1. However, in compu ter science, circuits have no loops and are built with logic gates. Figure 1: A simple EE circuit. 3.1 Logic gates The th ree best-known logic gates are the NOT, AND, and OR gates shown in figure 2. OT AD OR Figure 2: The logical gates NOT, AND, and OR. Though primitive on their own, these logic gates can be strung together to form complex logical operations. For example, we can design a circuit, shown in figure 3, that takes the majority of 3 variables: x, y, and z. We can also use De Morgan’s law to form a AND gate from an OR gate and vice versa as shown figure 4. OR AD AD AD x y z Figure 3: The majority circuit. 3-3AD OR OT OT OT Figure 4: An AND gate can be constructed from an OR and three NOT gates by using De Morgan’s law. These logic gates can also be combined to form other gates such as the XOR and NAND gates shown in figure 5. Conversely, by starting with the NAND gate, we can build any other gate we want. AD XOR Figure 5: NAND and XOR gates. On the other hand, no matter how we construct a circuit with AND and OR gates, if the input is all 1’s we can never get an output of 0. We call a Boolean function that can be built solely out of AND and OR gates a monotone Boolean function. Are


View Full Document

MIT 6 080 - Lecture Notes

Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?