✖

Bài tập logic mệnh đề

Bài này trình bày một số công thức và các phép gán giá trị chân lí có thể có của chúng bằng phương pháp lập bảng.

Ví dụ thứ nhất

Ta tìm xem khi nào công thức sau đúng: ϕ = (p ∧ q) ∨ ¬q. Ghi vào bảng các biến mệnh đề p và q:

pq11100100

Tiếp theo, thêm vào bảng phần thứ nhất của công thức (p ∧ q), mệnh đề phủ định ¬q và sau đó là cả công thức:

pqp∧q¬qϕ11100100

Bây giờ ta tính các giá trị ở cột thứ ba, đó là một phép hội đơn giản, và đồng thời ở cột phủ định, chỉ cần ghi giá trị ngược với giá trị ở cột thứ hai:

pqp∧q¬qϕ1110100101000001

Cuối cùng, ta tính các giá trị ở cột cuối, tức là cả công thức. Theo bảng của ta, đó là phép tuyển “giữa cột thứ ba và cột thứ tư”. Kết quả:

pqp∧q¬qϕ11101100110100000011

Ví dụ thứ hai

Cùng yêu cầu, công thức khác: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). Ta thấy công thức chứa các biến mệnh đề p, q và mệnh đề phủ định của chúng. Vì vậy, trước hết ta lập bảng gồm hai biến và các mệnh đề phủ định của chúng:

pq¬p¬q1100100101100011

Tiếp theo, ta thêm các công thức p ∧ ¬q và ¬p ⇒ q. Đánh giá chúng không khó, vì bảng đã có giá trị chân lí của từng mệnh đề lẫn mệnh đề phủ định của chúng. Bảng có dạng:

pq¬p¬q(p∧¬q)(¬p⇒q)110001100111011001001100

Cuối cùng còn phải đánh giá cả công thức, tức là mệnh đề tương đương giữa hai cột cuối:

pq¬p¬q(p∧¬q)(¬p⇒q)ϕ1100010100111101100100011001

Ví dụ thứ ba

Ví dụ thứ ba phức tạp hơn một chút: có ba biến mệnh đề, nên bảng dài hơn. Công thức như sau: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).

Vì có ba biến mệnh đề nên có tất cả 8 phép gán giá trị chân lí:

pqr111110101100011010001000

Tiếp theo, ta làm giống như ví dụ trước: đánh giá từng cột ở cả 8 hàng. Bảng đầy đủ có dạng:

pqr¬p(p⇒q)(¬p∨q)¬(p⇒q)(r⇔(¬p∨q))ϕ111011010110011000101000100100000111011111010010111000001111010000111000

Ví dụ thứ tư

Lần này đề bài không phải là một công thức có sẵn mà là một bài toán có lời văn. Ba người bạn được mời đến một bữa tiệc sinh nhật. Họ không ưa nhau lắm nên đặt ra điều kiện để chịu đi dự tiệc. Tên của họ là Minh, Hùng và Nam. Các quy tắc như sau:

  1. Nếu Minh đi thì Hùng cũng đi.
  2. Nam đến dự tiệc, hoặc nếu Minh đến thì Hùng không đến.
  3. Nam đến khi và chỉ khi Minh không đến hoặc Hùng không đến.

Câu hỏi: cả ba người có thể cùng đến dự tiệc không? Nếu không thì những ai có thể đến mà không vi phạm quy tắc nào?

Trước hết, ta phải viết các mệnh đề bằng lời ở trên thành biến mệnh đề và công thức. Kí hiệu các biến mệnh đề là M, H và N (Minh, Hùng, Nam); mỗi biến ứng với một mệnh đề kiểu “Minh đi dự tiệc”. Quy tắc thứ nhất có thể viết lại thành: M ⇒ H, tức là “nếu M thì H”, hay “nếu Minh đi dự tiệc thì Hùng đi dự tiệc”.

