Document

advertisement
CS104 : Discrete Structures
Chapter I
Introduction & Logic Theory
Introduction to
Discrete
Structures
2
What is Discrete Structure?
 Discrete Objects
 Separated from each other (Opposite of
continuous)
 e.g., integers, people, house,
 Vs. Continuous objects: e.g., real number
 Discrete Structures
 The abstract mathematical structures used to
represent discrete objects and relationships
between the objects e.g. sets, relations, graphs
3
Why do we study Discrete Structures?
 Information is stored and manipulated by
computers in a discrete fashion. 0101101…
 As a student in computer science major, you
need to know the basic language and conceptual
foundation for all of the computer science, i.e.,
Discrete Structures!
 Discrete structure concepts are also widely
used throughout math, science, engineering,
economics, biology, etc., …
 Get training for rational thought!
4
Uses of Discrete Structures in Computer
Science













Networking
Database
Image Processing
Programming Languages
Compilers & Interpreters
Software Engineering
Artificial Intelligence
Computer Architecture
Operating Systems
Security & Cryptography
Advanced Algorithms & Data Structures
Graphics & Animation
……
5
Tentative Syllabus & Text Book






Logic Theory
Fundamental Structures
Proof Techniques
Basics of Counting
Graph Theory
Discrete Probability
Text Books
1. Discrete Mathematics and Its Applications, 7th
edition by Kenneth H. Rosen, McGraw Hill, 2007.
6
Logic Theory
7
Propositional Logic
 Proposition: A proposition is a declarative statement
( a statement that declares a fact) that is either
TRUE or FALSE, but not both.
 The area of logic that deals with propositions is
called propositional logic.
Propositions
1. Riyadh is the capital
of Saudi Arabia
2. Every cow has 4 legs.
Not Propositions
1. How many students in
this class?
2. Bring me coffee!
3. 3 + 2 = 32
4. 4 + 3 = 7
3. X + 2 = 3
4. Y + Z = X
8
Propositional Logic - Applications
 We are using propositional logic as a foundation for
formal proofs.
 Propositional logic is also the key to writing good
code…you can’t do any kind of conditional (if)
statement without understanding the condition
you’re testing.
 All the logical connectives we will discuss are also
found in hardware and are called “gates.”
9
Propositional Logic - Negation
We use letters to denote propositional variables
Truth value of true proposition is denoted by T
Truth value of false proposition is denoted by F
Negation: Suppose p is a proposition. The negation of
p is written p and has meaning: “It is not the case
that p.”
 The proposition p is read “NOT p”
 Example: p: “Today is Friday”
p: “Today is NOT Friday”
 Truth table for negation:
p
p




Notice that p is a
proposition!
F
T
T
F
10
Propositional Logic - Conjunction
 Conjunction corresponds to English “and.”
 Conjunction: Let p and q be two propositions. The
conjunction of p and q, denoted by p  q, is the
proposition “p and q”. The p  q is true when both p
and q are true, otherwise false.
 Example: p: “Today is Friday”
q: “It is raining today”
p  q: “Today is Friday and it is raining today”
 Truth table for conjunction:
p
q
pq
F
F
T
T
F
T
F
T
F
F
F
T
11
Propositional Logic - Disjunction
 Disjunction corresponds to English “or.”
 Disjunction: Let p and q be two propositions. The
disjunction of p and q, denoted by p  q, is the
proposition “p or q”. The p  q is false when both p
and q are false, otherwise true.
 Example: p: “Today is Friday”
q: “It is raining today”
p  q: “Today is Friday or it is raining today”
 Truth table for disjunction:
p
q
pq
F
F
T
T
F
T
F
T
F
T
T
T
12
Propositional Logic – Exclusive Or
 Exclusive Or: Let p and q be two propositions. The
exclusive or of p and q, denoted by p ⊕ q, is the
proposition that is true when exactly one of p and q
is true, otherwise false.
 Truth table for Exclusive Or:
p
q
p⊕q
F
F
T
T
F
T
F
T
F
T
T
F
13
Propositional Logic – Conditional
Statement
 It corresponds to English “if p then q” or “p implies q.”
 Conditional: Let p and q be two propositions. The
conditional statement (implication) p  q is the
proposition “if p, then q”. The conditional statement
p  q is false when p is true and q is false, otherwise
true.
 Example: If it is raining, then it is cloudy.
 If I am elected, then I will lower taxes.
 If you get 100% in the final, then you will get
