Gödel, định Lý “Bất Toàn” Và Các Hệ Quả “triết Học”? - Đông Tác

Tôi xin bắt đầu bằng câu đó, hình như có trên trang Evolit. Lên mạng kiếm tên Einstein ra cả đống, đa phần là liên hệ tới những vấn đề … gì đâu. Kẻ vô thần trích dẫn mấy câu của ổng về thượng đế kiểu Spinoza, người có đức tin thì mê câu “Science without religion is lame …” (“khoa học không có tôn giáo thì khập khiễng…”) Rồi người theo Phật Giáo thì kiếm đâu đó được câu ổng nói (hổng biết thiệt hôn) rằng Phật giáo là tôn giáo vũ trụ (cosmic religion)! Tía ơi. Nhưng cái phần quan trọng nhất mà ổng làm là thuyết Tương Đối thì mấy ai hiểu. Toàn là … nghe đồn !

1951: Albert Einstein, Lewis Strauss, Kurt Godel, Julian Schwinger

Ngưỡng mộ mà ít hiểu là tự nhiên. Lý do giản dị là vì nó khó. Bởi vậy, chúng ta có không hiểu toán học, khoa học thì cũng chẳng có gì đáng buồn hay đáng trách lắm. Tuy thế, nếu có thời gian và thiệt sự nghiêm túc về một vấn đề nào đó, thì ta nên tìm hiểu nó kỹ hơn, dĩ nhiên không thể bằng người làm việc chuyên môn, nhưng ít ra cũng đỡ hiểu sai. Biết vài câu “danh ngôn” của một vĩ nhân nào đó, tuy cũng sướng thiệt, nhưng sao bằng bỏ công ra tìm hiểu việc vĩ nhân làm, để rồi kiến thức đó trở thành một phần tri thức trong ta, há chẳng sướng hơn ru?

Từ những suy nghĩ đó, tôi muốn tìm hiểu 1 vấn đề, đó là Định Lý Godel về sự không đầy đủ của hệ tiên đề (Incompleteness theorem). Trên mạng có người gọi là “Định lý bất toàn” nhưng tôi không thích tên đó, vì nó không rõ ràng, có thể dẫn đến hiểu lầm, tôi sẽ nói về việc hiểu lầm này sau. Nó gồm 2 định lý, từ đây đến cuối bài, ta nói tới định lý Godel nếu không có ghi chú gì thêm thì là chỉ 2 định lý này. Khác với trích dẫn danh ngôn để phán đại, việc tìm hiểu một định lý toán học mệt mỏi hơn nhiều, nhưng cũng vui thú hơn nhiều, dầu ta có cố giới hạn trong giới hạn của một người không chuyên thì nó vẫn đòi hỏi ta tìm hiểu nhiều khái niệm cần thiết có liên quan. Vậy nên mong các bạn kiên nhẫn, chúng ta sẽ cùng nhau đi từng bước.

Con mèo có 9 cái đuôi Mình thử bắt đầu bằng chứng minh con mèo có 9 cái đuôi. — (1) Không có con mèo nào có 8 cái đuôi. — (2) Một con mèo thì hơn không có con mèo 1 cái đuôi. — (3) Vậy, một con mèo có 9 cái đuôi.

Mệnh đề (1) đúng, mệnh đề (2) cũng đúng. Mà mệnh đề (3) được suy ra từ mệnh đề (1) và (2). Vấn đề ở đây rõ ràng là vấn đề ngôn ngữ. Ở mệnh đề (1), ý nói không tồn tại con mèo nào có 8 cái đuôi. Tức là tập hợp số mèo mà mỗi con có 8 cái đuôi là tập hợp rỗng. Mệnh đề (2), ý nói số đuôi trong tập hợp của 1 con mèo hơn số đuôi trong tập hợp của Zero con mèo là 1. Do đó, lẽ ra (1) và (2) không thể suy ra (3). Nhưng vì lý do từ “Không có” dẫn đến hiểu sai, nên mới có chuyện suy ra 1 con mèo có 9 cái đuôi.

Ngôn ngữ mà chúng ta đang xài là thứ ngôn ngữ bậc cao, nó đa tầng đa nghĩa. Chính vì vậy mới có thơ văn, có nói bóng, nói gió, có chơi chữ… Đời sống nhờ vậy mà phong phú, thế nhưng nó cũng có thể dẫn đến vấn nạn trong logic như đã dẫn ở trên. Để tránh nó, tất nhiên các nhà toán học phải cố tìm một cách khác diễn giải logic thật tường minh, không nhầm lẫn. Khi đi học ta vẫn gặp những bài toán rất khó mà ta làm sai, chỉ vì mắc những lỗi logic đơn giản, huống chi những bài toán lớn của nhân lọại. Nhất là khi ta mắc lỗi khi dựa trên những giả định mà ta cho là đúng nhưng nó thực sự chưa được kiểm tra. Kế nữa, khi vấn đề càng phức tạp chúng ta cần thêm công cụ để giúp chúng ta, thứ công cụ “thông minh” đủ để ta “sai vặt”. Mà để sai được, ít nhất ngôn ngữ mà ta bảo nói phải là thứ ngôn ngữ chính xác, khác hẳn thứ ngôn ngữ đa nghĩa của chính chúng ta.

