תשמעו סיפור...

וואלה! ../images/Emo12.gif

שים לב: אם לבורא יש בורא, אז גם הוא ניברא ולכן יתווסף אף הוא לרשימה הארוכה של הנבראים. את הבורא לא ברא בורא, כי אם לבורא היה בורא גם הוא היה נברא. ונברא, ועוד נברא, ועוד נברא, ועוד נברא... סתאאאאם. אפשר לא לקבל את הקונוונציות המטריאליסטיות מבלי להיות מחב"ת. אני די בטוח שפנרוז איננו אדם מאמין. בעצם, גישתי שאובה מתורת ההכרה של קאנט, אשר למרות שהיה לכאורה נוצרי מאמין, למעשה הרג את האמונה באל. טרנסצנדנטיות רציונלית מסוכנת לאמונה הדתית יותר מאשר מטריאליזם דוגמטי. גישה כזו מוציאה מהדת את המונופול על ה"רוחניות", ומושכת את השטיח מתחת לקישקושי המיסטיקה. ובתשובה לשאלתך: אפשר לכתוב אלגוריתם כמו זה שהצעת. אבל, אי אפשר לכתוב אלגוריתם אמין, (כלומר שאיננו נותן אף פעם תשובות שגויות, לפחות בנוגע לפלט "לא עוצר") כזה.
 
תיקון:

אפשר כמובן לכתוב גם אלגוריתם אמין כזה. ומאלגוריתם זה אפשר לבנות אלגוריתם אחר, גם הוא אמין, בעל פלט אחד בלבד (על ידי הפניית הפלטים "עוצר" ו"לא יודע" ללולאות אינסופיות), ועליו להפעיל את ההוכחה של פנרוז.
 
בחיי שאני לא מבין על מה אתה מדבר

טענת שהתודעה בהכרח אינה אלגוריתמית משום שהיא מסוגלת לומר על אלגוריתם שהוא עוצר (או לא עוצר, מה זה חשוב). והנה אתה אומר שאפשר ליצור אלגוריתם שיעשה את זה. !?!?
 
טוב, אתה באמת לא הבנת.

פנרוז מוכיח את המשפט המתמטי הבא: בהנתן אלגוריתם A אמין (כפי שהוגדרה אמינות) בשני קלטים נומריים (המסמלים אלגוריתם n וקלט m) ובעל פלט אפשרי יחיד שמשמעותו "האלגוריתם (C_n(m לא עוצר", אזי ניתן לבנות אלגוריתם C_k אשר בוודאות איננו עוצר על הפלט k, אולם האלגוריתם A לא יפיק את הפלט "לא עוצר" בהנתן הקלט (k,k). כעת הארגומנט הוא כזה: אם התודעה היא אלגוריתמית, אפשר להניח ש A הוא מודל לאותו חלק באלגוריתם שאחראי להסקה והבנה מתמטית. תמיד אפשר להגביל את כמות הקלטים והפלטים (חדר+מפסק+נורה למשל) כך שזו איננה בעיה. A - התבונה המתמטית, תדע לבנות מעצמה את C_k, ולפיכך תסיק מהוכחה המתמטית של פנרוז שאלגוריתם זה איננו עוצר. אבל זו סתירה, משום שמשפט זה עצמו מבטיח ש-A לא תוכל להכריע בעניין. מסקנה: אין אלגוריתם להבנה מתמטית. אף אחד לא טוען שאלגוריתם איננו מסוגל להכריע עצירה של אף אלגוריתם אחר. אבל יש מקרה אחד ספציפי שהוא איננו יכול להכריע בו, וזה מספיק.
 
עדיין לא מבין

"אפשר להניח ש A הוא מודל לאותו חלק באלגוריתם שאחראי להסקה והבנה מתמטית" אפשר להניח, או שחייבים להניח? והאם התובנה לפתרון איננה *לוגית* במהותה, ולא מתמטית?
 
כיוון שזו הוכחה בדרך השלילה,