Grade A+.
p
q
pq
 Truth table for implication:
F
F
T
F
T
T
T
F
T
T
F
T
14
Propositional Logic - Special Definitions
 Converse: q  p is converse of p  q.
Ex.:
p  q: “If it is noon, then I am hungry.”
q  p: “If I am hungry, then it is noon.”
 Contrapositive: q  p is contapositive of p  q.
Ex.:
p  q: “If it is noon, then I am hungry.”
q  p: “If I am not hungry, then it is
not noon.”
 Inverse: p  q is inverse of p  q.
Ex.:
p  q: “If it is noon, then I am hungry.”
p  q: “If it is not noon, then I am not
hungry.”
p  q has same truth values as q  p
15
Propositional Logic - Questions
 Q1: Give some examples of p  q, then tell what is
 qp
 q  p
 p  q
 Q2: State the converse, contrapositive, and inverse
of each of them
 If it rains today, then I will stay at home
 I come to class whenever there is going to be a examination
 A positive integer is prime only if it has no divisors other
than 1 and itself.
16
Propositional Logic – Biconditional
Statement
 It corresponds to English “p if and only if q”.
 Biconditional: Let p and q be two propositions. The
biconditional statement (bi-implication) p ↔ q is
the proposition “p if and only if q”. The
biconditional statement p ↔ q is true when p and
q have the same truth values, otherwise false.
 p ↔ q has same truth value as (p q)  (q  p).
 Example: p: “You can take the flight”
p
q
p↔q
q : “You buy a ticket”
F
F
T
p↔q
: “You can take the
F
T
F
flight if and only if
T
F
F
you buy a ticket”
T
T
T
17
Propositional Logic – Precedence
 Precedence of Logical Operators: Operator Precedence
p
p
p  p
p  p
F
T
T
F
T
F
T
F
¬
Λ
ν
→
↔
1
2
3
4
5
 A compound proposition that is:
(1) always true is called a tautology
(2) always false is called a contradiction
(3) neither a tautology nor a contradiction is called
contingency or satisfiable.
18
Propositional Logic – Compound
Propositions
 Construct truth table for (p  q) → (p  q).
p
q
q p  q p  q (p  q) → (p  q)
F
T
F
T
F
F
T
T
T
T
F
F
T
T
F
T
F
F
F
T
F
F
T
T
 Q3: Construct truth table for
 (p  q) ↔ (p  q).
 (p ⊕ q) → (p ⊕ q).
19
Propositional Equivalences – Logical
Equivalences
 Equivalence: The compound propositions p and q are
logically equivalent if p↔q is a tautology. In other
words, p and q are logically equivalent if their truth
tables are the same. We write p  q.
 Example: (p  q)  p  q.
 Truth tables for (p  q) and p  q :
p
q
F
T
F
T
F
F
T
T
p  q (p  q)
F
T
T
T
T
F
F
F
p
q
p  q
T
F
T
F
T
T
F
F
T
F
F
F
20
Propositional Equivalences – Logical
Equivalences
 Example: p  q  p  q.
 Truth tables for p  q and p  q:
p
q
pq
p
p  q
F
T
F
T
F
F
T
T
T
F
T
T
T
F
T
F
T
F
T
T
 Q4: Show that p  (q  r)  (p  q)  (p  r)
21
Propositional Equivalence – Prove the
following Logical Equivalences
Equivalence
Name
p Λ T  p and p ν F  p
Identity laws
p ν T  T and p Λ F  F
Domination laws
p ν p  p and p Λ p  p
Idempotent laws
¬( ¬ p)  p
Double negation law
p ν q  q ν p and p Λ q  q Λ p
Commutative laws
(p ν q) ν r  p ν (q ν r) and (p Λ q) Λ r  p Λ (q Λ
r)
Associative laws
p  (q  r)  (p  q)  (p  r)
p  (q  r)  (p  q)  (p  r)
Distributive laws
¬(p ν q)  ¬p Λ ¬q and ¬(p Λ q)  ¬p ν ¬q
De Morgan’s laws
p  (p  q)  p and p  (p  q)  p
Absorption laws
p ν ¬p  T and p Λ ¬p  F
Negation laws
22
Propositional Equivalence – Prove the
following Logical Equivalences
23
Propositional Logic – Translating English
Sentences
 The sentence “The automated reply cannot be sent