Hệ Hình thức Để thỏa mãn những nhu cầu ấy, các nhà toán học đề nghị một hệ thống có thể giải quyết những vấn đề trên, nôm na là một ngôn ngữ không dựa trên ngữ nghĩa, ngữ cảnh mà dựa trên thuần túy các ký hiệu, logic. Nếu là được thế thì ta có thể “nói chuyện” với các máy tính thông qua hệ thống ngôn ngữ này. Và người ta đã gọi hệ thống đó là Hệ Hình Thức. Ở đây tôi liệt sơ mô tả một hệ hình thức:

  1. Gồm 1 tập hợp gồm các ký hiệu (a, b, c … chẳng hạn) để cấu tạo nên công thức.
  2. Văn phạm hay syntax để sắp xếp các ký hiệu đó lại. Chẳng hạn nếu bạn nào có nhớ môn tin học ở cấp 3 thì sẽ biết thông thường sau 1 câu lệnh có dấu “;”. Đó là văn phạm, nếu thiếu thì trình biên dịch nó sẽ không hiểu và báo lỗi.
  3. Một hệ thống các tiên đề tức là các biểu thức được coi là ĐÚNG, ngược lại là SAI. Lưu ý, ĐÚNG hay SAI ở đây chỉ có ý nghĩa qui ước trong hệ đó, chứ ĐÚNG hay SAI đây không có ý nghĩa trong đời sống của chúng ta. Ví dụ bạn có thể qui ước a là TRUE, như thế NOT a là FALSE. A ở đây thuần túy chỉ là 1 ký hiệu, một hình thức chứ không mang 1 ý nghĩa là con gà, hay con vịt, hay cái gì cả.
  4. Tập hợp các qui tắc biến đổi để biến đổi 1 chuỗi ký tự này thành 1 chuỗi ký tự khác. Ví dụ, ta có thể đặt ra qui tắc biến đổi là hễ gặp số 1 thì thay nó bằng ký tự a. Như vậy nếu ta có 1, ta có thể thay 1 bằng a. Mà như ở trên ta có ví dụ a thì ĐÚNG, do đó 1 ĐÚNG. Người ta gọi 1 là 1 định lý. Và cái cách biến đổi 1 biểu thức để đưa nó về 1 tiên đề như vậy ta gọi là chứng minh.

Ví dụ minh họạ, không xem cũng được:

Ta xây dựng 1 hệ Hình Thức gồm các ký hiệu sau : a. b, c và dấu =. Ta xây dựng văn phạm cho hệ này với 3 ký tự, gồm 2 chữ và 1 dấu ‘=’ ở giữa. Vậy a = b sẽ là 1 biểu thức đúng văn phạm, trong khi chuỗi ab là không đúng văn phạm. Ta xây dựng tiên đề đơn giản a=a là ĐÚNG (TRUE). Kế tiếp, ta xây dựng qui tắc biến đổi như sau: nếu 2 ký tự được nối với nhau trong 1 biểu thức ĐÚNG thì chúng có thể thay thế cho nhau. Ví dụ, nếu b = a thì các ký tự b sẽ thay thế bằng a được, và ngược lại. Giờ ta sẽ dùng hệ hình thức chúng ta vừa xây, để chứng minh định lý sau: Nếu a = b (1) và a = c (2) thì b = c; Chứng minh: Ta viết lại b = c Từ (1) và qui tắc biến đổi ta thay b bằng a, ta được a = c Từ (2) và qui tắc biến đổi ta thay c bằng a, ta được a = a mà a = a là tiên đề của hệ, nên ta có b = c cũng ĐÚNG, tức là nó là một định lý.

Ta thấy nó hoàn toàn tương tự cách ta chứng minh các biểu thức đại số khi còn bé. Ngày xưa ta có thể đặt phương trình kiểu đặt x là số gà, y là số chó chẳng hạn. Các ý nghĩa đó là ta đặt, rồi khi đặt đã xong phương trình, thì x, y đó chỉ đơn giản là các ký hiệu hình thức, và ta có thể biến đổi các biểu thức x, y đó. Việc đặt ẩn số gà là x, số chó là y …. Người ta gọi là Hình Thức Hoá, tức biến đổi một bài toán trong ngôn ngữ của chúng ta thành ngôn ngữ của hình thức để ta có thể làm việc với nó. Lập trình cho máy tính cũng thực chất là như thế. Bạn có 1 bài toán trong đời sống, nó có thể diễn tả bằng ngôn ngữ tiếng Anh, tiếng Việt … Nhưng như thế máy tính nó hổng hiểu. Ta sẽ biến đổi nó thành chuỗi các ký tự tuân theo văn phạm của 1 ngôn ngữ lập trình. Rỗi sau đó máy tính nó sẽ thực hiện các biến đổi dựa và các qui tắc biến đổi và hệ tiên đề của nó.

Chủ nghĩa hình thức và chương trình Hilbert Ta đã hiểu hệ hình thức rồi, và thấy nó hữu dụng ra làm sao. Thì chủ nghĩa hình thức trong toán học là quan điểm cho rằng, toán học của chúng ta học đó thiệt ra là 1 hệ hình thức khổng lồ, tức là ta có thể Hình Thức hoá nó toàn bộ luôn. Nôm na là ta có thể đặt ra được các tiên đề, rồi các qui tắc biến đổi, nếu mà ta làm được thì máy tính nó sẽ giúp chúng ta làm được rất nhiều nếu không muốn nói là hết thảy các định lý đều có thể chứng minh được bằng máy tính. Thế thì chương trình Hilbert là gì? Hilbert là nhà toán học, ổng muốn làm cái chuyện đó, mà cụ thể là ổng ráng làm trong số học trước. Nguyên cái toán học thì nó bự quá, kinh khủng quá, nên ổng đặt mục tiêu … bé bé thôi, đó là cố gắng hình thức hoá cái số học trước.

Các điều kiện cho hệ hình thức của chương trình Hilbert Ở trên ta đã nói tới việc mơ ước xây dựng một hệ hình thức cho số học, mang tên chương trình Hilbert, giờ ta sẽ xem xét để làm được chuyện đó thì hệ hình thức cần có các tính chất gì:

  1. Tính phong phú (Richness) (Hay cõ thể dịch là tính phức tạp cũng được) Hệ đó phải đủ phong phú để diễn tả được các định lý của số học, các tính chất của số học, vì đây là mục tiêu của chương trình. Chứ nếu ta chỉ làm 1 hệ để chơi cờ ca rô thì chắc dễ rồi.
  2. Tính hiệu quả (Effectiveness) Ở đây nó có nghĩa là hệ sẽ bao gồm một tập hữu hạn các tiên đề và qui tắc biến đổi khả dĩ máy tính có thể xử lý được. Và nhờ đó một tính chất nào đó của số học có thể qui về tiên đề sau 1 số bước hữu hạn biến đổi. Nếu số bước là vô hạn thì nó treo luôn máy thì cũng vô dụng. Ở đây ta để ý là số học nếu diễn tả trong logic bậc 1 thì cần tới vô số tiên đề.
  3. Tính nhất quán (consistency) Tính này có nghĩa là nếu một mệnh đề trong xác định là ĐÚNG bằng cách đưa về 1 tiên đề, thì phủ định của nó phải là SAI. Tức là trong hệ, ta không thể nào viết một mệnh đề đúng văn phạm của hệ mà lại vừa ĐÚNG lại vừa SAI.
  4. Tính đầy đủ (Completeness) Tính này nó nghĩa là hệ phải có đủ tiên đề và qui tắc biến đổi sao cho bất kỳ một mệnh đề cũng tồn tại một phép biến đổi để có thể xác định được là ĐÚNG hay SAI. Thí dụ, dễ hiểu là hệ hình học mình học hồi nhỏ, hình học Euclid (Ơ-clit) có năm tiên đề. Tiên đề số năm là tiên đề về đường song song. Nếu ta lấy tiên đề đó ra khỏi hệ thì hệ sẽ trở thành không đầy đủ, vì nó tồn tại ít nhất một mệnh đề mà ta không thể đưa về 4 tiên đề còn lại được. Mệnh đề đó chính là tiên đề thứ 5 này. Tiên đề này không thể chứng minh bằng cách dùng 4 mệnh đề kia.