מניחים שאפשר לתאר הבנה מתמטית כאלגוריתם (אותו מסמנים באות A) ומגיעים לסתירה. כמובן, לא חייבים לעשות את זה. אפשר במקום זאת ללכת לשתות קפה. "והאם התובנה לפתרון איננה *לוגית* במהותה, ולא מתמטית? " - ההסקה המתמטית עושה שימוש בלוגיקה, אולם היא איננה לוגיקה. זהו לב העניין. אדם יכול לעשות שיקול לוגי, ובו בזמן לדעת ששיקול לוגי זה הוא נכון בוודאות. לא ניתן לחקות ידיעה שכזו בשום אופן מכני. אפשר אמנם לכתוב קוד המסוגל לקבל כקלט אוסף של משפטים מקדימים ומשפט מסקנה, ומחליט האם המסקנה נובעת לוגית מהמשפטים המקדימים. אולם אין שום קוד אשר יכול לבחון את עצמו ולהכריע שהשיקולים הלוגיים שהוא עושה הם תקפים. מודעות פנימית היא תכונה של התודעה שלא ניתנת לשיחזור פורמלי.
 
תוכיח...

ולפעמים התודעה מחליטה שהשיקולים הלוגיים הם תקפים, בזמן שהם לא (לא חסרות דוגמאות). אז מה?
 
להוכיח? בבקשה:

