You are on page 1of 12

BÀI 2: LOGIC VỊ TỪ VÀ SUY LUẬN TOÁN HỌC

Hai vấn đề quan trọng xuất hiện trong toán học là khi nào một suy luận toán
học là đúng? Có thể dùng phương pháp nào để chứng minh các suy luận toán học?
Định lý là một phát biểu có thể chỉ ra là đúng. Chúng ta thể hiện một định lý là đúng
bằng một dãy các mệnh đề tạo thành một suy luận mà ta gọi là sự chứng minh. Để
xây dựng cách chứng minh cần có các phương pháp rút ra những mệnh đề mới từ
những mệnh đề cũ.
Các phương pháp chứng minh là rất quan trọng không chỉ bởi vì chúng thường
xuyên được dùng để chứng minh các định lý toán học mà còn vì chúng được áp dụng
nhiều trong tin học. Chẳng hạn đó là sự kiểm tra an toàn của một hệ điều hành, xây
dựng luật suy diễn trong trí tuệ nhân tạo…
Do vậy nắm vững kỹ thuật chứng minh là vô cùng cốt yếu trong cả toán học, tin học.
2.2 Các phương pháp suy luận toán học
Ví dụ 1:
Chứng minh mệnh đề phức (p  (p  q))  q là hằng đúng
Giải:
Bảng chân lý:
p q pq p  (p  q) (p  (p  q))  q
T T T T T
T F F F T
F T T F T
F F T F T
Từ bảng chân lý ta thấy giá trị của mệnh đề (p  (p  q))  q luôn đúng với bất
kỳ các tổ hợp của mệnh đề thành phần
Đây là cơ sở của quy tắc suy luận Modus Ponens được viết như sau:
p giả thiết
pq
q kết luận
Ký hiệu ”  ” đọc là ”vậy thì”
Mệnh đề Modus Ponens phát biểu: Nếu cả mệnh đề kéo theo và giả thiết của
nó là đúng thì kết luận của nó là đúng
Ví dụ 2:
Cho 2 mệnh đề giả thiết: p là “hôm nay tuyết rơi”, p  q là “nếu hôm nay
tuyết rơi thì chúng ta đi trượt tuyết. Từ hai giả thiết đúng ta suy ra kết luận “hôm nay
chúng ta đi trượt tuyết”
p “hôm nay tuyết rơi”
1
pq ” nếu hôm nay tuyết rơi thì chúng ta đi trượt tuyết”
q “hôm nay chúng ta đi trượt tuyết”
Ví dụ 3:
Cho mệnh đề giả thiết p là: “n chia hết cho 3”, p  q là ”nếu n chia hết cho 3 thì n2
chia hết cho 9”. Từ hai giả thiết đúng ta suy ra kết luận “n2 chia hết cho 9”
p “n chia hết cho 3”
pq “nếu n chia hết cho 3 thì n2 chia hết cho 9”
q “n2 chia hết cho 9”
Bảng các quy tắc suy luận:
Stt Quy tắc Hằng đúng Tên gọi
1 p p  (p  q) Luật cộng
 pq

2 pq (p  q )  p Luật rút gọn


p
3 p (p  (p  q))  q Modus Ponens
pq
q
4 q Modus Tollens
( q  (p  q))  p
pq
 p
5 pq ((p  q)  (q  r))  (p  r) Tam đoạn luận giả định
qr
 pr
