"Calculemus" — tiếng Latinh nghĩa là "hãy cùng tính" — là khẩu hiệu gắn với giấc mơ của Gottfried Wilhelm Leibniz (1646–1716): dựng một ngôn ngữ ký hiệu cho mọi khái niệm và một phép tính cho suy luận, để khi hai người bất đồng, họ chỉ việc ngồi xuống tính như tính sổ sách, sai ở đâu thấy ngay ở đó. Giấc mơ ấy không thành theo nghĩa đầy đủ, nhưng nó gieo mầm cho logic ký hiệu, cho số nhị phân và, xa hơn, cho máy tính.
Leibniz là ai và vì sao ông mơ như vậy
Leibniz sinh ở Leipzig, làm việc phần lớn đời cho triều đình Hanover, vừa là nhà ngoại giao, luật gia, nhà sử học, vừa là một trong hai người (cùng Newton, độc lập với nhau) sáng lập phép tính vi tích phân. Ông viết rất nhiều nhưng in rất ít: phần lớn ý tưởng logic của ông nằm trong thư từ và bản thảo.
Năm 1666, khi mới khoảng hai mươi tuổi, ông công bố Dissertatio de arte combinatoria (Luận về nghệ thuật tổ hợp). Cảm hứng một phần đến từ Ramon Llull, một học giả thế kỷ 13 từng chế những vòng tròn xoay để ghép các khái niệm cơ bản với nhau. Ý của Leibniz: nếu mọi khái niệm phức đều được ghép từ một số khái niệm đơn giản, thì có thể liệt kê, tổ hợp và kiểm tra chúng một cách có hệ thống — như phân tích một số thành tích các số nguyên tố.
Hai nửa của giấc mơ
Leibniz tách dự án làm hai phần:
- Characteristica universalis (ký tự phổ quát): một hệ ký hiệu trong đó mỗi khái niệm đơn giản có một dấu riêng, khái niệm phức được viết bằng cách ghép dấu. Nhìn vào ký hiệu là thấy cấu tạo của khái niệm, như nhìn công thức hoá học là thấy phân tử gồm nguyên tử nào.
- Calculus ratiocinator (phép tính suy luận): những quy tắc thao tác trên các ký hiệu ấy, để suy luận trở thành biến đổi máy móc, ai làm cũng ra cùng một kết quả.
Trong một bản viết khoảng năm 1685, ông diễn đạt đại ý: cách duy nhất để sửa lập luận của ta là làm cho nó cụ thể như lập luận của các nhà toán học, để thấy lỗi ngay bằng mắt; và khi người ta tranh cãi, chỉ cần nói "hãy cùng tính" là biết ai đúng. Đó là nguồn gốc của chữ "Calculemus" mà các sách lịch sử logic hay nhắc.
Cần nói cho đúng: Leibniz không tuyên bố đã làm được điều đó. Ông để lại một chương trình, nhiều bản nháp dở dang và vài thử nghiệm cụ thể — thử nghiệm đáng chú ý nhất là dùng số.
Thử nghiệm năm 1679: mỗi khái niệm một con số
Trong các bản thảo năm 1679, Leibniz thử gán cho mỗi khái niệm đơn giản một số nguyên tố, và cho khái niệm phức tích của các số thành phần. Ví dụ của chính ông: "động vật" = 2, "có lý trí" = 3, vậy "người" (động vật có lý trí) = 2 × 3 = 6. Câu "mọi người là động vật" đúng vì 6 chia hết cho 2 — khái niệm "động vật" nằm trong khái niệm "người".
Quy tắc chung của thử nghiệm: "Mọi S là P" đúng khi số của S chia hết cho số của P. Hãy chạy thử với các hình tứ giác (ví dụ tự đặt để minh hoạ):
| Khái niệm | Thành phần | Số |
|---|---|---|
| Tứ giác | hình bốn cạnh | 2 |
| (đặc điểm) có bốn góc vuông | — | 3 |
| (đặc điểm) có bốn cạnh bằng nhau | — | 5 |
| Hình chữ nhật | tứ giác có bốn góc vuông | 2 × 3 = 6 |
| Hình thoi | tứ giác có bốn cạnh bằng nhau | 2 × 5 = 10 |
| Hình vuông | tứ giác có bốn góc vuông và bốn cạnh bằng nhau | 2 × 3 × 5 = 30 |
Kiểm từng câu:
- "Mọi hình vuông là hình chữ nhật": 30 : 6 = 5, chia hết → đúng. Khớp với hình học.
- "Mọi hình vuông là hình thoi": 30 : 10 = 3, chia hết → đúng.
- "Mọi hình chữ nhật là hình vuông": 6 không chia hết cho 30 → không suy ra được. Khớp: hình chữ nhật dài 4, rộng 2 không phải hình vuông.
- "Mọi hình thoi là hình chữ nhật": 10 không chia hết cho 6 → không suy ra được. Khớp.
- Thứ vừa là hình chữ nhật vừa là hình thoi: bội chung nhỏ nhất của 6 và 10 là 30 — đúng là số của hình vuông. Phép "và" giữa hai khái niệm thành phép lấy bội chung nhỏ nhất.
Đẹp đến bất ngờ. Nhưng hệ gặp khó ngay khi có phủ định. Cho "tam giác" = "hình ba cạnh" = 7. Câu "không hình thoi nào là tam giác" đúng, nhưng phép chia không nói được điều đó: không có gì trong số 10 và số 7 cấm tạo ra số 70 — một "hình vừa bốn cạnh vừa ba cạnh". Hệ số học thuần cần thêm thông tin về những khái niệm loại trừ nhau. Leibniz chuyển sang gán mỗi khái niệm một cặp số có dấu để xử lý câu phủ định và câu "một số", nhưng hệ vẫn chưa trọn vẹn và ông bỏ dở.
Bài học còn nguyên giá trị: muốn biến suy luận thành tính toán, phải xử lý phủ định và các từ "mọi", "một số" thật chặt. Hai thế kỷ sau, Boole làm được phần "và, hoặc, không" bằng đại số; Frege làm được phần "mọi, một số" bằng lượng từ.
Bao hàm khái niệm, lý do đầy đủ và luật Leibniz
Đằng sau thử nghiệm số là một quan niệm triết học: trong mọi câu khẳng định đúng, khái niệm vị ngữ nằm trong khái niệm chủ ngữ. "Hình vuông có bốn góc vuông" đúng vì "có bốn góc vuông" là một thành phần của "hình vuông". Từ đó Leibniz rút ra hai nguyên tắc nổi tiếng:
- Nguyên tắc lý do đầy đủ: không gì đúng mà không có lý do vì sao nó đúng. Giáo trình Logic học đại cương đưa nguyên tắc này vào làm quy luật thứ tư của tư duy (đã có bài riêng trong danh mục Logic học đại cương của wiki này).
- Luật Leibniz về đồng nhất: hai thứ là một khi có thể thay thế nhau trong mọi câu mà không làm thay đổi giá trị đúng sai. Ngày nay phát biểu thành: nếu a = b thì mọi tính chất của a cũng là tính chất của b. Đây là quy tắc mà mọi học sinh dùng mỗi khi "thế x = 3 vào biểu thức".
Năm 1686, trong bản thảo Generales Inquisitiones de Analysi Notionum et Veritatum (Khảo cứu chung về phân tích khái niệm và chân lý), Leibniz đi khá xa trong việc xây một phép tính các khái niệm với phép "ghép" và quan hệ "chứa trong", gần với đại số mà Boole công bố năm 1847.
Số nhị phân và máy tính bằng bánh răng
Leibniz cũng nghĩ tới phần "máy". Từ những năm 1670 ông thiết kế một máy tính cơ học làm được cả bốn phép tính, dùng một bộ phận nay gọi là trống bậc (bánh xe Leibniz). Máy chạy chưa ổn định, nhưng nguyên lý trống bậc được dùng trong máy tính cơ học suốt hai thế kỷ sau.
Ông nghiên cứu hệ đếm cơ số 2 và năm 1703 gửi Viện Hàn lâm Khoa học Paris bài giải thích số học nhị phân (in năm 1705). Trong hệ này chỉ có hai chữ số 0 và 1. Ví dụ: 13 = 8 + 4 + 1 = 1·2³ + 1·2² + 0·2¹ + 1·2⁰, viết là 1101. Thử ngược: 1·8 + 1·4 + 0·2 + 1·1 = 13. Leibniz say mê sự giản dị ấy, và khi một người quen là Joachim Bouvet ở Trung Hoa gửi sơ đồ 64 quẻ Kinh Dịch, ông nhận ra cách xếp quẻ có thể đọc như dãy số nhị phân từ 0 tới 63.
Ông không nối nhị phân với logic thành mạch điện — việc đó phải đợi Claude Shannon năm 1937 (có bài riêng trong danh mục Logic và máy tính của wiki này).
Số phận các bản thảo
| Năm | Sự kiện |
|---|---|
| 1666 | Leibniz công bố Dissertatio de arte combinatoria |
| 1679 | Các bản thảo thử gán số nguyên tố cho khái niệm |
| Khoảng 1685 | Bản viết có đoạn "hãy cùng tính" |
| 1686 | Bản thảo Generales Inquisitiones |
| 1703–1705 | Bài về số học nhị phân gửi và in ở Paris |
| 1716 | Leibniz mất ở Hanover; phần lớn bản thảo logic chưa in |
| 1879 | Frege nhắc tới Leibniz trong lời tựa Begriffsschrift |
| 1901, 1903 | Louis Couturat xuất bản La Logique de Leibniz và tập bản thảo chưa in, giới logic mới thấy hết tầm vóc dự án |
Vì bản thảo nằm im gần hai thế kỷ, Boole, De Morgan, Frege phải tự làm lại nhiều thứ Leibniz đã chạm tới. Còn câu hỏi lớn nhất của giấc mơ — có một thủ tục máy móc quyết định được mọi câu hỏi logic hay không — đến thế kỷ 20 nhận câu trả lời là "không" đối với logic vị từ, qua công trình của Church và Turing năm 1936.
Dùng vào đâu
- Hiểu máy tính: số nhị phân, phép tính trên ký hiệu, kiểm tra suy luận bằng máy — ba thứ Leibniz mơ tới đều có mặt trong chiếc điện thoại bạn đang cầm.
- Học toán: luật thay thế "a = b thì thế được" là luật Leibniz; ý "và giữa khái niệm là bội chung nhỏ nhất" là bài tập hay để hiểu ước, bội.
- Học tiếp: mục "Leibniz's Logic" của Stanford Encyclopedia of Philosophy; cuốn The Universal Computer của Martin Davis kể dòng ý tưởng từ Leibniz tới Turing bằng lời dễ đọc.
Câu hỏi thường gặp
Calculemus nghĩa là gì?
Calculemus là tiếng Latinh, nghĩa là "hãy cùng tính". Leibniz dùng hình ảnh này để diễn tả ước mơ rằng một ngày tranh cãi sẽ được giải quyết bằng tính toán trên ký hiệu, như cộng một cột số, thay vì cãi nhau bằng lời.
Characteristica universalis là gì?
Đó là ngôn ngữ ký hiệu phổ quát Leibniz hình dung, trong đó mỗi khái niệm đơn giản có một dấu riêng và khái niệm phức được ghép từ các dấu. Đi kèm là calculus ratiocinator, phép tính để suy luận trên các dấu ấy. Leibniz chỉ để lại chương trình và những thử nghiệm dở dang.
Leibniz có phát minh ra số nhị phân không?
Leibniz không phải người đầu tiên chạm tới ý đếm bằng hai ký hiệu, nhưng ông là người trình bày số học nhị phân đầy đủ và công bố nó ở châu Âu, trong bài in năm 1705 ở Paris. Ông cũng nhận ra cách xếp 64 quẻ Kinh Dịch có thể đọc như dãy số nhị phân.
Vì sao giấc mơ của Leibniz không thành?
Thứ nhất, phân tích mọi khái niệm thành khái niệm đơn giản là việc không làm xong được. Thứ hai, thử nghiệm bằng số của ông không xử lý tốt phủ định và các câu "một số". Thứ ba, thế kỷ 20 chứng minh không có thủ tục máy móc nào quyết định được mọi câu của logic vị từ.
Luật Leibniz là gì?
Luật Leibniz nói hai thứ là một khi chúng thay được cho nhau trong mọi câu mà không đổi giá trị đúng sai. Phát biểu hiện đại: nếu a = b thì mọi tính chất của a cũng là của b. Đây là cơ sở của phép thế mà học sinh dùng hằng ngày khi giải toán.