נניח כי B הוא אלגוריתם המסוגל לוודא את התקפות הלוגית של הסקה המתבצעת באלגוריתם אותו הוא מקבל כקלט. נבנה אלגוריתם A באופן הבא: בתחילתו B יבדוק אם הקלט מבצע הסקות לוגיות תקפות. אם כן, הוא ישווה אותו לאלגוריתם (C_k(k (אלגוריתם האלכסון של A) ואם הוא שווה לו, יפיק פלט "לא עוצר" ויעצור. בכל מקרה אחר הוא לא יעצור. נניח בשלילה כי A אמין. כעת נבדוק כיצד יפעל A על הקלט (C_k(k. כיוון שהקלט הוא מקרה פרטי של A, מהנחת האמינות של A נובעת האמינות של (C_k(k, ולכן B תסיק שזה אלגוריתם תקף לוגית. כיוון שגם ההשוואה תפיק תוצאה חיובית, A יפיק פלט "לא עוצר", ויעצור. אבל זו סתירה לאמינות של A, משום שA הכריע ש (A(k,k) = C_k(k לא יעצור! מסקנה: A לא אמין. אבל פעולת A מחקה בדיוק את תנאי משפט פנרוז, שהוא תקף לוגית. משום כך האפשרות היחידה היא ש-B איננו אלגוריתם תקף. "ולפעמים התודעה מחליטה שהשיקולים הלוגיים הם תקפים, בזמן שהם לא" - כאשר יש טעויות לוגיות, הן נובעות מנסיון לבצע כמה שלבי הסקה בבת אחת. כאשר מפרקים בעיה לוגית למעברים אלמנטריים, כל אדם עירני עם אינטיליגנציה ממוצעת, ובפרט, מתמטיקאי מיומן, לא יטעה. בעצם, לא ניתן לבסס בכלל את מושג האמת, את החשיבה ההגיונית, וחשיבה בכלל, אלמלא ניתן היה לבטוח בוודאות ביכולת ההסקה האלמנטרית שלנו.
 
אבל שוב, מאיפה הגיעה

המגבלה הזאת של "בכל מקרה אחר הוא לא יעצור"? ממה זה מתחייב? למה לא יכול להיות אלגוריתם אחד שעוצר תמיד, עם תשובה כזאת או אחרת בפלט?
 
זה לא רלוונטי.

יכולים להיות הרבה אלגוריתמים, שעוצרים או שלא עוצרים. אבל אני הוכחתי טענה כללית מסויימת תוך שימוש באלגוריתם מסויים. אתה מזכיר את זה אשר הוכיחו לו שסכום זויות משולש הוא 180 מעלות, והוא מתרעם: אבל למה הוא לא יכול להיות מרובע? ההוכחה האחרונה שלי הייתה שלא קיים אלגוריתם B בעל יכולת הסקת אמינות הסקה לוגית של אלגוריתם. לא אכפת לי בכלל כמה פלטים יש לB. לגבי ההוכחה של פנרוז, כבר הבהרתי שגם אם לA שבע עשרה אלף פלטים אפשריים, קל לחסום את כולם. למשל הוסף קטע קוד הבורר רק פלט "לא עוצר", וכל דבר אחר מפנה ללולאה אינסופית.
 
בוודאי שזה רלוונטי

השאלה היא האם התודעה היא אלגוריתם או לא, ולכן ההוכחה שלך צריכה להיות תקפה לכל אלגוריתם אפשרי, וזה כולל גם אלגוריתמים שעוצרים בכל מקרה ואין להם בכלל אפשרות להיכנס ללולאה אינסופית.
 
ההוכחה תקפה לכל אלגוריתם אפשרי.

חשוב על זה כך: אם התודעה היא אלגוריתמית אזי ניתן לייצר קוד מחשב הזהה לחלוטין לפעולת התודעה. קרא לו 'A. תמיד אפשר לשרשר לפונקציות הפלט של הקוד פונקציה Q הבוחנת את הפלט, ואם הוא שונה מ"לא עוצר" נתקעת בלולאה אינסופית. כעת, קרא לקוד הנוצר מ'A ומ-Q בשם A, והפעל עליו את משפט פנרוז. תקבל סתירה, ומכאן מסיקים שההנחה הראשונית שגויה - לא ניתן לתאר את פעולת התודעה כאלגוריתם. שים לב: לא הגבלתי את 'A כלל! אתה נתקע בנקודה טכנית במקום לנסות להבין את המשמעות העמוקה המסתתרת מאחורי ההוכחה. מושג האמת הלוגית איננו ניתן להגדרה פורמלית, ולכן תפיסת האמת הטבועה בתודעתנו איננה ניתנת לרדוקציה לאופרציות חישוביות. אפשר ללמד מחשב לבצע הסקה לוגית תקפה. אי אפשר לגרום למחשב להבין שהוא מבצע הסקה לוגית תקפה.
 
אני באמת מרגיש כמו בלולאה אינסופית.

יש מושג לוגי-מתמטי שנקרא "הוכחה בדרך השלילה". בטכניקה זו יוצאים מהנחה מסויימת ומגיעים ממנה מתוך שיקולים לוגיים לסתירה. מכאן מסיקים שההנחה מוטעית. זה בדיוק מה שעשיתי. הנחתי שהתודעה ניתנת לביטוי בתור אלגוריתם אמין 'A (עליו לא הנחתי שום אילוץ נוסף). בניתי ממנו, על ידי שרשור פונקציה Q אותה הגדרתי במדוייק, אלגוריתם A בעל פלט יחיד (וזה תמיד ניתן לביצוע!), והפעלתי עליו את הוכחת פנרוז. קיבלתי סתירה, ומכאן הסקתי ש-A איננו אמין או איננו אלגוריתם. כיוון שתוספת Q איננה משנה את האלגוריתמיות או האמינות של'A, מסיקים מפה ש'A המייצג את התודעה איננו אמין או איננו אלגוריתם. הטענה שלי (אותה כבר הסברתי) היא שהתודעה אמינה, ולפיכך מתחייב שהיא איננה אלגוריתמית. כל אלו צעדים מותרים. לא הייתי חייב להוסיף את Q. הייתי יכול להוסיף ל'A את תוכנת אופיס של מיקרוסופט. הייתי יכול לבדוק אותו בתוכנת אנטי-וירוס. הייתי יכול להדפיס אותו ולבלוע את הנייר תוך שאני רוקד את ריקוד הגשם. אבל הבנייה שביצעתי היא תמיד אפשרית, ולפיכך המסקנות שהסקתי ממנה הן תקפות. די בסתירה אחת כדי להפיל את הנחת המוצא. לא צריך אלף.
 
כמוני כמוך

אבל תנסה להבין את הבעיה שלי: "זה תמיד ניתן לביצוע" - "היא תמיד אפשרית" - לא עונה לשאלה שלי: האם זה מחויב המציאות? אם התודעה היא אלגוריתמית, הרי היא אלגוריתם אחד ויחיד. מה המניעה שהיא תהיה אלגוריתם שאינו יכול להיכנס ללולאה אינסופית?
 
פעם אחרונה ודי

אין דבר כזה "אלגוריתם שאינו יכול להיכנס ללולאה אינסופית". אלגוריתם הוא דבר מוגדר היטב. אפשר לממש כל אלגוריתם במכונת טיורינג, או בקוד של שפת מחשב כגון C. וזו פרוצדורה פשוטה להמיר כל שורת המכילה פונקצית פלט בתכנית מחשב בלולאה אינסופית. שוב, לא הנחתי שום אילוץ על אלגוריתם התודעה 'A. מצדי שיהיה עם מליארד פלטים אפשריים. אבל אם זה אכן אלגוריתם, ולכן ניתן למימוש בשפת מחשב סטנדרטית, אפשר תמיד, לייצר ממנו אלגוריתם A בתנאי משפט פנרוז.
 
תגיד, כתבת פעם תכנית מחשב?

קח תכנית C, והחלף, בכל המקומות בהן הן מופיעות, את הפונקציות printf או fprintf בפקודה ;while 1. מה קיבלת? נתקעת בנקודה טכנית די טרוויאלית. חבל. אתה מחמיץ את העיקר.
 
כי זאת ההוכחה goddamit!

%&^@#$%!!! מה לעזאזל לא ברור פה? כתבתי את זה כבר מאתיים אלף פעמים. רוצה עוד פעם? נו טוב: 1) מניחים בשלילה כי תודעתו של מתמטיקאי מנוסה היא אלגוריתם אמין 'A? טוב? 2) מממשים את האלגוריתם בשפת מחשב סטנדרטית (זה תמיד ניתן לביצוע, משום ששפת מחשב סטנדרטית אקוויולנטית למכונת טיורינג אוניברסלית). טוב? 3) מבצעים את הטרנספורמציה הבאה על קוד המחשב שקיבלנו: במקום כל פקודת פלט כותבים תנאי הבודק אם הפלט הנ"ל הוא "לא עוצר". אם כן, מדפיסים אותו ועוצרים את התוכנית. אם לא מתבצעת לולאה אינסופית (כמו ";while 1"). למה לעשות את זה? כי ככה אני רוצה. זאת ההוכחה שלי ומותר לי. מקבלים תכנית מחשב חדשה A, בעלת פלט אפשרי יחיד. תמיד אפשר לבצע את שלב 3, לא חשוב מה 'A, נכון? 4) מזינים ל-A את הקלט (k,k), כפי שהוגדר במשפט של פנרוז. כפי שהוכח, A בהכרח איננה עוצרת על הקלט הנ"ל. אולם A (הזהה ל'A פרט לפונקציות הפלט שלה) מתבססת על תודעתו של מתמטיקאי מיומן המכיר את המשפט של פנרוז, ולפיכך יכול להסיק ממנו ש-A איננה עוצרת, ולפיכך, הוא יפלוט את הפלט "לא עוצר" ויעצור. וזו סתירה. 5) כיוון שקיבלנו סתירה, יתכנו שתי אפשרויות: או שביצענו צעד אסור לוגית, או שיצאנו מהנחה שהיא בלתי אפשרית. כל הצעדים שהגדרתי תמיד ניתנים לביצוע. לא חייבים לעשות אותם, אפשר ללכת לדוג דגים, אבל אפשר לעשות אותם אם רוצים, ואני רוצה. ולפיכך הבעייה היא בהנחת היסוד: שהתודעה היא אלגוריתם אמין. על האמינות כבר הגנתי. נובע שהאלגוריתמיות היא הנחה שגויה. זהו. ואם תשאל עוד פעם "למה להחליף" אני אצרח!
 
למעלה