when the file system is full” can be translated as
q → p
where p: “The automated reply can be sent ”
q: “The file system is full”
 The sentence “You cannot drive a car if you are
under 4 feet tall unless you are older than 16 years
old” can be translated as
(q r) → p
where p: “You can drive a car ”
q: “You are under 4 feet tall ”
r: “You are older than 16 years old”
24
Propositional Logic – Translating English
Sentences
 The sentence “You can access the Internet from
campus only if you are a computer science major or
you are not a freshman” can be translated as
p → (q  r)
where p: “You can access the Internet from campus”
q: “You are a computer science major”
r: “You are a freshman”
 Q5: Translate the following sentences into logical
expressions:
 “Access is granted whenever the user has paid
the subscription fee and enters a valid password”
 “If the user has not entered a valid password but
has paid the subscription fee, then access is
granted”
25
Propositional Equivalences – Logic and
Bit Operations
 Bit: A bit is a symbol with two possible values,
namely, 0 (zero) and 1 (one).
 A bit can be used to represent a truth value as 1 for
T and 0 for F
 Bit string: A bit string is a sequence of bits. The
length of the string is number of bits in the string.
 Example: 10101001 is a bit string of length eight
 We define the bitwise OR, AND, and XOR of two
strings of same length to be the strings that have as
their bits the OR, AND, and XOR of the
corresponding bits in the two strings, respectively.
 We use the symbols , , and ⊕ to represent bitwise
OR, AND, and XOR, respectively.
26
Propositional Equivalences – Logic and
Bit Operations
 Truth table for bitwise OR, AND, and XOR:
x
y
0
0
1
1
0
1
0
1
xy
xy
x⊕
y
0
1
1
1
0
0
0
1
0
1
1
0
 Q6: Find bitwise OR, AND, and XOR of the bit
strings
 01 0011 0100 and 10 1001 0101
 00 1011 1010 and 11 1010 0101
 11 0101 0110 and 10 1101 0010
27
Predicates and Quantifiers - Predicates
 The statements “x > 3”, “x = y + 3”, and “computer x
is functioning properly” are not propositions
 This section discusses how proposition can be
produced from such statements
 The statement “x > 3” has two parts –
 the variables x, the subject of the statement
 is greater than 3, the predicate, the property
that the subject of the statement can have
 We denote P(x) = “x > 3”, where P denotes the
predicate “is greater than 3” and x is the variable
 Once we assign a value to x, it becomes proposition
28
Predicates and Quantifiers - Predicates
 Def: A predicate, or propositional function, is a
function that takes some variable(s) as arguments
and returns True or False.
 Example: Let P(x) = “x > 3”, what are the truth values
of P(2) and P(4)?
 Sol: P(2) = “2 > 3” is false and P(4) = “4 > 3” is true
 Example: Let Q(x, y) = “x = y + 3”, what are the truth
values of Q(1, 2) and Q(3, 0)?
 Sol: Q(1,2)= “1=2+3” is false, Q(3,0)= “3=0+3” is true
 Def: A statement of the form P(x1, x2, …., xn) is the
value of the propositional function P at the n-tuple
(x1, x2, …., xn), and P is called n-ary predicate
29
Predicates and Quantifiers- Predicates
 Example: Consider the statement
if x > 0 then x := x + 1.
Here P(x) = “x > 0”. If P(x) is true for the value of
x, then the assignment statement x := x + 1 is
executed, x is increased by 1. If P(x) is false for the
value of x, then the assignment statement is not
executed, x remains same
 The statements that describe valid input are known
as preconditions, and the conditions that the output
should satisfy when it has run are known as
postconditions
 Q7: Let R(x, y, z) = “x + y = z”, what are the truth
values of R(1, 2, 3) and R(0, 0, 1)?
30
Predicates and Quantifiers - Quantifiers
 Another way of changing a predicate into a
proposition is called quantification
 In English, the words all, some, many, none, and few
are used in quantifications
 Two types of quantifications:
 Universal quantifications – a predicate is true for
every element under consideration
 Existential quantifications – there is one or more
element under consideration for which predicate
is true
 The area of logic that deals with predicates and