6 p q p )q Tam đoạn luận tuyển
((p  q ) 
p
q

Ví dụ 4: Cho giả thiết “Bây giờ trời quá nắng và hanh”. Quy tắc suy luận nào là cơ
sở của suy diễn “Bây giờ trời hanh”
Giải:
Giả sử p  q là câu “Bây giờ trời quá nắng và hanh”, p là câu “Bây giờ trời
quá nắng”. Sử dụng luật rút gọn ta được câu “Bây giờ trời hanh”
pq

2
p

Ví dụ 5: Cho giả thiết “Bình học giỏi Toán”. Quy tắc suy luận nào là cơ sở của suy
diễn “Bình học giỏi Toán hoặc Bình học giỏi Tin”
Giải:
Giả sử p là câu “Bình học giỏi Toán”, q là câu “Bình học giỏi Tin”.
Từ giả thiết p sử dụng luật cộng ta có suy diễn “Bình học giỏi Toán hoặc Bình học
giỏi Tin”
p
 pq

Ví dụ 6: Cho giả thiết “Nếu hôm nay trời mưa thì chúng ta không đi chơi”, và giả
thiết “Nếu hôm nay không đi chơi thì ngày mai sẽ đi chơi”. Quy tắc suy luận nào là
cơ sở của suy diễn sau: “Nếu hôm nay trời mưa thì ngày mai sẽ đi chơi”.
Giải:
Giả sử p là câu: “hôm nay trời mưa”, q là câu “hôm nay chúng ta không đi chơi”
r là câu: “ngày mai sẽ đi chơi”
Từ hai giả thiết đã cho dùng tam đoạn luận giả định ta có suy diễn “Nếu hôm nay
trời mưa thì ngày mai sẽ đi chơi”.
pq
qr
 pr
2.3 Các phương pháp chứng minh định lý
a. Phương pháp chứng minh rỗng
Cho bảng chân lý
p q pq
T T T
T F F
F T T
F F T
Nhận xét: Từ bảng chân lý giả thiết p là F khi đó p  q luôn T
Phương pháp chứng minh rỗng: chứng minh p  q ta chỉ cần chỉ ra p là F (bất
kể giá trị của q là T hay F)
Ưu điểm: Chứng minh này dùng để thiết lập các định lý phát biểu rằng phép kéo
theo là đúng cho tất cả các số nguyên dương (dạng  n P(n) với P(n) là hàm mệnh
đề)
3
Ví dụ 1:
Chỉ ra rằng mệnh đề P(0) là đúng
Trong đó P(n) là mệnh đề: “nếu n >1 thì n2 >n”
Giải:
Thật vậy P(0) là mệnh đề: “nếu 0 > 1 thì 02 >0”
Ta thấy giả thiết 0 >1 luôn F do vậy mệnh đề P(0) luôn đúng
b. Phương pháp chứng minh tầm thường
Cho bảng chân lý
p q pq
T T T
T F F
F T T
F F T
Nhận xét: Từ bảng chân lý kết luận q là T khi đó p  q luôn T
Phương pháp chứng minh tầm thường: chứng minh p  q ta chỉ cần chỉ ra q là T (bất
kể giá trị của p là T hay F)
Ưu điểm: Chứng minh này dùng khi chứng minh các trường hợp đặc biệt của định
lý và trong quy nạp toán học.
Ví dụ 2:
Chỉ ra rằng mệnh đề P(0) là đúng
Trong đó P(n) là mệnh đề: “nếu a,b là 2 số nguyên dương và a > b thì an  bn “
Giải:
Thật vậy P(0) là mệnh đề: “nếu a,b là 2 số nguyên dương và a > b thì a0  b0 “
Ta thấy kết luận a0  b0 luôn T do vậy mệnh đề P(0) luôn đúng
c. Phương pháp chứng minh trực tiếp
Cho bảng chân lý
p q pq
T T T
T F F
F T T
F F T
Nhận xét: Từ bảng chân lý giả thiết p là T và kết luận q là T khi đó p  q luôn T
Phương pháp chứng minh trực tiếp: chứng minh p  q bằng cách chỉ ra nếu p là T
thì q cũng phải T (hay tổ hợp p là T và q là F không bao giờ xảy ra)
Để thực hiện chứng minh trực tiếp ta giả sử p là T rồi sử dụng quy tắc suy luận và
các định lí đã được chứng minh để chỉ ra là q là T

4
Ví dụ 3:
Chứng minh trực tiếp định lý sau: ”nếu n là số lẻ thì n2 là số lẻ “
Giải:
Thật vậy: giả sử mệnh đề kéo theo có giải thiết T tức là n lẻ.
Do đó n=2.k+1 với k nguyên nào đó
Suy ra n2 =(2.k+1)2 =4.k2 +4.k+1 =2.(2.k2 +2.k)+1 tức là n2 lẻ
d. Phương pháp chứng minh gián tiếp
Cho bảng chân lý:
p q p q pq q  p
T T F F T T
T F F T F F
F T T F T T
F F T T T T
Nhận xét: Từ bảng chân lý ta có (p  q)  ( q  p )
Phương pháp chứng minh gián tiếp: chứng minh p  q là T bằng cách đi chứng minh
q  p là T, mệnh đề này thường được chứng minh trực tiếp hoặc sử dụng bất
kỳ một kỹ thuật chứng minh nào đó
Ví dụ 4:
Chứng minh gián tiếp định lý: “Nếu 3n +2 là một số lẻ thì n cũng lẻ”
Thật vậy: Giả sử ngược lại kết luận của phép kéo theo là F, tức n chẵn
Khi đó n =2.k, k là một số nguyên
Suy ra 3.n+2= 3.(2.k)+2=2(3.k+1) là số chẵn. Tức giả thiết F. Vậy mệnh đề đã cho
là T
e. Chứng minh phản chứng
Giả sử tìm được mâu thuẫn q sao cho 𝒑
̅ → 𝒒 là đúng, tức là 𝒑
̅ → 𝑭 là đúng. Khi
đó p phải là sai, do đó p là đúng.
Kỹ thuật chứng minh kiểu này được dùng khi có thể tìm được mâu thuẫn dạng 𝒓 ∧ 𝒓̅
tức là mệnh đề kéo theo 𝒑̅ → (𝒓 ∧ 𝒓̅) là đúng
Ví dụ 5:
Chứng minh bằng phản chứng định lý “nếu 3n+2 là lẻ thì n lẻ”
Giải:
Thật vậy, giả sử 3.n+2 là chẵn và n không lẻ tức n chẵn, suy ra n = 2.k
3n+2=3(2k) +2=2(3k+1) chẵn mâu thuẫn với giả thiết n lẻ

5
f. Chứng minh từng trường hợp
 Để chứng minh mệnh đề có dạng (p1  p2  p3...  pn )  q ta dùng hằng đúng
[(p1  p2  p3...  pn )  q]  (p1  q)  ( p2  q)  ...  (pn  q)
Giả thiết là tuyển của các mệnh đề p1 , p2, ...pn có thể được chứng minh bằng mỗi
một trong n mệnh đề kéo theo pi  q với i=1..n một cách riêng rẽ
Ví dụ 6:
Chứng minh mệnh đề sau:
“n là một số nguyên không chia hết cho 3 thì n2  1 (mod 3)”
gọi p: “n không chia hết cho 3”
q: ”n2  1 (mod 3)”
Khi đó p  p1  p2 với p1 là “n  1 (mod 3)”, p2 là “ n  2 (mod 3)”
Cần chứng minh p  q đi chứng minh (p1  q)  (p2  q )
 giả sử p1 đúng tức n =3k+1, k nguyên
n2= (3k+1)2 = 3(3k2 +2k)+1
n2  1 (mod 3) hay p1  q là đúng
 giả sử p2 đúng tức n =3k+2, k nguyên
n2= (3k+2)2 = 3(3k2 +4k+1)+1
n2  1 (mod 3) hay p2  q là đúng
Vì p1  q là đúng, p2  q là đúng nên (p1  q)  (p2  q) là đúng, điều phải chứng
minh.
 Để chứng minh một định lý có dạng quan hệ tương đương tức nó có dạng (p
 q) trong đó p, q là hai mệnh đề ta sử dụng hằng đúng
(p  q)  [(p  q)  (q  p)]
Tức là mệnh đề “p nếu và chỉ nếu q” là đúng nếu cả hai mệnh đề kéo theo “nếu p thì
q “ và “nếu q thì p” được chứng minh
Ví dụ 7:
Chứng minh định lý: ”n là số lẻ nếu và chỉ nếu n2 là lẻ”
Giải:
Với p: “n là số lẻ”
q: “n2 là số lẻ”
 ta chỉ ra p  q là đúng
n lẻ dạng 2k+1 suy ra n2= (2k+1)2 =2(2k2 +2k)+1 là lẻ
 ta chỉ ra q  p là đúng
giả thiết kết luận sai tức p chẵn đặt n=2k
n2 =4k2 chẵn, mâu thuẫn với giả thiết n2 lẻ. Vậy q  p là đúng
 Một định lý biểu đạt nhiều mệnh đề là tương đương. Dạng như sau:
(p1  p2  p3...  pn) hay các mệnh đề có cùng chân lý
6
Cách chứng minh ta dùng hằng đúng
[(p1  p2  p3...  pn) ]  [(p1  p2)  ( p2  p3)...  ( q n-1  pn)]
Ví dụ 8:
Chứng minh n nguyên thì 3 mệnh đề sau là tương đương
p1: “ n mod 3 =1 hoặc n mod 3=2”
p2: “ n không chia hết cho 3”
p3: ” n2  1 (mod 3)”
Giải:
Ta phải đi chứng minh p1  p2; p2  p3 ; p3  p1
 chứng minh trực tiếp p1  p2 là đúng
n mod 3 =1 hoặc n mod 3=2 tức n chia cho 3 dư 1 hoặc dư 2, suy ra n không chia
hết cho 3
 p2  p3
p2: n không chia hết cho 3 tách thành 2 trường hợp p2 = p21  p22
với p21: “n  1 (mod 3)” và p22: “n  2 (mod 3)”
đã được chứng minh ở ví dụ 6
 chứng minh gián tiếp p3  p1

giả sử kết luận sai tức n mod 3=0, suy ra n chia hết cho 3
Đặt n=3k suy ra n2 = 3(3k2), n2  0 (mod 3) trái giả thiết nên p3  p1 đúng
g. Quy nạp toán học
Một số dạng bài toán cần chứng minh bằng quy nạp.
Ví dụ cần tính tổng n số nguyên lẻ đầu tiên bằng n bình phương tức là ta có
n = 1, 2, 3, 4, 5….
n =1, ta có 1=1
n =2 ta có 1+3=22
n =3 ta có 1+3+5=32
n =4 ta có 1+3+5+7=42
n =5 ta có 1+3+5+7+9=52

Quy nạp cần để chứng minh các khẳng định tương tự như trên
Mặt khác quy nạp hay dùng để chứng minh các kết quả về những đối tượng rời rạc:
Chứng minh độ phức tạp thuật toán, tính không đúng đắn của một số loại chương
trình, định lý về đồ thị và cây, lớp rộng các đẳng thức, bất đẳng thức.
Định lý quy nạp phát biểu rằng: p(n) đúng với mọi n nguyên dương trong đó p(n) là
hàm mệnh đề
Hay nói cách khác  n p(n) trong đó n nguyên dương tùy ý
Quá trình chứng minh p(n) là đúng với mọi số nguyên dương n bao gồm 2 bước:
7
 Bước 1: Bước cơ sở
Chỉ ra mệnh đề p(1) là đúng
 Bước 2: Bước quy nạp
Chứng minh phép kéo theo
p(n)  p(n+1) là đúng với mọi số nguyên dương n, trong đó gọi p(n) là giả thiết
quy nạp
Vậy ta đã chứng minh p(n) đúng với mọi n nguyên dương
Theo cách viết của quy tắc suy luận thì kỹ thuật chứng minh này có dạng như sau:
[p(1)   n(p(n)  p(n+1) )]   n p(n)
Giải thích: Trước tiên phải chỉ rõ một trường hợp riêng p(n) khi n =1 là đúng, sau
đó chỉ ra với n nguyên dương tùy ý thì p(n)  p(n+1) là đúng ( tức là p(n+1) không
thể sai khi p(n) đúng
Chú ý: Khi chứng minh không giả sử p(n) đúng với mọi n nguyên dương mà chỉ
chứng tỏ p(n) đúng thì p(n+1) đúng
Trước tiên chỉ ra p(1) đúng, sau đó biết p(2) đúng vì p(1)  p(2), sau đó biết p(3)
đúng vì p(2)  p(3) ... tiếp tục biết p(k) đúng với mọi k nguyên dương tùy ý
Quy nạp có thể mô tả qua một ví dụ vui như sau: Có một hàng n người: người 1,
người 2, ...người n. Giả sử có một tin mật, giả sử nếu một người biết anh ta sẽ nói
cho người đứng sau biết. Khi đó p(n): “người thứ n biết tin mật” là đúng
Vì người 1 biết thì p(1) là đúng, sau đó người 2 biết tức p(2) là đúng (vì p(1)  p(2));
sau đó người 3 biết tức p(3) là đúng (vì p(2)  p(3)); ...
Ví dụ 9:
Chứng minh mệnh đề “tổng n số nguyên dương lẻ đầu tiên là n2 “
p(n): “tổng n số nguyên dương lẻ đầu tiên là n2”
 Bước 1: p(1) đúng vì 1=12
 Bước 2:
Giả sử p(n) đúng ta có 1+3+5+... (2n-1)=n2. Ta chỉ ra p(n+1) đúng tức là
1+3+5+... (2n-1)+ (2n+1)=(n+1)2
Từ giả thiết quy nạp có 1+3+5+... (2n-1)=n2 thay vào ta có
1+3+5+... (2n-1)+(2n+1) = n2+(2n+1)=(n+1)2.
Vậy p(n)  p(n+1) đúng với mọi n nguyên dương
p(1) đúng, p(n)  p(n+1) đúng với mọi n nguyên dương.
Do đó p(n) là đúng với mọi n nguyên dương
Tính đúng đắn của chương trình
Sau khi có thuật toán giải quyết bài toán và viết chương trình thể hiện liệu có
chắc chắn rằng chứng minh luôn cho lời giải đúng? Ngay cả khi chương trình cho

8
kết quả đúng với tất cả đầu vào mẫu cũng không thể luôn tạo ra câu trả lời đúng (trừ
khi tất cả các đầu vào có thể đã được thử)
Cần phải chứng minh rằng chương trình luôn luôn cho đầu ra đúng
Một chương trình được gọi là đúng đắn nếu với mọi đầu vào khả dĩ nó cho ra đầu ra
đúng
-Việc chứng minh tính đúng đắn của chương trình gồm 2 phần
 Phần đầu chỉ ra rằng nếu chương trình kết thúc thì nhận được kết quả đúng
(phần này xác minh tính đúng đắn bộ phần của chương trình)
 Phần 2 chứng tỏ chương trình luôn luôn kết thúc
- Định rõ thế nào là một chương trình cho thuật toán đúng người ta thường dùng hai
mệnh đề sau:
 Khẳng định đầu đưa ra những tính chất mà thông tin đầu cần có
 Khẳng định cuối đưa ra những tính chất mà thông tin đầu ra có
Khi kiểm tra một chương trình cần phải chuẩn bị các khẳng định đầu và khẳng
định cuối thích hợp
Định nghĩa: Đoạn chương trình S được gọi là đúng đắn bộ phận với khẳng định
đầu p và khẳng định cuối q nếu p là đúng với các giá trị vào của S và nếu S kết thúc
thì q là đúng với các giá trị ra của S
Ký hiệu : p{S}q đoạn chương trình S là đúng đắn bộ phận với khẳng định đầu p và
khẳng định cuối q
Ví dụ 1:
Chỉ ra rằng đoạn chương trình
Y:=2;
Z:=x+y;
Là đúng đắn với khẳng định đầu p :x:=1 và khẳng định cuối q: z:=3
Giải
Giả sử p đúng tức x=1 là lúc chương trình bắt đầu
tiếp đó y=2 còn z=x+y tức z=1+2=3
Vậy nếu S kết thúc thì q là đúng
Vậy S là đúng đắn với khẳng định đầu p và khẳng định cuối q hay p{S}q
Các quy tắc suy luận để kiểm chứng chương trình
 Quy tắc phân chia thành dãy các đoạn chương trình (các chương trình con) và
chứng minh mỗi đoạn chương trình là đúng. Quy tắc hợp thành
Giả sử S phân chia thành S1 và S2.
S=S1;S2, S tạo thành bởi S1 tiếp theo là S2
Giả sử tính đúng đắn của S1 với khẳng định đầu p và khẳng định cuối q, tính đúng
đắn của S2 với khẳng định đầu q và khẳng định cuối r
9
Suy ra nếu p đúng và S1 được thi hành và kết thúc thì q là đúng, nếu q đúng và S2
được thi hành và kết thúc thì r là đúng
Vậy nếu p đúng và S=S1;S2 đựoc thi hành và kết thúc thì r đúng
Quy tắc suy luận này là quy tắc hợp thành và diễn đạt như sau:
p{S1}q
q{S2}r
 p{S1;S2}r
 Quy tắc suy luận cho chương trình có chứa câu lệnh điều kiện
Trường hợp 1: Đoạn chương trình dạng
If <điều kiện > then S
Trong đó S: khối lệnh
< điều kiện > là T thì S thực hiện, là F thì S không thực hiện
Để kiểm chứng tính đúng đắn của đợan chương trình này với khẳng định đầu p và
khẳng định cuối q ta phải làm 2 việc:
 Chỉ ra p đúng và điều kiện đúng thì q đúng sau khi S kết thúc
 Chỉ ra p đúng và điều kiện sai thì q đúng (S không được thực hiện).
Quy tắc suy luận
(p  dk){S}q
(p  dk )  q
 p{if dk then S}q

Ví dụ 1:
Chứng tỏ đoạn chương trình
If x>y then y:=x;
là T với khẳng định đầu T và khẳng định cuối y>=x
Thật vậy
Khẳng định đầu T và điều kiện y>x là T thì y:=x, suy ra khẳng định cuối T
Khẳng định đầu T và điều kiện y>x là F tức y<=x, suy ra khẳng định cuối T
Theo quy tắc suy luận đoạn chương trình và T với khẳng định đầu và khẳng định
cuối
Trường hợp 2: Đoạn chương trình dạng
If <điều kiện > then S1 else S2
Trong đó S: khối lệnh
< điều kiện > là T thì S1 thực hiện, là F thì S2 thực hiện
Để kiểm chứng tính đúng đắn của đoạn chương trình này với khẳng định đầu p và
khẳng định cuối q ta phải làm 2 việc:

10
 Chỉ ra p đúng và điều kiện đúng thì q đúng sau khi S1 kết thúc
 Chỉ ra p đúng và điều kiện sai thì q đúng sau khi S2 kết thúc
Quy tắc suy luận
(p  dk){S1}q
(p  dk ){S2}q
 p{if dk then S1 else S2}q
Ví dụ 2:
Chứng tỏ đoạn chương trình
If x<0 then ABS =-x else ABS = x;
là T với khẳng định đầu T và khẳng định cuối ABS= x
Giải:
Khẳng định đầu T và điều kiện x<0 là T thì ABS= -x = x , suy ra khẳng định cuối
T
Khẳng định đầu T và điều kiện x<0 là F tức x>=0, thì ABS=x= x suy ra khẳng định
cuối T
Theo quy tắc suy luận đoạn chương trình và T với khẳng định đầu T và khẳng định
cuối ABS= x
Quy tắc suy luận dùng cho đoạn chương trình có chứa vòng lặp
Trình bày cách chứng minh tính đúng đắn của vòng lặp While
Đoạn chương trình có dạng :
While điều kiện S
S được lặp đi lặp lại cho đến khi nào điều kiện sai
Khái niệm bất biến vòng lặp: Ta gọi một điều khẳng định nào đó là bất biến vòng
lặp nếu nó vẫn còn đúng sau mỗi lần S thi hành
(p  dk){S}p thì p là bất biến vòng lặp
Giả sử p là bất biến vòng lặp, từ đó suy ra p là đúng trước khi chương trình thực
hiện, p và dk là đúng sau khi kết thúc
Quy tắc suy luận có dạng
(p  đk){S}p
 p{while dk S}(p  dk )
Ví dụ 3:
Hãy dùng bất biến vòng lặp chứng tỏ đoạn chương trình
I:=1; gt:=1;
While i<n
Begin
11
I:=i+1;
Gt:=gt*i;
End;
kết thúc với gt:=n! trong đó n là nguyên dương
Giải:
Giải sử p là mệnh đề “gt:=i! và i<=n ”
Chứng minh p là bất biến vòng lặp bằng phương pháp quy nạp toán học
Đầu tiên trước khi vào vòng lặp vì i: = 1, gt:=1=1! và i<=n (vì n nguyên dương) .
Suy ra p là đúng trước khi lặp
Giả sử p đúng và i<n sau khi thực hiện vòng lặp và giả sử vòng lặp while thực hiện
lần nữa
Trước tiên tăng i lên 1 vậy i<=n
Do giả thiết trước khi vào vòng lặp gt=(i-1)! nên khi vào vòng lặp nó sẽ có giá trị là
(i-1)!*i = i!. Vì thế p vẫn đúng
Vậy p là bất biến vòng lặp
Nói cách khác mệnh đề [p  (i<n) ] {S} p là đúng
Vậy thì P{While i<n S}[(i>=n}  p] cũng đúng
Vì vòng lặp kết thúc khi lặp n-1 lần khi đó i=i+1 =(n-1)+1=n và gt=n!

12

You might also like