Quy tắc thứ hai viết lại như sau. Quy tắc bắt đầu bằng “Nam đến dự tiệc, hoặc…”, nên rõ ràng ta cần phép tuyển. Tạm thời ta viết: N ∨ … Phần tiếp theo của câu nói: “nếu Minh đến thì Hùng không đến”. Đó là mệnh đề kéo theo, trong đó ở vế phải còn phải dùng phép phủ định: “Hùng không đến” = ¬H. Cả mệnh đề kéo theo có dạng: M ⇒ ¬H. Ghép mệnh đề này vào phép tuyển ở trên: N ∨ (M ⇒ ¬H).

Quy tắc thứ ba viết lại như sau: bắt đầu bằng “Nam đến khi và chỉ khi”. Đó là mệnh đề tương đương: N ⇔ … Tiếp theo là “Minh không đến hoặc Hùng không đến”, viết thành: ¬M ∨ ¬H. Ghép lại: (N ⇔ (¬M ∨ ¬H)).

Bây giờ ghi tất cả các công thức vào bảng và tính giá trị:

MHN(M⇒H)(N∨(M⇒¬H))(N⇔(¬M∨¬H))111110110101101011100010011111010110001111000110

Câu hỏi là cả ba bạn có thể cùng đến bữa tiệc không. Câu trả lời nằm ở hàng thứ nhất. Hàng này ứng với trường hợp cả ba bạn cùng đi, thể hiện bằng ba số 1 ở ba cột đầu. Mọi điều kiện có được thoả mãn không? Điều kiện thứ nhất được thoả mãn (cột thứ tư), điều kiện thứ hai cũng vậy (cột thứ năm), nhưng điều kiện cuối thì không (cột cuối), ở đó là số 0. Nghĩa là nếu cả ba cùng đi thì điều kiện thứ ba không được thoả mãn.

Vậy ta tìm những hàng mà ở các vị trí ứng với điều kiện (tức là ba cột cuối) toàn là số 1. Số 1 nghĩa là điều kiện được thoả mãn. Ta thấy điều này xảy ra trong hai trường hợp: khi Hùng và Nam đi còn Minh không đi, và khi chỉ có Nam đi.

Cũng có thể tính bằng cách thêm vào bảng công thức ϕ là phép hội của cả ba điều kiện. Công thức có dạng: ϕ = ((M ⇒ H) ∧ (N ∨ (M ⇒ ¬H)) ∧ (N ⇔ (¬M ∨ ¬H))). Công thức này diễn tả đúng điều ta muốn: mọi công thức (mọi điều kiện) đều được thoả mãn. Khi đó bảng có dạng:

MHN(M⇒H)(N∨(M⇒¬H))(N⇔(¬M∨¬H))ϕ11111001101010101011010001000111111010110000111110001100

Thêm một số bài tập về phương pháp lập bảng

Tôi đã viết một chương trình tự động lập cả bảng cho một công thức bất kì, nên phải tận dụng nó cho đáng. Dưới đây là thêm một số công thức đã giải:

Công thức: ((a ∧ ¬b) ∨ (b ∧ (b ⇒ a))). Bảng chân trị:

ab(a∧¬b)(b∧(b⇒a))((a∧¬b)∨(b∧(b⇒a)))11011101010100000000

Công thức: (a ∨ ¬a) ⇔ (b ∧ ¬b). Bảng chân trị:

ab(a∨¬a)(b∧¬b)((a∨¬a)⇔(b∧¬b))11100101000110000100

Công thức: ¬(a ∨ b) ⇔ (¬b ∧ ¬a). Bảng chân trị:

ab¬(a∨b)(¬b∧¬a)(¬(a∨b)⇔(¬b∧¬a))11001100010100100111

Công thức: ϕ = (¬p ⇔ (q ∧ r)) ⇒ (p ∨ ¬(p ∧ q)). Bảng chân trị:

pqr(q∧r)¬(p∧q)(¬p⇔(q∧r))(p∨¬(p∧q))ϕ1111001111000111101011111000111101111111010010110010101100001011

Công thức: ϕ = ¬(p ⇔ ¬q) ∧ (r ⇒ ¬p) ∧ (p ∨ r). Bảng chân trị:

pqr¬(p⇔¬q)(r⇒¬p)(p∨r)ϕ11110101101111101001010001100110110010010000111110001100

Mục lục: Logic mệnh đề, Tính đúng sai của công thức, Bài tập logic mệnh đề