Trong logic mệnh đề, câu "nếu p thì q" (viết p → q, gọi là phép kéo theo) chỉ sai trong đúng một trường hợp: p đúng mà q sai. Vì "2 + 2 = 5" là câu sai, câu "nếu 2 + 2 = 5 thì trăng vuông" không thể rơi vào trường hợp đó, nên được tính là đúng — đúng một cách "rỗng". Phép kéo theo của logic không đòi hai vế có quan hệ nhân quả hay liên quan gì đến nhau; nó chỉ cam kết một điều: không có chuyện vế trước đúng mà vế sau sai.
Bảng chân trị của phép kéo theo
Ghi Đ là đúng, S là sai. Dấu ¬ là "không", ∧ là "và", ∨ là "hoặc".
| Dòng | p | q | p → q | Ví dụ: "nếu x > 3 thì x > 1" |
|---|---|---|---|---|
| 1 | Đ | Đ | Đ | x = 5: 5 > 3 và 5 > 1 |
| 2 | Đ | S | S | Không có x nào: không số nào lớn hơn 3 mà không lớn hơn 1 |
| 3 | S | Đ | Đ | x = 2: 2 không lớn hơn 3, nhưng 2 > 1 |
| 4 | S | S | Đ | x = 0: 0 không lớn hơn 3, cũng không lớn hơn 1 |
Đọc bảng thành lời: "p → q" nghĩa là không có chuyện p đúng mà q sai. Viết bằng ký hiệu, p → q tương đương ¬(p ∧ ¬q), và theo luật De Morgan cũng tương đương ¬p ∨ q — "p sai, hoặc q đúng".
Câu "nếu 2 + 2 = 5 thì trăng vuông" có p sai, q sai: rơi vào dòng 4, nên đúng. Câu "nếu 2 + 2 = 5 thì trăng tròn" rơi vào dòng 3, cũng đúng. Câu "nếu 2 + 2 = 4 thì trăng vuông" rơi vào dòng 2 — câu duy nhất trong ba câu bị tính là sai.
Vì sao dòng 3 và dòng 4 phải là "đúng"
Đây là chỗ người mới học hay thấy vô lý: vế trước sai rồi thì "nếu… thì…" có nghĩa gì nữa đâu, sao lại gọi là đúng? Có hai cách trả lời, một thực tế, một gần như chứng minh.
Lý do thứ nhất: toán học cần như vậy
Ai cũng đồng ý câu "với mọi số thực x, nếu x > 3 thì x > 1" là đúng. Một câu "với mọi x" đúng khi nó đúng với từng giá trị của x. Vậy nó phải đúng với x = 2 (dòng 3) và với x = 0 (dòng 4). Nếu định nghĩa phép kéo theo sai ở dòng 3 hoặc dòng 4, câu toán học hiển nhiên này bỗng thành sai. Mọi định lý dạng "nếu… thì…" trong toán đều cần các dòng 3, 4 được tính là đúng.
Lý do thứ hai: thử hết các phương án khác
Mọi người đều đồng ý hai dòng đầu: p đúng, q đúng thì "nếu p thì q" không bị vi phạm (Đ); p đúng, q sai thì bị vi phạm (S). Còn lại hai dòng, mỗi dòng có hai lựa chọn, tổng cộng bốn phương án:
| Dòng 3 (S, Đ) | Dòng 4 (S, S) | Cột kết quả | Hoá ra là phép nào |
|---|---|---|---|
| S | S | Đ S S S | p ∧ q — "và" |
| S | Đ | Đ S S Đ | p ↔ q — "khi và chỉ khi" |
| Đ | S | Đ S Đ S | chỉ là q, p chẳng có vai trò gì |
| Đ | Đ | Đ S Đ Đ | p → q |
Ba phương án đầu biến "nếu p thì q" thành một thứ khác hẳn: thành "p và q", thành quan hệ hai chiều, hoặc thành câu chỉ nói về q. Chỉ phương án cuối giữ được tính một chiều riêng của câu điều kiện. Nếu muốn một phép nối chỉ phụ thuộc vào đúng sai của hai vế, thì đây là lựa chọn duy nhất hợp lý.
Đúng một cách rỗng
Câu có vế trước sai gọi là đúng một cách rỗng (vacuously true). Ví dụ quen thuộc: "Mọi học sinh trong căn phòng trống này đều đeo kính" — không có học sinh nào để làm câu sai, nên câu đúng. Cũng vì vậy mà trong toán, tập rỗng là tập con của mọi tập: "mọi phần tử của ∅ đều thuộc A" đúng một cách rỗng.
Hai hệ quả nghe như nghịch lý
Từ bảng chân trị suy ra hai điều mà chữ "nếu" của đời thường không chấp nhận:
- Một câu sai kéo theo mọi câu. Nếu p sai thì p → q đúng với mọi q. "Nếu cá biết leo cây thì mai được nghỉ học" — đúng theo logic.
- Một câu đúng được mọi câu kéo theo. Nếu q đúng thì p → q đúng với mọi p. "Nếu mèo thích ăn chuối thì nước biển mặn" — đúng theo logic.
Viết bằng công thức: ¬p → (p → q) và q → (p → q) đều là hằng đúng. Người ta gọi đây là "nghịch lý của kéo theo vật chất", nhưng chúng không phải nghịch lý theo nghĩa chặt (không sinh ra mâu thuẫn); chúng chỉ cho thấy phép kéo theo của logic hẹp hơn, "khô" hơn chữ "nếu" khi nói chuyện. Khi nói "nếu… thì…", người ta thường hàm ý có một mối liên hệ — nguyên nhân, quy luật, lời hứa. Phép kéo theo vật chất bỏ hết những thứ đó, chỉ giữ lại cái lõi: không cho phép trước đúng sau sai.
Ba cách hiểu "nếu… thì…"
| Cách hiểu | "Nếu p thì q" đúng khi | "Nếu 2 + 2 = 5 thì trăng vuông" |
|---|---|---|
| Kéo theo vật chất (logic mệnh đề cổ điển) | Không phải p đúng mà q sai | Đúng (rỗng) |
| Kéo theo chặt (C. I. Lewis) | Không thể có p đúng mà q sai, trong mọi tình huống khả dĩ | Đúng, vì 2 + 2 = 5 là bất khả trong mọi tình huống |
| Quan hệ liên quan, nhân quả (lời nói thường) | p là lý do, nguyên nhân hay căn cứ của q | Vô nghĩa hoặc sai |
Cách hiểu thứ hai do nhà logic Mỹ Clarence Irving Lewis phát triển từ những năm 1910, và trở thành một nguồn của logic tình thái. Thú vị là nó vẫn chấp nhận câu "nếu 2 + 2 = 5 thì trăng vuông", vì một điều bất khả thì kéo theo chặt mọi điều. Muốn loại hẳn kiểu câu này phải dùng các hệ logic liên quan (relevance logic), phát triển nửa sau thế kỷ 20, đòi hai vế phải có chung nội dung.
Câu điều kiện phản thực ("giá mà… thì…") và lời hứa "nếu… thì…" của người lớn với trẻ con lại là chuyện khác nữa, thuộc mảng logic trong lời nói hằng ngày.
Cuộc tranh cãi đã có từ thời cổ đại
Ở Hy Lạp cổ đại, khoảng năm 300 TCN, Philo — thường được gọi là Philo nhà biện chứng — đã đưa ra cách hiểu giống hệt bảng chân trị ngày nay: câu điều kiện chỉ sai khi bắt đầu từ cái đúng mà kết thúc ở cái sai. Thầy của ông, Diodorus Cronus, đòi chặt hơn: câu điều kiện đúng khi không bao giờ, ở bất kỳ thời điểm nào, vế trước đúng mà vế sau sai. Sextus Empiricus về sau có ghi lại rằng nhà thơ Callimachus đùa: đến lũ quạ trên mái nhà cũng đang kêu quác quác về chuyện câu điều kiện nào là đúng. Hơn hai nghìn năm sau, logic hiện đại theo lựa chọn của Philo cho logic mệnh đề cơ bản, còn những cách hiểu chặt hơn được làm thành các hệ logic riêng.
Bài tập
Câu nào đúng, câu nào sai theo phép kéo theo vật chất?
- "Nếu 7 là số chẵn thì 7 chia hết cho 2." Đáp án: Đúng (rỗng) — vế trước sai.
- "Nếu 3 > 2 thì 3 < 2." Đáp án: Sai — vế trước đúng, vế sau sai.
- "Nếu 5 là số lẻ thì 5 là số nguyên tố." Đáp án: Đúng — cả hai vế đúng, dù tính lẻ không phải lý do khiến 5 nguyên tố (thử với 9: lẻ mà không nguyên tố — nên câu "mọi số lẻ đều nguyên tố" thì sai).
- "Với mọi số tự nhiên n, nếu n chia hết cho 4 thì n chia hết cho 2." Đáp án: Đúng — không có n nào chia hết cho 4 mà không chia hết cho 2. Các n như 6 (dòng 3) hay 7 (dòng 4) không làm câu sai.
- Câu "nếu p thì q" đang sai. Biết được gì về p và q? Đáp án: Biết chắc p đúng và q sai — dòng duy nhất làm phép kéo theo sai.
Dùng vào đâu
- Đọc định lý toán: một định lý "nếu… thì…" chỉ hứa về những đối tượng thoả giả thiết; nó im lặng về phần còn lại.
- Lập trình và kiểm thử: các ràng buộc kiểu "nếu đơn hàng đã thanh toán thì phải có mã giao dịch" được kiểm đúng theo bảng trên — đơn chưa thanh toán không vi phạm gì.
- Đọc điều khoản: một điều khoản "nếu… thì…" không vi phạm khi điều kiện không xảy ra.
- Học tiếp: modus ponens và modus tollens — hai quy tắc dùng phép kéo theo; và hằng đúng, nơi các "nghịch lý" ở trên hiện ra như công thức.
Câu hỏi thường gặp
Phép kéo theo là gì?
Phép kéo theo p → q ("nếu p thì q") là phép nối logic chỉ sai khi p đúng và q sai; ba trường hợp còn lại đều đúng. Nó tương đương với "không p hoặc q".
Vì sao "nếu 2 + 2 = 5 thì trăng vuông" lại đúng?
Vì vế trước sai, nên câu không thể rơi vào trường hợp duy nhất làm phép kéo theo sai (trước đúng, sau sai). Câu như vậy gọi là đúng một cách rỗng. Định nghĩa này cần thiết để các định lý "với mọi x, nếu… thì…" trong toán được đúng.
Phép kéo theo có phải là quan hệ nhân quả không?
Không. Trong logic mệnh đề, p → q chỉ phụ thuộc vào đúng sai của p và q, không đòi p là nguyên nhân hay lý do của q. "Nếu 5 lẻ thì nước biển mặn" là câu đúng dù hai vế chẳng liên quan.
Kéo theo vật chất và kéo theo chặt khác nhau thế nào?
Kéo theo vật chất chỉ cần trên thực tế không có chuyện vế trước đúng mà vế sau sai. Kéo theo chặt, do C. I. Lewis đề xuất, đòi điều đó không thể xảy ra trong mọi tình huống khả dĩ. Kéo theo chặt mạnh hơn và được nghiên cứu trong logic tình thái.
Khi nào câu "nếu p thì q" sai?
Chỉ khi p đúng và q sai. Biết một câu điều kiện sai là biết chắc vế trước đúng, vế sau sai.