quantifiers is called predicate calculus
31
Predicates and Quantifiers – Universal
Quantifiers
 Def: The universal quantification of P(x) is the
statement “P(x) for all values of x in the domain”.
The notation x P(x) denotes the universal
quantification of P(x). Here  is called universal
quantifier. An element for which P(x) is false is
called a counterexample of x P(x).
 Quantifiers:
Statement
When True?
When False?
P(x) is true for every x There is an x for
x P(x)
which P(x) is false
There is an x for which P(x) is false for
 x P(x)
every x
P(x) is true
32
Predicates and Quantifiers – Universal
Quantifiers
 Example: Let P(x) = “x+1 > x”. What is the truth value
of the quantification x P(x), where the domain
consists of all real numbers?
 Sol: Because P(x) is true for all real numbers x, the
quantification x P(x) is true.
 Example: Let Q(x) = “x < 2”. What is the truth value
of the quantification x Q(x), where the domain
consists of all real numbers?
 Sol: Because Q(x) is not true for every real number
x, because, for instance, Q(3) is false. That is, x=3
is a counterexample for the statement x Q(x).
33
Predicates and Quantifiers – Universal
Quantifiers
 Q8: Let P(x) = “x2 > 0”. What is the truth value of
the quantification x P(x), where the domain
consists of all real numbers?
 Q9: Let Q(x) = “x2 < 10”. What is the truth value of
the quantification x Q(x), where the domain
consists of positive integers less than 4?
 Q10: Let R(x) = “x2 ≥ x”. What is the truth value of
the quantification x R(x), where the domain
consists of all real numbers? What is the truth value
of the quantification if the domain consists of all
integers?
34
Predicates and Quantifiers –
Existential Quantifiers
 Def: The existential quantification of P(x) is the
statement “There exists an element x in the domain
such that P(x)”. The notation  x P(x) denotes the
existential quantification of P(x). Here  is called
existential quantifier.
 Example: Let P(x) = “x > 3”. What is the truth value
of the quantification x P(x), where the domain
consists of all real numbers?
 Sol: Because P(x) is sometimes true - for instance,
when x=4 – the existential quantification of P(x),
which is x P(x), is true.
35
Predicates and Quantifiers –
Existential Quantifiers
 Example: Let P(x) = “x = x+1”. What is the truth
value of the quantification  x P(x), where the
domain consists of all real numbers?
 Sol: Because P(x) is false for every real number x,
the quantification  x P(x) is false.
 Q11: Let Q(x) = “x2 > 10”. What is the truth value of
the quantification  x Q(x), where the domain
consists of positive integers not exceeding 4?
 Q12: Let R(x) = “x2 ≥ x”. What is the truth value of
the quantification  x R(x), where the domain
consists of all real numbers? What is the truth value
of the quantification if the domain consists of all
integers?
36
Predicates and Quantifiers – Translating
English into Logical Expression
 Example: Express the statement “Every student in
this class has studied calculus” using predicates and
quantifiers.
 Sol: We rewrite as “For every student in this class,
the student has studied calculus”.
=> “For every student x in this class, x has studied
calculus”.
Let P(x) = “x has studied calculus”, then our
statement is represented by xP(x).
 Q13: Express the statements “Some students in
this class visited Dubai” and “Every student in this
class has visited either Makkah or Madina” using
predicates and quantifiers.
37
Predicates and Quantifiers –
Quantifiers with Restricted Domain
 Example: What do the statements x < 0(x2 > 0),
y≠0(y3 ≠ 0), and z > 0(z2 = 2) mean, where the
domain in each case consists of all real numbers?
 Sol: The statement x < 0(x2 > 0) states that for
every number x with x < 0, x2 > 0. That is, it states
“The square of a negative real number is positive”.
The statement is the same as x (x < 0 → x2 > 0).
The statement y ≠ 0(y3 ≠ 0) states that for every
real number y with y ≠ 0, we have y3 ≠ 0. That is, it
states “The cube of every nonzero real is nonzero”.
The statement is the same as y (y ≠ 0 → y3 ≠ 0).
Finally, the statement z > 0(z2 = 2) states that there
exist a real number z with z > 0 such that z2=2. That
is, it states “There is positive square root of 2”. The
statement is the same as z (z > 0 ⌃z2 = 2).
38
Predicates and Quantifiers –
Quantifiers with Restricted Domain
 Note: The restriction of a universal quantification is