Hai định lý về sự không đầy đủ của Godel nói cái gì? Tới đây, chúng ta đã biết khá khá về hệ hình thức, về chương trình Hilbert và các mục tiêu của nó, cũng như các tính chất cần thiết của hệ hình thức để đạt mục tiêu, giờ chúng ta có thể xem 2 định lý mà “người đời” thường gọi là “Định lý bất toàn” nói cái gì. Thiệt ra ông Godel ngoài 2 định lý nổi tiếng mang tên Incompleteness Theorems mà người ta hay nhắc, thì trước đó ổng cũng đã tìm ra 2 định lý mang tên Completeness Theorems, tức là dường như ngược lại với 2 định lý sau. Nếu có dịp thì ta sẽ xem xét điều tưởng như là mâu thuẫn này. Nhưng vì bài này chỉ cố gắng nói về Incompleteness Theorems thôi nên ta không quan tâm tới 2 định lý đầu.

Nhìn tên các định lý và các tính chất mà ta bàn ở trên ta thấy các định lý này thực chất là bàn về các tính chất đó.

  1. Định lý 1: Nếu một hệ mà phong phú, và hiệu quả, và nhất quán thì không thể đầy đủ được.
  2. Định lý 2: Trong một hệ S nào đó phong phú, và hiệu quả, thì tồn tại mệnh đề T cụ thể là “S là 1 hệ nhất quán”. Mệnh đề đó không thể chứng minh trong S nếu S là nhất quán thật.

Nghe hơi lộn xộn, nhưng ý nó nói là nếu S là hệ nhất quán, thì nó không thể chứng minh được mệnh đề “S là hệ nhất quán” (Tự nó chứng minh nó là nhất quán) mà như thế thì nó chẳng đầy đủ, vì như đã bàn, nếu S đầy đủ thì mọi mệnh đề trong S phải có thể chứng minh. Nếu có bạn nào tinh ý thì có thể nói ngay: “Nếu không chứng minh được được mệnh đề đó, và ta biết nó ĐÚNG vì S nhất quán thật, thì cứ đưa nó ngay vào hệ tiên đề là xong chứ gì !” Đúng. Nhưng hơi bị tiếc là không được, cái lý do thì ta sẽ bàn khi nói về cách Godel chứng minh định lý của ông.

Mối liên hệ giữa “bài toán sự cố dừng” và Định lý Godel Muốn hiểu hết cách chứng minh của Godel ư? Rất khó, mà cũng chẳng cần thiết mấy cho những kẻ ngọại đạo như chúng ta. Tuy nhiên có 1 con đường vòng để hiểu nó. Đó là thông qua 1 bài toán của khoa học máy tính, bạn có thể nhận ra sự tương đồng vì như đã nói, máy tính là 1 hệ hình thức. Cách ông Godel chứng minh định lý là vì hệ S là đủ phức tạp, phong phú, ông dùng đấy như cơ sở để xây dựng 1 phương pháp ta gọi là g() có tính chất tự nói về mình (chẳng hạn như S là 1 hệ nhất quán, S tự nói về nó), và chứng minh mệnh đề g(S) không thể chứng minh trong S. Ah, nếu g(S) không thể chứng minh trong S thì g(S) phải là 1 tiên đề. Như vậy ta có hệ S + g(S) là 1 hệ mới S2. Và cùng với cách xây dựng như trên ông lại chỉ ra một mệnh đề g(S2) không thể chứng minh trong S2. Nếu bạn cho g(S2) thành 1 tiên đề, để hệ thành S3, thì ông cũng lại tiếp tục dùng g() để xây dựng mệnh đề g(S3) …… Nghĩa là hệ tiên đề luôn luôn thiếu, không thể xây dựng đủ tiên đề được.

Nếu ta nhìn lại, thì cái mệnh đề mà Godel dùng để chứng minh rằng hệ S không thể chứng minh S nhất quá được có đặc tính là tự nói về chính nó. Tương tự như câu chuyện nghịch lý kẻ nói dối.

Kẻ nói dối nói “Đây là lời nói dối”. Mệnh đề này có tính cách là “tự nói về nó” (self reference), và dẫn đến hậu quả là “không thể quyết định được” (undecidable). Nếu đúng là nó là lời nói dối thì nó là lời nói thật, bằng như nó là lời nói thật thì nó là lời nói dối.

Câu nói này nếu có ai nói cho ta nghe trong đời sống, kiểu như “con gái nói có là không, nói không là có…” thì ta hiểu dễ dàng là vì nàng là …con gái. Ta không bị “treo máy”. Nhưng ta đang nói về hệ hình thức, về cái computer, ở đó logic của nó chỉ có 2 trạng thái hoặc ĐÚNG (TRUE) hoặc SAI (FALSE), nên nó sẽ chạy hoài, nôm na ta gọi là “treo máy”. Trong ngôn ngữ lập trình chúng ta có 1 từ để gọi kỹ thuật tự nói về mình đó là Đệ qui (Recursive). Vì tin học giờ đã phổ cập tôi nghĩ ai trong chúng ta cũng qua lớp 12 tin học, nên tôi cũng có thể viết 1 đọạn code minh họạ:

function print () { print(); }

