L 1
L 1
L 1
COMS 3203
Zeph Grunschlag
Lecture 1 2
About me
3rd year at Columbia
Graduated from Berkeley in 99
Mathematics PhD.
Thesis title: Algorithms in Geometric Group
Theory
Research areas:
Group theory and topology
Formal languages
Computer vision
Lecture 1 3
Course Policies, Schedule,
Syllabus
Handout explaining required text,
overview of course, grading
breakdown, policies, etc. The
contract
Available from course homepage:
http://www.cs.columbia.edu/~zeph/32
03
All homework, and most other lecture
material will be available online
Lecture 1 4
Lectures and Notes
Lectures are electronic and will be
available online after class.
There will usually be a low-tech
component (blackboard + chalk)
which you are responsible for.
Lecture 1 5
Quick Overview
Discrete Math is essentially that branch
of mathematics that does not depend
on limits; in this sense, it is the anti-
thesis of Calculus. As computers are
discrete object operating one jumpy,
discontinuous step at a time, Discrete
Math is the right framework for
describing precisely Computer
Science concepts.
Lecture 1 6
Quick Overview
The conceptual center of computer
science is the ALGORITHM.
Lecture 1 7
Quick Overview
Discrete Math helps provide
the machinery necessary
for creating sophisticated
algorithms
the tools for analyzing their
efficiency
the means of proving their validity
Lecture 1 8
Quick Overview
Although the point of 3203 is to
provide the tools for creating and
analyzing sophisticated algorithms,
we wont focus on the algorithmic
aspect, with some exceptions. To
see the algorithmic applications
take almost any 4000-level CS
course or 3137/9 (Data Structures).
Lecture 1 9
Quick Overview - Topics
Logic and Sets
Make notions youre already used to from
programming a little more rigorous
(operators)
Fundamental to all mathematical disciplines
Useful for digital circuits, hardware design
Elementary Number Theory
Get to rediscover the old reliable number and
find out some surprising facts
Very useful in crypto-systems
Lecture 1 10
Quick Overview - Topics
Proofs (especially induction)
If you want to debug a program beyond a
doubt, prove that its bug-free
Proof-theory has recently also been shown to
be useful in discovering bugs in pre-
production hardware
Counting and Combinatorics
Compute your odds of winning lottery
Important for predicting how long certain
computer program will take to finish
Useful in designing algorithms
Lecture 1 11
Quick Overview - Topics
Graph Theory
Many clever data-structures for organizing
information and making programs highly
efficient are based on graph theory
Very useful in describing problems in
Databases
Operating Systems
Networks
EVERY CS DISCIPLINE!!!!
Lecture 1 12
Section 1.1: Logic
Axiomatic concepts in math:
Equals
Opposite
Truth and falsehood
Statement
Objects
Collections
Lecture 1 13
Section 1.1: Logic
We intuitively know that Truth and
Falsehood are opposites. That
statements describe the world and can
be true/false. That the world is made
up of objects and that objects can be
organized to form collections.
The foundations of logic mimic our
intuitions by setting down constructs
that behave analogously.
Lecture 1 14
False, True, Statements
Axiom: False is the opposite to Truth.
A statement is a description of something.
Examples of statements:
Im 31 years old.
I have 17 children.
I always tell the truth.
Im lying to you.
Qs: Which statements are True? False?
Both? Neither?
Lecture 1 15
False, True, Statements
True: Im 31 years old.
False: I have 17 children.
I always tell the truth.
Both: IMPOSSIBLE, by our Axiom.
Lecture 1 16
False, True, Statements
Neither: Im lying to you. (If viewed on its own)
HUH? Well suppose that
S = Im lying to you.
were true. In particular, I am actually lying, so S
is false. So its both true and false,
impossible by the Axiom.
Okay, so I guess S must be false. But then I
must not be lying to you. So the statement is
true. Again its both true and false.
In both cases we get the opposite of our
assumption, so S is neither true nor false.
Lecture 1 17
Propositions
To avoid painful head-aches, we ban
such silly non-sense and avoid the
most general type of statements
limiting ourselves to statements
with valid truth-values instead:
DEF: A proposition is a statement
that is true or false.
Lecture 1 18
Propositions
Propositional Logic is a static discipline of
statements which lack semantic content.
E.G. p = Clinton was the president.
q = The list of U.S. presidents includes
Clinton.
r = Lions like to sleep.
All p and q are no more closely related than q
and r are, in propositional calculus. They are
both equally related as all three statements are
true. Semantically, however, p and q are the
same!
Lecture 1 19
Propositions
So why waste time on such matters?
Propositional logic is the study of how simple
propositions can come together to make
more complicated propositions. If the
simple propositions were endowed with
some meaning and they will be very soon
then the complicated proposition would
have meaning as well, and then finding out
the truth value is actually important!
Lecture 1 20
Compound Propositions
In Propositional Logic, we assume a
collection of atomic propositions
are given: p, q, r, s, t, .
Then we form compound
propositions by using logical
connectives (logical operators)
to form propositional molecules.
Lecture 1 21
Logical Connectives
Operator Symb Usage Java
ol
Negation not !
Conjunctio and &&
n
Disjunction or ||
Exclusive xor (p||q)&&(!p||!q)
or
Conditiona if,the p?q:true
l Lecture 1 n 22
Compound Propositions:
Examples
p = Cruise ships only go on big rivers.
q = Cruise ships go on the Hudson.
r = The Hudson is a big river.
r = The Hudson is not a big river.
pq = Cruise ships only go on big rivers and
go on the Hudson.
pq r = If cruise ships only go on big
rivers and go on the Hudson, then the
Hudson is a big river.
Lecture 1 23
Negation
This just turns a false proposition to true
and the opposite for a true proposition.
EG: p = 23 = 15 +7
p happens to be false, so p is true.
In Java, ! plays the same role:
!(23 == 15+7)
has the boolean value true whenever
evaluated.
Lecture 1 24
Negation truth table
Logical operators are defined by
truth tables tables which give
the output of the operator in the
right-most column.
Here is the truth table for negation:
p p
F T
T F
Lecture 1 25
Conjunction
Conjunction is a binary operator in
that it operates on two
propositions when creating
compound proposition. On the
other hand, negation is a unary
operator (the only non-trivial one
possible).
Lecture 1 26
Conjunction
Conjunction is supposed to
encapsulate what happens when
we use the word and in English.
I.e., for p and q to be true, it
must be the case that BOTH p is
true, as well as q. If one of these is
false, than the compound
statement is false as well.
Lecture 1 27
Conjunction
EG. p = Clinton was the president.
q = Monica was the president.
r = The meaning of is is important.
Assuming p and r are true, while q false.
Out of pq, pr, qr
only pr is true.
Java: x==3 && x!=3
Evaluates to false for any possible value of x.
Lecture 1 28
Conjunction truth table
p q pq
T T T
T F F
F T F
F F F
Lecture 1 29
Disjunction truth table
Conversely, disjunction is true when
at least one of the components is
true:
p q pq
T T T
T F T
F T T
F F F
Lecture 1 30
Disjunction caveat
Note: English version of disjunction
or does not always satisfy the
assumption that one of p/q being
true implies that p or q is true.
Q: Can someone come up with an
example?
Lecture 1 31
Disjunction caveat
A: The entre is served with
soup or salad.
Most restaurants definitely dont
allow you to get both soup and
salad so that the statement is false
when both soup and salad is
served. To address this situation,
exclusive-or is introduced next.
Lecture 1 32
Exclusive-Or truth table
p q p q
T T F
T F T
F T T
F F F
Lecture 1 34
Conditional -- truth table
p q p q
T T T
T F F
F T T
F F T
Lecture 1 35
Conditional
Lecture 1 36
Conditional
A:
1. If pigs like mud then pigs like mud.
True: nothing about this statement is false.
2. If pigs like mud then pigs can fly.
False: seems to assert falsehood
3. If pigs can fly then pigs like mud.
True: argument for only care about end-result. Argument
against counters common English hyperbole.
4. If pigs can fly then pigs can fly.
True. WAIT! By first reasoning in 3, when if part is false,
should only care about then part!!!!!
On other hand, standard English hyperbole.
Lecture 1 37
Conditional: why FF is
True
Remember, all of these are mathematical
constructs, not attempts to mimic
English. Mathematically, p should imply
q whenever it is possible to derive q by
from p by using valid arguments. For
example consider the mathematical
analog of no. 4:
If 0 = 1 then 3 = 9.
Q: Is this true mathematically?
Lecture 1 38
Conditional: why FF is
True
A: YES mathematically and YES by
the truth table.
Heres a mathematical proof:
1. 0 = 1 (assumption)
Lecture 1 39
Conditional: why FF is
True
A: YES mathematically and YES by
the truth table.
Heres a mathematical proof:
1. 0 = 1 (assumption)
2. 1 = 2 (added 1 to both sides)
Lecture 1 40
Conditional: why FF is
True
A: YES mathematically and YES by
the truth table.
Heres a mathematical proof:
1. 0 = 1 (assumption)
2. 1 = 2 (added 1 to both sides)
3. 3 = 6 (multiplied both sides by 3)
Lecture 1 41
Conditional: why FF is
True
A: YES mathematically and YES by
the truth table.
Heres a mathematical proof:
1. 0 = 1 (assumption)
2. 1 = 2 (added 1 to both sides)
3. 3 = 6 (multiplied both sides by 3)
4. 0 = 3 (multiplied no. 1 by 3)
Lecture 1 42
Conditional: why FF is
True
A: YES mathematically and YES by
the truth table.
Heres a mathematical proof:
1. 0 = 1 (assumption)
2. 1 = 2 (added 1 to both sides)
3. 3 = 6 (multiplied both sides by 3)
4. 0 = 3 (multiplied no. 1 by 3)
5. 3 = 9 (added no. 3 and no. 4) QED
Lecture 1 43
Conditional: why FF is
True
As we want the conditional to make
sense in the semantic context of
mathematics, we better define it
as we have!
Other questionable rows of the truth
table can also be justified in a
similar manner.
Lecture 1 44
Conditional: synonyms
There are many ways to express the
conditional statement p q :
If p then q. p implies q. If p, q.
p only if q. p is sufficient for q.
Some of the ways reverse the order of p
and q but have the same connotation:
q if p. q whenever p. q is necessary for p.
To aid in remembering these, I suggest
inserting is true after every variable:
EG: p is true only if q is true
Lecture 1 45
Bi-Conditional -- truth
table
For p q to be true, p and q must have
the same truth value. Else, p q is false:
p q p q
T T T
T F F
F T F
F F T
Lecture 1 49
Bit Strings
Thus voltage memory stored in a computer
can be represented by a sequence of 0s
and 1s such as
01 1011 0010 1001
Another portion of the memory might look
like
10 0010 1111 1001
Each of the number in the sequence is called
a bit, and the whole sequence of bits is
called a bit string.
Lecture 1 50
Bit Strings
It turns out that the analogs of the logical
operations can be carried out quite
easily inside the computer, one bit at a
time. This can then be transferred to
whole bit strings. For example, the
exclusive-or of the previous bit strings is:
01 1011 0010 1001
10 0010 1111 1001
11 1001 1101 0000
Lecture 1 51
Blackboard Exercises for
1.1
Worked out on the black-board.
1.1.6.c, 1.1.22.d, 1.1.39:
1. q = You miss the final exam. r = You
pass the course. Express q r in
English.
2. Construct a truth table for p q.
3. Can one determine relative salaries of F
(Fannie), J (Janice) and M (Maggie) from the
following?
1. If F is not highest paid, then J is.
2. If J is not lowest paid, then M is highest paid.
Lecture 1 52