the same as the universal quantification of a
conditional statement. For instance, x < 0(x2 > 0) is
another way of expressing x (x < 0 → x2 > 0).
 On the other hand, the restriction of an existential
quantification is the same as the existential
quantification of a conjunction. For instance,
z>0(z2=2) can be expressed as z (z > 0 ⌃ z2 = 2).
 Precedence of Quantifiers: The quantifiers  and 
have higher precedence then all logical operators
from propositional calculus. For example, xP(x) v
Q(x) is the disjunction of xP(x) and Q(x). In other
words, it means (xP(x)) v Q(x) rather than x (P(x)
v Q(x))
39
Predicates and Quantifiers – Negating
Quantified Expression
 Example: x P(x) means “P(x) is true for every x”.
What about x P(x) ?
 Sol: x P(x) = Not [“P(x) is true for every x.”]
=> “There is an x for which P(x) is not true.”
=> x P(x)
So, x P(x) is logically equivalent to x P(x).
 Example: x P(x) means “P(x) is true for some x”.
What about x P(x) ?
 Sol: x P(x) = Not [“P(x) is true for some x.”]
=> “P(x) is not true for all x.”
=> x P(x)
So, x P(x) is logically equivalent to x P(x).
40
Predicates and Quantifiers – Negating
Quantified Expression
 De Morgan’s laws for quantifiers:
Negation Equivalent When is
Statement Negation True?
 x P(x) x P(x) For every x,
P(x) is false
x P(x)  x P(x)
When False?
There is an x
for which
P(x) is true
There is an x for
P(x) is true
which P(x) is
for every x
false
41
Predicates and Quantifiers – Negating
Quantified Expression
 Example: What are the negations of the statements
“There is a religious man” and “All Saudi eat Rice”?
 Sol: Let P(x) = “x is a religious”,
=> “There is a religious man”= xP(x), where the
domain consists of all men
Now, xP(x) = xP(x) =“Every man is nonreligious”.
Next, let Q(x) = “x eats Rice”
=> “All Saudi eat Rice” = xQ(x), where the domain
consists of all Saudi
Now,  xQ(x) = xQ(x) = “Some Saudi does not
eat rice”.
 Q14: What are the negations of the statements
x (x2 > x) and x (x2 = 2)”?
42
Predicates and Quantifiers – Negating
Quantified Expression
 Example: Let L(x) = “x is a lion”, F(x) = “x is fierce”,
and C(x) = “x drinks coffee”. Show the quantifiers
for the statements (i) All lions are fierce, (ii) Some
lions don’t drink coffee, (iii) Some fierce creatures
don’t drink coffee.
 Sol: (i) x (L(x)  F(x)), ii) x (L(x)  C(x)), and
(iii) x (F(x)  C(x))
 Q15: Let B(x) = “x is a hummingbird”, L(x) = “x is a
large bird”, H(x) = “x lives on honey”, and R(x) = “x is
richly colored”. Show the quantifiers for the
statements (i) All hummingbirds are richly colored,
(ii) No large birds live on honey, (iii) Birds that do
not live on honey are dully colored, and (iv) Not all
large birds live on honey.
43
Predicates and Quantifiers – Logical
Equivalences
 Example: Show that x (P(x)  Q(x)) and xP(x) 
x Q(x) are logically equivalent.
 Sol: Let x (P(x)  Q(x)) is true
=> if a is in the domain, then P(a)  Q(a) is true
=> P(a) and Q(a) are true, for all a in the domain
=> xP(x) and xQ(x) are true
=> xP(x)  xQ(x) is true
So, they are logically equivalent.
 Q16: Show that x(P(x)Q(x)) and x(P(x) 
Q(x)) are logically equivalent.
44
Nested Quantifiers – Definition
 Def: Two quantifiers are said to be nested if one is
within the scope of the other, such as
xy (x + y = 0)
 Note that xy (x + y = 0) is same as xQ(x), where
Q(x) is yP(x, y), where P(x, y) is x + y = 0.
 Example: Assume that the domain for the variables
x and y consists of all real numbers.
 The statement
xy (x + y = y + x)
says that x + y = y + x for all real numbers x and
y. This is commutative law for addition of real
numbers.
45
Nested Quantifiers – Example
 Example:
 Similarly, the statement