Cái đọạn trên viết bằng javascript bạn có thể test chơi bằng cách cho chạy trên browser nào đó, và thấy nó đứng máy luôn. Ta thấy đặc tính của đọạn code này là nói về chính nó. Function Print đã gọi lại chính nó. Do đó, nó không thể dừng lại được.

Bài toán sự cố dừng Qua chuyện trên ta thấy là các chương trình cho máy tính có thể bị chạy hoài mà không dừng được, không thể đưa ra kết quả được trong toán học gọi là undecidable không thể quyết định được, tương đương với định lý Godel là không đầy đủ vì tồn tại mệnh đề không thể quyết định đúng hay sai được.

Câu hỏi đặt ra là liệu ta có thể viết một chương trình để đọc một chương trình khác xem chương trình kia có thể bị chạy hoài không. Nôm na là chắc các bạn biết cái gọi là trình biên dịch? Trình biên dịch là 1 chương trình dùng dể dịch các chương trình ra mã máy, khi biên dịch nó còn báo cho người viết biết các lỗi văn phạm gặp phải. Nếu giờ đây mà ta biết được cách kiểm tra xem 1 chương trình có thể bị sự số dừng không thì ta sẽ tích hợp vào trình biên dịch để kiểm tra các lỗi viết sai có thể dẫn đến sự số này.

Giả thuyết Goldback đã được kiểm chứng với mọi số chẵn đến 400 tỉ tỉ, nhưng vẫn chưa được chứng minh!

Hơn thế nữa, nó còn giúp ta “chứng minh” được các định lý toán học. Ví dụ giả thuyết Goldbach. Giả thuyết này nói rằng bất kỳ số chẵn nào lớn hơn 2, cũng có thể phân tách thành tổng của 2 số nguyên tố. Giả thuyết này nghe thì đơn giản vậy chứ khó lắm đó, bằng chứng là chưa ai chứng minh được. Giờ giả sử ta có cách đọc 1 chương trình để biết nó có bị sự cố dừng hay không thì ta có thể kiểm tra giả thuyết Goldbach dễ dàng.

Ta viết một chương trình phân tích một số chẵn thành 2 số nguyên tố. Nếu phân tích được thì ta sẽ tiến hành phân tích số chẵn kế tiếp. Có 2 trường hợp xảy ra: 1. Một là ta sẽ tìm thấy 1 số chẵn không thể phân tích được thành tổng của 2 số nguyên tố, thì ta sẽ dừng chương trình và báo giả thuyết Goldbach sai. 2. Hai là chương trình sẽ chạy hoài, tức là rơi vào sự cố dừng. Tức là giả thuyết đó là đúng ! Và nếu ta có một thuật toán để giải quyết bài toán sự cố dừng thì ta sẽ dùng nó để đọc chương trình này. Nếu nó bảo chương trình này sẽ gặp sự cố dừng (tức là không dừng được) thì chứng minh là giả thuyết Goldbach đúng ! Bằng như ngược lại thì sự cố Goldbach sai.

Alan Turing xuất hiện Alan Turing là nhà khoa học nghiên cứu về máy tính. Trong lúc nhiều người ráng công, ráng sức giải bài toán về sự cố không dừng được của máy tính thì Alan Turing nói là đừng mần mất công, vì chẳng thể làm được. Và cách ổng “chứng minh” nó cũng na ná như Godel, nó thế này:

Giả sử chúng ta có một chương trình P có thể đọc bất cứ 1 đọạn code nào và biết ngay là nó có bị rơi vào trường hợp của sự cố dừng không. Nếu đọạn code đó mà dừng được thì P trả ra giá trị TRUE (ĐÚNG), còn bằng như đọạn code có thể rơi vào sự cố không dừng được thì P sẽ trả ra giá trị FALSE (SAI).

Ta viết P(c) = TRUE nếu c dừng được. P(c) = FALSE nếu c không dừng được.

Bây giờ ta có thể viết một chương trình P’ mới dựa trên P như sau, P’ sẽ chạy mãi nếu P(c) = TRUE (nếu c dừng được) P’ sẽ dừng nếu P(c) = FALSE, (nếu c không dừng được) Bây giờ nếu ta cho P’ đọc chính nó thì nó sẽ rơi vào cái bẫy logic như là Godel đã dùng tức là nghịch lý người nói dối. Nếu P’ dừng được, thì P(P’) sẽ là TRUE, mà nếu thế thì P’ sẽ không dừng. Mà nếu P’ không dừng thì P(P’) = FALSE, khi đó P’ sẽ dừng. P’ rơi vào tình trạng không quyết định được.

Nhìn lại định lý Godel từ “bài toán sự cố dừng” Giờ đây khi ta đã có kết quả của bài toán sự cố dừng của Turing, ta sẽ nhìn lại các định lý Godel về sự không đầy đủ của hệ tiên đề. Ta làm bằng kiểu phản chứng đi.

Giả sử ta có một hệ hình thức S nào đó hội đủ mọi điều kiện của chương trình Hilbert. Tức là nó vừa hiệu quả, vừa phong phú diễn đạt được định lý số học, vừa nhất quán lại vừa đầy đủ. Nếu nó đầy đủ thời bất kỳ một mệnh đề nào trong S cũng đều có thể được chứng minh là hoặc đúng họăc sai. Đứng trước 1 mệnh đề nào đó, ta có thể viết được một chương trình P để tìm kiếm hết các cách chứng minh của mệnh đề đó. Nếu tìm được thì mệnh đề đó xem như được chứng minh là TRUE, nếu không tìm được thì mệnh đề đó là FALSE. Nhưng khổ nỗi, muốn biết là chương trình đó không tìm được phép chứng minh nào thì ta phải có một thuật toán có thể xác định là chương trình đó không thể dừng (tìm mãi). Mà như Turing đã chỉ ra, không tồn tại giải thuật đó, nghĩa là không tồn tại hệ S hội đủ các điều kiện mong muốn.

Ph…ù, giờ ta xem như đã xem qua phần nào, đã hiểu được phần nào định lý Godel về sự không đầy đủ của hệ tiên đề. Ta có thể xem như mình tạm có đủ kiến thức để xét đến các suy diễn sai lệch về nó.

