* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download P,Q
Gödel's incompleteness theorems wikipedia , lookup
History of logic wikipedia , lookup
Propositional calculus wikipedia , lookup
Law of thought wikipedia , lookup
Axiom of reducibility wikipedia , lookup
Statistical inference wikipedia , lookup
Laws of Form wikipedia , lookup
Mathematical logic wikipedia , lookup
Natural deduction wikipedia , lookup
Discrete
formal
logic
Mathematics
mathematical preliminaries
Chapter 3
Mathematical Reasoning
? Transparency
Transparency
No.No.
3-12-0
Discrete Mathematics Ch 3
Mathematical reasoning
Contents
1.5 and 3.1 Proofs ad proof methods
3.2 Mathematical Inductions
3.3 Recursive defined sets
Recursive definitions
Structural Induction
3.4 Recursive algorithms
3.5 Program correctness
Transparency No. 3-2
Discrete Mathematics Ch 3
Mathematical reasoning
Proofs and proof methods
Nature and importance of proofs
Applications of proofs
Proof terminology
Inference rules
Some inference rules
Soundness of inference rules
Formal proofs
Formal proof examples
Inference rules for quantifiers
common fallacies
proof methods
Transparency No. 3-3
Nature & Importance of Proofs
Discrete Mathematics Ch 3
Mathematical reasoning
In mathematics, a proof is:
a correct (well-reasoned, logically valid) and complete
(clear, detailed) argument that rigorously & undeniably
establishes the truth of a mathematical statement.
Why must the argument be correct & complete?
Correctness prevents us from fooling ourselves.
Completeness allows anyone to verify the result.
[Discrete] Mathematics requires a very high
standard for correctness and completeness of
proofs.
Transparency No. 3-4
Overview of §§1.5 & 3.1
Discrete Mathematics Ch 3
Mathematical reasoning
Methods of mathematical argument (i.e., proof
methods) can be formalized in terms of rules of
logical inference.
Mathematical proofs can themselves be
represented formally as discrete structures.
Review both correct & fallacious inference rules,
& several proof methods.
Transparency No. 3-5
Applications of Proofs
Discrete Mathematics Ch 3
Mathematical reasoning
Clear communication of logical arguments in any
area of study.
Discovery and elucidation, through proofs, of
interesting new mathematical theorems.
Theorem-proving has applications in program
verification, computer security, automated
reasoning systems, etc.
Proving a theorem allows us to rely upon on its
correctness even in the most critical scenarios.
Transparency No. 3-6
Proof Terminology
Discrete Mathematics Ch 3
Mathematical reasoning
Theorem [定理]
A statement that has been proven to be true.
Axioms[公設], postulates, hypotheses, premises
Assumptions (often unproven) defining the structures
about which we are reasoning.
Rules of inference [推論法則]
Patterns of logically valid deductions from hypotheses
to conclusions.
Transparency No. 3-7
More Proof Terminology
Discrete Mathematics Ch 3
Mathematical reasoning
Lemma[輔助定理] - A minor theorem used as a
stepping-stone to proving a major theorem.
Corollary - A minor theorem proved as an easy
consequence of a major theorem.
Conjecture - A statement whose truth value has
not been proven. (A conjecture may be widely
believed to be true, regardless.)
Theory – The set of all theorems that can be
proven from a given set of axioms.
Transparency No. 3-8
Discrete Mathematics Ch 3
Mathematical reasoning
Graphical Visualization
A Particular Theory
inference rule
A proof
The Axioms
of the Theory
Various Theorems
Transparency No. 3-9
…
Inference Rules - General Form
Discrete Mathematics Ch 3
Mathematical reasoning
Inference Rule –
Pattern establishing that if we know that a set
of antecedent statements of certain forms are
all true, then a certain related consequent
statement is true.
antecedent 1
antecedent 2 …
consequent
“” means “therefore”
Transparency No. 3-10
Inference Rules & Implications
Discrete Mathematics Ch 3
Mathematical reasoning
Each logical inference rule corresponds to
an implication that is a tautology.
antecedent 1
Inference rule
antecedent 2 …
consequent
Corresponding tautology:
((ante. 1) (ante. 2) …) consequent
Transparency No. 3-11
Some Inference Rules
p
pq
Discrete Mathematics Ch 3
Mathematical reasoning
Rule of Addition
pq
p
Rule of Simplification
Rule of Conjunction
p
q
pq
Transparency No. 3-12
Discrete Mathematics Ch 3
Mathematical reasoning
Modus Ponens & Tollens
p
pq
q
q
pq
p
Rule of modus ponens
(a.k.a. law of detachment)
“the mode of
affirming”
Rule of modus tollens
“the mode of denying”
Transparency No. 3-13
Syllogism Inference Rules
pq
qr
pr
pq
p
q
Discrete Mathematics Ch 3
Mathematical reasoning
Rule of hypothetical
syllogism
Rule of disjunctive
syllogism
Aristotle
(ca. 384-322 B.C.)
Transparency No. 3-14
Formal Proofs
Discrete Mathematics Ch 3
Mathematical reasoning
A formal proof of a conclusion C, given premises
p1, p2,…,pn consists of a sequence of steps, each
of which applies some inference rule to premises
or to previously-proven statements (as
antecedents) to yield a new true statement (the
consequent).
A proof demonstrates that if the premises are
true, then the conclusion is true.
Transparency No. 3-15
Formal Proof Example
Discrete Mathematics Ch 3
Mathematical reasoning
Suppose we have the following premises:
“It is not sunny and it is cold.”
“We will swim only if it is sunny.”
“If we do not swim, then we will canoe.”
“If we canoe, then we will be home early.”
Given these premises, prove the theorem
“We will be home early” using inference
rules.
Transparency No. 3-16
Proof Example cont.
Discrete Mathematics Ch 3
Mathematical reasoning
Let us adopt the following abbreviations:
sunny = “It is sunny”; cold = “It is cold”;
swim = “We will swim”; canoe = “We will canoe”;
early = “We will be home early”.
Then, the premises can be written as:
(1) sunny cold
(2) swim sunny
(3) swim canoe
(4) canoe early
Transparency No. 3-17
Proof Example cont.
Step
1. sunny cold
2. sunny
3. swimsunny
4. swim
5. swimcanoe
6. canoe
7. canoeearly
8. early
Discrete Mathematics Ch 3
Mathematical reasoning
Proved by
Premise #1.
Simplification of 1.
Premise #2.
Modus tollens on 2,3.
Premise #3.
Modus ponens on 4,5.
Premise #4.
Modus ponens on 6,7.
Transparency No. 3-18
Discrete Mathematics
The formalization of proofs
and inference rules
? Transparency No. 2-0
What is a proof
Discrete Mathematics Ch 3
Mathematical reasoning
what is a proof ?
==> a sequence of formulas (I.e., statements or
logical expressions)
A1,
...
An [=A]
generated according to some ( valid inference) rules
Transparency No. 3-20
Inference rules
Discrete Mathematics Ch 3
Mathematical reasoning
An inference rule is a pattern of formulas of
the form:
P1,P2,...,Pm (m 0) // C.
Meaning that if P1,..,Pm have been produced
(proved, generated, etc) before then we can add C
to the proof sequence (now).
P1,..,Pm : premises of the rule;
C: Conclusion of the rule.
Transparency No. 3-21
Formal definition of proofs
Discrete Mathematics Ch 3
Mathematical reasoning
Ax: a set of axioms
R: a set of inference rules
A: a formula
A proof of A (according to axioms Ax and rules R) is a
nonempty sequence of formulas A1,A2,...,An s.t.,
1. An = A.
2. For i = 1,.., n
Either Ai is an axiom (i.e., a member of Ax) or
there is an inference rule r: P1,..,Pm / C in R s.t.
1. C = Ai
2. {p1,..,Pm} {A1,...,Ai-1}
Note:
1. each Ai (i <n) is called a lemma.
2. If B can be inferred from A directly, it is called a
corollary of theorem A.
3. Both lemmas and corollaries are theorems.
Transparency No. 3-22
More about proofs
Discrete Mathematics Ch 3
Mathematical reasoning
Notation: we use A1,A2,…Am |- C to means that
there is a proof of C with A1,…,Am as premises.
An inference rule: P1,..,Pm // C is said to be
sound(可靠) (or correct[正確], valid[有效]) iff
It is impossible that all premises are true
while the conclusion is false.
I.e., If all premise are true than the conclusion
must be true.
I.e., (P1/\P2/\…/\Pn ) C is a tautology.
I.e., C is a logical consequence of P1,P2,… and
Pm.
Transparency No. 3-23
More about proofs
Discrete Mathematics Ch 3
Mathematical reasoning
A fallacy is a inference rule which is not sound.
(I.e., It is possible that all premises are true but
the conclusion is false).
Ex: RainWet // ~Rain ~Wet.
Fact1 : If P1,..,Pm // C is sound in T, and all premises
are theorems then so is the conclusion C.
Fact2: If
1. there is a proof of C from a set of premises P1,… Pn
(I.e., P1,…Pn |- C ),
2. all premises are theorems and
3. all inference rules used are sound, then
the conclusion C must be a theorem.
Transparency No. 3-24
Inference Rules for Quantifiers
Discrete Mathematics Ch 3
Mathematical reasoning
x P(x)
P(o) (substitute any object o)
P(o)
(substitute any extant object o)
x P(x)
Transparency No. 3-25
Example
Discrete Mathematics Ch 3
Mathematical reasoning
Topic #3 – Predicate Logic
Definitions:
s :≡ Socrates (ancient Greek philosopher);
H(x) :≡ “x is human”;
M(x) :≡ “x is mortal”.
Premises:
H(s)
Socrates is human.
x H(x)M(x)
All humans are mortal.
Conclusion:
M(s)
Socrates is mortal.
Transparency No. 3-26
The proof
Discrete Mathematics Ch 3
Mathematical reasoning
Topic #3 – Predicate Logic
Some valid conclusions you can draw:
H(s)M(s)
[Instantiate universal.] If Socrates is human
then he is mortal.
H(s) M(s)
Socrates is inhuman or mortal.
H(s) (H(s) M(s))
Socrates is human, and also either inhuman or mortal.
(H(s) H(s)) (H(s) M(s))
[Apply distributive law.]
F (H(s) M(s))
[Trivial contradiction.]
H(s) M(s)
[Use identity law.]
M(s)
Socrates is mortal.
Transparency No. 3-27
Another Example
Discrete Mathematics Ch 3
Mathematical reasoning
Topic #3 – Predicate Logic
Definitions: H(x) :≡ “x is human”;
M(x) :≡ “x is mortal”; G(x) :≡ “x is a god”
Premises:
x H(x) M(x) (“Humans are mortal”) and
x G(x) M(x) (“Gods are immortal”).
Show that x (H(x) G(x))
(“No human is a god.”)
Transparency No. 3-28
The Derivation
Discrete Mathematics Ch 3
Mathematical reasoning
Topic #3 – Predicate Logic
x H(x)M(x) and x G(x)M(x).
x M(x)H(x) [Contrapositive.]
x [G(x)M(x)] [M(x)H(x)]
x G(x)H(x)
[Transitivity of .]
x G(x) H(x) [Definition of .]
x (G(x) H(x)) [DeMorgan’s law.]
x G(x) H(x)
[An equivalence law.]
Transparency No. 3-29
More Inference Rules for Quantifiers
P(g)
x P(x)
Discrete Mathematics Ch 3
Mathematical reasoning
(where g a general element of u.d.
I.e., g cannot be restricted to any
property except being an element
of u.d.)
x P(x)
P(c) (substitute a new constant c
c is an object restricted to
property P)
Transparency No. 3-30
Example
Discrete Mathematics Ch 3
Mathematical reasoning
The square of all odd numbers are odd.
pf: let g be any number.
[ if g is odd, then,
g = 2k + 1 for some k
g2 = 4kk + 4k + 1 = 2(2kk + 2k) + 1
=> g2 is odd. ]
=> Odd(g) Odd(g2).
=> x Odd(x) Odd(x2).
Transparency No. 3-31
Discrete Mathematics Ch 3
Mathematical reasoning
a fallacy
Prove that x P(x) |- x P(x)
What’s wrong with the proof: ?
1.
2.
3.
x P(x)
P(c)
x P(x)
--- premise
--- instanciation
--- Gen
Ans: c is not a general element!
Transparency No. 3-32
Discrete Mathematics Ch 3
Mathematical reasoning
Example inference rules
1. Modus Ponus(MP) : AB, A // B
2. abduction (ABD) : AB, B // A
3. denying premise : AB, ~A // ~B
4. Math. ind.: (let P be any formula )
P(0)
x P(x) P(x +1)
-------------------------x P(x)
Notes:
1. rule 1 is correct.
2. rule 2,3 are in general not correct.
3. Rule 4 is correct for natural number(NT) theory, but not
correct for integer theory(ZT) and real number theory(RT).
Transparency No. 3-33
Some commonly used inference rules
Discrete Mathematics Ch 3
Mathematical reasoning
Rules of
inferences
Tautologies
Name
p // p\/q
p->(p\/q)
Addition
p/\q // p
p/\q->p
Simplication
p, p->q//q
p/\(p->q) -> q
Modus ponens
~q, p->q //~p
~q /\ (p->q) ->~p Modus Tollens
p->q,q->r//p->r
((p->q) /\ (q->r)) Hypothetical
-> (p->r)
syllogism
~p /\ (p \/q) -> q Disjunctive
syllogism
p\/q,~p //q
Transparency No. 3-34
Discrete Mathematics Ch 3
Mathematical reasoning
Some commonly used fallacies
Affirming the conclusion [abduction]:
From p->q, q infer p
Ex: Do all exercises => learn discrete math.
Since have learned D.M., hence have done all exercises.
note: p is a possible reason (explanation) of q, instead of a
(necessary) consequence of q.
Denying the hypothesis:
from ~p and p->q infer ~q.
Ex: rain => wet, since not rain, hence not wet.
Circular reasoning
Assume n2 is even.
n2 = 2k for some k.
Hence n2 is even
Transparency No. 3-35
Techniques for proving theorems
Discrete Mathematics Ch 3
Mathematical reasoning
Different ways of proving a theorem: p implies q.
Vacuous proof: Prove that ~p. [~p //p->q]
Trivial proof: Prove that q. [q // p->q ]
Direct proof: Prove that if p then q. [p->q //p->q]
suppose p, then ..., q
Indirect proof: (proof by contraposition)
Prove that "~q implies ~P" [~q->~p // p->q]
Proof by contradiction:
To prove P, it suffices to show that ~P -> F (false)
[~p ->F // p]
Proof by cases:
To prove that "p \/ q implies r " it suffices to show that p->r
and q -> r.
[p->r, q->r // (p\/ q) ->r.]
Transparency No. 3-36
Proof Methods for Implications
Discrete Mathematics Ch 3
Mathematical reasoning
For proving implications pq, we have:
Direct proof: Assume p is true, and prove q.
Indirect proof: Assume q, and prove p.
Vacuous proof: Prove p by itself.
Trivial proof: Prove q by itself.
Proof by cases:
Show p(a b), and (aq) and (bq).
Transparency No. 3-37
Direct Proof Example
Discrete Mathematics Ch 3
Mathematical reasoning
Definition: An integer n is called odd iff
n=2k+1 for some integer k; n is even iff
n=2k for some k.
Axiom: Every integer is either odd or even.
Theorem: (For all numbers n) If n is an odd
integer, then n2 is an odd integer.
Proof: If n is odd, then n = 2k+1 for some
integer k. Thus, n2 = (2k+1)2 = 4k2 + 4k + 1
= 2(2k2 + 2k) + 1. Therefore n2 is of the
form 2j + 1 (with j the integer 2k2 + 2k), thus
n2 is odd. □
Transparency No. 3-38
Indirect Proof Example
Discrete Mathematics Ch 3
Mathematical reasoning
Theorem: (For all integers n)
If 3n+2 is odd, then n is odd.
Proof: Suppose that the conclusion is false, i.e.,
that n is even.
Then n=2k for some integer k.
Then 3n+2 = 3(2k)+2 = 6k+2 = 2(3k+1).
Thus 3n+2 is even, because it equals 2j for
integer j = 3k+1.
So 3n+2 is not odd.
We have shown that ¬(n is odd)→¬(3n+2 is odd),
thus its contra-positive (3n+2 is odd) → (n is odd)
is also true. □
Transparency No. 3-39
Vacuous Proof Example
Discrete Mathematics Ch 3
Mathematical reasoning
Theorem: (For all n) If n is both odd and even,
then n2 = n + n.
Proof: The statement “n is both odd and even” is
necessarily false, since no number can be both
odd and even.
So, the theorem is vacuously true. □
Transparency No. 3-40
Trivial Proof Example
Discrete Mathematics Ch 3
Mathematical reasoning
Theorem: (For integers n) If n is the sum of two
prime numbers, then either n is odd or n is even.
Proof: Any integer n is either odd or even.
So the conclusion of the implication is true
regardless of the truth of the antecedent.
Thus the implication is true trivially. □
Transparency No. 3-41
Proving existence theorem
Discrete Mathematics Ch 3
Mathematical reasoning
Methods for proving x p(x):
Constructive proof: find an object (or term) a, s.t.
P(a).
[p(a) // x p(x) ]
Nonconstructive proof: a proof of x P(x) w/o
knowing what object satisfies p.
ex:proof by contradiction: Show that ~x p(x) ->F.
Transparency No. 3-42
Example of existence proofs
Discrete Mathematics Ch 3
Mathematical reasoning
Ex 20: [constructive proof] Show that there are n consecutive
composite integers for every integer n >0. (I.e. for all n x
(x+1,x+2,...x+n) are all composite.
Sol: Let x = (n+1)! +1.
=> x+i = (n+1)! + (i+1) = (i+1)( (n+1)!/(i+1) +1) is composite for
i = 1,..,n. QED.
Ex 21: [nonconstructive proof] For all n >0 prime number > n.
Sol: by contradiction. Assume n s.t. all prime number < n.
Let m = n! +1. ==> (k, m) = 1 for all k ≤ n.
=> all prime cannot divide m
=> m is a prime > n
=> a contradiction. QED.
Note: We cannot know a prime > n from the proof.
Transparency No. 3-43
Example of proof by cases...
Discrete Mathematics Ch 3
Mathematical reasoning
Given n>0, prove there is a prime p>n.
Consider x = n!+1. Since x>1, we know
(x is prime)(x is composite).
Case 1: x is prime. Obviously x>n, so let p=x and
we’re done.
Case 2: x has a prime factor p. But if pn, then p
mod x = 1. So p>n, and we’re done.
Transparency No. 3-44
Limits on Proofs
Discrete Mathematics Ch 3
Mathematical reasoning
Some very simple statements of number theory
haven’t been proved or disproved!
E.g. Goldbach’s conjecture: Every integer n≥2 is
exactly the average of some two primes.
n≥2 primes p,q: n=(p+q)/2.
There are true statements of number theory (or
any sufficiently powerful system) that can never
be proved (or disproved) (Gödel incompleteness
theorem).
Transparency No. 3-45
3.2 Mathematical Induction
Discrete Mathematics Ch 3
Mathematical reasoning
To show that a property p hold for all nonnegative integer n,
it suffices to show that
1. Basis step: P(0) is true
2. Ind. step: P(n) P(n+1) is true for all nonnegative
integer.
P(n) in 2. is called the inductive hypothesis.
Note: Math. Ind. is exactly the inference rule:
P(0), n p(n)P(n+1) // n P(n) for any property P
The second form of MI
Basis: P(0) holds
Ind. step: P(0) /\ P(1) /\ ...,/\p(n-1) P(n) holds for all n.
P(0) /\ P(1) /\ ...,/\p(n-1) (or for all k k<n => P(k)) is the ind.
hyp.
Transparency No. 3-46
Correctness of Math. Ind.
Discrete Mathematics Ch 3
Mathematical reasoning
Correctness of MI.
Pf: Assume MI is incorrect. i.e. the set NP = {k | P(k) is false} is
not empty.
Let m be the least number of NP.
Since p(0), 0 NP and m >0.
=> m-1 exists and P(0),P(1),…,P(m-1) hold
P(m) holds [by MI I or II]=> m NP => a contradiction.
QED.
Transparency No. 3-47
Examples :
Discrete Mathematics Ch 3
Mathematical reasoning
2: Si=1,n 2i-1 = n2
3. n < 2n
4. 3 | n3 - n if n > 0
5.Si=1,n 2i = 2(n+1) -1
6. Sj=1,n arj = arn+1 - a / (r -1)
7. Let Hk = 1 + 1/2 +...+ 1/k => H2n 1 + n/2
8. |S| = n => |2S| = 2n.
9. 1 + 2+...+ n = n(n+1)/2
10. If n > 3 => 2n < n!
11. ~(S1 ...Sn) = ~S1 U ... U ~Sn.
Transparency No. 3-48
More examples:
Discrete Mathematics Ch 3
Mathematical reasoning
13: n >1 => n can be written as a product of primes.
[hint: use 2nd form of MI]
14. for every k >11, there are m,n s.t. k = 4m + 5n.
Transparency No. 3-49
Discrete Mathematics Ch 3
Mathematical reasoning
3.3 Recursive definitions
Different ways of defining sets of objects
Explicit listing
Suitable for finite objects only.
Define by giving an explicit expression
Ex: F(n) = 2n
recursive (or inductive ) definition
Define value of objects (sequences, functions, sets, ...)
in terms of values of smaller similar ones.
Ex: the sequence 1,2,4,... (an = 2n) can be defined
recursively as follows:
1. a0 = 1;
2. an+1 = 2 x an for n > 0.
Transparency No. 3-50
Recursively defined functions
Discrete Mathematics Ch 3
Mathematical reasoning
To define a function over natural numbers:
specify the value of f at 0 (i.e., f(0))
Given a rule for finding f(n) from f(n-1),..., f(0).
i.e., f(n) = some expression in terms of n, f(n), ..., f(0).
Ex1:
f(n) = 3 if n = 0
= 2f(n-1) +3 if n >0
=> f(0) = 3,
f(1) = 2f(0) +3 = 9
f(2) = 2f(1)+3 = 21,...
This guarantees f be defined for all numbers.
Transparency No. 3-51
Discrete Mathematics Ch 3
Mathematical reasoning
More examples functions
Ex2: The factorial function f(n) = n!
f(0) = 1
f(n) = n f(n-1) for all n > 0.
Recursively defined functions (over N) are well
defined
Pf: Let P(n) = "there is at least one value assigned to f(n)".
Q(n) = "there are at most one value assigned to f(n)".
We show P(n) hold for all n by MI..
basis: P(0) holds.
Ind. : assume p(k) holds for all k ≤ n
=> since f(n+1) can be assigned a value by evaluating the
expr(n,f(0),..,f(n)), where by ind. hyp. all f(i)s (i<n) have been assigned a
value.
The fact that Q(n) holds for all n is trivial, since each f(k) appear at the left
hand side of the definition exactly once. QED
Transparency No. 3-52
More examples:
Discrete Mathematics Ch 3
Mathematical reasoning
Ex5: The Fibonacci number:
f(0) = 0; f(1) = 1;
f(n) = f(n-1) + f(n-2) for n > 1.
==> 0,1,1,2,3,5,8,...
Ex6: Show that f(n) > a n-2 where a = (1+ sqrt(5))/2
whenever n ≥ 3.
Pf: (by MI). Let P(n) = "f(n) > a n-2 ".
Basis: P(3), P(4) holds. An easy check.
Ind.step: (for n >= 3)
If n ≥ 3 => an-1 = a2 an-3 = (a+1) an-3 = an-2 + a n-3.
If n ≥ 4 => by ind. hyp., f(n-1) >an-3, f(n) >an-2
Hence f(n+1) = f(n)+f(n-1) > a n-2 + a n-3 = a n-1. QED
Transparency No. 3-53
Lame's theorem
Discrete Mathematics Ch 3
Mathematical reasoning
a,b: positive integer with a b.
=> #divisions used by the Euclidean algorithm to find gcd(a,b)
5 x #decimal digits in b.
Pf: seq of equations used for finding gcd(a,b)
where r0 = a, r1 = b.
r2 = ro mod r1 0
r3 = r1 mod r2 0
...
rn = rn-2 mod rn-1 0
rn+1 = rn-1 mod rn = 0
i.e., until rn | rn-1 and then gcd(a,b) = rn.
#division used = n. rn 1 = f2
rn-1 2rn 2f2 = f3; rn-2 rn+rn-1 = f2 + f3 = f4
...r2 r3 + r4 fn-1+fn-2=fn; b = r1 r2+r3fn+fn-1 = fn+1.> an-1.
logb > (n-1) log a ~ 0.208 (n-1) > (n-1)/5
n < 1 + 5 log b < 1 + 5 #digit(b). => n 5#digit(b).
Transparency No. 3-54
Recursively defined sets
Discrete Mathematics Ch 3
Mathematical reasoning
Given a universal set U, a subset V of U and a set
of operations OP on U, we often define a subset D
of U as follows:
1. Init: Every element of V is an element of D.
2. Closure: For each operation f in OP, if f:Un->U and
t1,..,tn are objects already known to be in the set D, then
f(t1,..,tn) is also an object of D.
Example: The set S = {3n | n >0} N can be defined
recursively as follows:
1. Init: 3 ∈ S (i.e., V = { 3 } )
2. closure: S is closed under +.
i.e., If a,b ∈ S then so are a+b . (OP = {+})
Transparency No. 3-55
Notes about recursively defined sets
Discrete Mathematics Ch 3
Mathematical reasoning
1. The definition of D is not complete (in the sense that there
are multiple subsets of U satisfying both conditions.
Ex: the universe U satisfies (1) and (2), but it is not
Our intended D.
2. In fact the intended defined set
3': D is the least of all subsets of U satisfying 1 & 2, or
3'': D is the intersection of all subsets of U satisfying 1 & 2
or
3''': Only objects obtained by a finite number of applications
of rule 1 & 2 are elements of D.
3. It can be proven that 3',3'',and 3''' are equivalent.
4. Hence, to be complete, one of 3',3'' or 3''' should be
appended to condition 1 & 2, though it can always be
omitted(or replaced by the adv. inductively, recursively) with
such understanding in mind.
Transparency No. 3-56
Proof of the equivalence of 3',3'' and 3'''
Discrete Mathematics Ch 3
Mathematical reasoning
D1: the set obtained by 1,2,3'
D1 satisfies 1&2 and any S satisfies 1&2 is a superset of
D1.
D2: the set obtained by 1,2,3''.
D2 = the intersection of all subsets Sk of U satisfying 1&2.
D3: the set obtained by 1,2,3'''.
For any x ∈ U, x ∈ D3 iff there is a sequence
x1,...,xm = x, such that for each xi (i = 1.m) either
(init: ) xi ∈ V or
(closure:) there are f in OP and t1,...tn in {x1,..,xi-1} s.t.
xi = f(t1,..,tn).
pf: 1. D2 satisfies 1&2 and is the least of all sets satisfying
1&2 , Hence D1 exists and equals to D2.
2.1 D3 satisfies 1 & 2.[ by ind.]
2.2 D3 is contained in all sets satisfying 1 & 2 [by ind.]
Hence D3 = D2.
Transparency No. 3-57
Example:
Discrete Mathematics Ch 3
Mathematical reasoning
Ex 7': The set of natural numbers can be defined
inductively as follows:
Init: 0 in N.
closure: If x in N, then x' in N.
=> 0, 0',0'',0''',... are natural numbers
(unary representation of natural numbers)
Transparency No. 3-58
Induction principles III (structural induction)
Discrete Mathematics Ch 3
Mathematical reasoning
D: a recursively defined set
P; a property about objects of D.
To show that P(t) holds for all t in D, it suffices to show that
1. basis step: P(t) holds for all t in V.
2. Ind. step: For each f in OP and t1,..,tn in D, if P(t1),...,P(tn)
holds, then P(f(t1,..,tn)) holds, too.
Show the correctness of structural induction.
Pf: assume not correct. => NP = {t ∈ D | P(t) does not hold} is
not empty. => ∃ x ∈ NP s.t. ∃ a derivation x1,..xn of x and all
xi (i<n) ∉ NP.
=> If n =1, then x1 = x ∈ V (impossible)
Else either n > 1 and x ∈ V (impossible, like n=1)
or n > 1, and x=f(t1,.,tn) for some {t1,..,tn} in {x1,..xn-1}
and P holds for all tks => P(x) holds too => x ∉ NP, a
contradiction. QED.
Transparency No. 3-59
MI is a specialization of SI
Discrete Mathematics Ch 3
Mathematical reasoning
Rephrase the SI to the domain N, we have:
To show P(t) holds for all t ∈ N, it suffices to show that
Init: P(0) holds
Ind. step: [OP={ ‘ }]
for any x in N, If P(x) holds than P(x') holds.
Notes:
1. The above is just MI.
2. MI is only suitable for proving properties of natural
numbers; whereas SI is suitable for proving properties of
all recursively defined sets.
3. The common variant of MI starting from a value c ≠ 0 ,1
is also a special case of SI with the domain
D = {c, c+1, c + 2, … }
Transparency No. 3-60
well-formed arithmetic expressions
Discrete Mathematics Ch 3
Mathematical reasoning
Ex: (2 +x), (x + (y/3)),... (ok)
x2+, xy*/3 ... (no)
Let Vr = {x,y,..,} be the set of variables,
M = numerals = finite representations of numbers
OP = {+,-,x,/,^}
U = the set of all finite strings over Vr U M U OP U {(,)}.
The set of all well-formed arithmetic expressions (wfe) can be
defined inductively as follows:
1. Init: every variable x in Vr and every numeral n in M is a wfe.
2. closure: If A, B are wfe, then so are (x+y), (x-y), (x * y),
(x / y) and (x ^ y).
Note: "1 + x " is not a wfe. Why ?
Transparency No. 3-61
More examples:
Discrete Mathematics Ch 3
Mathematical reasoning
Ex9: Wff (well-formed propositional formulas)
PV: {p1,p2,.. } a set of propositional symbols.
OP = {/\, \/, ~, -> }
U = the set of all finite strings over PV U OP U {(,)}
Init: every pi in PV is a wff
closure: If A and B are wffs, then so are
(A/\B), (A \/B), (A->B), ~A.
Ex10: [strings]
S: an alphabet
S*: the set of finite strings over S is defined inductively
as follows:
1. Init: e is a string.
2. closure: If x is a string and a a symbol in S, then a·x is a
string.
Transparency No. 3-62
Discrete Mathematics Ch 3
Mathematical reasoning
Ex11: Recursively define two functions on S*.
len : S* -> N s.t. len(x) = the length of the string x.
basis: i(e) = 0
Ind. step: for any x in S and a in S, len(ax) = len(x) + 1.
· : S* x S* S* s.t. x · y = the concatenation of x and y.
Basis: e · y = y for all string y.
recursive step: (a · z) · y = a · (z · y) for all symbols a and
strings z,y.
Prove properties of len(-) on S*:
Ex12: show that len(x · y) = len(x) +len(y) for any x,y ∈ S*.
By SI on x. Let P(x) = "len(xy) = len(x) +len(y)".
Basis: x = e. => x · y = y => len(x · y) = len(y) = len(e) + len(y).
Ind. step: x = az
len(x · y) = len((a · z) · y) = len((a · (z · y)) = 1 + len(zy)
= 1+ len(z) + len(y) =l(x) +l(y).
Transparency No. 3-63
Where we use Recursion
Discrete Mathematics Ch 3
Mathematical reasoning
Define a domain
numbers, lists, trees, formulas, strings,...
Define functions on recursively defined domains
Prove properties of functions or domains by
structural induction.
compute recursive functions
--> recursive algorithm
Ex:
len(x){ // x : a string
if x = e then return(0)
else return(1+ l(tl(x))) }
Transparency No. 3-64
3.4 Recursive algorithm
Discrete Mathematics Ch 3
Mathematical reasoning
Definition: an algorithm is recursive if it solve a
problem by reducing it to an instance of the same
problem with smaller inputs.
Ex1: compute an where a ∈ R and n ∈ N.
Ex2: gcd(a,b) a, b ∈ N, a > b
gcd(a,b) =def if b = 0 then a
else gcd(b, a mod b).
Ex: show that gcd(a,b) will always terminate.
Comparison b/t recursion and iteration
Recursion: easy to read, understand and devise.
Iteration: use much less computation time.
Result: programmer --> recursive program -->
compiler --> iterative program --> machine.
Transparency No. 3-65
3.5 Program correctness
Discrete Mathematics Ch 3
Mathematical reasoning
After designing a program to solve a problem, how can
we assure that the program always produce correct
output?
Types of errors in a program:
syntax error --> easy to detect by the help of compiler
semantic error --> test or verify
Program testing can only increase our confidence about
the correctness of a program; it can never guarantee that
the program passing test always produce correct output.
A program is said to be correct if it produces the correct
output for every possible input.
Correctness proof generally consists of two steps:
Termination proof :
Partial correctness: whenever the program terminates,
it will produce the correct output.
Transparency No. 3-66
Discrete Mathematics Ch 3
Mathematical reasoning
Program verification
Problem:
what does it mean that a program produce the
correct output (or results)?
By specifying assertions (or descriptions) about the
expected outcome of the program.
Input to program verifications:
Pr : the program to be verified.
Q : final assertions (postconditions), giving
the properties that the output of the program
should have
P : initial assertions(preconditions) , giving
the properties that the initial input values are
required to have.
Transparency No. 3-67
Hoare triple:
Discrete Mathematics Ch 3
Mathematical reasoning
P,Q; assertions
S: a program or program segment.
P {S} Q is called a Hoare triple, meaning that
S is partially correct (p.c.) w.r.t P,Q,i.e., whenever P
is true for I/P value of S and terminates, then Q is
true for the O/P values of S.
Ex1: x=1 {y := 2; z := x+ y} z = 3 is true. Why ?
Ex 2: x = 1 { while x > 0 x++ } x = 0 is true. why?
Transparency No. 3-68
Discrete Mathematics Ch 3
Mathematical reasoning
Typical program constructs:
1. assignment: x := expr
x := x+y-3
2. composition: S1;S2
Execute S1 first, after termination, then execute S2.
3. Conditional:
3.1 If <cond> then S
3.2 If <cond> then S1 else S2.
4. Loop:
4.1 while <cond> do S
4.2 repeat S until <cond>
// 4.3 do S while <cond> …
Other constructs possible, But it can be shown that
any program can be converted into an equivalent
one using only 1,2,3.1 and 4.1
Transparency No. 3-69
Assignment rule
Discrete Mathematics Ch 3
Mathematical reasoning
P[x/expr] {x := expr } P
P[x/expr] is the result of replacing every x in P by the
expression expr.
ex: P = "y < x /\ x + z = 5" => P[x/3] = “y < 3 /\ 3+z = 5".
Why correct?
consider the variable spaces
(...,x,...) == x := expr ==> (..., expr,...) |= P
Hence if P[x/expr] holds before execution, P will hold after
execution.
Example: Q {y := x+y} x > 2y + 1 => Q = ?
(xb,yb) ==>{ya := xb+yb} ==>(xb,xb+yb) = (xa,ya) |= P(xa,ya) =def
‘’xa > 2ya +1’’
=> (xb,yb) |= Q = P(xa,ya)[xa/xb;ya/xb+yb]
= P(xb,xb+yb) “xb > 2(xb+yb) +1”
Transparency No. 3-70
Composition rules:
Discrete Mathematics Ch 3
Mathematical reasoning
Splitting programs into subprograms and then show that
each subprogram is correct.
The composition rule:
P {S1} Q
x = 0 { x:= x+2} ?
Q {S2} R
? { x := x-1} x > 0
--------------------------------------------------------P {S1;S2} R
x=0 {x:= x+2; x:= x -1} x > 0
Meaning:
Forward reading:
Backward reading: to prove P{S1;S2}Q, it suffices to find
an assertion Q s.t. P{S1}Q and Q {S2}R.
Problem: How to find Q ?
Transparency No. 3-71
Example:
Discrete Mathematics Ch 3
Mathematical reasoning
Show that x =1 {y := 2; z := x +y} z = 3
x = 1 {y := 2; z := x+y} z = 3
------------------------------------------------------- x=1 {y := 2} ?
? {z := x+y} z = 3
Transparency No. 3-72
Discrete Mathematics Ch 3
Mathematical reasoning
Classical rules
Classical rules:
P => P1
P1 {S} Q
---------------------P {S} Q
P {S} Q1
Q1 => Q
----------------------P{S} Q
P => P1
P1 {S} Q1
Q1 => Q
------------------------P {S} Q
Examples:
x = 1 => x+1>1
x+1>0 {x := x + 1} x > 0
x+1>1 { x := x + 1 } x > 1
x > 0 => x ≠ 0
----------------------------------- ----------------------------------x = 1 { x := x + 1} x > 1
x+1 > 0 {x := x+1 } x ≠ 0
Transparency No. 3-73
Conditional rules
Discrete Mathematics Ch 3
Mathematical reasoning
P /\ <cond> {S1} Q
P /\~ <cond> {S2} Q
-----------------------------------------------P {if <cond> then S1 else S2 } Q
T /\ x > y => x x x x {y:=x} y x
-----------------------------------------------P /\ <cond> {S} Q
T /\ x>y {y := x} y x
P /\~<cond> => Q
~ x > y =>
yx
---------------------------------------------------------------P {if <cond> then S} Q
T {if x > y then y := x} y x
Transparency No. 3-74
Discrete Mathematics Ch 3
Mathematical reasoning
While-loop rules
Loop invariant:
A statement P is said to be a loop invariant of a while
program: While <cond> do S, if it remains true after each
iteration of the loop body S.
I.e., P /\ <cond> {S} P is true.
While rule:
P /\ <cond> {S} P
---------------------------------------------------- P {while <cond> do S} P /\ ~<cond>
Issues:
How to find loop invariant P?
Most difficulty of program verification lies in the finding of
appropriate loop invariants.
Transparency No. 3-75
While loop example
Discrete Mathematics Ch 3
Mathematical reasoning
Show that
n>0 { i:= 1; f := 1;
while i < n do (i := i+1 ; f := f x i ) } f = n!
To prove the program terminates with f = n!, a loop invariant is
needed.
Let p = "i ≤ n /\ f = i!"
First show that p is a loop invariant of the while program
i.e., i n /\ f = i! /\ i < n { i:= i+1; f:= f x i} i n /\ f=i!
Transparency No. 3-76
Discrete Mathematics Ch 3
Mathematical reasoning
while loop example(cont'd)
n > 0 ---
i:= 1;
------ i ≤ n
f := 1; ------ p = "i ≤ n /\ f = i! “
while i < n do (i := i+1 ; f := f x i )
------ p /\ ~ i < n ==> i=n /\ f = i!
==> f = n!
Transparency No. 3-77
Another example:
Discrete Mathematics Ch 3
Mathematical reasoning
Ex5:Show that the following program is correct:
Procedure prod(m,n: integer) : integer
1. If n < 0 then a := -n
else a := n ; ------ a = |n|
2. k := 0 ; x := 0
3. while k < a do
--- p = "x = mk /\ k ≤ a" is a loop
x := x + m;
invariant.
k := k+1
enddo
--- x = mk /\ k ≤ a /\ ~k<a => k=a /\ x=ma
=> x = m |n|
4. If n < 0 then prod := -x => prod = - m |n| = mn
else prod := x
=> Prod = m |n| = mn
---- prod = mn. Hence the program is [partially] correct !
Note: to be really correct, we need to show that the program
will eventually terminates.
Transparency No. 3-78