xy (x + y = 0)
says that for every real number x there is a real
number y such that x + y = 0. This states that
every real number has an additive inverse.
 Similarly, the statement
xyz (x + (y + z) = (x + y) + z)
is associative law for addition of real numbers.
46
Nested Quantifiers – Order of
Quantifiers
 Example: Let P(x, y) be the statement “x + y = y + x”.
What are the truth values of the quantifications
xyP(x, y) and yxP(x, y), where the domain for
all variables consists of all real numbers?
 Sol: xyP(x, y) = “For all real numbers x, for all
real numbers y, x + y = y + x”.
Since P(x, y) is true for all real numbers x and y, the
proposition xyP(x, y) is also true.
Also, yxP(x, y) = “For all real numbers y, for all
real numbers x, x + y = y + x” = xyP(x, y).
 Note: Order of nested universal quantifiers in a
statement without other quantifiers can be changed
without changing meaning of quantified statement.
47
Nested Quantifiers – Order of
Quantifiers
 Example: Let Q(x, y) be the statement “x + y = 0”.
What are the truth values of the quantifications
yxQ(x, y) and xyQ(x, y), where the domain for
all variables consists of all real numbers?
 Sol: yxQ(x, y) = “There is a real number y such
that for every real number x, x + y = 0”.
Since there is no real number y such that x + y = 0,
for all real numbers x, the proposition yxQ(x, y)
is false.
xyQ(x, y) = “For every real number x, there is a
real number y such that x + y = 0”.
Given a real number x, there is a real number y,
namely y = -x, such that x + y =0. So, xyQ(x, y) is
true.
48
Nested Quantifiers – Quantification of
Two Variables
Statement
When True?
xyP(x, y) P(x, y) is true for every
yxP(x, y) pair x, y.
When False?
There is a pair x, y for
which P(x, y) is false
xyP(x, y), For every x there is a y for There is an x such that
which P(x, y) is true
P(x, y) is false for every y
xyP(x, y) There is an x such that
P(x, y) is true for every y
For every x there is a y for
which P(x, y) is false
xyP(x, y) There is a pair x, y for
yxP(x, y) which P(x, y) is true
P(x, y) is false for every
pair x, y.
 Q17: Let Q(x, y) = “x + y = y”. What are the truth
values of the quantifications yxQ(x, y) and
xyQ(x, y), where the domain for all variables
consists of all real numbers?
49
Nested Quantifiers – Order of
Quantifiers
 Example: Let Q(x, y, z) be the statement “x + y = z”.
What are the truth values of the quantifications
xyzQ(x, y, z) and zxyQ(x, y, z), where the
domain for all variables consists of all real numbers?
 Sol: xyzQ(x, y, z) = “For all real numbers x and
for all real numbers y there is a real number z such
that x + y = z” is true.
The order of quantification is important here. Since
zxyQ(x, y, z) = “There is a real number z such
that for all real numbers x and for all real numbers
y, x + y = z”, is false, because there is no z that
satisfies the equation x + y = z for all for all real
numbers x and y
50
Nested Quantifiers – Translating
Statements
 Example: Translate the statement “The sum of two
positive integers is always positive” into a logical
expression.
 Sol: Let x and y be two positive integers, then we can
write the statement as “For all positive integers x
and y, x + y is positive”. This can be expressed as
xy((x > 0) ⌃ (y > 0) → (x + y > 0)), where the domain
for both variables consists of integers. We can also
express this as xy(x + y > 0), where the domain for
both variables consists of positive integers.
 Q18: Translate the statement “Every real number
except zero has a multiplicative inverse” into a logical
expression.
51
Nested Quantifiers – Translating From
Nested Quantifiers
 Example: Translate the statement
x(C(x) v y(C(y) ⌃ F(x, y)))
into English, where C(x)=“x has a computer”, F(x, y) =
“x and y are friends”, and the domain for both x and y
consists of all students in your class.
 Sol: The statement says that for every student x in
your class, x has a computer or there is a student y
such that y has computer and x and y are friends. In
other words, every student in your class has a
computer or has a friend who has a computer.
 Q19: Translate the statement
xyz((F(x, y) ⌃ F(x, z) ⌃ (y ≠ z)) → F(y, z))
into English, where F(a, b) means a and b are friends
and the domain for x, y and z consists of all students
in your class.
52
End of
Chapter I
53
Download