Đại số mệnh đề
Mục tiêu Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau: - Thế nào là mệnh đề, chân trị của mệnh đề, các phép toán mệnh đề. - Thực hiện được các phép toán mệnh đề. - Hiểu ...
Mục tiêu
Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau:
- Thế nào là mệnh đề, chân trị của mệnh đề, các phép toán mệnh đề.
- Thực hiện được các phép toán mệnh đề.
- Hiểu được các ứng dụng của phép toán logic trong lập trình và trong đời sống hàng ngày.
Kiến thức cơ bản cần thiết
Các kiến thức cơ bản trong chương này bao gồm:
- Kiến thức về phép toán đại số, phép toán hình học cơ bản.
- Có khả năng suy luận.
- Biết lập trình bằng ngôn ngữ Pascal, C
Tài liệu tham khảo
Phạm văn Thiều, Đặng Hữu Thịnh. Toán rời rạc ứng dụng trong tin học. Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội - 1997 (chương 1, trang 6 - 28).
Nội dung cốt lõi
- Định nghĩa mệnh đề, biểu thức mệnh đề.
- Các phép toán
- Ví dụ ứng dụng
- Giới thiệu một số thuật ngữ chuyên dùng
- Tương đương logic và cách chứng minh.
Mổi câu phát biểu là đúng hay là sai được gọi là một mệnh đề.
(Definition proposition: Any statement that is either true or false is called a proposition.)
Ví dụ 1: Các câu xác định dưới đây là một mệnh đề
. 2 + 3 = 5
. 3*4 = 10 .
. Tam giác đều có 3 cạnh bằng nhau
. Washington D.C. là thủ đô của Hoa Kỳ
. Toronto là thủ đô của Canada
Câu xác định "2 + 3 = 5", "Tam giác đều có 3 cạnh bằng nhau" và "Washington D.C. là thủ đô của Hoa Kỳ" là các mệnh đề đúng. Còn các câu xác định "3*4 = 10" và "Toronto là thủ đô của Canada" là các mệnh đề sai.
Như vậy, một mệnh đề có thể là mệnh đề đúng hoặc mệnh đề sai. Hay nói cách khác, một mệnh đề chỉ có thể lựa chọn 1 trong 2 giá trị là đúng hoặc là sai.
Một mệnh đề không thể vừa đúng vừa sai.
Ví dụ 2: Xét các câu phát biểu sau
. Hôm nay là thứ mấy ?
. Một số thực âm không phải là số chính phương
. Hãy đọc kỹ đọan này
. x + 1 = 2
. x + y = z
Câu "Hôm nay là thứ mấy ? " không là mệnh đề vì nó chỉ là một câu hỏi không có giá trị đúng, sai. Câu "Một số âm không phải là số chính phương" có chân trị là đúng nếu xét trên tập họp số thực R nhưng lại có chân trị sai khi xét trên tập họp số phức. Câu "x+1=2" và câu "x+y=z" không phải là mệnh đề vì chúng chẳng đúng cũng chẳng sai bởi các biến trong những câu đó chưa được gán cho một giá trị cụ thể nào.
Giá trị đúng, sai của một mệnh đề được gọi là chân trị của mệnh đề đó. Chân trị của mệnh đề đúng ký hiệu là T (true), chân trị của mệnh đề sai ký hiệu là F (false).
Bảng chân trị của mệnh đề bao gồm các trường hợp đúng, sai có thể xảy ra của mệnh đề đó.
Mục đích của các họat động khoa học là phân biệt các mệnh đề để xác định chân trị của nó. Sự xác định chân trị này dựa vào thực nghiệm và lý luận. Lý luận ở đây là xác định chân trị của mệnh đề bằng cách kết hợp các mệnh đề mà ta đã biết chân trị. Các luật lệ chế ngự cách kết hợp mang tính chính xác của phép toán đại số. Vì thế, chúng ta cần nói đến "".
Trong phép tính mệnh đề, người ta không quan tâm đến ý nghĩa của câu phát biểu mà chỉ chú ý đến chân trị của các mệnh đề. Do đó, khi thực hiện các phép toán mệnh đề thông thường người ta không ghi rõ các câu phát biểu mà chỉ ghi ký hiệu. Các chữ cái sẽ được dùng để ký hiệu các mệnh đề. Những chữ cái thường dùng là P, Q, R,.....
Mệnh đề chỉ có một giá trị đơn (luôn đúng hoặc sai) được gọi là mệnh đề nguyên từ ( atomic proposition ). Các mệnh đề không phải là mệnh đề nguyên từ được gọi là mệng đề phức hợp (compound propositions). Thông thường, tất cả mệnh đề phức hợp là mệnh đề liên kết (có chứa phép tính mệnh đề).
Các phép tính mệnh đề được sử dụng nhằm mục đích kết nối các mệnh đề lại với nhau tạo ra một mệnh đề mới. Các phép toán mệnh đề được trình bày trong chương này bao gồm : phép phủ định, phép hội, phép tuyển, phép XOR, phép kéo theo, phép tương đương.
Phép phủ định (NEGATION)
Cho P là một mệnh đề, câu "không phải là P" là một mệnh đề khác được gọi là phủ định của mệnh đề P. Kí hiệu : ¬ size 12{ neg } {} P ( P¯ size 12{ {overline {P}} } {} ).
Ví dụ : P = " 2 > 0 "
¬ size 12{ neg } {} P = " 2 ≤ 0 "
Bảng chân trị (truth table)
p | ¬ size 12{ neg } {}p |
T | F |
F | T |
Qui tắc: Nếu P có giá trị là T thì phủ định P có giá trị là F.
Phép hội (CONJUNCTION)
Cho hai mệnh đề P, Q. Câu xác định "P và Q" là một mệnh đề mới được gọi là hội của 2 mệnh đề P và Q. Kí hiệu P ^ Q.
Ví dụ : Cho 2 mệnh đề P và Q như sau
P = " 2 > 0 " là mệnh đề đúng
Q = " 2 = 0 " là mệnh đề sai
P ^ Q = " 2> 0 và 2 = 0 " là mệnh đề sai.
Bảng chân trị
p | q | p^q |
T | T | T |
T | F | F |
F | T | F |
F | F | F |
Qui tắc : Hội của 2 mệnh đề chỉ đúng khi cả hai mệnh đề là đúng. Các trường hợp còn lại là sai.
Phép tuyển (DISJUNCTION)
Cho hai mệnh đề P, Q. Câu xác định "P hay (hoặc) Q" là một mệnh đề mới được gọi là tuyển của 2 mệnh đề P và Q. Kí hiệu P V Q.
Ví dụ : Cho 2 mệnh đề P và Q như sau
P = " 2 > 0 " là mệnh đề đúng
Q = " 2 = 0 " là mệnh đề sai
P V Q = " 2 ≥ 0 " là mệnh đề đúng.
p | q | pvq |
T | T | T |
T | F | T |
F | T | T |
F | F | F |
Qui tắc : Tuyển của 2 mệnh đề chỉ sai khi cả hai mệnh đề là sai. Các trường hợp còn lại là đúng.
Phép XOR
Cho hai mệnh đề P và Q. Câu xác định "loại trừ P hoặc lọai trừ Q", nghĩa là "hoặc là P đúng hoặc Q đúng nhưng không đồng thời cả hai là đúng" là một mệnh đề mới được gọi là P xor Q. Kí hiệu P ⊕ size 12{⊕} {} Q.
Bảng chân trị
p | q | p ⊕ size 12{⊕} {}q |
T | T | F |
T | F | T |
F | T | T |
F | F | F |
Phép toán trên bit
Các máy tính dùng các bit để biểu diễn thông tin. Một bit có 2 giá trị khả dĩ là 0 và 1. Bit cũng có thể được dùng để biểu diễn chân trị. Thường người ta dùng bit 1 để biểu diễn chân trị đúng và bit 0 để biểu diễn chân trị sai. Các phép toán trên bit trong máy tính là các phép toán logic. Thông tin thường được biển diễn bằng cách dùng các xâu bit. Ta có định nghĩa xâu bit như sau:
Định nghĩa : Một xâu bit (hoặc xâu nhị phân) là dãy có một hoặc nhiều bit. Chiều dài của xâu là số các bit trong xâu đó.
Ví dụ : 101011000 là một xâu bit có chiều dài là 9
Có thể mở rộng các phép toán trên bit tới các xâu bit. Người ta định nghĩa các OR bit, AND bit và XOR bit đối với 2 xâu bit có cùng chiều dài là các xâu có các bit của chúng là ca1c OR, AND, XOR của các bit tương ứng trong 2 xâu tương ứng. Chúng ta cũng dùng các kí hiệu ^, v, ⊕ size 12{⊕} {} để biểu diễn các phép tính OR bit, AND và XOR tương ứng.
Ví dụ : Tìm OR bit, AND bit và XOR bit đối với 2 xâu sau đây (mỗi xâu được tách thành 2 khối, mỗi khối có 5 bit cho dễ đọc)
01101 10110
11000 11101
11101 11111 OR bit
01000 10100 AND bit
10101 01011 XOR bit
Phép kéo theo (IMPLICATION)
Cho P và Q là hai mệnh đề. Câu "Nếu P thì Q" là một mệnh đề mới được gọi là mệnh đề kéo theo của hai mệnh đề P,Q. Kí hiệu P → Q. P được gọi là giả thiết và Q được gọi là kết luận.
Ví dụ : Cho hai mệnh đề P và Q như sau
P = " tam giác T là đều "
Q = " tam giác T có một góc bằng 60°"
Để xét chân trị của mệnh đề P → Q, ta có nhận xét sau :
- Nếu P đúng, nghĩa là tam giác T là đều thì rõ ràng rằng P → Q là đúng.
- Nếu P sai, nghĩa là tam giác T không đều và cũng không là cân thì dù Q là đúng hay sai thì mệnh đề P → Q vẫn đúng.
Sau đây là bảng chân trị của ví dụ và cũng là bảng chân trị của mệnh đề P →Q.
Qui tắc : mệnh đề kéo theo chỉ sai khi giả thiết đúng và kết luận sai. Các trường hợp khác là đúng.
Từ mệnh đề P → Q, chúng ta có thể tạo ra các mệnh đề kéo theo khác như là mệnh đề Q → P và ¬ size 12{ neg } {}Q → P được gọi là mệnh đề đảo và mệnh đề phản đảo của mệnh đề P → Q.
Ví dụ : Tìm mệnh đề đảo và phản đảo của mệnh đề sau
" Nếu tôi có nhiều tiền thì tôi mua xe hơi"
Mệnh đề đảo là :
" Nếu tôi mua xe hơi thì tôi có nhiều tiền"
Mệnh đề phản đảo là :
" Nếu tôi không mua xe hơi thì tôi không có nhiều tiền"
Phép tương đương (BICONDITIONAL)
Cho P và Q là hai mệnh đề. Câu "P nếu và chỉ nếu Q" là một mệnh đề mới được gọi là P tương đương Q. Kí hiệu P Q. Mệnh đề tương đương là đúng khi P và Q có cùng chân trị.
P Q = (P → Q) ^ (Q → P)
Đọc là : P nếu và chỉ nếu Q
P là cần và đủ đối với Q
Nếu P thì Q và ngược lại
Bảng chân trị
p | q | p ↔ size 12{↔} {}q |
T | T | T |
T | F | F |
F | T | F |
F | F | T |
Biểu thức mệnh đề (LOGICAL CONNECTIVES)
Cho P, Q, R,... là các mệnh đề. Nếu các mệnh đề này liên kết với nhau bằng các phép toán thì ta được một biểu thức mệnh đề.
Chú ý : . Một mệnh đề cũng là một biểu thức mệnh đề
. Nếu P là một biểu thức mệnh đề thì P cũng là biểu thức mệnh đề
Chân trị của biểu thức mệnh đề là kết quả nhận được từ sự kết hợp giữa các phép toán và chân trị của các biến mệnh đề.
Ví dụ : Tìm chân trị của biểu thức mệnh đề ¬ size 12{ neg } {}P ^V (Q ^ R )
Do biểu thức mệnh đề là sự liên kết của nhiều mệnh đề bằng các phép toán nên chúng ta có thể phân tích để biểu diễn các biểu thức mệnh đề này bằng một cây mệnh đề.
Ví dụ : Xét câu phát biểu sau :
" Nếu Michelle thắng trong kỳ thi Olympic, mọi người sẽ khâm phục cô ấy, và cô ta sẽ trở nên giàu có. Nhưng, nếu cô ta không thắng thì cô ta sẽ mất tất cả."
Đây là một biểu thức mệnh đề và phép toán chính là phép hội. Có thể viết lại như sau :
"Nếu Michelle thắng trong kỳ thi Olympic, mọi người sẽ khâm phục cô ấy, và cô ta sẽ trở nên giàu có.
Nhưng,
nếu cô ta không thắng thì cô ta sẽ mất tất cả. "
Cả hai mệnh đề chính trong biểu thức mệnh đề này là mệnh đề phức hợp. Có thể định nghĩa các biến mệnh đề như sau:
P: Michelle thắng trong kỳ thi Olympic
Q: mọi người sẽ khâm phục cô ấy
R: cô ta sẽ trở nên giàu có
S: cô ta sẽ mất tất cả
Biểu diễn câu phát biểu trên bằng các mệnh đề và các phép toán, ta có biểu thức mệnh đề sau : ( P → (Q ^ R)) ^ ( ¬ size 12{ neg } {}P → S)
Biểu diễn câu phát biểu trên thành một cây ngữ nghĩa như sau :
Nếu Michelle thắng trong kỳ thi Olympic, mọi người sẽ khâm phục cô ấy, và cô ta sẽ trở nên giàu có. Nhưng, nếu cô ta không thắng thì cô ta sẽ mất tất cả. Nếu Michelle thắng trong kỳ thi Olympic, mọi người sẽ khâm phục cô ấy, và cô ta sẽ trở nên giàu có. Nếu cô ta không thắng thì cô ta sẽ mất tất cả. AND Michelle thắng trong kỳ thi Olympic Mọi người sẽ khâm phục cô ấy, và cô ta sẽ trở nên giàu có. Cô ta không thắng Cô ta sẽ mất tất cả. Mọi người sẽ khâm phục cô ấy Cô ta sẽ trở nên giàu có. Cô ta sẽ mất tất cả. AND NOT
Ngày nay, logic mệnh đề được ứng dụng nhiều trong các lĩnh vực khác nhau như:
- Viết
- Nói
- Tìm kiếm trên mạng (search engines)
- Toán học
- Các chương trình máy tính (logic in programming)
Do đó, hiểu biết các qui tắc để sử dụng logic là rất hữu ích. Sau đây là một vài ví dụ để chỉ ra các ứng dụng đó.
Ví dụ 1: Logic trong tìm kiếm trên mạng
Đặt vấn đề : Bạn muốn tìm tài liệu trên mạng có liên quan đến hai từ "disc golf". Nếu bạn gõ vào ô tìm kiếm hai từ "disc golf" này, bạn sẽ tìm thấy các tài liệu về disc và các tài liệu về golf nhưng không tìm thấy các các tài liệu về "disc golf".
Cách giải quyết : Bạn chỉ cần gõ vào ô tìm kiếm là "disc AND golf"
Ví dụ 2 : Logic trong lập trình (Logic in programming)
Đặt vấn đề : Bạn muốn đặt điều kiện là nếu 0<x<10 hay x=10 thì tăng x lên 1 đơn vị.
if (0<x<10 OR x=10) x++;
Cách giải quyết : Bạn có thể viết lại câu lệnh như sau
if ( x>0 AND x < = 10 ) x++ ;
Ví dụ 3 : Logic trong cách nói ở gia đình
Đặt vấn đề : Mẹ của bé An nói rằng : "Nếu con ngoan thì con có thể được ăn kem
hoặc ăn bánh bông lan". Bé An hiểu rằng nếu nó ngoan thì nó sẽ được ăn kem và ăn bánh bông lan. Tuy nhiên, mẹ của bé An tức giận vì thật sự bà ta chỉ cho phép nó được ăn một trong hai thứ mà thôi.
Cách giải quyết là mẹ của bé An phải nói như thế này :"Nếu con ngoan thì con sẽ được ăn hoặc là kem hoặc là bánh bông lan nhưng không được ăn cả hai".
Ví dụ 4 : Logic trong tính toán
Đặt vấn đề : Bạn có 3 lần kiểm tra trong lớp học. Nếu bạn đạt được 2 lần điểm A, hoặc chỉ một lần điểm A nhưng không được có một lần nào rớt trong 3 lần kiểm tra đó thì bạn sẽ đạt điểm A cho toàn khóa học. Bạn là người không được siêng năng lắm, vậy thì bạn sẽ chọn cách nào để đạt điểm A cho toàn khóa học ?
Cách giải quyết : Bởi vì điều kiện là OR nên cách giải quyết là bạn có thể đạt 2 điểm A và rớt lần 3, hay là chỉ cần đạt một điểm A và không rớt lần nào. Bạn sẽ lựa chọn đạt một điểm A và không rớt lần nào.
Ví dụ 5 : Logic trong đời sống
Đặt vấn đề: Sau khi nướng 1 chiếc bánh cho 2 đứa cháu trai và 2 đứa cháu gái đến thăm, Dì Nellie lấy bánh ra khỏi lò nướng và để nguội. Sau đó, cô rời khỏi nhà để đến đóng cửa hàng ở gần đó. Lúc trở về thì có ai đó đã ăn 1/4 chiếc bánh và thậm chí còn đặt lại cái dĩa dơ bên phần bánh còn lại. Vì không còn ai đến nhà Dì ngày hôm đó trừ 4 đứa cháu nên Dì biết ngay là 1 trong 4 đứa đã ăn mà chưa được cho phép. Dì Nellie bèn hỏi 4 đứa thì được các câu trả lời như sau:
- Charles : Kelly đã ăn phần bánh
- Dawn : Con không ăn bánh
- Kelly : Tyler ăn bánh
- Tyler : Con không ăn, Kelly nói chơi khi bảo rằng con ăn bánh.
Nếu chỉ 1 trong 4 câu trả lời trên là đúng và chỉ 1 trong 4 đứa cháu là thủ phạm, hãy tìm ra người mà Dì Nellie phải phạt ?
Cách giải quyết : Vì chỉ 1 trong 4 câu trả lời trên là đúng nên chúng ta có thể dùng phép vét cạn để tìm lời giải.
- Giả sử Charles nói đúng nghĩa là Kelly ăn bánh. Ba câu còn lại là sai. Dawn nói "Con không ăn bánh" là sai nghĩa là Dawn có ăn bánh. Vậy có đến 2 người ăn bánh, điều này mâu thuẩn giả thiết, giả sử không được chấp thuận.
- Giả sử Dawn nói đúng nghĩa là Dawn không ăn bánh và 3 câu còn lại là sai. Nhận thấy có mâu thuẩn giữa Kelly và Tyler. Bởi vì Kelly nói "Tyler ăn bánh" là sai nghĩa là Tyler không ăn. Trong khi đó, Tyler lại nói rằng "Con không ăn..." là sai, vậy thực tế là nó có ăn. Giả thuyết này là không chấp nhận được.
- Giả sử Kelly nói đúng nghĩa là Tyler ăn bánh và 3 câu còn lại là sai. Như vậy, cũng có 2 thủ phạm là Kelly và Dawn. Mâu thuẩn giả thiết.
- Giả sử sau cùng là Tyler nói đúng nghĩa là nó không ăn bánh và 3 câu còn lại là sai. Nhận thấy chỉ có một người ăn bánh chính là Dawn. Vậy giả thuyết này là hợp lý và thủ phạm chính là Dawn.
Ví dụ 6 : Logic trong toán học
Đặt vấn đề : Tìm số tự nhiên a biết rằng trong 3 mệnh đề dưới đây có 2 mệnh đề là đúng và 1 mệnh đề là sai.
1/ a + 51 là số chính phương
2/ Chữ số tận cùng của a là 1
3/ a - 38 là số chính phương
Cách giải quyết : Trước hết, chúng ta sẽ phải xác định xem 2 mệnh đề đúng và 1 mệnh đề sai là mệnh đề nào ? Sau đó từ 2 mệnh đề đúng để tìm ra số tự nhiên a.
Số chính phương là số nguyên dương khi lấy căn bậc hai. Do đó, số chính phương có các chữ số tận cùng là 0, 1, 4, 5, 6, 9.
- Nhận thấy giữa mệnh đề 1 và 2 có mâu thuẩn. Bởi vì, giả sử 2 mệnh đề này đồng thời là đúng thì a+51 có chữ số tận cùng là 2 nên không thể là số chính phương. Vậy trong 2 mệnh đề này phải có 1 mệnh đề là đúng và 1 là sai.
- Tương tự, nhận thấy giữa mệnh đề 2 và 3 cũng có mâu thuẩn. Bởi vì, giả sử mệnh đề này đồng thời là đúng thì a-38 có chữ số tận cùng là 3 nên không thể là số chính phương.
Vậy trong 3 mệnh đề trên thì mệnh đề 1 và 3 là đúng, còn mệnh đề 2 là sai.
Với x > 0 và y > 0 . Đặt :
a + 51 = x2
a - 38 = y2
89 = 1.89 = x2 - y2 = ( x + y )( x - y )
Suy ra :
x + y = 1
x - y = 89
(loại vì x, y là nguyên dương nên không thể có x + y = 1)
Hay là :
x + y = 89
x - y = 1
Giải hệ phuơng trình này ta được x = 45 và y = 44. Vậy a = 1974.
Trên đây là vài ví dụ đơn giản. Hy vọng rằng các ví dụ này cho chúng ta thấy được sự quan trọng của logic không chỉ trong toán học, khoa học máy tính mà còn trong cuộc sống hàng ngày.
Định nghĩa Hằng đúng (Tautologie):
Một hằng đúng là một mệnh đề luôn có chân trị là đúng.
Một hằng đúng cũng là một biểu thức mệnh đề luôn có chân trị là đúng bất chấp sự lựa chọn chân trị của biến mệnh đề.
Ví dụ : xét chân trị của biểu thức mệnh đề P v P
Vậy ¬ size 12{ neg } {}PvP là một hằng đúng.
Định nghĩa Hằng sai (Contradiction):
Một hằng sai là một mệnh đề luôn có chân trị là sai.
Một hằng sai cũng là một biểu thức mệnh đề luôn có chân trị là sai bất chấp sự lựa chọn chân trị của biến mệnh đề.
Ví dụ : xét chân trị của biểu thức mệnh đề ¬ size 12{ neg } {}P ^ P
Vậy ¬ size 12{ neg } {}P^P là một hằng sai.
Định nghĩa tiếp liên (Contingency):
Một tiếp liên là một biểu thức mệnh đề không phải là hằng đúng và không phải là hằng sai.
Ví dụ : Tìm chân trị của biểu thức mệnh đề (P ^ Q ) v ¬ size 12{ neg } {}Q
Vậy (P ∧ Q ) v ¬ size 12{ neg } {}Q là một tiếp liên vì nó không phải là hằng đúng và cũng không phải là hằng sai.
Mệnh đề hệ quả
Định nghĩa : Cho F và G là 2 biểu thức mệnh đề. Người ta nói rằng G là mệnh đề hệ quả của F hay G được suy ra từ F nếu F → G là hằng đúng.
Kí hiệu F |→ G
Ví dụ : Cho F = ( P → Q ) ^ ( Q → R )
G = P → R
Xét xem G có là mệnh đề hệ quả của F không ?
Vậy G là mệnh đề hệ quả của F
Nhận xét : Nếu G là hệ quả của F thì khi F là đúng thì bắt bắt buộc G phải đúng. Ngược lại, nếu G là đúng thì chưa có kết luận gì vể chân trị của F.
Tương đương Logic (LOGICALLY EQUIVALENT)
- Định nghĩa 1 : Mệnh đề P và mệnh đề Q được gọi là tương đương logic nếu phép tương đương của P và Q (PQ) là hằng đúng.
- Định nghĩa 2 : Hai mệnh đề P và Q được gọi là tương đương logic nếu và chỉ nếu chúng có cùng chân trị.
- Mệnh đề P và Q tương đương logic được kí hiệu là P ⇔ Q (hay P = Q)
Ví dụ 1 : Cho F = Pv(Q^R)
G = (PvQ) ^ (PvR)
Xét xem hai mệnh đề trên là có tương đương logic không ?
Vậy F và G là tương đương logic hay F=G.
Ví dụ 2: Cho F = P → Q
G = ¬ size 12{ neg } {} (PvQ) Xét xem hai mệnh đề trên là có tương đương logic không ?
Vậy F ⇔ G hay P → Q = (PvQ)
Bảng các tương đương logic thường dùng
Đặt T= hằng đúng, F = hằng sai
Domination laws : luật nuốt
Identity laws : luật đồng nhất
Idempotent laws : luật lũy đẳng
Double negation law : luật phủ định kép
Cancellation laws : luật xóa bỏ
Commutative laws : luật giao hoán
Associative laws : luật kết hợp
Distributive laws : luật phân bố
De Morgan’s laws : luật De Morgan
Ngoài các tương đương thường dùng trong bảng trên, có một tương đương logic khác mà chúng ta cũng sẽ hay gặp trong các chứng minh.
Đó là :
P v ( P ^ Q ) = P
P ^ ( P v Q ) = P
( sinh viên tự chứng minh xem như bài tập )
- Ví dụ 1 : Không lập bảng chân trị, sử dụng các tương đương logic để chứng minh rằng (P ^ Q) → Q là hằng đúng.
- Ví dụ 2 : Chứng minh rằng
- Ví dụ 3 : Áp dụng trong lập trình
Giả sử trong chương trình có câu lệnh sau :
while(NOT(A[i]!=0 AND NOT(A[i]>= 10)))
Ta có thể viết lại câu lệnh này một cách đơn giản hơn bằng cách sử dụng công thức De Morgan.
while( A[i]==0 OR A[i]>= 10)
- Ví dụ 4: Giả sử trong chương trình có câu lệnh sau :
while( (i<size AND A[i]>10) OR (i<size AND A[i]<0) OR NOT (A[i]!= 0 AND NOT (A[i]>= 10)))
Trước hết chúng ta sẽ áp dụng công thức De Morgan để biến đổi biểu thức sau cùng như sau :
while( (i<size AND A[i]>10) OR (i<size AND A[i]<0) OR (A[i]==0 OR A[i]>= 10) )
Sau đó, chúng ta lại sử dụng công thức về tính phân bố của phép hội đối với phép tuyển để rút gọn biểu thức phía trước. Ta có câu lệnh sau cùng là :
while( (i<size AND ( A[i]>10 OR A[i]<0) ) OR (A[i]==0 OR A[i]>= 10) )
Trong chương này sinh viên cần nắm vững định nghĩa mệnh đề cùng các phép toán logic. Ngoài ra, các thuật ngữ chuyên ngành cũng rất quan trọng. Sinh viên phải biết cách áp dụng các phép toán logic trong lập trình. Tuy nhiên, có vấn đề cần lưu ý khi áp dụng tính giao hoán.
Trong một vài ngôn ngữ lập trình, ví dụ như C, Java, C++ thì việc sử dụng tính chất giao hoán có thể không là một ý tưởng hay.
Ví dụ : Nếu A là một mảng có n phần tử thì câu lệnh :
if(i<n AND A[i]==0)
và
if(A[i]==0 AND i<n) là không tương nhau. (Tại sao ?)
(sinh viên tự tìm câu trả lời)
Bài tập đại số mệnh đề
1/ a. Nếu biết mệnh đề P→Q là sai, hãy cho biết chân trị của các mệnh đề sau:
P^Q ¬ size 12{ neg } {}PvQ Q→P
b. Cho các biểu thức mệnh đề sau:
1. (( P^Q)^R) → (SvM)
. 2. ( P^(Q^R)) → (S⊕ size 12{⊕} {}M)
Xác định chân trị của các biến mệnh đề P, Q, R, S, M nếu các biểu thức mệnh đề trên là sai.
2/ Nếu Q có chân trị là T, hãy xác định chân trị của các biến mệnh đề P, R, S nếu biểu thức mệnh đề sau cũng là đúng
(Q → ((¬ size 12{ neg } {}PvR)^¬ size 12{ neg } {}S)) ^ (¬ size 12{ neg } {}S → (¬ size 12{ neg } {}R^Q))
3/ Cho đoạn chương trình sau
a/ if n>5 then n:=n+2 ;
b/ if ((n+2 = 8) or (n-3=6)) then n:= 2*n + 1 ;
c/ if ((n-3=16) and (n div 5=1)) then n:= n + 3 ;
d/ if ((n<>21) and (n-7=15)) then n:= n - 4 ;
e/ if ((n div 5 = 2) or (n+1=20)) then n:=n+1 ;
Ban đầu biến nguyên n được gán trị là 7. Hãy xác định giá trị n trong các trường hợp sau :
- Sau mỗi câu lệnh ( nghĩa là khi qua câu lệnh mới thì gán lại n = 7)
- Sau tất cả các lệnh ( sử dụng kết quả của câu lệnh trước để tính toán cho câu sau)
4/ Cho đoạn chương trình sau :
a/ if n-m = 5 then n:= n-2 ;
b/ if ((2*m=n) and (n div 4 =1) then n:= 4*m - 3 ;
c/ if ((n<8) or (m div 2=2)) then n:= 2*m else m:= 2*n ;
d/ if ((n<20) and (n div 6 =1) then m:= m-n-5 ;
e/ if ((n= 2*m) or (n div 2= 5)) then m:= m+2 ;
f/ if ((n div 3 = 3) and (m div 3 <>1)) then m:= n ;
g/ if m*n <> 35 then n:= 3*m+7 ;
Ban đầu biến nguyên n = 8 và m = 3. Hãy xác định giá trị của m, n trong các trường hợp sau :
- Sau mỗi câu lệnh ( nghĩa là khi qua câu lệnh mới thì gán lại n = 7)
- Sau tất cả các lệnh ( sử dụng kết quả của câu lệnh trước để tính toán cho câu sau)
5/ Vòng lặp Repeat ... Until trong một đoạn chương trình Pascal như sau :
Repeat
........................
Until ((x<>0) and (y>0)) or ( not ((w>0) and (t=3)) ;
Với mỗi cách gán giá trị biến như sau, hãy xác định trong trường hợp nào thì vòng lặp kết thúc.
a/ x= 7, y= 2, w= 5, t= 3
b/ x= 0, y= 2, w= -3, t= 3
c/ x= 0, y= -1, w= 1, t= 3
d/ x= 1, y= -1, w= 1, t= 3
6/ Trong một phiên tòa xử án 3 bị can có liên quan đến vấn đề tài chánh, trước tòa cả 3 bị cáo đều tuyên thệ khai đúng sự thật và lời khai như sau :
Anh A: Chị B có tội và anh C vô tội
Chị B : Nếu anh A có tội thì anh C cũng có tội
Anh C: Tôi vô tội nhưng một trong hai người kia là có tội
Hãy xét xem ai là người có tội ?
7/ Cho các mệnh đề được phát biểu như sau, hãy tìm số lớn nhất các mệnh đề đồng thời là đúng.
a/ Quang là người khôn khéo
b/ Quang không gặp may mắn
c/ Quang gặp may mắn nhưng không khôn khéo
d/ Nếu Quang là người khôn khéo thì nó không gặp may mắn
e/ Quang là người khôn khéo khi và chỉ khi nó gặp may mắn
f/ Hoặc Quang là người khôn khéo, hoặc nó gặp may mắn nhưng không đồng thời cả hai.
8/ Cho a và b là hai số nguyên dương. Biết rằng, trong 4 mệnh đề sau đây có 3 mệnh đề đúng và 1 mệnh đề sai. Hãy tìm mọi cặp số (a, b) có thể có.
1/ a+1 chia hết cho b
2/ a = 2b + 5
3/ a+b chia hết cho 3
4/ a+7b là số nguyên tố
9/ Không lập bảng chân trị, sử dụng các công thức tương đương logic, chứng minh rằng các biểu thức mệnh đề sau là hằng đúng
a/ (P^Q)→P
b/ P→(¬ size 12{ neg } {} P → P)
c/ P→((Q→ (P^Q))
d/ ¬ size 12{ neg } {} (P v ¬ size 12{ neg } {}Q)→¬ size 12{ neg } {} P
e/ ((P→Q) ^ (Q→R)) → (P→R)
10/ Không lập bảng chân trị, sử dụng các công thức tương đương logic, xét xem biểu thức mệnh đề G có là hệ quả của F không ?
a/ F = P^(QvR) G = (P^Q)∨R
b/ F = (P→Q)^(Q→R) G = P→ (Q →R)
c/ F = P^Q G = (¬ size 12{ neg } {}P→Q) v (P→ ¬ size 12{ neg } {}Q)
11/ Tương tự bài tập 9 và 10, chứng minh các tương đương logic sau đây:
a/ (PvQ)^¬ size 12{ neg } {} (¬ size 12{ neg } {}P^Q) ⇔ P
b/ ¬ size 12{ neg } {}(¬ size 12{ neg } {}((PvQ)^R) v ¬ size 12{ neg } {}Q) ⇔ Q^R
c/ ((PvQ) ^ (P ∨ ¬ size 12{ neg } {}Q)) v Q ⇔ PvQ
d/ ¬ size 12{ neg } {}(PvQ) v ((¬ size 12{ neg } {}P ^Q) v ¬ size 12{ neg } {}Q) ⇔ ¬ size 12{ neg } {}(Q^P)
e/ (P→Q) ^ (¬ size 12{ neg } {}Q ^ (R v ¬ size 12{ neg } {}Q)) ⇔ ¬ size 12{ neg } {} (QvP)
f/ P v (P ^ (PvQ) ⇔ P
g/ P v Q v (¬ size 12{ neg } {}P ^ ¬ size 12{ neg } {}Q ^ R) ⇔ PvQvR
h/ ((¬ size 12{ neg } {}P v ¬ size 12{ neg } {}Q) → (P^Q^R ) ⇔ P^Q
i/ P ^ ((¬ size 12{ neg } {}Q → (R^R)) v ¬ size 12{ neg } {} (Q v (R^S) v (R ^ ¬ size 12{ neg } {}S))) ⇔ P
j/ (PvQvR) ^ (P v S v ¬ size 12{ neg } {}Q) ^ (P v¬ size 12{ neg } {}S v R) ⇔ P v (R^(S v ¬ size 12{ neg } {}Q))