Các suy diễn sai lệch từ định lý Godel Bây giờ tôi xin nói tại sao tôi không thích cái tên định lý Bất Toàn. Nguyên nhân là vì cái tên đó quá chung chung. Thật ra nếu bạn hiểu định lý Godel là gì, thì bạn gọi tên nó là gì cũng được. Khổ nỗi, tôi đã gặp nhiều người, có các bạn bè tôi, họ đọc được trên mạng các suy diễn sai lạc từ định lý Godel, và họ không biết, không hiểu định lý này nói cái gì. Trong lúc ngồi ở quán bia, bạn bè bù khú, đâu có thể nói lại dài ngoằn những gì đã viết ở đây. Thế là đối với các bạn đó toàn bộ định lý Godel chỉ còn gom lại có 2 chữ “bất toàn”.

Và thế là suy diễn tiếp khoa học là bất toàn, toán học là bất toàn, trí tuệ con người là bất toàn …Rồi lại phán tiếp như thánh phán rằng “Các người cho rằng khoa học có thể trả lời mọi thứ ư? SAI, Godel đã có định lý bất toàn. Các người nghĩ rằng máy tính có thể thông minh như con người ư? SAI, chẳng biết gì về định lý bất toàn sao?”

Ôi, má ơi. Tôi có thể nói thế này. Khoa học, hay toán học hay bất cứ sản phẩm trí tuệ nào của con người cũng đều bất toàn, cũng như chính con người là bất toàn, vì con người chỉ là 1 sản phẩm của tiến hoá. Khoa học sẽ vĩnh viễn chẳng thể trả lời cho ta mọi thứ mà ta cần hiểu. Nhà thơ Mai Thảo viết:

Thế giới có triệu điều không hiểu Càng hiểu không ra lúc cuối đời Chẳng sao ! khi đã nằm trong đất Đọc ở sao trời sẽ hiểu thôi

Chuyện bất toàn đó ai cũng biết nhưng nó chẳng có liên quan gì đến cái định lý của Godel cả. Giờ đây, chúng ta khác với những người mới nghe loáng thoáng là phán đại đó, chúng ta chí ít cũng đã tìm hiểu đến đây, tức là đã hiểu phần nào 2 định lý về sự không đầy đủ của hệ tiên đề trong hệ hình thức của Godel nói về cái gì. Không cần phải nói gì thêm các bạn dễ dàng thấy 2 định lý đó là 2 định lý lớn của logic, nhưng tầm ứng dụng của nó cũng chỉ ở chổ đó. Các bạn có thể gặp 1 sinh viên chuyên ngành toán giải tích và hỏi thử họ về điều đó, xem họ có nhớ bao lần họ dùng định lý Godel chăng? Tôi đoán là câu trả lời là chưa hề.

Đó là cái lý do mà tôi không thích cái cách gọi 2 định lý đó là Bất Toàn. Nhưng đến đây, khi chúng ta đã hiểu nó rồi, thì gọi tên gì cũng được, gọi “Bất toàn” cũng được, miễn là chúng ta nhớ là nó nói về một hệ hình thức, đủ phong phú, hiệu quả, nhất quán thì sẽ không đầy đủ. Mà phong phú, nhất quán, đầy đủ là gì thì xin các bạn nếu quên thì lật lại đọạn trên tôi có chép ra để xem. Thậm chí không cần đến những điều cao xa đâu, thậm chí có những hệ nho nhỏ thôi, định lý Bất Toàn cũng không thể áp dụng rồi.

Ví dụ, hệ hình học Euclid (Eulidean) Vì sao? A ! Vì trong các điều kiện của định lý có 1 điều kiện quan trọng đó là phải “phong phú” (richness) tức là phải diễn tả hết các tiên đề của số học. Mà hình học Euclid thì hổng có như vậy, Tarski một nhà toán học người Ba Lan đã chứng mình rằng hệ hình học Euclidean không có ….bất toàn. Các bạn có thể xem ở đây

Ví dụ ta cũng có thể xây dựng một hệ hình thức “Completeness” được vậy. Giản dị tôi có thể định ra 1 cái game (hệ hình thức) đơn giản, mà bất cứ trạng thái nào cũng có thể thắng hay thua (ĐÚNG hay SAI). Game đó đâu có diễn tả các định lý của số học như định lý Godel yêu cầu đâu, nên nó “complete” hay vẹn toàn là bình thường.

Mọi định lý đều có giả thuyết và kết luận, khi nào các giả thuyết nó đúng, thì cái kết luận mới đúng. Thí dụ tiếp, theo bạn định lý Bất Toàn đó có thể áp dụng cho con người được không? Chắc chắn không. VÌ con người không phải là 1 hệ hình thức. Con người cũng chẳng có “Nhất quán” (Consistency) chút nào, con gái nói có là không, con gái nói không là có đó … Đâu có consistent đâu mà áp dụng định lý đó vô.

Các bạn thử nghĩ thế này. Họ nói rằng định lý bất toàn cho ta thấy rằng toán học là bất toàn, định lý bất toàn cho thấy trí tuệ con người là bất toàn, từ đó suy ra phải có cái gì đó cao siêu như … Chúa chẳng hạn. (Xin thưa rõ, tôi hoàn toàn không có ý xúc phạm tôn giáo, tôi chỉ lập lại các suy diễn sai lạc trên mạng về định lý Bất Toàn). À, họ quên rằng định lý Bất Toàn là 1 định lý toán học, Godel đã sử dụng các phương pháp của toán học cái mà theo họ đã bất toàn, mà giờ đây họ lại dùng cái sản phẩm của cái bất toàn đó mà suy diễn lung tung về cái cao siêu thì há chẳng phải rơi vào nghịch lý kẻ nói dối chăng?

Kết luận, định lý Godel chỉ cho chúng ta hiểu sâu hơn về hệ hình thức, về logic, thế thôi.

Phần này nếu các bạn muốn đi sâu hơn tôi xin giới thiệu cuốn “Godel’s Theorem: An incomplete guide to its use and abuse” của tác giả Torkel Frankzen. Trong sách này tác giả sẽ chỉ ra giúp các bạn các trường hợp ứng dụng tầm bậy định lý Godel.

