- เลขคณิตเพียโน (PA) สามารถแสดง กระบวนการคำนวณเชิงกล ได้ จึงสามารถพิสูจน์การสิ้นสุดของลำดับ Goodstein แต่ละลำดับภายใน PA ได้
- ใช้ รูปแบบมาตรฐานของ Cantor และสัญกรณ์จำนวนอันดับแบบถ่ายทอดทางพันธุกรรม ในการแสดงลำดับ Goodstein และสมบัติการลดลงของมัน ทำให้ สามารถสร้างบทพิสูจน์ที่มีความยาวจำกัดได้
- ผ่าน การอุปนัย (อุปนัยแบบเข้มแข็ง/อุปนัยเหนืออนันต์) สามารถขยายบทพิสูจน์ไปถึงจำนวนอันดับระดับที่กำหนดได้ตามลำดับ
- PA สามารถพิสูจน์ได้ว่า สำหรับทุกจำนวนธรรมชาติ n, “G(n) ไปถึง 0” แต่ไม่สามารถพิสูจน์ทฤษฎีบท Goodstein ทั้งหมดแบบครอบคลุม (สำหรับทุก n) ได้
- PA สามารถเข้ารหัสได้เพียงพอทั้ง การคำนวณ โครงสร้างข้อมูล (เช่น List, Pair) และแม้แต่ภาษาการเขียนโปรแกรม (Lisp) เอง รวมถึงกระบวนการพิสูจน์ของตัวมันเองด้วย
บทนำและภูมิหลังของปัญหา
- บทความนี้อธิบายว่า เลขคณิตเพียโน (PA) สามารถพิสูจน์ได้ว่าลำดับ Goodstein “ไปถึง 0 สำหรับแต่ละ n (G(n) terminates)”
- สำหรับนักตรรกศาสตร์ นี่อาจดูเป็นเรื่องชัดเจนอยู่แล้ว แต่มีการอธิบายในมุมมองของ การเข้ารหัสการคำนวณ เพื่อให้โปรแกรมเมอร์เข้าใจได้
- สำหรับแต่ละกรณีของลำดับ Goodstein สามารถ สร้างขั้นตอนการพิสูจน์ที่เป็นรูปธรรม ภายใน PA ได้
Ordinals (จำนวนอันดับ) และลำดับ Goodstein
- สร้าง จำนวนอันดับ (Sets as Ordinals) ด้วยแนวทางของ Von Neumann
- 0 คือเซตว่าง, 1 คือ {0}, 2 คือ {0,1}, ω คือ {0,1,2,…}, ω+1 คือ {0,1,2,…,ω} เป็นต้น โดยลำดับถูกนิยามไว้อย่างชัดเจน
- ลำดับ Goodstein ถูกอธิบายด้วย สัญกรณ์ฐานแบบถ่ายทอดทางพันธุกรรม โดยใช้รูปแบบมาตรฐานของ Cantor
- ตัวอย่าง: ω^ω คือ ((1,ω)) หรือก็คือ ((1,(1,1)))
- ลำดับ < ถูกตัดสินด้วยการเปรียบเทียบแบบลำดับพจนานุกรมของจำนวนอันดับ/สัมประสิทธิ์ในแต่ละพจน์
การอุปนัยและอุปนัยเหนืออนันต์ (Transfinite Induction)
- หลักอุปนัยของเลขคณิตเพียโน: ถ้าเป็นจริงสำหรับ 0 และเป็นจริงจาก n→n+1 ก็จะเป็นจริงสำหรับจำนวนธรรมชาติทั้งหมด
- อุปนัยแบบเข้มแข็ง ก็สามารถพิสูจน์ได้ใน PA เช่นกัน
- อุปนัยเหนืออนันต์ (Transfinite induction): ใน ZFC เป็นต้น สามารถขยายไปยังจำนวนอันดับอนันต์ได้ และใช้กับจำนวนที่เขียนในรูปแบบมาตรฐานของ Cantor ได้
- ทฤษฎีบท 1: ลำดับลดลงที่อยู่ในรูปแบบมาตรฐานของ Cantor จะต้องมีความยาวจำกัดเสมอ
- ทฤษฎีบท 2: สามารถใช้อุปนัยเหนืออนันต์กับจำนวนในรูปแบบมาตรฐานของ Cantor ได้
อุปนัยเหนืออนันต์ใน PA และความยาวของบทพิสูจน์ลำดับ Goodstein
- PA สามารถ สร้างบทพิสูจน์การสิ้นสุดของลำดับ Goodstein สำหรับ n ใด ๆ ก็ได้
- สามารถสร้างบทพิสูจน์ตามความสูงของทาวเวอร์ในรูปแบบมาตรฐานของ Cantor ที่ m=O(log* n) (iterated log)
- ในแต่ละขั้นสามารถประกอบบทพิสูจน์จำนวน m ครั้ง ทำให้ความยาวรวมของบทพิสูจน์เป็น O(m^2) หรือย่อให้เหลือ O(m log m) ได้เมื่อใช้สัญกรณ์พิเศษ (ω[m])
- อย่างไรก็ตาม บทพิสูจน์ของทฤษฎีบท Goodstein ทั้งหมด (สำหรับทุก n) นั้นเป็นไปไม่ได้ใน PA (ไม่สามารถทำอุปนัยเหนืออนันต์จนถึง ε0 ได้)
- หากทำได้ ก็จะทำให้สามารถพิสูจน์ความสอดคล้องของ PA ได้ด้วย ซึ่งขัดกับทฤษฎีบทความไม่สมบูรณ์ข้อที่ 2 ของ Gödel
การเข้ารหัสโปรแกรมและโครงสร้างข้อมูลใน PA
- PA สามารถเข้ารหัสการคำนวณ/โปรแกรม/โครงสร้างข้อมูล (ตัวเลข คู่ ลิสต์ และโครงสร้างอื่นทั้งหมด) ได้อย่างเพียงพอ
- สามารถทำฟังก์ชันต่าง ๆ ได้ด้วยวิธีต่อไปนี้:
- ตรรกะพื้นฐานและการคำนวณ (+, *, pow, //, %, min, max เป็นต้น)
- การจับคู่รูปแบบและการแตกแขนงตามเงื่อนไข (
if, cond เป็นต้น)
- เข้ารหัสตัวเลขหนึ่งตัวให้เป็นตัวเลขสองตัว (คู่) หรือขยายต่อจากคู่ไปเป็นลิสต์และโครงสร้างที่ซับซ้อนกว่าได้แบบวนซ้ำ (ลิสต์เชิงเรียกซ้ำ ต้นไม้ ข้อความ เป็นต้น)
- ด้วยการเข้ารหัสโครงสร้างข้อมูลเหล่านี้ จึงสามารถสร้างได้แม้กระทั่ง ตัวแปลความ/อินเทอร์พรีเตอร์ของเครื่องเสมือนหรือภาษาการเขียนโปรแกรมใด ๆ (เช่น Lisp)
การบูตสแตรปสู่ Lisp และการเข้ารหัส
- ใช้ Lisp เป็นตัวอย่างเพื่ออธิบายวิธีสร้าง การคำนวณเชิงตัวเลขและตรรกะพื้นฐาน โครงสร้างข้อมูล และตัวแปลภาษา/อินเทอร์พรีเตอร์
- โครงสร้างของ Lisp (การแมปคำสั่ง/อาร์กิวเมนต์, special forms, macro เป็นต้น) สามารถสร้างได้ใน PA ด้วยการประกอบฟังก์ชันที่เหมาะสม
- ยิ่งไปกว่านั้น ยังสามารถเข้ารหัสและสร้างเชิงสัญลักษณ์ได้แม้กระทั่ง กระบวนการพิสูจน์ของ PA ภายใน PA เอง ขั้นตอนการพิสูจน์ทางตรรกะ และโครงสร้างแบบอ้างอิงตนเอง
การเข้ารหัสตรรกะเองภายใน PA
- ใน ตรรกะคณิตศาสตร์ สามารถเข้ารหัสกระบวนการพิสูจน์ของ First-Order Logic ให้เป็นข้อมูลตัวเลขของ PA ได้
- แต่ละขั้นของบทพิสูจน์/ประพจน์/กฎการอนุมาน/การตรวจสอบความถูกต้องของบทพิสูจน์ สามารถรับรู้และประมวลผลได้ในรูปของฟังก์ชันเชิงตัวเลขและการประมวลผลลิสต์ชุดหนึ่ง
- การเข้ารหัสเชิงเมตาและแบบอ้างอิงตนเองลักษณะนี้เชื่อมโยงไปถึงทฤษฎีความไม่สมบูรณ์ของ Gödel และการพิสูจน์ปัญหา Halting
บทสรุป
- ทั้งการคำนวณ โครงสร้างข้อมูล โปรแกรม และกระบวนการพิสูจน์ทางตรรกะ ล้วนสามารถเข้ารหัส พิสูจน์ และแปลความได้ภายใน PA อย่างเพียงพอ
- ดังนั้น ลำดับ Goodstein ใด ๆ ก็ตาม (คือ G(n) สิ้นสุดสำหรับ n นั้น) สามารถพิสูจน์ได้อย่างเป็นรูปธรรมภายใน PA
- แต่บทพิสูจน์แบบรวมของทฤษฎีบท Goodstein ทั้งหมด (ทุก n) ว่า "PA พิสูจน์ทฤษฎีบท Goodstein ภายใน PA" นั้นเป็นไปไม่ได้เนื่องจากข้อจำกัดของตรรกะ
- ในมุมมองของโปรแกรมเมอร์ PA คือรากฐานทางตรรกะที่สมบูรณ์สำหรับการเข้ารหัสการคำนวณเอง
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
(defun not (x) (if x false true)) พอใครเริ่มใช้วงเล็บ ผมก็จะเผลอตรวจโดยสัญชาตญาณว่าปิดครบไหม พอหลังจากนั้นบทความพูดว่า "การเขียนโปรแกรมให้คอมพิวเตอร์ตรวจสอบความสมดุลของวงเล็บเป็นเรื่องง่าย" ก็ทำเอาผมหัวเราะออกมาดังมาก มุกแบบนี้ตลกจริง ๆ และคอมเมนต์; After a while, you stop noticing that stack of closing parens.ในส่วน "Basic Number Theory" ก็ชวนประทับใจมาก ไม่ได้เจอ Lisp มาพักใหญ่แล้ว แต่บทความนี้สนุกจริง ๆ\omeganqthmก็น่าดูมาก ตัวอย่างในบทความที่น่าประทับใจคือ เมื่อเริ่มจากสัจพจน์ Peano ทฤษฎีบทที่ซับซ้อนอย่างการคูณจำนวนเฉพาะจะยาก แต่กฎสลับที่ของการบวก กฎแจกแจงของการคูณ และทฤษฎีบทเกี่ยวกับฟังก์ชัน GCD ยังพิสูจน์ได้สบายforall n, Provable(P(n))ถึงไม่ทำให้พิสูจน์Provable(forall n, P(n))ได้ จะขอบคุณมากwill-return,opposite-returnได้ด้วย ซึ่งสอดคล้องกับบทพิสูจน์มาตรฐานของปัญหาการหยุด พิจารณากรณีopposite-return(opposite-return, opposite-return)ถ้า PA พิสูจน์ได้ว่าopposite-returnจะคืนค่า ก็จะพิสูจน์ได้ด้วยว่าจริง ๆ แล้วมันไม่คืนค่า และในทางกลับกัน ถ้าพิสูจน์ว่าไม่คืนค่า ก็จะพิสูจน์ได้ว่ามันคืนค่า ถ้า PA รับเอาข้อความที่แรงกว่าว่า "สิ่งที่พิสูจน์ได้ทั้งหมดพิสูจน์ได้จริง" ในลักษณะนั้น ก็จะกลายเป็นทฤษฎีบทความไม่สมบูรณ์ลำดับที่สองของ Gödel ทันที ซึ่งหมายความว่า PA ขัดแย้งในตัวเอง ดังนั้นต้องแยก "PA พิสูจน์ได้" ออกจาก "PA พิสูจน์ได้ว่าตนเองพิสูจน์ได้" ให้ชัดเจน