משפט האי-שלמות של צ'ייטין

משפט האי-שלמות של צ'ייטין הוא משפט הקובע שבכל תורה עקבית עשירה מספיק, לא ניתן להוכיח טענות מסוימות לגבי סיבוכיות קולמוגורוב, אף על פי שהן נכונות. המשפט פורסם על ידי המתמטיקאי ומדען המחשב האמריקאי גרגורי צ'ייטין בשנת 1971. ביתר פירוט, המשפט קובע שלכל תורה עקבית, ואפקטיבית שמסוגלת לתאר סיבוכיות קולמוגורוב קיים קבוע L {\displaystyle L} , כך שלכל n טבעי, לא ניתן להוכיח את הטענה "סיבוכיות קולמוגורוב של n גדולה מ-L", זאת על אף שיש מספרים טבעיים שהטענה נכונה לגביהם. מכיוון שהמשפט מראה שיש טענות נכונות שאי אפשר להוכיחן, אז בהכרח התורה אינה שלמה. לכן, למרבית התורות, משפט האי-שלמות הראשון של גדל מתקבל כמסקנה של משפט האי-שלמות של צ'ייטין (המשפט של גדל דורש תנאים מוחלשים במעט לגבי התורה ולכן תקף גם לתורות סטנדרטיות פחות). בניגוד להוכחת המשפט של גדל, שדומה לפרדוקס השקרן, הוכחת המשפט של צ'ייטין עושה שימוש בפרדוקס של ברי. ההוכחה מראה שאם המשפט אינו נכון, אז מקבלים סתירה בדמות הפרדוקס של ברי. סיבוכיות קולמוגורוב (הקרויה גם "סיבוכיות קולמוגורוב-צ'ייטין") של מספר טבעי n מסומנת K ( n ) {\displaystyle K(n)} ומוגדרת כאורך (מספר התווים) של תוכנית המחשב הקצרה ביותר שמדפיסה את n. כדי שהמושג יוגדר היטב יש לבחור שפת תכנות שהתוכניות נכתבות בה (בדרך כלל בוחרים בקידוד כלשהו של מכונות טיורינג כסדרת ביטים). סיבוכיות קולמוגורוב של מספר תלויה בשפה הנבחרת, אך אין חשיבות רבה לבחירה - לכל שתי שפות תכנות קיים קבוע, כך שההפרש בסיבוכיות של כל מספר שהוא לפי שתי השפות הוא תמיד קטן מן הקבוע. משפט האי-שלמות של צ'ייטין. לכל תורה עקבית ואפקטיבית שמסוגלת לתאר סיבוכיות קולמוגורוב קיים קבוע L {\displaystyle L} (התלוי בתורה ובשפת התכנות) כך שלכל n טבעי לא ניתן להוכיח את הטענה " L < K ( n ) {\displaystyle L<K(n)} " במסגרת התורה. יש רק מספר סופי של תוכניות מחשב שקצרות מ- L {\displaystyle L} . לכן יש רק מספר סופי של מספרים שמקיימים L ≥ K ( n ) {\displaystyle L\geq K(n)} , וכמעט כל המספרים מקיימים L < K ( n ) {\displaystyle L<K(n)} . למרות זאת, משפט האי-שלמות של צ'ייטין קובע שלגבי אף אחד מן המספרים האלה לא ניתן להוכיח באופן ספציפי ש- L < K ( n ) {\displaystyle L<K(n)} . תהא T {\displaystyle T} תורה המקיימת את תנאי המשפט. יהי L {\displaystyle L} מספר טבעי גדול מספיק (התנאי המדויק על L ייקבע בהמשך). נניח בשלילה שקיים n {\displaystyle n} כך שקיימת הוכחה לטענה L < K ( n ) {\displaystyle L<K(n)} . נסדר את כל ההוכחות האפשריות ב- T {\displaystyle T} בסדרה לפי סדר לקסיקוגרפי. נסמן ב- w {\displaystyle w} את ההוכחה הראשונה בסדרה לטענה מהצורה L < K ( n ) {\displaystyle L<K(n)} . נסמן ב- m {\displaystyle m} את המספר שלגביו w {\displaystyle w} מוכיחה כי L < K ( m ) {\displaystyle L<K(m)} . נתאר כעת תוכנית מחשב M {\displaystyle M} שמדפיסה את m {\displaystyle m} . M {\displaystyle M} עוברת אחת אחת על כל ההוכחות בסדרה עד שהיא פוגשת הוכחה לטענה מהצורה L < K ( n ) {\displaystyle L<K(n)} , ואז היא מדפיסה את n {\displaystyle n} (כאן נכנסת הדרישה ש- T {\displaystyle T} אפקטיבית, אחרת לא ניתן לזהות את ההוכחה). לפי ההגדרות שקבענו, M {\displaystyle M} תפגוש w {\displaystyle w} ותדפיס את m {\displaystyle m} . כעת נעריך את האורך של התוכנית M {\displaystyle M} . החלק ב- M {\displaystyle M} שמגדיר את המעבר על הסדרה ואת קריאת ההוכחות הוא מאורך קבוע. האורך של החלק שמורה לבדוק האם ההוכחה מוכיחה טענה מהצורה L < K ( n ) {\displaystyle L<K(n)} תלוי באורך של הייצוג של L {\displaystyle L} . את L {\displaystyle L} ניתן לייצג בשיטה העשרונית בעזרת log ⁡ L {\displaystyle \log L} תווים. לכן האורך של התוכנית M {\displaystyle M} כולה הוא C + log ⁡ L {\displaystyle C+\log L} כאשר C {\displaystyle C} מספר קבוע כלשהו (שערכו תלוי בשפת תכנות וב- T {\displaystyle T} ). ל- L {\displaystyle L} גדול מספיק מתקיים האי-שוויון C + log ⁡ L < L {\displaystyle C+\log L<L} . מכאן ש- M {\displaystyle M} היא תוכנית מחשב שאורכה קצר מ- L {\displaystyle L} והיא מדפיסה את m {\displaystyle m} ולכן L > K ( m ) {\displaystyle L>K(m)} . זאת בסתירה ל- w {\displaystyle w} שמוכיחה ש- L < K ( m ) {\displaystyle L<K(m)} . לכן T {\displaystyle T} לא יכולה להיות עקבית. בשנת 1943 המתמטיקאי סטפן קליני הוכיח שתורות הכוללות את האריתמטיקה הסטנדרטית מסוגלות לתאר חישוביות. לתורות אלו משפט האי-שלמות של צ'ייטין מוכיח אי-שלמות וגורר את המשפט הראשון של גדל. למקרים האלו קליני כבר הציג הוכחה קצרה במיוחד למשפט של גדל, בהסתמך על אי-כריעות בעיית העצירה. מהמשפט נובע ש- K ( n ) {\displaystyle K(n)} אינה פונקציה ניתנת לחישוב. אילו הייתה תוכנית מחשב שהייתה מסוגלת לחשב את K ( n ) {\displaystyle K(n)} לכל n, הרי שבקלות ניתן היה להוכיח טענה מהצורה L < K ( n ) {\displaystyle L<K(n)} . ניתן גם להוכיח תוצאה זו ישירות בדרך דומה. הישראלים שירה קריצ'מן ורן רז הוכיחו משפט אנלוגי למשפט האי-שלמות השני של גדל על סמך משפט האי-שלמות של צ'ייטין. הם הראו כי תורות המקיימות את תנאי המשפט של צ'ייטין ובנוסף חזקות מספיק כדי לתאר את הוכחת המשפט עצמה, לא יכולות להוכיח את העקביות של עצמן. Algorithmic Information Theory - Some Recollections The Surprise Examination Paradox and the Second Incompleteness Theorem, המאמר של שירה קריצ'מן ורן רז