Đến đây, có lẽ tôi dừng lại được rồi. Nhưng tôi thú thật, là sở dĩ tôi bỏ công sức oải chè đậu để viết cho trọn đêm mưa cái bài này là vì trong 1 phút bốc đồng tôi có hứa với 1 người bạn không biết mặt trên mạng, bạn Evolit của trang Sinh Tiến Hoá rằng tôi sẽ viết 1 bài để chứng minh các suy diễn từ định lý Godel để phủ nhận thuyết Tiến hoá là sai. Tôi đã định trốn nợ, vì các bạn biết đấy, có vui thú gì, rồi lại ra mếch lòng người chống đối Tiến Hoá. Nhưng bạn ấy nhắc, thế là tôi phải ráng, vì hứa thời phải mần. Nên đến đây tôi chưa dừng được, mà phải đi tiếp vô cái phần khó khăn và chán nhất. Khó khăn vì dễ mếch lòng, chán là vì các phần thú vị của Định Lý Godel ta đã đi qua rồi.

Góp ý về ông Phạm Việt Hưng Trên mạng có trang của ông Phạm Việt Hưng, trên mạng cũng có các bài nói chuyện của ông Hưng tại Sài Gòn về định lý Godel, theo tôi trong đó ông Hưng suy diễn có phần sai lệch, mắc phải các sai sót như đã trình bày ở phần trên. Đa số tôi thấy ông Hưng dịch từ các ý tưởng của ông Perry Marshall một người chuyên bán hàng trên mạng, ông Marshall là người ủng hộ thuyết sáng tạo. Và ông dùng định lý Godel để củng cố các lập luận của ông ta. Tiếc thay, như tôi đã trình bày, định lý Godel không thể áp dụng bên ngoài hệ hình thức. Tôi không thể đi từng phần các vấn đề mà ông Hưng và ông Marshall đã đề cập để làm chuyện “phản biện” vì nó chán lắm và tôi cũng không đủ sức. Tôi chỉ có thể minh họạ ví dụ vài điểm thôi.

Ví dụ 1: Ở đó, tôi đồng ý với ông Hưng là định lý Bất Toàn chỉ ra các giới hạn của Logic và tất nhiên Logic không phải là công cụ vạn năng để giải quyết mọi chuyện. Tuy nhiên có những điểm tôi thấy ông Hưng sai hoàn toàn, ví dụ, Ông Hưng trình bày : “Gọi chung là Định Lý Bất Toàn nhưng thực ra có hai định lý. Cả hai đều chỉ ra rằng toán học về bản chất là bất toàn (không đầy đủ), vì nó luôn chứa đựng những mệnh đề không quyết định được(undecidable), tức những mệnh đề không thể chứng minh và cũng không thể bác bỏ.”

Góp ý: Định lý Godel chưa bao giờ nói bản chất toán học là gì? Có nhiều trường phái triết học lý giải về bản chất của toán học, mà chúng ta chưa hề có một câu trả lời hoàn chỉnh. Định lý Godel chỉ đơn giản cho biết không thể thống nhất toán học thành 1 hệ hình thức, vì chỉ với số học là đã không làm được rồi. Chứ định lý Godel có nói gì về bản chất của toán học đâu. Và nhắc lại hình học Euclidean không chịu ảnh hưởng của định lý này (xem phần trên).

Ví dụ 2 Ông Hưng cũng trong trình bày trong bài này 2 định lý Bất toàn như sau (cũng từ link đã dẫn trên):

  • Định lý 1: Nếu một lý thuyết dựa trên một hệ tiên đề phi mâu thuẫn thì trong lý thuyết ấy luôn luôn tồn tại những mệnh đề không thể chứng minh cũng không thể bác bỏ.
  • Định lý 2: Không tồn tại bất cứ một quy trình suy diễn nào cho phép chứng minh tính phi mâu thuẫn của một hệ tiên đề.

Góp ý: Nếu các bạn đã đọc đến đây và những gì tôi viết ra thì các bạn thấy 2 điều mà ông Hưng viết ra nó không phải là định lý của Godel. Ông Hưng đã viết sai và thiếu hết các giả thiết của định lý. Mà như đã biết một định lý toán học nếu các giả thiết bị chép sai thì dẫn đến áp dụng sai là tất yếu. Các bạn có thể xem lại ở trên các giả thiết tôi chép về định lý này các bạn sẽ thấy, để rõ hơn tôi copy ra đây 1 đọạn ngay trên Wikimedia" First Incompleteness Theorem: “Any consistent formal system F within which a certain amount of elementary arithmetic can be carried out is incomplete; i.e., there are statements of the language of F which can neither be proved nor disproved in F.” (Raatikainen 2015)

Tôi gạch dưới các key words: hệ hình thức nhất quán và có thể thể hiện được các định lý số học mà tôi đã viết nôm na là “đủ phức tạp” hay đủ phong phú. Như tôi đã chỉ ra ở trên, hình học Euclidean là không thể áp dụng định lý Godel rồi. Tôi nghĩ ông Hưng đã vô tình “chặt” hết các giả thiết của định lý Godel từ đó rất dễ đưa đến các kết luận thiếu chánh xác, bên ngoài phạm vi ứng dụng củ định lý.

Ví dụ 3: Ông Hưng dịch bài của ông Perry Marshall Tôi cố gắng cũng không thể chỉ ra từng điểm sai của bài này. Vì nó …. sai quá nhiều. Hy vọng rằng các bạn sẽ tự làm điều đó dùm tôi khi các bạn đã hiểu định lý Godel rồi. Ví dụ ở câu này: ….vũ trụ (thế giới vật lý) có khả năng biểu diễn được bằng số học sơ cấp và giống như bản thân toán học và computer, vũ trụ ấy là bất toàn. Lý luận trên có thể tóm tắt bằng tam đoạn luận sau đây:

  • Mọi hệ thống đủ phức tạp có thể tính toán được đều bất toàn.
  • Vũ trụ là một hệ đủ phức tạp có thể tính toán được.
  • Do đó vũ trụ là bất toàn.

Góp ý Định lý Godel là 1 định lý toán học, vũ trụ là một hệ vật lý. Vật lý có thể dùng toán học làm công cụ, làm ngôn ngữ để diễn tả 1 cách gần đúng hệ vật lý. Tôi lưu ý là gần đúng. Không có 1 cái phương trình nào có thể diễn tả đúng chính xác hệ vật lý hết, chỉ là gần đúng ở mức chúng ta chấp nhận thôi. Nếu ông nói thế này thì tạm ra còn được: Rằng chúng ta không thể nào mô phỏng hoàn toàn vũ trụ bằng máy tính được vì nếu chúng ta đưa nó vào máy tính, thì buộc dẫn đến một hệ thống đủ phức tạp, phong phú khi đó định lý Godel sẽ áp dụng và tất nhiên sẽ dẫn đến những bài toán không thẻ dừng được. (Xin xem lại phần lý thuyết về bài toán Turing). Lập luận của ông Marshall sai ở chổ, ông muốn dùng computer để diễn đạt thế giới vật lý (Tôi xin các bạn lưu ý, toán học không thể diễn đạt một cách hoàn toàn chính xác hệ vật lý được, nó chỉ biểu diễn gần đúng mà thôi). Và do computer “bất toàn”, ông suy ra thế giới vật lý là … bất toàn ! Bài toán Turing chỉ cho chúng ta thấy ta không thể mô phỏng hoàn toàn thế giới vật lý trên computer được, thế thôi. Tôi xin nhắc lại, chữ bất toàn, hay không đầy đủ, hay incompleteness của định lý Godel, hay của hệ hình thức có ý nghĩa hoàn toàn khác với ý nghĩa của từ đó trong đời sống chúng ta.

Ông Hưng, ông Perry Marshall thực sự muốn nói điều gì? Tôi xin không tiếp tục đi từng điểm trong bài của ông Perry Marshall và ông Hưng. Tôi nghĩ các bạn giờ đã hiểu rồi thì các bạn có thể tự đánh giá. Chớ như tiếp tục thì chắc tôi té xỉu luôn. Thay vì đi từng điểm, ta có thể dễ dàng nhận ra cái ý chính của 2 ông. Theo tôi, 2 ông Hưng và Marshall muốn nói rằng toán học, khoa học hay nói chung la trí tuệ con người có giới hạn và chúng ta không thể nào hiểu hết mọi vấn đề. Và do đó theo 2 ông có 1 cái gì đó bên ngoài nữa. Thượng đế chăng?

Tôi thiệt sự rất đồng ý rằng toán học, khoa học có giới hạn ứng dụng của nó. Nó không bao giờ trả lời hết được các câu hỏi của chúng ta. Còn chuyện có Thượng Đế hay không thì tôi không dám bàn, vì tôi không biết.

Tôi chỉ muốn nói rằng, vì toán học có giới hạn của nó, nên ta không nên dùng toán học để bàn tới những vấn đề siêu hình. Do đó, định lý Godel cũng có giới hạn ứng dụng của nó, chúng ta không thể dùng nó trong việc “chứng minh” các vấn đề về siêu hình được, cũng như càng không thể dùng định lý Godel để suy luận các vấn đề về Sinh Học.

Chương trình Hilbert đi về đâu? Bây giờ, sau khi đã đi qua cái phần chán nhất là phải đề cập tới những chuyện của ông Marshall và ông Hưng. Tôi xin nói tới phần này vui đây. Ta nhớ lại là Godel là người làm việc trong chương trình Hilbert. Và 2 định lý của ông khiến chương trình này coi như không thể hoàn thành. Có những người có suy nghĩ kiểu “chánh trị” phê phán chương trình Hilbert là “mộng với tay cao hơn trời” thậm chí có người không chừng còn chê nhà toán học Hilbert là trực giác … yếu ! Về triết học, toán học thực chất là gì? Nó rốt cuộc có phải chỉ là 1 hệ hình thức với trò chơi với các ký hiệu vô nghĩa? Chắc là không, và bản chất nó là gì thì chắc khó mà trả lời trọn vẹn. Muốn tìm hiểu các bạn có thể tìm hiểu về chủ nghĩa hình thức, về chủ nghĩa xây dựng … là các trường phái triết học trong toán học. Thế nhưng có 1 điều, là trong toán học, cũng như trong khoa học, cũng như trên con đường đi tầm cầu chân lý của nhân lọại, không có 1 thất bại nào là vô nghĩa. Mỗi một thành công đều được lót đường bằng rất nhiều thất bại.

Chương trình Hilbert có thể đã thất bại, thất bại ngay với số học rồi chứ nói gì mà đòi làm cho cả toàn bộ toán học. Nhưng chương trình Hilbert đã soi sáng nhiều điều cho chúng ta, đặc biệt là hệ hình thức. Và những tri thức đó là đã góp phần xây dựng nên cuộc cách mạng tin học hôm nay. Hôm nay, có những lúc đời tối mờ mây phủ, mưa đang về từng đợt ngập quê hương, ta vội mở máy và hình ảnh Ngọc Trinh xuất hiện rạng ngời xua đi bao sầu thảm. Ta có biết rằng thành tựu công nghệ đó là một phần nhờ công sức của những người đã nghiên cứu về hệ hình thức, giờ đã nó là một người bạn không thể thiếu của chúng ta, máy tính! Trong đó có ông Hilbert nhà toán học vĩ đại mà tài năng thể hiện trong rất nhiều lãnh vực, kỳ lạ là cái nào cũng xuất sắc. Mấy bạn học toán, thì biết không gian Hilbert, giải tích hàm … Nhưng gần gũi tới đề tài chúng ta đang bàn ở đây thì có cái gọi là Proof Theory. Lý thuyết chứng minh. Có người nói chương trình Hilbert đã chết. Thiệt ra nó không có chết. Hay nếu có chết thì nó cũng đã mở đường cho những nghiên cứu mới.

Đây là một cái link nói về các vấn đề này, tiểu luận Hilbert ‘s program, then and now (tác giả Richard Zach giáo sư triết học toán tại đại học Calgary, Canada). Tôi trích 1 đọạn kết luận trong đó: “Although Godel’s theorems show that Hilbert’s original expectations about what exactly can be analyzed in which way and with what restricted methods can not be fulfilled, proof theory and Hilbert’s aims more generally have been advanced tremendously over the last half-century”…..

Mặc dầu, các định lý Godel đã cho thấy mộng ước ban đầu của Hilbert về việc xác định chính xác những gì trong toán học có thể phân tích được, và nếu được, thì bằng cách nào, bằng những phương pháp có giới hạn nào để làm chuyện đó, không thể làm được, nhưng lý thuyết chứng minh và các mục đích của Hilbert vẫn còn tiến tới mạnh mẽ suốt nữa thế kỷ vừa qua. …..

Ngày nay, có nhiều đề tài rất thú vị, hữu ích và rất hứa hẹn, như là xây dựng các phần mềm để hỗ trợ kiểm tra các chứng minh, các chương trình logic tự động, hình thức hoá các định lý toán học … Tôi để ra đây các link để các bạn coi chơi. Mà biết đâu các bạn có người yêu thích toán học và logic mai mốt tham gia hổng chừng. http://www.cs.ru.nl/~freek/100/ http://www.cse.unsw.edu.au/~kleing/…

Mà các bạn vô coi sẽ thấy có những bài toàn rất quen thuộc của thời học trò như chứng minh căn bậc 2 là số vô tỉ cũng được hình thức hoá. Hay lắm.

Kết Luận

Kết luận cũng giản dị thôi, toán học cũng như khoa học thật đẹp. Có điều muốn thấy cái đẹp đó chúng ta phải yêu nó. Chúng ta phải bỏ công ra mà học, mà nghiền ngẫm để hiểu nó. Rồi từ đó chúng ta mới thấy được cái đẹp của vũ trụ, của thế giới này. Bởi mục đích của khoa học là tìm hiểu thế giới và toán học là công cụ mạnh mẽ của khoa học để làm điều đó. Muốn đánh giá một vấn đề, nhất là các vấn đề của khoa học, của toán học ta nên chịu khó tìm hiểu, chứ đừng vội vã chạy theo thói quen dễ dãi là trích dẫn lung tung kiểu ông này nói thế này, ông kia nói thế kia … và thế là kết luận luôn.

Nếu ta tin Chúa, hay tin Phật, hay tin ông Đạo Dừa, hay tin một vị thần linh nào đó. Chúng ta sống, và cảm nhận đức tin đó của mình. Nó có khiến chúng ta hạnh phúc hơn, hữu ích hơn không? Nếu có thì ta mang niềm tin cùng đi với mình trong đời sống, và như vậy là đủ. Cần gì mà phải ngồi lục lọi để coi có ông vĩ nhơn nào ổng cũng tin giống mình rồi lật đật chạy đi khoe? Hay mới nghe loáng thoáng có học thuyết khoa học nào ngược lại đức tin của mình là giẫy lên hỏang hồn sợ niềm tin của ta phai lạt bèn đi kiếm đồng minh, lên mạng search mấy câu phản đối dù rằng chẳng hiểu chút xíu nào về nội dung của học thuyết cả. Làm như vậy để làm gì, nó chỉ khiến ta tự giam hãm mình trong tăm tối của thiếu thốn tri thức, nó chỉ khiến tôn giáo mà ta yêu kính trở nên tầm thường.

Trích dẫn một câu nói nào đó của Einstein rồi lý giải ổng tin Chúa, có thể làm ta sướng rơn vì tìm ra đồng đạo là vĩ nhơn. Nhưng thử hỏi, khi “đám vô thần” nó lên cũng lên mạng nó kiếm và đau đớn thay lại có một câu nói của ổng chứng tỏ ông … vô thần. Và thiệt sự Einstein không có tin Kinh Thánh chút nào. Khi đó ta có vì thế mà bỏ đạo chăng? Chắc là không. Thế sao ta chẳng vui sống đạo, còn nếu yêu khoa học thì nên tìm đọc thuyết Tương Đối coi nó nói cái gì, biến đổi là Lorentz là cái chi, do đâu mà có … chẳng sướng hơn là tập trung vào những chuyện tìm kiếm các câu nói của vĩ nhân để chứng minh ổng …. thuộc phe mình chăng?

Hôm nay, chúng ta vừa tìm hiểu về định lý Godel. Nếu bạn lên trên mạng xem những bài của những người theo Creationism như ông Phạm Việt Hưng, bạn sẽ thấy lọạn cào cào các vấn đề “khoa học” như Định Luật sự sống thuận tay trái, tới lý thuyết thông tin, tới DNA, tới định luật hai nhiệt động lực học, xác suất ….Và tất nhiên có cả định lý Godel và thuyết Tiến Hoá chỉ với 1 mục tiêu Chúa có thật và thuyết Tiến Hoá là sai. Và khốn khổ thay, không hề có một điểm nào giúp cho người đọc hiểu được bản chất của các định luật, hay học thuyết khoa học đó. Tôi thấy đa phần toàn là những danh xưng, rồi kèm theo đó là các trích dẫn câu nói ông này, ông kia, với 1 dụng ý tôi nói ở trên.

Trong khi khoa học khác với tôn giáo, khoa học không có thánh. Khoa học không có giáo điều, bất cứ điều gì cũng có thể chứng minh là sai, nhưng cách chứng minh không phải là trích dẫn câu nói, mà là khảo sát thực nghiệm ! Tại sao ta không làm thế này? Khi chúng ta bàn về 1 định lý toán học, hay một định luật, hay một lý thuyết khoa học nào đó, chúng ta hãy:

  • Đối với 1 lý thuyết khoa học, hay 1 định lý toán học, ta nên tìm hiểu, học tập, học ở thầy ở bạn, hay lên mạng kiếm, giờ ta may mắn có được cái Internet thì chuyện học sướng thấy mồ. Đánh giá 1 lý thuyết khoa học chỉ nên dùng các phương pháp khoa học, đó là thực chứng.
  • Hãy để Chúa ra bên ngoài khoa học, toán học. Ngài thuộc về đức tin, không thuộc về thực nghiệm hay logic. Đừng vì Ngài mà phản đối 1 lý thuyết, cũng đừng vì Ngài mà ủng hộ 1 lý thuyết. Hiện tại đức Giáo Hoàng đồng ý với cộng đồng khoa học khi nghĩ rằng thuyết tiến hoá đã thật sự là sự thật. Nhưng cũng đừng vì Ngài tin mà ta tin theo. Và dù mai mốt có ông khác lên lại phản đối, thì ta cũng đừng vì đó mà phản đối theo. Chúng ta hãy học, xem nó là cái gì, vì sao các nhà sinh hoá đi đến kết luận đó. Rồi tư duy bằng chính chúng ta. Giống như nãy giờ tụi mình cùng tìm hiểu định lý Godel vậy.

Kính chào, chúc vui và cạn ly đều.

T.T

Từ khóa » định Lý Golden