הפנטגרמה והפיתגוראים

על מה אתם חושבים כשאתם רואים את הסמל הבא?

Pentagram1

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

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

נשאלת השאלה, מה היפסוס בעצם גילה? מה המספר האי רציונלי שלו? לרוב חושבים שמדובר על שורש 2 ושההוכחה של היפסוס דומה להוכחה ה"סטנדרטית" שהצגתי בבלוג, אבל יש גם דעות אלטרנטיביות. אמנם, שורש 2 צץ מעצמו כשאנחנו מסתכלים על ריבוע עם אורך צלע 1 ומפעילים את משפט פיתגורס כדי לחשב את אורך האלכסון שלו, אבל אין סיבה להניח שמשפט פיתגורס היה חשוב באופן מיוחד לפיתגוראים; השם שלו הוא בסך הכל תוצר של נסיבות היסטוריות. לעומת זאת, הפנטגרמה הייתה סמל קדוש לפיתגוראים, ולכן הוכחה שמוצאת בה משהו אי רציונלי נראית יותר סבירה (אבל כמובן, את האמת אין לדעת – לא נותרו ממצאים כתובים של פיתגורס עצמו). ההוכחה הזו היא גם גיאומטרית יותר באופיה מההוכחה ששורש 2 אינו רציונלי, והתעלול המרכזי בה הוא יפהפה לחלוטין, כך שיש בה ערך גם אם אנחנו כבר מכירים את ההוכחה על שורש 2.

ראשית כל יש להבין כיצד פנטגרמה נוצרת. אנחנו מתחילים מצורה פשוטה יותר – מחומש משוכלל:

Pentagram2

הרעיון במחומש משוכלל הוא שזהו מצולע בעל 5 צלעות שוות באורכן, שכל הזוויות בו שוות.

עכשיו, בהינתן מחומש אפשר לקבל ממנו פנטגרמה באופן הבא – פשוט מציירים את כל האלכסונים, כלומר את כל הקווים שמחברים קודקודים שאינם סמוכים:

Basis

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

עכשיו, אם נסתכל בתוך הפנטגרמה, נראה שמתחבא בתוכה מחומש משוכלל קטן יותר, הפוך:

Pentagram3

אבל אם קיבלנו מחומש משוכלל, אפשר למתוח את האלכסונים שלו, ולקבל עוד פנטגרמה:

Pentagram4

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

בואו נסתכל לרגע על אחד מהמשולשים שמופיעים בתוך המחומש-עם-פנטגרמה:

Pentagram5

זה בבירור משולש שווה שוקיים, שאורך כל שוק בו הוא אורך צלע הפנטגרמה – בואו נסמן אותה ב-\(A\), ואורך הבסיס שלו הוא אורך צלע המחומש – בואו נסמן אותה ב-\(B\). בכל מחומש-עם-פנטגרמה שנצייר, היחס \(\frac{A}{B}\) בין אורך צלע הפנטגרמה ואורך צלע המחומש יהיה זהה (זה נובע מדמיון משולשים על המשולש שציירתי למעלה). כעת יש שתי שאלות: מהו היחס הזה, והאם הוא מספר רציונלי? לשאלה מהו היחס הזה אחזור בסוף הפוסט; כרגע אני רוצה לשכנע אתכם שהוא מספר אי רציונלי, כלומר שלא ניתן לתאר אותו על ידי מנה של שני מספרים שלמים.

הצעד הראשון הוא לשים לב לאבחנה הפשוטה הבאה: הטענה שהיחס \(\frac{A}{B}\) הוא רציונלי שקולה לטענה שאפשר לצייר מחומש-עם-פנטגרמה באופן כזה שגם אורך צלע הפנטגרמה וגם אורך צלע המחומש שניהם מספרים טבעיים. כיוון אחד הוא ברור – אם נצליח לצייר מחומש-עם-פנטגרמה שכזה, אז \(A\) יהיה מספר טבעי וגם \(B\) יהיה מספר טבעי ולכן \(\frac{A}{B}\) יהיה מספר רציונלי. הכיוון השני פחות מיידי: אם \(\frac{A}{B}\) הוא רציונלי זה לא אומר ש-\(A,B\) הם שלמים בהכרח – הביטו למשל על \(\frac{1/4}{1/2}\) (רבע חלקי חצי) ששווה למספר הרציונלי \(\frac{1}{2}\). מה שנכון הוא שאם היחס הוא מספר רציונלי, למשל \(\frac{t}{s}\) עם \(t,s\) שלמים, אז אפשר לצייר מחומש-עם-פנטגרמה כך שאורך צלעו של המחומש היא \(s\) ואורך צלעה של הפנטגרמה הוא \(t\) ולקבל מחומש-עם-פנטגרמה שאורכי צלעותיהם הם טבעיים.

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

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

ספציפית, בואו נסמן את צלע הפנטגרמה הגדולה ב-\(A\), את צלע המחומש הגדול ב-\(B\), את צלע הפנטגרמה הקטנה יותר ב-\(a\) ואת צלע המחומש הקטן יותר ב-\(b\). מה שנוכיח הוא ש-\(a=A-B\) (ולכן בפרט \(a<A\) ואכן נקבל סדרה יורדת) ו-\(b=2B-A\). בבירור אם \(A,B\) היו טבעיים שניהם, כך גם \(a,b\). עכשיו אני מציע לכם לקחת הפסקה מהפוסט, עכשיו משאתם יודעים מה אנחנו מנסים להוכיח, ולנסות להוכיח את זה בעצמכם. גם אם לא תצליחו, המשך הפוסט יהיה כנראה קל יותר לקריאה אחרי שחשבתם קצת על זה עצמאית.

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

Pentagram6

בגלל הסימטריה של המחומש אנחנו יודעים שכל המשולשים זהים, ושהם כולם שווי שוקיים, ולכן גם זוויות הבסיס שלהם שוות. מהי זווית הראש? סכום זוויות הראש של כל המשולשים יחד מרכיב מעגל שלם, כלומר 360 מעלות, ולכן זווית הראש היא בת \(\frac{360}{5}=72\) מעלות. זה מותיר לשתי זוויות הבסיס \(180-72=108\) מעלות, ולכן כל זווית בסיס שכזו היא בת \(54\) מעלות. כעת, כל זווית במחומש היא סכום של שתי זוויות בסיס ולכן הזווית במחומש היא 108 מעלות.

עכשיו, כל זווית של המחומש מחולקת על ידי הפנטגרמה לשלושה חלקים. שניים מהם בבירור זהים מטעמי סימטריה; בקשר לזווית האמצעית אנחנו קצת פחות בטוחים. בואו נסמן את הזוויות הצדדיות ב-\(\alpha\) ואת הזווית הפנימית ב-\(\beta\):

Pentagram7

אז יש לנו את המשוואה \(2\alpha+\beta=108^{\circ}\). זה לכשעצמו לא מספיק כדי לדעת מהם \(\alpha,\beta\), אבל אפשר למצוא עוד משוואה אם מסתכלים על המשולש:

Pentagram8

זווית הראש במשולש היא \(\beta\), ואילו שתי זוויות הבסיס הן \(\alpha+\beta\). לכן נקבל את המשוואה \(\beta+2\left(\alpha+\beta\right)=180^{\circ}\), כלומר \(2\alpha+3\beta=180^{\circ}\). קיבלנו שתי משוואות בשתי נעלמים, ואת זה קל לפתור – מחסרים את המשוואה הראשונה מהשניה ומקבלים \(2\beta=72^{\circ}\), כלומר \(\beta=36^{\circ}\), ולכן גם \(\alpha=36^{\circ}\). כלומר, הפנטגרמה מחלקת את הזוויות של המחומש לשלושה חלקים שווים שכל אחד מהם הוא \(36^{\circ}\). הסימטריה המושלמת הזו היא המפתח להמשך.

עכשיו, בואו נסתכל לרגע על צלע הפנטגרמה:

Pentagram9

שימו לב לכך שהיא מחולקת לשלושה חלקים. אורך החלק האמצעי הוא בדיוק \(b\) – אורך צלע המחומש הקטן. מה אורך שני החלקים האחרים? מסימטריה ברור שהוא שווה; נסמן אותו \(x\). קיבלנו את המשוואה \(A=b+2x\). כמו קודם, משוואה אחת לא מספיקה לנו, אז בואו נביט במשולש הבא:

Pentagram10

זה נראה כמו משולש שווה שוקיים, ואכן, די קל להשתכנע ששתי זווית הבסיס הן בנות 72 מעלות, בעזרת מה שכבר ראינו על הזוויות במחומש-פנטגרמה (הוכיחו זאת לעצמכם!). אחת השוקיים היא באורך \(B\) ואילו השניה היא באורך \(b+x\), כך שקיבלנו את המשוואה \(B=b+x\). נכפול את המשוואה הזו ב-2 ונחסר ממנה את הראשונה, ונקבל \(b=2B-A\), כפי שהבטחתי למעלה.

עכשיו הגיע הזמן לטפל בפנטגרמה-שבתוך-המחומש-שבתוך-הפנטגרמה. מה אורך הצלע שלה? ובכן, כבר היכרנו אותו – זה בדיוק מה שסימנתי בתור \(x\):

Pentagram11

בציור הזה אנחנו רואים עוד משולש שווה שוקיים, שבו השוקיים הן בדיוק צלע הפנטגרמה הקטנה, והחלק של צלע הפנטגרמה הגדולה שסימנתי בתור \(x\). זוויות הבסיס של המשולש הן בנות 36 מעלות – שוב, זה נובע ממה שכבר ראינו עליהן – ולכן זה אכן משולש שווה שוקיים. המסקנה: \(A=2a+b\), אבל אנחנו כבר יודעים מהו \(b\) במונחים של \(A,B\): \(b=2B-A\). נציב ונקבל: \(2a+2B-A=A\), כלומר \(2a=2A-2B\), כלומר \(a=A-B\) – שוב, כמו שהבטחתי. זה מסיים את ההוכחה.

עכשיו אפשר לחזור לשאלה הנוספת. אנחנו יודעים ש-\(\frac{A}{B}\) הוא מספר אי רציונלי, אבל איזה מספר אי רציונלי? לשם כך אנסה למצוא דרך לחשב, אלגברית, את הערך של \(\frac{A}{B}\). אנחנו יודעים מדמיון משולשים שמתקיים \(\frac{A}{B}=\frac{a}{b}\) ואנחנו יודעים לבטא את \(a,b\) בעזרת \(A,B\) – זו נראית כמו נקודת פתיחה טובה. אם כן, נציב:

\(\frac{A}{B}=\frac{A-B}{2B-A}\)

עכשיו אשתמש בתעלול. באגף ימין \(A\) ו-\(B\) מופיעים לבדם וזה לא טוב לי, כי מי שמעניין אותי הוא היחס \(\frac{A}{B}\). לכן אחלק הן את המונה והן את המכנה של אגף ימין ב-\(B\), ואקבל:

\(\frac{A}{B}=\frac{\frac{A}{B}-1}{2-\frac{A}{B}}\)

כעת אסמן \(x=\frac{A}{B}\) ובואו ונראה איזו משוואה קיבלתי:

\(x=\frac{x-1}{2-x}\)

נכפול את שני האגפים ב-\(2-x\) ונקבל:

\(2x-x^{2}=x-1\)

נעביר אגפים:

\(x^{2}-x-1=0\)

למשוואה הזו יש שני פתרונות אלגבריים:

\(x_{1,2}=\frac{1\pm\sqrt{5}}{2}\)

פתרון אחד הוא שלילי ולכן חסר משמעות בשבילנו – בהכרח הפתרון האחר הוא היחס הנכון, \(\frac{1+\sqrt{5}}{2}\). זה מספר מפורסם מאוד – הוא נקרא יחס הזהב ועיקר פרסומו מגיע לו מכך שהוא צץ, לכאורה, בכל מני מקומות בטבע, באדריכלות, באסתטיקה ועוד כהנה וכהנה. התחושה שלי היא שבלא מעט מקרים שבהם "מוצאים" את יחס הזהב במקום כלשהו יש מידה לא קטנה של אילוץ ומשחק עם פרמטרים כדי שיתאימו; עם זאת, בפנטגרמה הוא מופיע באופן הכי טבעי שרק אפשר, ובתפקיד מרכזי. כמובן, אם הייתי יודע שהיחס שאני מחפש הוא יחס הזהב הייתי יכול לוותר על ההוכחה הגיאומטרית ולהסתפק בציון העובדה שהוא אי רציונלי (למשל, כי \(\sqrt{5}\) אי רציונלי), אבל שימו לב לכך שכדי לגלות שהיחס הוא יחס הזהב היה עלי לחשב אלגברית את \(a,b\) ובשלב הזה ההוכחה שלי ממילא נסתיימה. פרט לכך, אין מה לעשות – ההוכחה הגיאומטרית פשוט מגניבה יותר.

למה לא רציונלי לדבר על לא רציונליים (באינסוף)

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

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

יש סוגי אינסוף המוכרים לנו מהיומיום, כמו המספר פאי, עם רצף הספרות האינסופי חסר המחזוריות מימין לנקודה. אבל מה יקרה אם נעגל את פאי ל-3.14159, ואז נגיש פאי תפוחים ב-14 במארס בשעה 1:59?

(מה באמת יקרה? כנראה שנאכל פאי תפוחים).

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

המדובר על הציטוט הבא:

ביוון העתיקה "אימצו גישה חשדנית ועוינת למושג האינסוף", אומר א. וו. מור, מרצה לפילוסופיה באוניברסיטת אוקספורד ומחבר הספר The Infinite (1990). היוונים העדיפו מספרים רציונליים, שלפי הגדרתם יכולים להיכתב כשבר, כפי ש-0.75 שווה ל ¾ בדיוק, על פני מספרים אי-רציונליים כמו השורש הריבועי של 2, שהם בעלי עשרות ספרות חסרות מחזוריות.

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

מה שאני כן רוצה לטעון כאן הוא שבעייתי מאוד לזהות את המספרים האי-רציונליים עם "אינסוף" בעזרת הטיעון של "אינסוף ספרות" (או "עשרות ספרות" בלשונה הציורית של אנג'יר). נתחיל מכך שאנג'יר עושה לעצמה חיים קלים בכך שהיא מביאה את ¾ כדוגמה. הוא אכן ניתן לכתיבה יפה בתור 0.75, אבל לא כל המספרים הרציונליים כאלו! הדוגמה הפשוטה ביותר היא שליש, 1/3, שכאשר ננסה להציג אותו בבסיס עשרוני נקבל את המספר …0.333 שהוא בעל אינסוף חזרות של 3 על עצמו (זו המשמעות של שלוש הנקודות).

יתר על כן, אין מקריות בתופעה הזו – זה לא שלשליש יש איזו תכונה "רעה" ולשלושת-רבעי יש תכונה "טובה" מקרית. לא קשה להוכיח שבאופן כללי, הייצוג העשרוני של מספר רציונלי הוא סופי אם ורק אם המכנה שלו הוא מכפלה של מספר כלשהו של 2 ו-5 בלבד. למה דווקא 2 ו-5? כי אלו המחלקים הראשוניים של 10, שהוא המספר שבבסיס הספירה העשרונית. זה מעביר אותנו לפאנץ' הראשון: בבסיס ספירה אחר, למשל בבסיס ספירה עם 9 ספרות בלבד, המספר ¾ דווקא יהיה בעל ייצוג האינסופי …0.666, בעוד 1/3 יהיה בעל הייצוג הסופי 0.3 (אגב, אפשר גם להעיר שייצוג "סופי" כמו 0.3 הוא גם כן אינסופי, שהרי אחרי ה-3 מגיעות עוד אינסוף ספרות שכולן 0).

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

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

מה הקאץ'? שגם לשורש 2 קיים ייצוג מחזורי. לא ייצוג עשרוני, כמובן, אלא ייצוג בתור שבר משולב אינסופי. למי שמעוניין לקרוא על שברים משולבים יש לי שני פוסטים שמציגים אותם. כאן לא אכנס לפרטים הטכניים אלא אסתפק בשורה התחתונה: כל מספר ממשי אפשר לייצג על ידי שבר משולב אינסופי, כאשר בתכל'ס הקידוד הזה מבוצע על ידי סדרה של מספרים טבעיים. מספר הוא רציונלי אם ורק אם הסדרה הזו היא סופית; אבל זה לא אומר שלמספרים האי-רציונליים יש בהכרח שבר משולב לא מחזורי: תוצאה יפהפיה של לגראנז' (מתמטיקאי איטלקי-צרפתי בן המאה ה-18 – הרבה אחרי היוונים הקדמונים) מראה כי כל מספר אי רציונלי שהוא פתרון של משוואה ממעלה שניה במספרים רציונליים הוא בעל שבר משולב אינסופי מחזורי, וגם ההפך נכון (כל מספר בעל שבר משולב אינסופי מחזורי הוא פתרון של משוואה שכזו). בפרט שורש 2 הוא פתרון של משוואה שכזו – \(x^2-2=0\) ולכן יש לו הצגה כשבר משולב מחזורי אינסופי, שמיוצג על ידי סדרה פשוטה למדי: …1,2,2,2. אגב, המספר שמיוצג על ידי הסדרה האינסופית-מחזורית הפשוטה ביותר שניתן להעלות על הדעת – …1,1,1,1 – הוא ידידם הטוב ביותר של סופרי המתמטיקה הפופולרית – יחס הזהב (האי-רציונלי למהדרין).

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

אם כן, עלינו להחליט. האם ייצוג של משהו על ידי אינסוף ספרות הוא רע או טוב? אם אינסוף ספרות זה אוטומטית רע, הרציונליים בבעיה; אם אינסוף ספרות זה לא רע כל עוד הן מחזוריות, אז גם חלק מהאי-רציונליים הם במצב טוב, למשל שורש 2 שאנג'יר השתמשה בו כדוגמה. כדאי גם להעיר שאפילו חלק מהמספרים טרנסנדנטיים כמו e הם בעלי הצגות נחמדות כשברים משולבים: הסדרה שמתאימה ל-e היא …2,1,1,4,1,1,6,1,1 שאיננה מחזורית במובן הפשטני של המילה אבל בבירור היא מתוארת על ידי תבנית קצרה ופשוטה. זה מנוגד לחלוטין לתפיסה הרווחת של המספרים האי-רציונליים ככאלו שאין מנוס מלהציג אותם בצורה "מבולגנת", כפי שעשוי להתקבל הרושם כאשר מסתכלים על הייצוג העשרוני הרגיל של שורש 2, …1.41421356237.

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

ראשוני מחוץ לחוק

האם מספר ראשוני (או סתם מספר) יכול להיות לא חוקי? בהחלט, וזה הסיפור שאני רוצה לספר היום, שהוא גם משעשע, גם מערב מתמטיקה לא טריוויאלית וגם מערב קצת להטוטי מדעי המחשב. תחילת הסיפור היא עם דיסקי ה-DVD. דיסקים מסחריים מגיעים בדרך כלל עם הגנה כלשהי עליהם, וזו שרלוונטית לנו והייתה פופולרית בתחילת המאה ה-21 נקראת Content Scramble System, או בקיצור CSS.

הרעיון הוא פשוט: התוכן של ה-DVD מוצפן, והמפתח שבעזרתו ניתן לפענח את ההצפנה נמצא על איזור מאוד ספציפי של הדיסק. דיסקים לצריבה שנמכרים בחנויות מגיעים במצב שבו האיזור הזה לא ניתן לכתיבה, או שהצורבים הקנייניים פשוט לא מוכנים לצרוב בו, ולכן גם אם מעתיקים את תוכן הדיסק כמות שהוא, לא ניתן להעתיק את המפתח; זה הופך את ה-CSS להגנה כלשהי בפני שכפולי דיסקים נאיביים (שבהם פשוט מעתיקים את תוכן הדיסק בלי לפענח אותו קודם). בנוסף, CSS מספק יכולת לחלק את נגני ה-DVD ל"איזורי שידור" שונים – נגן שמתאים לאיזור א' לא יודע לקרוא את הססמא שנמצאת בדיסק שנועד לאיזור ב'. אפשר להגיד דברים טובים ורעים על השימוש ב-CSS או באופן כללי על השימוש ב-DRM (קיצור של Digital Rights Management, שבעברית נקרא "ניהול זכויות דיגיטלי" אבל לרוב מעדיפים לתרגם כ-"ניהול זכויות קנין", או בקיצור נז"ק) אבל אני מעדיף להימנע מהדיון הזה כאן. החשיבות של ה-CSS היא בכך שבאופן לא מפתיע בכלל, מהר מאוד צצו אנשים עלומי שם שמצאו דרך לפצח את ההצפנה שלו גם בלי לקרוא את המפתח, ומהר מאוד נכתבה תוכנה בשם DeCSS שעושה בדיוק את זה. באופן לא מפתיע, DeCSS נחשבת לא חוקית במספר מדינות (ושוב, לא ניכנס לדיון על אילו מדינות ומדוע…).

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

נתחיל מההתחלה – איך תוכנית מחשב יכולה להיות מספר? לשם כך צריך לזכור איך תוכניות מחשב מיוצגות בתוך המחשב: תוכנית מחשב, כמו כל קובץ אחר במחשב, היא בסך הכל רצף של אפסים ואחדים – "ביטים". מטעמים היסטוריים, נהוג לקבץ את הרצפים הללו לקבוצות של שמונה ביטים שנקראות "בייטים". אפשר לחשוב על כל בייט בפני עצמו בתור ייצוג של מספר בין 0 ל-255, בבסיס בינארי. למשל, הבייט 00001011 מייצג את המספר \(1+2+8=11\). כפי שאתם מנחשים, קצת מסורבל לייצג בייטים בבסיס בינארי, אז נהוג לייצג אותם בבסיס 16 – "בסיס הקסדצימלי" – שהיתרון שבו הוא שכל ספרה הקסדצימלית ניתנת לחישוב מיידי מארבעה ביטים רצופים. הבייט שלעיל, בבסיס הקסדצימלי, הוא \(\mbox{0B}\).

האופן שבו רצפים שונים של בייטים מפורשים בתור קבצים הוא עניין שהוא לחלוטין תלוי הקשר – אותו רצף של בייטים יכול להיראות בעל משמעות רבה לתוכנה אחת, וחסר משמעות לתוכנה אחרת. כמה פעמים ניסתם לפתוח קובץ MP3 על ידי עורך תמונות כדי לראות מה יקרה? (לרוב עורך התמונות יצעק שהוא לא מבין כלום; אבל עורכי טקסט לפעמים יצליחו לפתוח את הקובץ ולהציג משהו שנראה כמו ג'יבריש). יש ייצוג סטנדרטי פשוט יחסית לטקסט שנקרא ASCII – בייצוג זה כל בייט מייצג תו מסויים, כאשר אותיות לועזיות מתחילות ב-65 ונגמרות ב-122 (עם עוד כמה סימנים באמצע). כפי שקל להבין, אפשר לייצג בשיטה זו רק 255 תווים ולכן בשביל להציג אלפביתים רבים ושונים משתמשים בשיטות קידוד מחוכמות יותר שלא אכנס אליהן כאן.

בואו נסתכל על קובץ טקסט שמכיל את הפסקה הבאה, פסקת הפתיחה של "סוס הים והנגר" של לואיס קארול:

The sun was shining on the sea,

Shining with all his might:

He did his very best to make

The billows smooth and bright–

And this was odd, because it was

The middle of the night.

אם נפתח את הקובץ עם עורך שיודע לקרוא את הערכים המספריים של הבייטים שלו (עורך כזה נקרא Hex Editor), תחילת הקובץ תיראה כך: 73 20 65 68 54. כאן ה-20 הוא תו ה-ASCII שמייצג רווח, ושאר התווים מייצגים אותיות. זכרו שלא מדובר על ייצוג מספרי אלא על ייצוג הקסדצימלי: כדי לתרגם אותו למספר, הכפילו את הספרה הראשונה ב-16 וחברו לשניה. כלומר, 54 הוא בעצם המספר שמונים וארבע, בעוד ש-68 הוא המספר מאה וארבע. אם נכתוב את הספרות הללו בזו אחר זו, נקבל את 5468 שהוא כבר מספר גדול בהרבה: 8 ועוד 6 כפול 16, ועוד 4 כפול 16 בריבוע, ועוד 5 כפול 16 בשלישית, כלומר המספר \(21608\). ואם ניקח את כל הקובץ של סוס הים והנגר ונחשוב עליו כמספר באופן שתיארתי, נקבל מספר די מפלצתי, בן למעלה מארבעה-מאות ספרות:

153058130896577434476956204244500915089507607276649591136639967347927
634085752721215073631336899232176479844024041004598713736540252717051
491125294738203137728828190962600734620137160806953118745283821570893
504447012198054017464958848902345608456153112106477819772373230961058
745461657368290816729833943072852706505548140495454380685559992935237
417096409099380602636039274560979892769401971212873564491309951693079
602940848141358

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

355941790546066961506342149389258720867004703259858151842931171763230
166556747517269253437195257820204425589941114036432425909398860764878
800593067151962049148381358503674861857798181563071988203782124545041
443302544039699025354442584168547347939973801595105557917155490117291
567168064926333899651600682718875560672206876979350834558577630451895
58969097475577492799488

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

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

def read(n)
hex_string = n.delete(" \n").to_i.to_s(16)
hex_string = "0" + hex_string if hex_string.length % 2 != 0
program_gzip = [hex_string].pack('H*')
File.open("program.gz", "w"){|f| f.write(program_gzip)}
puts `gunzip -c program.gz`
end

מה קורה כאן? בשורה הראשונה מנקים רווחים וירידות שורה מהמספר וממירים אותו לערך מספרי ומייד לאחר מכן ממירים אותו שוב למחרוזת, הפעם כזו שמייצג את המספר בבסיס 16. מכיוון שרובי לא תוסיף 0 מוביל אם אמור להיות כזה, השורה הבאה מוסיפה אותו בעצמה (הסבירו לעצמכם למה צריך לוודא את זה). השורה הבאה היא הקסם השחור הגדול ביותר כאן – הפקודה pack (שמסיבה לא ברורה חייבת לפעול על מערך) ממירה מחרוזת שמייצגת ערך כלשהו לערך האמיתי שלו, בהתאם לסוג המידע שבמחרוזת. כאן H אומר שהערך הוא מספר בבסיס הקסדצימלי והכוכב אומר לקחת את כל הספרות שבמחרוזת. השורה הבאה כותבת את התוכן לתוך קובץ ה-gz, וזו שאחריה פותחת את הקובץ ומוציאה את הפלט. זה הכל. אתם מוזמנים להריץ את הקוד על המספר שנתתי למעלה (לשם כך תצטרכו לעבוד במערכת הפעלה שבה מותקן gunzip בצורה שבה הוא יכול להיות מופעל כך משורת הפקודה, ואני מנחש שאצל רובכם זה לא המצב…) – תקבלו בחזרה את סוס הים והנגר. ואם תעשו את זה על הראשוני של קרמודי, שאפשר לראות כאן, תקבלו את הקוד של DeCSS.

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

מספר ראשוני, למי שלא מכיר, הוא מספר שמתחלק רק ב-1 ובעצמו. למשל 7. או 97. ראשוניים הם מעניינים ממגוון סיבות, שרובן נובעות מכך שכל מספר טבעי ניתן לכתוב בצורה יחידה (עד כדי משהו שלא ניכנס אליו) כמכפלה של ראשוניים, והרבה ניתוחים של מספרים טבעיים מתבססים על לקחת את הייצוג הזה כמכפלה ולעשות איתו דברים, תוך שימוש בכך שראשוניים מקיימים שלל תכונות נחמדות שסתם מספרים לא בהכרח מקיימים. דוגמה חשובה לכך היא שיטת ההצפנה RSA: בשיטה זו מגרילים מספר גדול מאוד (מאות ספרות) \(n\) שהוא מכפלה של שני ראשוניים: \(n=pq\). מתוך \(n\) אפשר לייצר שני מספרים, שבאמצעות אחד מהם אפשר להצפין הודעות ובעזרת השני אפשר לפענח אותן; רק שהדרך היחידה שאנו מכירים כיום למצוא את מפתח הפענוח בהינתן מפתח ההצפנה ו-\(n\) היא לדעת את הפירוק של \(n\) לאותו זוג ראשוניים \(p,q\). מי שסתם נותנים לו את \(n\) ביד (וזה מה שנותנים לכל מי שרוצה להצפין) לא יודע לחשב כלום בסגנון הזה, ולמצוא את הראשוניים שמרכיבים את \(n\) זה עניין קשה חישובית. אני חושב שזה עניין מרתק למדי, האופן שבו ההיכרות עם הפירוק של \(n\) לגורמים משנה את כל התמונה.

כעת, כדי לייצר את \(n\) מלכתחילה לא סביר סתם להגריל מספר גדול ולראות אם הוא מתפרק למכפלה של זוג ראשוניים – גם כי לא בהכרח נצליח להגריל מספר כזה, וגם כי כאמור – אנחנו לא באמת יודעים לפרק את \(n\) ואם נצליח לעשות את זה, גם אחרים כנראה יצליחו אז מה השגנו? לכן מה שעושים הוא להגריל מראש את \(p,q\) ולכפול אותם. זו דוגמה לצורך המעשי שלנו להיות מסוגלים למצוא מספרים ראשוניים גדולים. למרות זאת, זה עדיין לא מסביר למה אנחנו מחפשים גם מספרים ראשוניים ממש גדולים, גדולים מכל מספר ראשוני שהכרנו עד אליהם. התשובה היא – אין סיבה, אנחנו עושים את זה בעיקר מתוך סקרנות אינטלקטואלית ומתוך רצון לשפר עוד ועוד את רמת האלגוריתמים-מחפשי-הראשוניים שלנו (אותם אלגוריתמים שבסופו של דבר גם עוזרים למערכות כמו RSA להתקיים).

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

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

אז השלב הבא הוא הפעלה של אלגוריתם שהוא איטי הרבה יותר מאשר מילר-רבין, אבל אם הוא אומר שמספר הוא ראשוני, אז מובטח לנו שזה אכן המצב. יש אלגוריתם מפורסם כזה: אלגוריתם AKS, רק שזה אלגוריתם מאוד איטי יחסית, ובזמנו של פיל קרמודי הוא בכלל לא היה קיים. אז קרמודי השתמש באלגוריתם מהיר יותר, שהוא בעל התכונה הבאה: אמנם, לא בטוח שהוא יסיים את ריצתו בזמן סביר על כל מספר, אבל אם הוא עוצר על מספר ואומר שהמספר ראשוני, אז מובטח לנו שהמספר אכן ראשוני. האופן שבו האלגוריתם עושה את זה הוא באמצעות אובייקט מתמטי לא טריוויאלי שנקרא "עקום אליפטי", ומכאן שם האלגוריתם: Elliptic Curve Primality Prover, או ECPP. זה אלגוריתם מגניב למדי וגם לא מסובך יותר מדי, בהינתן כמה שכל הנושאים של עקומים אליפטיים הם לא טריוויאליים, ואני מקווה לכתוב עליו פוסט מתישהו.

עכשיו, כדאי להעיר שקצת שיקרתי בתחילת הפוסט כדי למשוך קוראים. הרשימה שאליה הראשוני של קרמודי הוכנס היא "רשימת המספרים הראשוניים הגדולים ביותר שהראשוניות שלהם הוכחה בעזרת ECPP". אפשר לראות את הרשימה הזו כאן; המספר של קרמודי כבר לא שם, כמובן, בכל זאת עברו עשר שנים מאז. הסיבה לכך שיש הגיון בלדבר על רשימה כמו זו ולא פשוט על רשימת "הראשוניים הגדולים ביותר שהוכחו, נקודה" היא שעבור ראשוניים מצורה מסויימת יש אלגוריתמים יעילים יותר לבדיקת ראשוניות. הדוגמה שאני מכיר והיא כנראה החשובה ביותר היא מבחן לוקאס-לאמר למספרי מרסן. מספר מרסן הוא מספר מהצורה \(2^{p}-1\) כאשר \(p\) הוא ראשוני; מבחן לוקאס-לאמר מאפשר לבדוק בצורה יחסית יעילה האם מספר כזה הוא ראשוני, ובשל כך הראשוניים הגדולים ביותר שראשוניותם הוכחה הם מספרי מרסן. זה כמובן יפה מאוד לכשעצמו אבל לא ממש יעיל עבור אלגוריתמים כמו RSA (שבהם חשוב שהראשוניים שמגרילים יהיו מספרים לא ידועים במיוחד; מספרי מרסן ראשוניים אין יותר מדי) ולכן ראוי לתת מקום של כבוד גם לאלגוריתמים "כלליים" לבדיקת ראשוניות, כמו ECPP.

עכשיו אפשר להשלים את התיאור של מה שקרמודי עשה בפועל. ראשית, הוא לקח את המספר שמייצג את קובץ ה-gz של התוכנית; נסמן אותו ב-\(X\). כעת, אין סיבה מיוחדת להניח ש-\(X\) יהיה ראשוני, ובטח לא שיהיה בסדרי הגודל שקרמודי מעוניין בהם. הנקודה היא שאפשר לשנות את המספר הזה ולקבל קובץ gz שהוא אמנם שונה אבל שקול, מבחינה זו שההבדל היחיד הוא שיש בסוף שלו עוד קצת ג'יבריש שממנו gz יודע להתעלם. למי שזה מרגיש להם כמו "רמאות" – ובכן, ראשית כל זכרו שאנחנו מדברים כאן על משהו מעשי לחלוטין, ולכן השאלה החשובה היחידה היא האם זה עובד (וזה עובד, עם הקוד שנתתי לעיל). שנית, גם בתחומים תיאורטיים לגמרי כמו תורת החישוביות יש חשיבות ליכולת להוסיף ג'יבריש למשהו מבלי לשנות את משמעותו. דוגמה נפלאה לכך שהראיתי בעבר בבלוג היא משפט לדנר בתורת הסיבוכיות, שאומר (בערך) שלא ניתן להכריע את בעיית \(\mbox{P=NP}\) באמצעות שיטת הלכסון; שם לב העניין היה לבנות שפה בעל תכונות מוזרות, שנבעו מהוספה של ג'יבריש בכמות מאוד מאוד מסויימת (הפונקציה שמתארת את הכמות הזו הייתה הדבר המורכב ביותר בהוכחה) למילים "חוקיות" של שפה סטנדרטית כלשהי. בקיצור – ג'יבריש זה טוב.

על ידי הארכה של קובץ ה-gz באמצעות הוספת בייט לסופו מכפילים את הערך של המספר שמייצג את התוכנית כולה פי \(256\) (כי אנחנו מוסיפים שתי ספרות הקסדצימליות; אם היינו מוסיפים שתי ספרות עשרוניות בתחילת מספר קיים היינו מכפילים אותו פי 100) ואפשר לשים ערך כרצוננו בבייט האחרון כדי להגדיל עוד טיפה את ערכה המספרי של התוכנית. במילים אחרות, אנחנו מסוגלים לקודד את התוכנית על ידי המספר \(256X+a\), לכל \(0\le a\le255\). זה נתן לקרמודי הרבה מספרים לבדוק את ראשוניותם. בסופו של דבר זה לא הצליח, אז הוא פשוט הוסיף עוד בייט ובדק את המספרים מהצורה \(256^{2}X+a\). איך הוא בדק אותם? באמצעות תוכנת קוד פתוח שנקראת OpenPFGW; על פי התיאור שלו, היא ראשית כל מבצעת בדיקה נאיבית של חלוקה של המספר שאותו בודקים בהמון ראשוניים קטנים, ואז מריצה מבחן ראשוניות אקראי כלשהו (אני מנחש שמילר-רבין, אבל לא בטוח; יש עוד אלגוריתמים נאים). בצורה הזו קרמודי סינן את המספרים הבעייתיים והגיע למספר שבודאות מאוד מאוד גדולה אכן היה ראשוני; הרצה של ECPP עליו (במימוש של תוכנה בשם Titanix) סגרה את הסיפור.

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

2=1+1

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

הטריגר הנוכחי לפוסט הוא המאמר הבא של Ynet, שהציטוט הזה מתוכו מעביר היטב את רוח הדברים:

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

ובכן – לא. זה לא ככה. זו לא אמת בסיסית שאין עוררין ואין חולקין עליה. המתמטיקה ממש לא נעצרת כאן. להשתעשע עם הקלישאה זה טוב ויפה, אבל נדמה לי שיש אנשים שחושבים ברצינות שעמדת המתמטיקה בנוגע ל-\(1+1=2\) היא ש"זה נכון כי ככה". בפוסט הזה ארצה לתת כמה נקודות מבט מתמטיות שונות על העניין.

השאלה הראשונה שיש לי אל מי שלא מוכן לקבל את \(1+1=2\) כפשוטו היא – כשאתם אומרים "2", למה אתם מתכוונים? המתמטיקה שואלת מה ההגדרה שלכם לסימן \(2\). קרוב לודאי שרובכם תענו ש-\(2\) הוא פשוט סימון מקוצר ל-\(1+1\), ולכן ברור ש-\(1+1=2\); אין בשוויון הזה שום דבר עמוק יותר מלהגיד ש-2 הוא הסימן שבו אתם משתמשים כדי לתאר את אחד ועוד אחד (ושימו לב שבכלל אין חשיבות לשאלה מה זה \(1\) בשבילכם, או אפילו מה זה \(+\)בשבילכם).

רק מה, המתמטיקאים לא מסכימים איתכם.

אחת מיצירות המופת המונומנטליות ביותר בתולדות המתמטיקה היא ה-Principia Mathematica שכתבו המתמטיקאים (והפילוסופים) ברטרנד ראסל ואלפרד נורת' וייטהד בתחילת המאה ה-20. מדובר על יצירה עבת כרס ביותר שניסתה לבסס את כל המתמטיקה על הלוגיקה המתמטית שהייתה בחיתוליה באותם ימים, ולעשות זאת בצורה הפורמלית והמדויקת ביותר האפשרית. מעולם לא קראתי אותה. אני לא מכיר אף אחד שעשה זאת. עם זאת, ציטוט אחד מתוכה זכה לתהילת עולם: אי שם בעמוד 379, אחרי הוכחת טענה שהמראה שלה גורם גם לי להתפלץ, השניים אומרים (ללא ספק בהומור עצמי) ש"מטענה זו ינבע, לאחר שחיבור אריתמטי יוגדר, ש-\(1+1=2\)".


הלקח שיש ללמוד מהסיפור הזה הוא שהשוויון הזה לא מובן מאליו למתמטיקאים – הם לאו דווקא חושבים עליו בתור הגדרה. כמובן, נשאלת השאלה איך הם כן מגדירים את 1, את 2 ואת החיבור. אני לא מכיר את הגישה של ראסל ושל וייטהד, אבל גישה מקובלת למדי במתמטיקה של ימינו היא זו: ראשית מגדירים את המספר 0. כעת מגדירים לכל מספר משהו שנקרא "עוקב". אם \(n\) הוא מספר, אז \(S\left(n\right)\) הוא העוקב שלו. אנו משתמשים בסימון \(1\) כדי לתאר את \(S\left(0\right)\) , ובסימון 2 כדי לתאר את \(S\left(S\left(0\right)\right)\) וכן הלאה. אחר כך מגדירים גם את פעולת החיבור באמצעות עוקב: \(a+0=a\) לכל \(a\), וכמו כן \(a+S\left(b\right)=S\left(a+b\right)\) (מבלבל? מצוין! נסו לחשוב על זה עוד קצת).

עם ההגדרות הללו, הטענה \(1+1=2\) היא בעצם משפט מתמטי: המשפט \(S\left(0\right)+S\left(0\right)=S\left(S\left(0\right)\right)\) , שניתן לתת לו הוכחה שהולכת בערך כך: על פי ההגדרה של +, \(a+S\left(b\right)=S\left(a+b\right)\) ולכן אם \(a=S\left(0\right)\) ו-\(b=0\) נקבל ש-\(S\left(0\right)+S\left(0\right)=S\left(S\left(0\right)+0\right)\). כעת, מכיוון שעל פי ההגדרה של + מתקיים \(a+0=a\) לכל \(a\), אז \(S\left(0\right)+0=S\left(0\right)\) ולכן \(S\left(S\left(0\right)+0\right)=S\left(S\left(0\right)\right)\) והנה הגענו אל מה שרצינו להוכיח. במילים אחרות, \(1+1=2\), מנקודת המבט המתמטית, זו בכלל לא אקסיומה או טענה בסיסית שלא מתווכחים עליה; זו טענה שנובעת מהגדרות יותר בסיסיות וקל להוכיח אותה.

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

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

נתחיל מעוד קלישאה אהובה: "מה אם \(1+1=3\)?" שמובאת לפעמים כדוגמה לחשיבה פורצת מסגרות. ובכן, אם \(1+1=3\) , ואם אנחנו מסכימים על כך שגם \(1+1+1=3\), אז קיבלנו ש-\(1+1=1+1+1\). אם אנחנו מסכימים שאפשר לחסר, אז קיבלנו מכך ש-\(0=1\) (אחרי שחיסרנו \(1+1\) משני האגפים), וזה בעצם אומר שהכל אפס. גם אפס, וגם אחד, וגם אחד ועוד אחד וגם כל דבר שהוא. לא הגישה הכי פרודקטיבית לחיים. אז אפשר להגיד שאי שם בדרך רימינו – למשל, שאסור לחסר, אבל אז עולה השאלה מה הטעם בחשבון שבו אחת מהפעולות הבסיסיות ביותר היא אסורה; או ש-\(1+1+1\) לא שווה 3, אבל אז נשאלת השאלה למה הוא כן שווה, והאם \(3\) הוא לא סתם סימון מוזר שלנו למספר שבדרך כלל קוראים לו "שתיים". בקיצור, אי אפשר להגיד ש-\(1+1=3\) בלי שתתחייב מכך זריקה לפח של כל מה שאנחנו מכירים בתור חשבון, והחלפתה במשהו שהוא טריוויאלי ולא מעניין כי לא קורה בו כלום. לי אישית נראה שאלו שאומרים \(1+1=3\) לא באמת חושבים מחוץ למסגרת, אלא פשוט לא חושבים – בפרט לא חושבים עד הסוף על ההשלכות של הטענות שלהם.

מה כן כדאי לעשות, והמתמטיקאים עושים? להגיד ש-\(1+1=0\). זה לא מוביל למסקנה ש-\(0=1\), וזה גם לא דורש מאיתנו לזרוק לפח את פעולות החשבון; ההפך, כל ארבע פעולות החשבון תקפות גם עבור העולם הקטן והנחמד שאנחנו מקבלים כשאנחנו מגדירים ש-\(1+1=0\). במתמטיקה קוראים לעולם הזה \(\mathbb{Z}_{2}\) – זו דוגמה לשדה סופי; במקרה זה, השדה הסופי הקטן ביותר שקיים.

בפני עצמו לא נראה שאנחנו יודעים לעשות הרבה עם השדה הזה כי אנחנו יכולים לייצג מעט מאוד דברים כשיש לנו רק את 0 ו-1; אבל מותר לדבר גם על סדרות של היצורים הללו. למשל, יש 8 סדרות מאורך 3 של אפסים ואחדים, כש-\(\left(1,0,1\right)\) ו-\(\left(0,0,0\right)\) הן שתי דוגמאות. באופן כללי יש \(2^{n}\) סדרות מאורך \(n\) של אפסים ואחדים – וזה כבר הרבה. חיש קל, עבור ערכים לא גדולים במיוחד של \(n\), אנחנו מסוגלים לייצג כמויות אדירות של מידע.

בפועל, זה גם מה שקורה בתוך מחשבים: מחשבים לא יודעים לייצג מספרים מגודל שרירותי. מה שהם עושים ברמת החומרה הוא לייצג באופן אלקטרוני כלשהו ביטים – יצורים שיכולים להתפרש כמכילים רק 0 או 1. על הביטים הללו אפשר לבצע פעולות שונות ומשונות ובפרט את פעולת החיבור שהגדרנו, זו שבה \(1+1=0\) (בעולם האמיתי היא נקראת XOR). פרט לכך יש ל-\(\mathbb{Z}_{2}\) גם מקום של כבוד במתמטיקה באופן כללי, אבל לא אכנס ליותר מדי פרטים כרגע. הנקודה החשובה היא שזה קיים, וזה לגיטימי. אף מתמטיקאי לא יטען שבהכרח \(1+1=2\); קרוב לודאי שהוא יוודא קודם כל שמדברים על מספרים טבעיים ועל פעולת החיבור הרגילה.

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

מהם המספרים הממשיים?

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

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

לעת עתה בואו נעשה חזרה מהירה על מהם מספרים בכלל – בראשית ימי הבלוג כתבתי סדרת פוסטים בנושא למעוניינים, וכעת אקצר יותר. המשחק מתחיל עם המספרים \(1,2,3,\dots\) ודומיהם המוכרים לנו כבר מחיי היום יום – אלו הם המספרים הטבעיים. בשלב הבא אפשר להוסיף למשחק את אפס. בתרבות שלנו, שבה רווח המנהג לקרוא לאנשים "אפס", המושג נראה לנו טבעי לגמרי – אבל בעבר הוא לחלוטין לא היה מובן מאליו ואפשר לכתוב פוסטים היסטוריים מרתקים (אפילו ספרים) בעניין זה. התכונה שמעניינת אותנו באפס היא שהוא איבר נייטרלי ביחס לחיבור – כאשר מוסיפים אותו למספר, נאמר \(n\), מקבלים שוב \(n\). השלב הבא הוא הוספת מספרים מוזרים עוד יותר – המספרים השליליים. מינוס \(n\) הוא מספר שהתכונה המאפיינת אותו (אפילו המגדירה אותו, במובן מסויים) הוא שכאשר מחברים לו \(n\) מקבלים אפס. גם המספרים השליליים השתרשו בחיי היום יום שלנו זה לא מכבר – יש לנו חוב בבנק, שהוא יתרה של מינוס כך וכך שקלים; יש לנו קומות שמתחת לקומת הכניסה לבניין, שהן קומות מינוס משהו. בדומה, ים המלח נמצא בגובה מינוס 421 מטר ביחס לפני הים.

משיש לנו את כל המספרים הללו, אנחנו מציירים את "ציר המספרים"- קו ישר שבמרכזו 0, ועליו מסומנות נקודות במרווחים שווים. שתי הנקודות הראשונות סביב 0 הן 1 ומינוס 1 (הנוהג הוא ש-1 יופיע מימין ל-0 ומינוס 1 משמאל). שתי הנקודות הבאות הן 2 ומינוס 2, וכן הלאה. קו הוא יצור "רציף"- ציירנו אותו במשיכת עט בודדת, בלי להרים את העט מהדף. לכן אינטואיטיבית ניתן לחשוב שכל נקודה על ציר המספרים – לא רק אלו שסימנו במיוחד – מסמנת מספר, ולכל המספרים שמתקבלים כך לקרוא "מספרים ממשיים". למי שזה מפריע לו (בצדק…) אפשר לנקוט בגישה קצת יותר פורמלית – להגיד שנקודה כלשהי על חלקו הימני של הציר מסמנת מספר שמתאים לאורך של הקטע שבין נקודה זו ובין 0 (ונקודה על חלקו השמאלי מתאימה למינוס האורך של קטע זה). אם אנחנו יוצאים מנקודת הנחה שאורכים של קווים הם משהו "אמיתי", ושנכון להגדיר מספרים על פיהם, האינטואיציה שלנו מפוייסת מאוד; כמובן שזו עדיין לא הגדרה מתמטית-פורמלית, אבל זו ההגדרה שאליה ספרי הלימוד מכוונים – והיא לא כל כך גרועה, בהתחשב בכמה שהסיפור האמיתי מסובך יותר.

ציר המספרים

כעת אנחנו מרחיבים את המספרים שלנו על ידי הכנסת שברים לתמונה. נניח שניקח בציר המספרים את הקטע שבין 0 ל-1, ונשים בו נקודה חדשה בדיוק באמצע – איזה מספר הנקודה הזו תייצג? אפשר לחשוב על זה כך – היחס שבין מרחק הנקודה הזו מאפס, לבין מרחק הנקודה 1 מאפס, הוא בדיוק 1 ל-2; כלומר, המרחק של הנקודה הזו מאפס נכנס בדיוק פעמיים במרחק של 1 מאפס. כותבים את זה \(\frac{1}{2}\) וקוראים לזה "חצי", או "1 חלקי 2".

באופן דומה אפשר לסמן שתי נקודות במרווחים שווים בקטע שבין 0 ו-1, ולקבל את \(\frac{1}{3}\) ו-\(\frac{2}{3}\) (למה?). ובאופן כללי אפשר לסמן \(n\) נקודות במרווחים שווים ולקבל את המספרים \(\frac{1}{n},\frac{2}{n},\dots,\frac{n-1}{n}\). ולא חייבים להסתפק בקטע שבין 0 ו-1. למשל, אם נסמן נקודה בדיוק באמצע הדרך בין 1 ו-2, נקבל את \(\frac{3}{2}\); הרעיון כאן הוא שאם נחבר קטע זה לעצמו פעמיים, נקבל בדיוק את 3. בצורה הזו קיבלנו את כל השברים מהצורה \(\frac{a}{b}\) כאשר \(a,b\) שניהם מספרים שלמים (אין בעיה עם זה שהם יהיו שליליים), פרט למקרה אחד בעייתי – אין משמעות לכל המשחק הזה אם \(b=0\). למשל, \(\frac{1}{0}\) היה צריך להתפרשן אצלנו בתור "אורך הקטע שכאשר מסתכלים על 0 עותקים סמוכים שלו, מקבלים את 1", אבל לא קיים כזה קטע – 0 עותקים של קטע כלשהו הם 0, ולעולם לא יהיו 1. אם כן, מדוע לא לומר ש-\(\frac{0}{0}=0\), משהו שאוסרים עליו במפורש בתיכון? ובכן, כי הגדרה כזו תשבור את חוקי החשבון שאנחנו מכירים. אם אנחנו רוצים לחבר את \(\frac{a}{b},\frac{x}{y}\) אנחנו משתמשים במה שנקרא "מכנה משותף" – את \(\frac{a}{b}\) אנו כופלים ומחלקים ב-\(y\) ומקבלים \(\frac{ay}{by}\). ל-\(\frac{x}{y}\) אנחנו מעניקים טיפול דומה ומקבלים את \(\frac{bx}{by}\), ועכשיו יש לנו מכנה משותף לשני המספרים ואפשר לחבר אותם "כרגיל"ולקבל \(\frac{ay+bx}{by}\). אם ננסה להפעיל את זה על \(\frac{0}{0}\) יקרה הדבר המוזר הבא: \(\frac{a}{b}=\frac{a}{b}+0=\frac{a}{b}+\frac{0}{0}=\frac{a\cdot0+b\cdot0}{b\cdot0}=\frac{0+0}{0}=\frac{0}{0}=0\). כלומר, קיבלנו שכל מספר שווה לאפס – ואנחנו לא רוצים שדבר כזה יקרה. לכן ההגדרה של \(\frac{0}{0}=0\) היא ממש הרסנית אם אנחנו לא משנים את כללי החשבון שלנו בהתאם – וכללי החשבון שלנו יקרים לנו בהרבה מאשר האפשרות לתת שם אחר לאפס. אגב, שימו לב שהשתמשתי כאן בכך ש-\(a\cdot0=0\) לכל \(a\); האם אתם יכולים להוכיח זאת ממש, על פי כללי החשבון? (אפשר, וההוכחה אפילו אינה כה מסובכת אף כי יכול להיות בעייתי לגלות אותה בלי נסיון קודם בתעלולים כאלו).

נראה ששברים מסיימים לנו את העניין. יש להם את התכונה היפה שבין כל שני שברים קיים עוד שבר (להבדיל, בין המספרים השלמים 1 ו-2 לא קיים עוד מספר טבעי) – למשל, אפשר לקחת את הקו שמחבר את שתי הנקודות על ציר המספרים שמתאימות השברים ואז להסתכל באמצע שלו – גם נקודה זו תהיה שבר. הדעת נותנת שכל נקודה על ציר המספרים תוכל להתקבל באופן שכזה. אלא שזה לחלוטין לא נכון. כאן אני קופץ לחומר שלא בהכרח מראים בבית הספר – לא כל המספרים על ציר המספרים הם שברים. למעשה, רובם לא. עבורי, ההבנה של הדבר הזה (שלא הבנתי כלל בתיכון, וגם לא נתתי עליו את דעתי כלל) הייתה אחת מנקודות הציון החשובות בדרך שלי להתאהבות במתמטיקה.

אם כן, אילו מספרים אינם שברים? למשל, \(\sqrt{2}\) אינו שבר. אם נצייר ריבוע שאורך צלעו הוא 1, אז אורך אלכסונו יהיה \(\sqrt{2}\) (ממשפט פיתגורס), כך שבבירור \(\sqrt{2}\) הוא אורכו של קטע "חוקי" כלשהו, ולכן – על פי ההגדרה שלנו – מספר ממשי. אלא שכל נסיון לכתוב את \(\sqrt{2}\) כשבר יוביל לסתירה. הראיתי בעבר את ההוכחה לכך, והנה תקציר: אם \(\sqrt{2}=\frac{a}{b}\) אז \(2=\frac{a^{2}}{b^{2}}\), כלומר \(a^{2}=2b^{2}\), ומכיוון שהריבוע של \(a\) זוגי גם הוא זוגי, כלומר \(a=2c\), כלומר \(4c^{2}=2b^{2}\), כלומר \(2c^{2}=b^{2}\), ומכיוון שהריבוע של \(b\) זוגי, גם \(b\) זוגי. מכאן שגם \(a\) וגם \(b\) זוגיים. אבל אם כך היה הדבר, אפשר היה לחלק את שניהם ב-2 ולקבל מ-\(\frac{a}{b}\) שבר אחר (שבו המונה והמכנה קטנים יותר) וגם הוא שווה ל-\(\sqrt{2}\), וגם בו המונה והמכנה שניהם מתחלקים ב-2. אבל אי אפשר לחזור על התעלול הזה לנצח כי בכל פעם המונה והמכנה קטנים (ושניהם שלמים חיוביים) ולכן בסוף בהכרח נגיע לסתירה (כלומר, ניווכח שלא ייתכן שגם \(a\) וגם \(b\) זוגיים). ההוכחה הזו היא דוגמה מובהקת להוכחה מתמטית "אמיתית" – יש בה הנחה בשלילה, יש בה תעלול רעיוני מחוכם למדי של "נצא ממצב מסויים ונגיע למצב דומה לו, אבל עם מספרים קטנים יותר – וזה תהליך שאי אפשר לחזור עליו לנצח" (רעיון זה נפוץ מאוד במתמטיקה), וכן – יש בו גם טיפה טכניקה.

באופן דומה ומחוכם קצת יותר אפשר להראות שגם \(\sqrt{n}\) הוא לא שבר עבור כל \(n\) שאיננו ריבוע של מספר טבעי. אבל הסיפור לא נגמר במספרים כאלו בלבד. למשל, גם השורש השלישי של 2 איננו שבר, והרביעי וכן הלאה. והמצב מסובך עוד יותר: שורש של \(n\) הוא בסך הכל פתרון של המשוואה \(x^{2}=n\), ומה שאמרנו כאן הוא שאין למשוואה הזו פתרון שהוא שבר. אבל יש עוד המון משוואות בעולם, למשל \(x^{2}+x-1=0\), וגם למשוואה זו אין פתרון שהוא שבר, אבל הוא כן נמצא על ציר המספרים הממשיים (איך רואים דבר כזה? ובכן, משוואה כזו מגדירה את מה שנקרא פרבולה, שהיא עקומה בעלת צורה מסויימת. אם מציירים אותה במישור רואים שהיא חותכת את ציר המספרים בשתי נקודות – אלו הם ה"פתרונות" של המשוואה). אלו מכם שנוסחת השורשים עוד לא נמאסה עליהם לחלוטין יוכלו לראות שפתרון למשוואה הוא \(\frac{-1+\sqrt{5}}{2}\) – כלומר משהו שמערבב שברים עם שורשים. וגם כאן הסיפור עוד לא נגמר ואפשר לדבר על יצורים מסובכים עוד יותר. הבה וניקח למשל מעגל שאורך קוטרו הוא בדיוק 1 – מהו היקפו? אם מקבלים זה שההיקף גם הוא מספר ממשי, אפשר להראות (וזה כבר קצת מאתגר) שהיקף זה איננו שבר, ואפשר גם להראות (וזה כבר ממש מאתגר) שהיקף זה אפילו איננו פתרון של משוואה (פורמלית – משוואה שמקדמיה הם בעצמם שברים). להיקף זה יש שם שבו הוא מוכר קצת יותר טוב: \(\pi\).

התגלית הזו, שקיימים מספרים שאינם שברים, מיוחסת לפיתגוראים (פיתגורס ותלמידיו – לא ברור מי גילה מה). גרסא אחת מדברת על \(\sqrt{2}\) שמגיע מריבוע; גרסא אחרת מדברת על \(\sqrt{5}\) שמופיע בפנטגרם, ובכל מקרה ההוכחה היא גאומטרית באופיה ולא זהה להוכחה שתיארתי למעלה. האגדה מספרת שאחד מתלמידיו של פיתגורס – היפאסוס – גילה את התגלית הזו לעולם הרחב והוטבע בשל כך על ידי הפיתגוראים; הפיתגוראים ביססו את תפיסת העולם שלהם על כך שכל מספר ניתן להצגה כיחס בין שני שלמים, והתגלית הזו ערערה אותם. כך נוצרה הבדלה בין מספרים שניתן להביע בתור יחס כזה, שנקראו מספרים רציונליים (כאשר רציו כאן פירושו ככל הנראה יחס והשם ככל הנראה אינו מרמז שהמספרים הללו "הגיוניים"יותר מאחרים – אם כי קראתי גם טענות שטוענות אחרת), וכאלו שלא – "אי רציונליים". הממשיים הם המספרים הרציונליים והאי רציונליים יחדיו, אבל זוהי כמובן אמירה ריקה כי לא ברור אילו מספרים אי רציונליים קיימים בכלל. אם אתם תוהים כעת מדוע הממשיים נקראים "ממשיים"- ובכן, ככל הנראה כדי להנגיד אותם למספרים הדמיוניים (למי שלא מכיר – יש דבר כזה), ואם זו אכן הסיבה מדובר בתקלה היסטורית מצערת שכבר מאוחר מדי לשנות.

בתקופת היוונים, מספרים נתפסו כאורכים של קטעים, כך שלאפס ולמספרים שליליים לא הייתה משמעות רבה. עם השנים והתהפוכות שהמתמטיקה עברה, גם אופן ההתייחסות למספרים השתנה, כשלמהפך החשוב ביותר אחראית שיטת הספרה שהשתרשה בסופו של דבר – ייצוג מספרים באמצעות ספרות, כאשר הערך שאותו כל ספרה מייצגת תלוי במיקום שלה בייצוג. למשל, 21 פירושו "עשרים ואחד" ואילו 12 פירושו "שניים-עשר"למרות ששני הייצוגים הללו מכילים בדיוק את אותן הספרות. ההבדל הוא ששתיים מייצג את ספרת העשרות בייצוג הראשון, ואת ספרת האחדות בייצוג השני. כיום הדברים הללו די מובנים מאליהם עבורנו, שכן הורגלנו אליהם; אבל בשעתו הייתה זו דרך הצגה חדשנית ורבת עוצמה, שפישטה עד מאוד את היכולת לבצע חישובים אריתמטיים (שעד כה נעשו במהירות באמצעות כלי עזר דוגמת חשבוניה – בציור רואים תחרות של ממש שנערכה בין משתמש חשבוניה ו"אלגוריסט" שהשתמש באריתמטיקה) בעוד ששיטת הייצוג שהייתה רווחת עד אז, באמצעות ספרות רומיות (שבהן אין את הרעיון של קביעת ערך על פי מיקום – \(\mbox{I}\) הוא תמיד המספר 1, אם כי לעתים מופע שלו במספר אומר שצריך לחסר אותו ולא לחבר אותו) הייתה מסורבלת ולא צלחה לכאלו מטלות.

תחרות חישוב בין מפעיל חשבוניה ואריתמטיקאי

ראוי להעיר כאן שהרעיון של ספרות שערכן נקבע לפי מקומן היה ידוע כבר לבבלים ולבני המאיה (הם השתמשו בבסיסי הספירה 60 ו-20 בהתאמה, בעוד שאצלנו משתמשים בבסיס 10; מן הסתם בבסיסים אלו יש המון "ספרות" ולכן כל ספרה יוצגה באופן דומה לשיטה הרומית), אך השיטה "שלנו" הומצאה בידי ההודים אי שם במאה ה-6 לספירה, ורק במאה ה-9 לספירה התגלתה למערב בזכות המתמטיקאי הפרסי אל-ח'ואריזמי – אולי חשוב המתמטיקאים של תקופת ימי הביניים, שבה המתמטיקה האירופאית (שכה פרחה בימי היוונים העתיקים) הייתה מצויה בעידן חושך משלה, בעוד התרבות הערבית היא זו שקידמה את המתמטיקה בימים הללו.

בשיטה העשרונית הספרה הראשונה מייצגת אחדות, השנייה מייצגת עשרות וכן הלאה – אבל איך מייצגים שברים? כותבים נקודה בתוך המספר, ואז הספרה הראשונה שמימין לנקודה מייצגת עשיריות, הספרה השניה מייצגת מאיות וכדומה. כך למשל \(0.123\) מייצג את המספר \(\frac{1}{10}+\frac{2}{100}+\frac{3}{1000}=\frac{123}{1000}\). אנחנו לומדים בבית הספר איך לכתוב שברים בצורה עשרונית באמצעות חילוק ארוך עם שארית; ומהר מאוד מגלים שיש מספרים שבהם העסק לא נגמר ויש להם אינסוף ספרות אחרי הנקודה. כך למשל \(\frac{1}{3}=0.333\dots\) (שלוש הנקודות אומרות "כאן המספר לא נגמר אלא ממשיך וממשיך"). תזכורת קצרה לגבי האופן שבו זה קורה עבור \(\frac{1}{3}\): אנחנו לא יכולים לחלק את 1 ב-3 כי 1 קטן מדי, ולכן אנו כותבים 0 (1 נכנס ב-3 0 פעמים) ונותרים עם שארית 1. כעת אנו מכפילים את השארית הזו ב-10 ומקבלים 10; וכעת אפשר לחלק את זה ב-3 ומקבלים 3 (שאותו אנו כותבים מייד אחרי הנקודה) ושארית 1. גם את השארית הזו כופלים שוב ב-10 ומחלקים ב-3, ושוב מקבלים תוצאה 3 ושארית 1, וכן הלאה וכן הלאה; בבירור אפשר להמשיך עם תהליך החלוקה הזה לנצח ובכל פעם נקבל תוצאה 3 ושארית 1. אנחנו "תקועים בלולאה אינסופית".

אפשר להראות שכל מספר רציונלי שננסה לכתוב כשבר עשרוני יתנהג כך – או שהכתיבה שלו תהיה סופית (כמו \(\frac{123}{1000}\) מיודענו) ואז אפשר לחשוב עליו כאילו מרגע מסויים מופיעים בו רק אפסים (כלומר, \(0.123=0.123000\dots\)), או שהכתיבה שלו תהיה אינסופית, אך מחזורית – תהיה קבוצת ספרות כלשהי שפשוט תחזור על עצמה מרגע מסויים ועד אינסוף. אבל כדאי לשים לב שאפשר לכתוב מספרים עשרוניים אינסופיים שאינם מחזוריים באופן הזה, למשל \(0.101100111000\dots\) שבו בהתחלה מופיע \(10\), אחר כך \(1100\) ובאופן כללי – מופיעה סדרה באורך \(n\) של אחדות, אז סדרה באורך \(n\) של אפסים, אז סדרה באורך \(n+1\) של אחדות, וכן הלאה. אתם מוזמנים להציע עוד מספרים לא מחזוריים משל עצמכם (ויש דברים יצירתיים שאפשר להציע למשל, מספר שבו יש 0 אחרי הנקודה למעט בספרות שהמיקום שלהן הוא ראשוני, ושם יש 1), אבל אני מניח שכבר הבנתם את הרעיון – מצאנו דרך תיאור כלשהי למספרים שאינם רציונליים. הגישה של המתמטיקאים במשך שנים רבות הייתה לחשוב על כל סדרה כזו כמספר לגיטימי; ולמעשה, זה המצב גם כיום, אך כבר איננו בוחרים להגדיר את המספרים הממשיים באופן זה, בגלל קשיים טכניים שהדבר יוצר (איך מחברים שני מספרים אינסופיים? הרי החיבור צריך להתחיל מהקצה הימני!).

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

בשורה התחתונה אנחנו רוצים לעשות חדו"א. עוד לא אמרתי מה זה חדו"א, כך שלא ברור מה בעצם אנחנו צריכים, אבל אני יכול לרמוז – במערכת המספרים שבה נעבוד, יהיה הכרחי עבורנו שנוכל לבצע חיבור, חיסור, כפל וחילוק. את זה אי אפשר לעשות רק עם המספרים השלמים, למשל (אי אפשר לחלק את 1 ב-2 ולקבל מספר שלם) אבל בהחלט אפשר לעשות עם הרציונליים. לקבוצה שבה אפשר לבצע את פעולות החשבון הללו והן מתנהגות "כפי שאנחנו מצפים מהן" (כלומר: מקיימות את חוקי החילוף, הקיבוץ והפילוג, 0 הוא נייטרלי לחיבור ו-1 הוא נייטרלי לכפל) קוראים שדה. אם כן, אנו רוצים לעבוד בתוך שדה, לכל הפחות. אפשר היה להגיד כעת שנזדקק גם להוצאות שורש, אבל זה לא כל כך נכון – לא באמת נזדקק להוצאות שורש. אם כן, למה הכרחי למי שעוסק בחדו"א להגדיל את המספרים הרציונליים? זו אינה שאלה טריוויאלית כלל. כדאי להעיר כאן שהרבה דברים יפים במתמטיקה נעשים תוך התמקדות במספרים הרציונליים ובשדות שמקבלים מהם אחרי שמוסיפים להם מספר מוגבל של שורשים (למשל, מסתכלים על שדה כל המספרים מהצורה \(a+b\sqrt{2}\) כאשר \(a,b\) רציונליים). זהו, למשל, התחום שבו עוסקת תורת המספרים האלגברית (שהיא תחום מתקדם יותר במתמטיקה מאשר החדו"א שעליו אדבר). אם כן, הממשיים אינם הכרחיים לצורך עיסוק "כללי" במתמטיקה. אבל בחדו"א מתבססים לעתים קרובות על תכונה של הממשיים שמכונה "אקסיומת החסם העליון". כדי להסביר מדוע מסתמכים עליה ובאיזה מקומות הצורך הזה צץ, צריך להעמיק קצת בחדו"א ולא אוכל לעשות זאת כרגע; בינתיים אתאר את האקסיומה עצמה (לא להתבלבל – "אקסיומה" במובן המתמטי המודרני אינה משהו שהוא מובן מאליו לכל; זהו פשוט דרך להגיד "תכונה שאנו מצפים שתתקיים באובייקט שעליו אנחנו מדברים, ואם הוא לא מקיים אותה אין משחק").

תכונה אחת של המספרים שטרם דיברתי עליה כלל היא קיום סדר עבורם. ניתן להשוות כל שני איברים ולהגיד מי מהם גדול יותר. 1 גדול מ-0 ובוודאי שגדול ממינוס 1, אבל קטן מ-2. מסמנים \(a\le b\) אם \(a\) קטן או שווה ל-\(b\). גם ברציונליים נשמרת תכונת הסדר הזו, ואנו רוצים שגם בממשיים היא תתקיים. כעת, אם נתונה קבוצה כלשהי של מספרים, אז כל מספר שגדול מכל המספרים בקבוצה מכונה "חסם מלמעלה" (או "חסם מלעיל" כמו שאוהבים לומר לפעמים) של הקבוצה. למשל, 0 הוא חסם מלמעלה של קבוצת כל השליליים; לקבוצת כל החיוביים אין חסם מלמעלה; קבוצת "כל השנים שבהן מכבי ת"א זכתה באליפות" חסומה מלמעלה על ידי, נניח, 3,000; אבל גם על ידי 2,100 וכדומה. אם כן, לקבוצה \(A\) יכולים להיות הרבה מאוד חסמים, ואנחנו יכולים לדבר על (זהירות, הגענו לקטע מבלבל) – החסם מלמעלה הקטן ביותר של הקבוצה \(A\). החסם הזה (המינימום של קבוצת כל החסמים מלמעלה של \(A\)) נקרא החסם העליון של \(A\), ובעברית – הסופרמום (קרי: סופרימום) של \(A\), ומסמנים אותו כ-\(\sup A\).

וכעת לפאנץ', עוד לפני שתספיקו לשאול את השאלה. אם אנחנו מגבילים את העולם שלנו למספרים רציונליים, ישנן קבוצות שחסומות מלמעלה אך אין להן חסם עליון. והנה הדוגמה: קבוצת כל המספרים הרציונליים הקטנים מ-\(\sqrt{2}\), ובכתיב מתמטי: \(A=\left\{ a\in\mathbb{Q}|a<\sqrt{2}\right\} \). זהו סימון סטנדרטי אך קשה למי שאינו מכיר – האות \(\mathbb{Q}\), מהמילה Quotient, מייצגת את הרציונליים; \(\in\) מייצג "שייך ל-", והקבוצה מתוארת באמצעות שני חלקים. צריך לקרוא אותה משמאל לימין ואז יוצא משהו בסגנון "כל המספרים הרציונליים אשר מקיימים (ופה מגיע החלק השני) שהם קטנים מ-\(\sqrt{2}\)). קרוב לודאי שחלק מכם יתרגזו כעת, ובצדק, על ההגדרה הטיפשית הזו – אמרתי ש-\(\sqrt{2}\) איננו רציונלי אבל עכשיו אני מתעקש לדבר רק על רציונליים, ולכן "אסור"לי בכלל לאזכר את \(\sqrt{2}\)! אין בעיה, אני אומר, אז נשנה את הגדרת \(A\) באופן הבא: \(A=\left\{ a\in\mathbb{Q}|a^{2}<2\right\} \). עם הגדרה זו אין בעיה של ממש והיא תופסת בדיוק את אותם האיברים פרט למספרים שליליים קטנים מספיק, שממילא לא מעניינים אותנו.

למה אין ל-\(A\) חסם עליון? הבה וניקח מספר רציונלי חיובי כלשהו, \(a>0\). אז אנחנו יודעים ש-\(a^{2}\ne2\). נניח לרגע ש-\(a^{2}<2\), אז אני טוען שקיים \(b\) רציונלי כך ש-\(a<b\) ועם זאת \(b^{2}<2\). והדרך שבה אני הולך להוכיח זאת כבר תהיה דרך חדו"אית למהדרין – זו ההזדמנות הראשונה שלנו לראות את סגנון ההוכחות שהולך בחדו"א.

אני אגדיר את \(b\) להיות המספר הבא: \(b=a+\delta\), כאשר \(\delta\) (האות היוונית דלתא) הוא מספר רציונלי שאני טרם מתחייב על גודלו. בינתיים נחשוב עליו כעל משתנה, ועוד מעט נחליט מה הוא יהיה על פי מה שיהיה לנו נוח; לעת עתה אני רק דורש ש-\(\delta>0\) ולכן אכן מתקיים ש-\(b>a\); וש-\(\delta\) רציונלי ולכן גם \(b\) רציונלי (סכום של שני רציונליים הוא רציונלי). כעת, אני רוצה שיתקיים \(b^{2}<2\), כלומר שיתקיים \(\left(a+\delta\right)^{2}<2\). לאחר פתיחת סוגריים אקבל שאני רוצה שיתקיים \(a^{2}+\delta\left(2a+\delta\right)<2\).

עכשיו אשתמש בתעלול כדי להיפטר מה-\(\delta\) שבסוגריים. עוד לא בחרתי את ערכו של \(\delta\) אבל אתם אולי מרגישים כבר כעת שאני רוצה שהוא יהיה קטן. אם כן, אין לי בעיה להוסיף עוד הנחה למשחק: \(\delta<a\). מכאן ש-\(\delta\left(2a+\delta\right)<\delta\cdot3a\), ולכן אם אראה ש-\(a^{2}+\delta\cdot3a<2\) מתקיים עבור \(\delta\) כלשהו, הראיתי גם ש-\(a^{2}+\delta\left(2a+\delta\right)<2\) מתקיים עבורו. שימו לב להזנחה הזו! היא מקלה עלי את החיים מבחינה טכנית, ולא פוגמת כלל בנכונות ההוכחה. הקושי שב"התרגלות" לביצוע הזנחות שכאלו היא אחד מהקשיים העיקריים של סטודנטים באוניברסיטה כשהם מתמודדים לראשונה עם חדו"א. בלי לזהות מקומות שבהם אפשר "להקל על החיים" כך, התרגילים הטכניים הקשים של חדו"א אוניברסיטאית הופכים לקשים פי כמה.

נמשיך. אני רוצה למצוא \(\delta\) כך ש-\(a^{2}+\delta\cdot3a<2\). זה כבר תרגיל אי שוויונים תיכוני: מעבירים אגף, מחלקים, ומקבלים \(\delta<\frac{2-a^{2}}{3a}\). מכיוון ש-\(a^{2}<2\) (כך הנחנו – זוכרים?) הרי שהמספר באגף שמאל הוא גדול מאפס. בנוסף, \(a\) רציונלי ולכן גם הוא עצמו רציונלי; לכן אפשר פשוט לבחור \(\delta=\frac{1}{2}\cdot\frac{2-a^{2}}{3a}\) ולקבל את מה שרצינו: \(\delta\) שהוא גם גדול מאפס וגם מקיים את אי השוויון שנדרש בהתחלה. וכעת אפשר… לא, לא, לא! לא כל כך מהר. מה פספסתי? ובכן, שכחתי את ההנחה ש-\(\delta<a\) שהוספתי לעצמי קודם. זו לא בעיה – אני אגדיר את \(\delta\) להיות המספר הקטן יותר מבין זוג המספרים \(\frac{1}{2}\cdot\frac{2-a^{2}}{3a}\) ו-\(\frac{1}{2}\cdot a\). אבל זה בור שצריך להכיר ולא ליפול לתוכו.

תמה לה ההוכחה. מצד אחד, זו הוכחה טכנית. מצד שני, היא שונה מאוד באופייה מתרגיל תיכוני רגיל. בפרט שימו לב להזנחה שביצעתי באמצע, לכך שכל התרגיל הוא עם הפרמטר \(a\) שלא נראה שמשרת מטרה כלשהי, ולכן שהפתרון הסופי נראה מכוער לאללה (\(\frac{1}{2}\cdot\frac{2-a^{2}}{3a}\)) וזה ממש לא מפריע לי ואני לא מחפש דרך "לפשט" אותו. אבל ההבדל האמיתי הוא שלתרגיל הזה הייתה מטרה – אני מנסה לשכנע אתכם שלקבוצה כלשהי אין חסם עליון.

ובכן, הראיתי שאם \(a\) הוא רציונלי בתוך \(A\) עצמה, אז קיים רציונלי אחר בתוך \(A\) שגדול ממנו; מכאן שאם יש ל-\(A\) חסם עליון, הוא לא יכול להיות איבר של \(A\) עצמה. אבל אם \(a^{2}>2\) אז בהוכחה דומה מאוד לזו שנתתי (תבחרו \(b=a-\delta\)) אפשר להראות שקיים \(b\) רציונלי כך ש-\(b^{2}>2\) ועם זאת \(b<a\). בגלל ש-\(b^{2}>2\) אז \(b\) הוא חסם מלמעלה של \(A\); ולכן הראיתי כרגע ש-\(a\) איננו חסם עליון של \(A\), כי קיים חסם למעלה אחר שקטן ממנו. המסקנה: \(a\) היה יכול להיות חסם עליון של \(A\) רק אם הוא היה מקיים \(a^{2}=2\), אבל אין מספר רציונלי שמקיים זאת. סוף הסיפור.

אם כן, מה החסם העליון של \(A\)? כמובן, \(\sqrt{2}\). ההוכחה שנתתי למעלה "נשברת" כשמפעילים אותה על \(a=\sqrt{2}\) פשוט כי \(2-a^{2}=0\). לכן לקבוצה \(A\) כן יש חסם עליון אם מכניסים למשחק את \(\sqrt{2}\). ועכשיו אפשר סוף סוף להגדיר את הממשיים בצורה כמעט פורמלית: הממשיים הם בדיוק המספרים שאנחנו צריכים שיהיו במשחק כדי שלכל קבוצה (לא ריקה) שחסומה מלמעלה יהיה חסם עליון. התכונה הזו, "לכל קבוצה לא ריקה חסומה מלמעלה יש חסם עליון" היא מה שנקרא "אקסיומת החסם העליון". העובדה שהרציונליים לא מקיימים את האקסיומה הזו מצביעה שבמובן מסויים, בקבוצת הרציונליים יש "חורים"והיא לא תופסת את כל הישר הממשי, בעוד שבקבוצת הממשיים שכן מקיימת אותה אין חורים כאלו – היא "רציפה".

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

דדקינד ממשיך עם הרעיון שאיתו התחלתי קודם, של הקבוצה \(A\) שלא היה לה חסם עליון. הוא מגדיר חתך בתור קבוצה \(A\) של מספרים רציונליים כך שאם \(a\in A\) ו-\(b<a\), אז גם \(b\in A\). במילים, אם \(a\) הוא איבר של \(A\) ו-\(b\) קטן מ-\(a\), אז גם \(b\) שייך ל-\(A\). למה "חתך"? שכן הקבוצה הזו "חותכת" את המספרים הרציונליים לשתי קבוצות – כל מי ששייך ל-\(A\), וכל מי שאינו שייך ל-\(A\) ולכן הוא בהכרח גדול מכל אברי \(A\) (אם \(a\) אינו שייך ל-\(A\) אבל קטן מ-\(b\) שכן שייך ל-\(A\), אז מהגדרת \(A\) גם \(a\) חייב להיות שייך אליה…). על ציר המספרים \(A\) היא קו שנמתח ממינוס אינסוף ואז נעצר איפה שהוא, ומייד אחר כך מתחילה הקבוצה של כל מי שאינו ב-\(A\). השאלה היא רק מה קורה בנקודת החיתוך עצמה.

עוד שתי דרישות שדדקינד דורש מ-\(A\) הוא ש-\(A\) תהיה חסומה, אך שלא תכיל את החסם העליון של עצמה, אפילו אם הוא קיים. כעת דדקינד מגדיר את המספרים הממשיים באמצעות החתכים הללו – כל מספר ממשי מתאים ל-\(A\) כלשהי, כאשר, כפי שניתן היה לנחש, הקבוצה \(A\) מייצגת את המספר שהוא החסם העליון של \(A\). בתמונה אנחנו רואים את החתך שמגדיר את שורש 2.

חתך דדקינד שמגדיר את שורש שתיים

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

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

נעים להכיר – אקספוננט

בפוסט הזה אני רוצה לדבר על אחת הפונקציות החשובות והמרכזיות במתמטיקה – פונקצית האקספוננט, או כפי שבדרך כלל מכירים אותה בימינו, \(e^{x}\). בראש ובראשונה זו תהיה גם היכרות עם הקבוע \(e\) שב"בסיס" הפונקציה, וגם הסבר מדוע היא מצורה זו בכלל. כמו שקורה רבות במתמטיקה, הפונקציה צצה בהקשרים רבים ושונים, ובהתאם לכך יש לה הגדרות שקולות רבות ושונות; אני רוצה לדבר על זו שלטעמי היא היפה וה"נקיה" ביותר – ההקשר של משוואות דיפרנציאליות, שכבר הוזכר בפוסט הקודם, וממנה להתפתח הלאה ולראות איך ההגדרות השקולות צצות מאליהן.

במשוואה דיפרנציאלית ה"נעלם" הוא פונקציה \(f\left(x\right)\) כלשהי, והמשוואה מתארת קשר בין \(f\left(x\right)\) ובין הנגזרות שלה. אם יש הרבה נגזרות, או אם נותנים ל-\(x\) להתפרע חופשי במשוואה, מקבלים משהו מורכב למדי – למשל, \(f^{\prime}\left(x\right)=\left(f^{\prime\prime}\left(x\right)\right)^{2}-13x\cdot f\left(x\right)+11x^{2}\) היא משוואה די מסובכת וקשה (או אף בלתי אפשרי?) לתת לה פתרון מפורש. לכן אך טבעי הדבר להתחיל ממשוואות פשוטות ככל הניתן (שעם זאת, עדיין צצות באופן טבעי ומעניין בטבע – את זה הדגים הפוסט הקודם). קשה לי לחשוב על משוואה דיפרנציאלית שמערבת גם את \(f\) וגם את \(f^{\prime}\) והיא פשוטה יותר מאשר \(f=f^{\prime}\); על כן, עיסוק במשוואות דיפרנציאליות צריך להתחיל מגילוי הפתרון של המשוואה הזו; זה נותן לנו קרש קפיצה לפתרון של משוואות נוספות רבות.

השאלה הראשונה שעולה כשמתבוננים במשוואה היא – מי מבטיח לנו שיש פתרון בכלל? ואם יש פתרון, כמה פתרונות יש? כאן נכנס לתמונה משפט תיאורטי מרכזי בענף המשוואות הדיפרנציאליות – משפט הקיום והיחידות. ניסוח מדוייק של המשפט הוא מיותר כאן – הוא דורש מספר לא מבוטל של הנחות ותנאים על המשוואה עצמה, ולכן אגיד רק מה מסקנותיו עבור המשוואה \(f=f^{\prime}\) שלנו: המשפט מבטיח שיש פתרון למשוואה, אך הוא אינו יחיד, וכדי שיהיה יחיד צריך גם לקבוע "תנאי התחלה". למשל, לומר מה יהיה ערכה של \(f\) בנקודה \(x=0\). משנקבע תנאי ההתחלה הזה, קיים למשוואה פתרון יחיד שהוא פונקציה רציפה וגזירה ברציפות (אם המושגים הללו לא אומרים לכם הרבה, לא נורא). זה שקיים פתרון לא אומר לנו עדיין שום דבר על איך הוא נראה; אך זה כן אומר שאפשר מרגע זה ואילך לסמן אותו בסימון כלשהו ולהתחיל לדבר עליו כאילו הוא מציאותי וכל מה שנותר לעשות הוא לחקור את תכונותיו.

ובכן, איזה תנאי התחלה נבחר? התנאי הטבעי ביותר הוא \(f\left(0\right)=0\), אבל אז נקבל פתרון "משעמם" במיוחד: הפונקציה \(f\left(x\right)=0\). קל לראות שנגזרתה שווה לעצמה ושהיא מקיימת את תנאי ההתחלה, אבל זו לא פונקציה שאפשר לעשות איתה משהו מיוחד. תנאי ההתחלה ה"טבעי"הבא הוא \(f\left(0\right)=1\), בזכות המעמד המיוחד שיש לקבוע 1, בהיותו האיבר האדיש לכפל. כאן כבר בבירור לא נקבל את הפונקציה \(f\left(x\right)=0\), כי הפונקציה הזו שווה ל-0 בנקודה 0, לא ל-1. לכן נתכבד ונעניק לפתרון החדש סימון מיוחד: \(\exp\left(x\right)\). כעת נותר לנו להבין איך \(\exp\left(x\right)\) "נראית".

כרגע כל המידע שיש לנו על \(\exp\left(x\right)\) מסתכם בכך ש-\(\left(\exp\left(x\right)\right)^{\prime}=\exp\left(x\right)\) ובכך ש-\(\exp\left(0\right)=1\), אך קל להסיק מזה מידע נוסף: \(\exp^{\left(k\right)}\left(0\right)=1\) לכל \(k\) טבעי, כאשר \(\exp^{\left(k\right)}\) מציין את הנגזרת ה-\(k\)-ית של \(\exp\). הסיבה פשוטה: הנגזרת של \(\exp\) שווה ל-\(\exp\) עצמה, ולכן גם הנגזרת מקבלת את הערך 1 בנקודה 0; ואם גוזרים את הנגזרת, מקבלים שוב את אותו הדבר, וכן הלאה וכן הלאה. אם כן, אנחנו יודעים את הנגזרות של \(\exp\) מכל סדר שהוא בנקודה 0, וזה מזמין שיטת קירוב כללית – פולינומי טיילור.

פולינומים הם פונקציות מהצורה \(p\left(x\right)=a_{0}+a_{1}x+a_{2}x^{2}+\dots+a_{n}x^{n}\), כש-\(x\) הוא המשתנה, \(a_{0},\dots,a_{n}\) הם מספרים ממשיים כלשהם המכונים "מקדמי הפולינום", \(a_{n}\ne0\), ו-\(n\) נקראת דרגת הפולינום. במובן מסויים אלו הן הפונקציות הפשוטות ביותר והקלות ביותר לחישוב, ולכן גם הפונקציות שנהוג להשתמש בהן כדי לקרב פונקציות מורכבות יותר. קל לגזור פולינום: \(\left(x^{n}\right)^{\prime}=nx^{n-1}\), ובאופן כללי לכל פונקציות גזירות \(f,g\) וקבוע ממשי \(c\) מתקיים \(\left(cf\right)^{\prime}=cf^{\prime}\)ו-\(\left(f+g\right)^{\prime}=f^{\prime}+g^{\prime}\) (תכונות אלו מכונות "הלינאריות של הנגזרת"), ומכאן קל להסיק את הנוסחה הכללית לנגזרת של פולינום: \(p'\left(x\right)=a_{1}+2a_{2}x+3a_{3}x^{2}\dots+na_{n}x^{n-1}\) (כלומר, הנגזרת של פולינום היא פולינום אחר, מדרגה קטנה ב-1).

באופן כללי, אם עבור פונקציה \(f\) ידוע לנו הערך של \(f^{\left(k\right)}\left(0\right)\) לכל \(k\), ואנו רוצים להשתמש בידע הזה כדי למצוא לה קירוב באמצעות פולינום; מתבקש להשתמש בפולינום שהערך שלו ושל נגזרותיו בנקודה 0 מתאים לערך של \(f\) ונגזרותיה בנקודה 0 (מאחר וזה המידע שיש לנו על \(f\)). שימו לב כי אם \(p\left(x\right)=a_{0}+a_{1}x+a_{2}x^{2}+\dots+a_{n}x^{n}\) אז \(p\left(0\right)=a_{0}\), כי כל מקדם שעדיין צמוד לחזקה חיובית של \(x\) נעלם. על פי אותו עקרון, \(p^{\prime}\left(0\right)=a_{1}\); ואילו \(p^{\left(2\right)}\left(0\right)=2a_{2}\) (כי אחרי שגזרנו את \(p\) פעם אחת, האיבר \(a_{2}x^{2}\) הפך ל-\(2a_{2}x\); ואחרי גזירה שניה הוא הפך ל-\(2a_{2}\) ואז איפוס \(x\) לא משפיע עליו). ומה יהיה \(p^{\left(k\right)}\left(0\right)\) באופן כללי? אפשר כבר לנחש שזה יהיה \(a_{k}\) כפול קבוע כלשהו – איזה? אחרי שגוזרים את \(p\) פעם אחת, \(a_{k}x^{k}\) הופך ל-\(ka_{k}x^{k-1}\); אחרי גזירה שנייה הוא הופך ל-\(\left(k-1\right)ka_{k}x^{k-2}\); אחרי שלישית, \(\left(k-2\right)\left(k-1\right)ka_{k}x^{k-3}\); ובסופו של דבר כש-\(x\) "ייעלם" ניוותר עם \(1\cdot2\cdot3\cdots k\cdot a_{k}\), כלומר \(k!\cdot a_{k}\).

אם כן, הדרישה שהנגזרות של \(p\) בנקודה 0 יהיו זהות לנגזרות של \(f\) בנקודה 0 מאפשרת לנו למצוא באופן יחיד את מקדמי הפולינום: \(k!a_{k}=f^{\left(k\right)}\left(0\right)\), כלומר \(a_{k}=\frac{f^{\left(k\right)}\left(0\right)}{k!}\), ומכאן ש-\(p_{n}\left(x\right)=f\left(0\right)+f^{\prime}\left(0\right)x+\frac{f^{\left(2\right)}\left(0\right)}{2}x^{2}+\dots+\frac{f^{\left(n\right)}\left(0\right)}{n!}x^{n}\). כדי להפסיק לכתוב נוסחאות ארוכות ומפחידות, אעבור לסימון מקוצר ומפחיד: \(p_{n}\left(x\right)=\sum_{k=0}^{n}\frac{f^{\left(k\right)}\left(0\right)}{k!}x^{k}\). זהו פולינום טיילור מדרגה \(n\) (ולכן הוא מסומן כ-\(p_{n}\) ולא סתם כ-\(p\)) עבור הפונקציה \(f\). השאלה עד כמה זהו קירוב טוב (כלומר, עד כמה הערך של הפולינום בנקודות שאינן 0 קרוב לערך הפונקציה בנקודות אלו) תלויה מאוד בפונקציה, אולם ניתן לקבל הערכה כלשהי לגבי גודל הטעות. ניתן להראות כי לכל \(x\) מתקיים כי \(f\left(x\right)-p_{n}\left(x\right)=\frac{f^{\left(n+1\right)}\left(c\right)}{\left(n+1\right)!}x^{n+1}\), כלומר משהו שנראה כמו המחובר "הבא" בטור הטיילור, אבל כשהנגזרת ה-\(n+1\)-ית לא מוערכת בנקודה 0, אלא בנקודה \(c\) כלשהי. מהי \(c\)? אם היינו יודעים אותה במפורש, היינו יודעים את השארית במפורש; כל מה שאפשר לומר עליה היא שהיא נמצאת אי שם בין 0 ו-\(x\) (ובפרט היא תלויה ב-\(x\) וב-\(n\); עבור \(x\)-ים ו-\(n\)-ים שונים יכולות להיות נקודות ביניים שונות). הנוסחה הזו מאפשרת לנו לחסום את גודל הטעות, אם אנחנו יודעים לחסום את גודל הנגזרת ה-\(n+1\)-ית של \(f\) בקטע שבין 0 ו-\(x\).

נחזור כעת אל פונקציית האקספוננט. אמרנו שהיא מקיימת \(\exp^{\left(k\right)}\left(0\right)=1\) לכל \(k\), כך שהפולינום במקרה זה הוא פשוט במיוחד: \(p_{n}\left(x\right)=\sum_{k=0}^{n}\frac{1}{k!}x^{k}\). אלא שפולינום פשוט זה לא מספיק – צריך גם להראות שהוא קירוב טוב, כלומר צריך לומר משהו על השארית. בואו נקבע לרגע את \(x\), וכדי לסמן שהוא קבוע נסמנו ב-\(x_{0}\); מה שאנחנו באמת רוצים להראות הוא שככל שאנחנו מגדילים את \(n\), ושומרים את \(x_{0}\) קבוע, אנחנו מקטינים את הטעות שלנו ככל שנרצה – כלומר, שהטעות שואפת לאפס כש-\(n\) שואף לאינסוף. בדרך כלל לא פשוט להראות את זה (ולא תמיד זה בכלל נכון), בגלל שההתנהגות של \(f^{\left(n\right)}\) בקטע שלנו עשויה "להתפרע"ככל שנגדיל את \(n\) (חשבו על נהג "משוגע" שכל הזמן נותן גז ובולם בפראות – פונקצית המקום שלו משתנה בצורה יחסית "נחמדה"כי ההתפרעויות מקזזות זו את זו, אבל אם נסתכל על הנגזרת של פונקצית המקום – המהירות – נראה שהיא "משוגעת"). אלא שבמקרה שלנו אין בעיה כי \(f^{\left(n\right)}=f\) לכל \(n\). אנחנו גם יודעים ש-\(f\) במקרה שלנו היא רציפה (זה מובטח ממשפט הקיום והיחידות) ולכן בפרט היא חסומה בקטע \(\left[0,x_{0}\right]\) (אינטואיטיבית תכונה זו ברורה יחסית, אך כמובן שיש להוכיח אותה פורמלית).

אם נסמן ב-\(M\) את החסם על גודל הפונקציה, אז \(\frac{f^{\left(n+1\right)}\left(c\right)}{\left(n+1\right)!}x_{0}^{n+1}\le\frac{x_{0}^{n+1}}{\left(n+1\right)!}\cdot M\). מכיוון שלכל מספר קבוע \(a\) מתקיים כי \(\frac{a^{n}}{n!}\to0\) (האינטואיציה היא שבעוד \(a^{n}\) הוא מכפלה של \(a\) הקבוע בעצמו \(n\) פעמים, בעוד ש-\(n!\) היא מכפלה של מספרים שהולכים וגדלים, והחל משלב מסויים כולם יהיו גדולים מ-\(a\)) נובע שהשגיאה שואפת תמיד לאפס. מסקנה: הפולינומים מהווים קירוב טוב של \(\exp\), במובן זה שלכל \(x_{0}\) מתקיים \(p_{n}\left(x_{0}\right)\to\exp\left(x_{0}\right)\). בשל כך אפשר לשכוח מפולינומים ולעבור לדבר על \(\exp\left(x\right)\) כמיוצגת באמצעות טור חזקות אינסופי: \(\exp\left(x\right)=\sum_{n=0}^{\infty}\frac{x^{n}}{n!}\). בחלק מהמקרים בוחרים להגדיר את פונקצית האקספוננט באמצעות טור חזקות זה (צריך להראות שהוא מתכנס, אך זה פשוט למדי באמצעות תוצאות סטנדרטיות על טורי חזקות).

אם מתחילים עם הגדרה זו קל למדי להראות ש-\(\exp^{\prime}\left(x\right)=\exp\left(x\right)\), שכן התורה של טורי חזקות מצביעה על כך שניתן לגזור את הטור "איבר איבר" כדי לקבל את הטור המתאים לנגזרת – אך לא קשה לראות שאם גוזרים את הטור \(\sum_{n=0}^{\infty}\frac{x^{n}}{n!}\) איבר איבר, מקבלים את אותו הטור בדיוק! שהרי כשגוזרים את \(\frac{x^{n}}{n!}\) מקבלים \(\frac{x^{n-1}}{\left(n-1\right)!}\). אם כן, בגישה זו קל מאוד "לראות בעיניים" מדוע הנגזרת של אקספוננט היא האקספוננט עצמו; ה"חסרון" של שיטה זו היא שיש שרירותיות רבה כלשהי בלהתחיל מההגדרה \(\sum_{n=0}^{\infty}\frac{x^{n}}{n!}\) במקום להגיע אליה כתוצר "טבעי" של איזו שהיא דרישה בסיסית יותר (וזה גם פחות הרפתקני; במקום לטייל בג'ונגל עד שמגיעים לעיר העתיקה שקבורה בו, אנחנו מקבלים הקפצה במסוק).

יפה – אם כן, כעת יש לנו ייצוג מאוד קונקרטי לפונקצית האקספוננט, ואפילו שיטה לחשב אותה נומרית בכל דיוק שנרצה. מה עוד צריך, אם כן? אפיונים נוספים שישפכו עוד אור על הפונקציה הזו. אילו תכונות מעניינות הפונקציה מקיימת? כבר ראינו תכונה מעניינת מאוד: נגזרתה שווה לעצמה. כעת אציג תכונה מעניינת וחשובה לא פחות: \(\exp\left(x\right)\cdot\exp\left(y\right)=\exp\left(x+y\right)\). קל לראות את זה עכשיו, כשיש לנו את הייצוג של \(\exp\) כטור חזקות – אפשר ממש לכפול את שני הטורים. אתם יכולים להאמין לי שזה עובד, אבל גם בחישוב ה"טכני" יש יופי לא קטן וכדאי לדעתי לנסות ולעקוב אחריו. ראשית הבה וננסה להבין מהו \(\exp\left(x\right)\cdot\exp\left(y\right)\). כדי להקל על ההבנה כדאי לכתוב זאת כסכום בלי סיגמות: \(\exp\left(x\right)\cdot\exp\left(y\right)=\left(1+x+\frac{x^{2}}{2}+\dots\right)\left(1+y+\frac{y^{2}}{2}+\dots\right)\). אם נפתח את המכפלה הזו נקבל סכום של איברים שכל אחד מהם התקבל על ידי בחירת איבר אחד מהסכום השמאלי, ואיבר אחד מהסכום הימני, כלומר סכום של איברים מהצורה \(\frac{x^{k}}{k!}\cdot\frac{y^{t}}{t!}\). כרגע זה לא נראה מועיל במיוחד, אז נבצע שינוי משתנים מתוחכם (מי שתוהה איך הגעתי אליו – פשוט פותחים את \(\exp\left(x+y\right)\) ורואים מה היעד שלנו…): את החזקה של \(x\) נמשיך לסמן ב-\(k\), אבל את החזקה של \(y\) נסמן בתור \(n-k\) דווקא (כאשר \(n\) יכול להיות כל מספר טבעי גדול או שווה ל-\(k\); לכל \(n\) כזה, קיים איבר מתאים בסכום שבו \(x\) הוא בחזקת \(k\) ו-\(y\) הוא בחזקת \(n-k\)). עם הסימון הזה, האיבר שלנו הוא \(\frac{x^{k}y^{n-k}}{k!\left(n-k\right)!}\). אולי לחלקכם זה מתחיל להיראות מוכר. נכפול ונחלק ב-\(n!\) ונקבל \(\frac{n!}{k!\left(n-k\right)!}\frac{x^{k}y^{n-k}}{n!}\), כלומר \(\frac{{n \choose k}x^{k}y^{n-1}}{n!}\).

מכאן כבר העניינים מתגלגלים מהר: הסכום שלנו כעת ניתן לתיאור בתור \(\sum_{n=0}^{\infty}\frac{\sum_{k=0}^{n}{n \choose k}x^{k}y^{n-k}}{n!}\), ועל ידי הבינום של ניוטון נקבל כי סכום זה הוא \(\sum_{n=0}^{\infty}\frac{\left(x+y\right)^{n}}{n!}\), כלומר \(\exp\left(x+y\right)\), ובכך מסתיים העניין. גילינו, אם כן, כי \(\exp\) היא פונקציה שמתרגמת פעולת חיבור לפעולת כפל. כל תלמיד תיכון כבר נתקל בתופעה כזו, בחוקי חזקות. הרי \(x^{a}\cdot x^{b}=x^{a+b}\). מכאן צצה אינטואיציה חדשה לגבי מהותה של \(\exp\) – האם ייתכן שהיא פונקציה של העלאה בחזקה? ואם כן, על פי איזה בסיס? הדרך לגלות את הבסיס היא להציב 1 ב-\(\exp\) (כלומר, לקבל את הבסיס בחזקת 1). התוצאה היא המספר \(\exp\left(1\right)=1+1+\frac{1}{2}+\frac{1}{3!}+\frac{1}{4!}+\dots=2.71828\dots\) (שלוש הנקודות מסמלות, כרגיל, שהמספר לא נגמר בספרות אלו אלא ממשיך עד אין קץ). נהוג לסמן את המספר הזה ב-\(e\). לטעמי זהו הקבוע המתמטי המעניין ביותר; מעניין יותר מ-\(\pi\), אחיו המפורסם הרבה יותר. הטור מאפשר חישוב מאוד מהיר ויעיל של \(e\), להבדיל מ-\(\pi\) שחישוב יעיל שלו דורש התחכמויות נוספות. אם כן, המטרה שלנו כעת היא להראות ש-\(\exp\) היא בעצם פונקציה של העלאת \(e\) בחזקה.

כמובן, כדי לדבר על העלאה בחזקה צריך להגדיר במדוייק למה הכוונה. \(a^{2}\) הוא פשוט \(a\cdot a\), ובאותו אופן \(a^{n}\) עבור \(n\) טבעי הוא \(a\cdot a\cdots a\) במשך \(n\) פעמים, אך מהו \(a^{\pi}\)? חייבים לתת משמעות פורמלית לסימון הזה. האופן שבו עושים זאת הוא ראשית כל להגדיר את החזקה לכל מספר שלם, על ידי ההגדרה \(a^{-n}=\left(\frac{1}{a}\right)^{n}\) עבור \(n\) טבעי; ולהרחיב את ההגדרה לרציונליים על ידי כך שמגדירים \(a^{\frac{1}{n}}=\sqrt[n]{a}\) לכל \(n\) טבעי, ועל כן \(a^{\frac{m}{n}}=\sqrt[n]{a^{m}}\). עד כאן – חומר של תיכון. כדי להרחיב את ההגדרה לממשיים כבר צריך להשתמש בחשבון אינפיניטסימלי. באופן כללי בחשבון אינפיניטסימלי, כאשר יש לנו פונקציה \(f\left(x\right)\) שערכיה נקבעו כבר על כל המספרים הרציונליים, נובעת מכך דרך אחת ויחידה להרחיב את הפונקציה לכל הממשיים כך שהפונקציה המתקבלת תהיה רציפה. זוהי הרי מהות הרציפות – שאם יש לנו סדרת נקודות \(x_{n}\) כך ש-\(x_{n}\to a\) עבור \(a\) ממשי כלשהו, אז \(f\left(x_{n}\right)\to f\left(a\right)\). מכיוון שלכל מספר ממשי אפשר לקחת סדרת קירובים רציונליים שכזו, הערך של \(f\) ב-\(a\) מוכתב על ידי הערכים של \(f\) על המספרים הרציונליים.

כעת, אם \(f\) היא פונקציה רציפה שמקיימת את המשוואה \(f\left(x+y\right)=f\left(x\right)\cdot f\left(y\right)\) (משוואה זו מכונה לפעמים "משוואת קושי האקספוננציאלית"), ראשית כל נסמן \(a=f\left(1\right)\), וכעת לכל \(n\) טבעי מתקיים \(f\left(n\right)=f\left(1+\dots+1\right)=f\left(1\right)\cdots f\left(1\right)=a^{n}\), כלומר על הטבעיים \(f\) אכן מתנהגת כמו חזקה. קל לראות ש-\(a\) חייב להיות אי שלילי, שכן \(a=f\left(1\right)=f\left(\frac{1}{2}+\frac{1}{2}\right)=\left[f\left(\frac{1}{2}\right)\right]^{2}\), כלומר \(a\) הוא ריבוע של מספר ממשי כלשהו, ולכן חייב להיות אי שלילי.

השלב הבא הוא 0: מכיוון ש-\(0=0+0\) הרי ש-\(f\left(0\right)=f\left(0+0\right)=f\left(0\right)\cdot f\left(0\right)=\left[f\left(0\right)\right]^{2}\). איזה מספר ממשי שווה לריבוע שלו? רק 0 או 1; אבל אם \(f\left(0\right)=0\) אז גם \(f\left(n\right)=f\left(n+0\right)=f\left(n\right)\cdot f\left(0\right)=0\), וקיבלנו פונקציה לא מעניינת (שאפשר לחשוב עליה בתור \(f\left(x\right)=0^{x}\) – כלומר, אפילו במקרה הזה היא פונקציית העלאה בחזקה, אם מקבלים את הקונבנציה הלא שגרתית \(0^{0}=0\) במקרה זה). לכן \(f\left(0\right)=1\). מכאן מגיעים מיידית להגדרה עבור שליליים: \(1=f\left(0\right)=f\left(n+\left(-n\right)\right)=f\left(n\right)f\left(-n\right)\) ומכאן ש-\(f\left(-n\right)=\frac{1}{a^{n}}=\left(\frac{1}{a}\right)^{n}\), ולכן אפשר לומר ש-\(f\left(-n\right)=a^{-n}\).

השלב הבא הוא הרציונליים: \(a=f\left(1\right)=f\left(\frac{1}{n}+\dots+\frac{1}{n}\right)=\left[f\left(\frac{1}{n}\right)\right]^{n}\), כך ש-\(f\left(\frac{1}{n}\right)=\sqrt[n]{a}\) (עבור מספרים ממשיים אי שליליים תמיד קיים שורש שכזה; הסיבה לכך היא שהפונקציה \(g\left(x\right)=x^{n}-a\) היא רציפה, מקבלת ערך שלילי ב-\(x=0\) אבל ערך אי שלילי ב-\(x=a\) ולכן על פי משפט ערך הביניים היא חייבת להתאפס היכן שהוא). דרישת הרציפות על \(a\) מסיימת כעת את המשחק: \(f\left(x\right)=a^{x}\) לכל \(x\) ממשי – כאשר, כזכור, \(a=f\left(1\right)\). במקרה של \(\exp\), \(\exp\left(1\right)=e\), ולכן \(\exp\left(x\right)=e^{x}\), לכל \(x\) ממשי. סיימנו את המעבר מההגדרה התמימה באמצעות משוואה דיפרנציאלית אל \(e^{x}\) שאנחנו מכירים ואוהבים.

בכל ההרפתקאה הזו נמנעתי במכוון – אפילו בכוח – מלהזכיר את פונקצית הלוגריתם הטבעי. למעשה, ברוב ספרי הלימוד שבהם מגדירים אקספוננט, הדרך לעשות זאת היא ראשית כל על ידי הגדרת הלוגריתם, ואז הגדרת האקספוננט כפונקציה ההופכית שלו, אבל על הלוגריתם הטבעי, המוטיבציה לו והדרך להגדיר אותו כבר אפשר וכדאי לכתוב פוסט נפרד, בעתיד. לעת עתה אני רק רוצה להפנות את תשומת הלב לעובדה אחת שעבורה אני זקוק ללוגריתם הטבעי: בעצם הוכחתי קודם כי כל פונקציה רציפה שמקיימת את משוואת קושי האקספוננציאלית היא מעריכית, כלומר מהצורה \(a^{x}\), אבל למעשה יש דרך אחרת לתאר פונקציה שכזו: מכיוון ש-\(a>0\) הרי ש-\(a=e^{\ln a}\), ולכן את הפונקציה \(a^{x}\) אפשר גם לתאר בתור הפונקציה \(e^{\ln a\cdot x}\). זה גם מראה לנו מיידית מדוע הנגזרת של \(a^{x}\) היא \(a^{x}\cdot\ln a\) (הדבר נובע מכך ש-\(\left(e^{\ln a\cdot x}\right)^{\prime}=\left(\ln a\right)e^{\ln a\cdot x}\)), וגם אומר לנו שאפשר לתת לכל הפונקציות המעריכיות תיאור אחיד על ידי \(e^{kx}\), עבור \(k\) ממשי כלשהו; כך למשל הפתרון של המשוואה הדיפרנציאלית שהצגתי בפוסט הקודם היה פונקציה מעריכית שכזו.

גם עם הקבוע \(e\) לא גמרנו; יש עוד דרכים להגדיר אותו, ובראש ובראשונה בתור הגבול \(\lim_{n\to\infty}\left(1+\frac{1}{n}\right)^{n}\) (למעשה, אפשר גם להגדיר את פונקצית האקספוננט באמצעות וריאציה על גבול זה); וגם על כך אני מקווה לדבר בעתיד.

יום פאי שמח!

ה-14 במרץ זכה לשם המגוחך "יום פאי" בגלל ש-\(\pi\) מתחיל בספרות \(3.14\). לרוב נהוג לחגוג את היום הזה בזלילות של פאי (שעליו ציור של \(\pi\)), אך אני אנצל אותו כדי להעלות פוסט העוסק, איך לא, בפאי. ספציפית, באופן שבו פאי צץ במתמטיקה באופן לחלוטין לא קשור להקשר המקורי שבו מדובר על פאי (ההקשר הגיאומטרי של מעגל). אני מזהיר מראש שבחלק שבו אעסוק במתמטיקה עצמה, המתמטיקה תהיה טכנית למדי; אך אני חושב שדווקא כדאי לבחון קצת גם חישובים טכניים, כל עוד יש מאחוריהם רעיונות מעניינים – בלי לעשות זאת מפספסים חלק מהותי מהמתמטיקה.

המוטיבציה שלי מגיעה בראש ובראשונה מספר מדע בדיוני שלא אפרט את שמו (אלא אם תלחצו על הלינק…), שכן אני עומד לגלות פריט עלילה חשוב ממנו – אם כי לטעמי, זניח ביחס לדברים המעניינים באמת שיש באותו ספר. לקראת סוף הספר "מתגלה" כי אם רושמים את ספרות פאי בבסיס 11, הרי שבנקודה כלשהי בפיתוח (בסביבות המקום ה-\(10^{20}\), אם אני זוכר נכון; להמחשה, השיא העולמי כיום עומד על סביבות ה-\(10^{12}\) ספרות, כך שאנחנו ממש לא קרובים לשם) מגיעה סדרה של אפסים ואחדות בלבד, שאם מסדרים אותה כריבוע, מתגלה ציור פרימיטיבי של עיגול. הדבר הזה מפורש על ידי הדמויות בספר כחתימה של יוצר היקום על הבריאה, מה שאותי הרגיז מאוד – לא בגלל המסר הדתי (הגישה של הספר לנושאי דת ואמונה דווקא סבירה בעיני) אלא בגלל השימוש הלא נאות בפאי, לטעמי (וכאן המקום להעיר שאהבתי מאוד את הספר, ורק הנקודה הזו פגמה מעט בהנאה).

כמובן שהבעיה אינה עם כך שהסופר החליט להמציא את קיום הרצף המוזר הזה בפאי. הבעיה אפילו אינה עם כך שסביר להניח שכל רצף שרק נרצה של ספרות יופיע מתישהו בפיתוח של פאי (הניסוח המדוייק של ההשערה הזו אומר כי פאי הוא מספר נורמלי – כאמור, טרם הוכיחו זאת) – בסופו של דבר, אפשר להתייחס למקום ה-\(10^{20}\)כמקום "מוקדם מאוד" בפיתוח ולכן הופעה אקראית של ציור שכזה בשלב זה היא מאוד לא סבירה הסתברותית (וכאן המקום להעיר שבאופן מפתיע ביותר, במקום ה-762 בפאי מתחיל רצף של לא פחות משישה מופעים רצופים של הספרה 9 – גם כן משהו לחלוטין לא סביר; ריצ'ארד פיינמן התבדח כי הוא רוצה לשנן את כל הספרות של פאי עד לנקודה זו רק כדי שיוכל לצטט אותם ולסיים ב"תשע, תשע, תשע, תשע, תשע, תשע וכן הלאה", כלומר לרמוז שפאי מסתיים ב-\(999\dots\) ולכן הוא רציונלי). הבעיה שלי היא בכך שאני לא מאמין בשום צורה שאל כלשהו מסוגל לשלוט ולו במופע של ספרה אחת בפיתוח של פאי. על כן, גם אם רצף כזה יתגלה במציאות, התגובה שלי לכך תהיה "מגניב!", אבל לא אראה זאת כקשור במאום לאל כלשהו.

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

כזכור, פאי מוגדר בתור היחס בין היקף מעגל לקוטרו. זו הגדרה מאוד גרועה. מה זאת אומרת "היקף מעגל"? איזה מעגל? ואם מעגל כלשהו, למה היחס בין היקף המעגל לקוטרו תמיד קבוע? ואיך מודדים היקף? והכי חשוב – מעגל איפה?

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

הדרך ה"נכונה" להציג את האוניברסליות של פאי היא לדבר על פונקציות הסינוס והקוסינוס, ולהסביר כיצד הן נובעות באופן "טבעי" במתמטיקה, בלי קשר למוצא הגאומטרי שלהן (כזכור, הפונקציות הללו מוגדרות באופן גאומטרי, באמצעות משולשים ישרי זווית – אך שוב, זו אינה ההגדרה ה"נכונה") אך זה יקח אותי לדיון על משוואות דיפרנציאליות שאני מעדיף להימנע ממנו כעת (אף כי אני מקווה לכתוב פוסט בעניין בעתיד). תחת זאת, אציג מקום אחר שבו (בעקבות הקשר החזק של פאי לסינוס) פאי צץ – פונקצית הזטה של רימן. מה שאני רוצה להציג בחלקו המתמטי של הפוסט הזה הוא שתי הוכחות לכך ש-\(\zeta\left(2\right)=\frac{\pi^{2}}{6}\); הוכחה אחת של אוילר תהיה נפנוף-ידיימית למדי במהותה, אך יפה; והשניה, שתתבסס על אנליזת פורייה, היא יותר סטנדרטית ויותר קצרה, אך דורשת חומר רקע שלא אוכל להרחיב עליו כאן ולכן אשמור אותה לסוף.

תזכורת קצרה: \(\zeta\) מוגדרת על מספרים ממשיים גדולים מ-1 באופן הבא: \(\zeta\left(s\right)=\sum_{n=1}^{\infty}\frac{1}{n^{s}}\). קיימת הרחבה של הפונקציה לכל המספרים המרוכבים, אך זה לא רלוונטי לדיון הנוכחי – כמו שכבר הבנתם, השתמשתי במילים "פונקצית הזטה של רימן" רק כדי לתת שם מפוצץ לטור שאני הולך לחשב, \(\sum_{n=1}^{\infty}\frac{1}{n^{2}}\) (מה לעשות, כל דבר שיש בו את פונקצית הזטה של רימן הופך לסקסי – מתמטית – פי עשרים).

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

הבסיס להוכחה של אוילר הוא פונקצית הסינוס, ומכאן גם פאי נכנס לתמונה באופן טבעי. בהגדרתו ה"נאיבית", סינוס של זווית \(\theta\) מוגדר בתור היחס בין הצלע שמול הזווית ובין היתר במשולש ישר זווית. הגדרה זו מוכללת עם קצת עבודה לכל מספר ממשי \(x\) (שמייצג את גודל הזווית ברדיאנים), אבל כדי לחסוך את כאב הראש מתמטיקאים לרוב מגדירים את סינוס בלי שום גאומטריה, באמצעות הטור \(\sin\left(x\right)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\frac{x^{7}}{7!}+\dots\).

מה שרלוונטי עבורנו הוא הערכים שבהם סינוס מתאפס. סינוס היא פונקציה מחזורית, שמתחילה ב-0, עולה עד ל-1, יורדת עד ל-\(-1\), ואז חוזרת ל-0. כל מחזור כזה אורכו בדיוק \(2\pi\), וסינוס עובר בנקודה 0 גם במחצית המחזור (כשהוא יורד מ-\(1\) אל \(-1\)). כלומר, סינוס מתאפס בדיוק בנקודות שהן כפולה שלמה של פאי: \(0,\pm\pi,\pm2\pi,\dots\) . כעת מגיע נפנוף הידיים המטורלל – מה שנעשה יהיה להציג את סינוס בתור מכפלה של גורמים מהצורה \(\left(1-\frac{x}{n\pi}\right)\), כלומר בתור מעין מכפלה של גורמים שתלויים בשורשים שלו.

ההגיון כאן מגיע מהתכונה הדומה עבור פולינומים. כל פולינום \(a_{n}x^{n}+\dots+a_{1}x+a_{0}\) ניתן לכתוב גם בתור מכפלה של גורמים \(a_{n}\left(x-\alpha_{1}\right)\cdots\left(x-\alpha_{n}\right)\) כאשר ה-\(\alpha_{i}\) הם השורשים שלו (הנקודות שבהן הוא מתאפס). המכפלה הזו סופית ולכן אין איתה בעיה; אך עבור סינוס מדובר ב"פולינום אינסופי" שיש לו אינסוף שורשים, ולכן הרבה פחות ברור שהעסק הזה אפשרי. לצורך הדיון אנו מניחים שזה אפשרי – אוילר לא היה פורמלי בהרבה כשהוכיח את הטענה לראשונה. למעשה, איננו משתמשים בפונקצית הסינוס עצמה אלא בתיקון שלה, שיסלק את השורש הבעייתי ב-0: אנו מתבוננים בפונקציה \(\frac{\sin x}{x}\). לכאורה פונקציה זו כלל אינה מוגדרת באפס, אך ניתן להראות כי \(\lim_{x\to0}\frac{\sin x}{x}=1\) ועל כן אם נגדיר אותה ב-0 להיות 1 נקבל פונקציה רציפה ונחמדה, שניתן לתאר גם באמצעות הטור \(\frac{\sin x}{x}=1-\frac{x^{2}}{3!}+\dots\).

את הפיתוח \(a_{n}\left(x-\alpha_{1}\right)\cdots\left(x-\alpha_{n}\right)\) אפשר להציג גם באופן קצת שונה אם מחלקים כל גורם ב-\(-\alpha_{i}\) המתאים: מקבלים \(\frac{a_{n}}{\prod\left(-\alpha_{i}\right)}\left(1-\frac{x}{\alpha_{i}}\right)\cdots\left(1-\frac{x}{\alpha_{n}}\right)\). כך נעשה גם במקרה של \(\frac{\sin x}{x}\) ונקבל \(\frac{\sin x}{x}=\left(1-\frac{x}{\pi}\right)\left(1+\frac{x}{\pi}\right)\left(1-\frac{x}{2\pi}\right)\left(1+\frac{x}{2\pi}\right)\cdots\). הסיבה לכך שאין מקדם "מחוץ לסוגריים" היא שבמקרה הזה הוא 1; קל לראות זאת אם מציבים 0 בשני האגפים – באגף שמאל יתקבל 1, ולכן גם באגף ימין חייב להתקבל 1 (ומה שיתקבל הוא בדיוק ערכו של המקדם "שבחוץ").

כעת כבר כמעט סיימנו. הבה ונזכר בנוסחה \(\left(a+b\right)\left(a-b\right)=a^{2}-b^{2}\); אפשר להחיל אותה על כל זוג סמוך של סוגריים. מקבלים: \(\frac{\sin x}{x}=\left(1-\frac{x^{2}}{\pi^{2}}\right)\left(1-\frac{x^{2}}{4\pi^{2}}\right)\left(1-\frac{x^{2}}{9\pi^{2}}\right)\cdots\). העיקרון ברור – במכנים אנחנו מקבלים ריבועים. זה בדיוק התעלול של אוילר – הוא הצליח איכשהו לתפוס אנליטית את כל הריבועים (ולכן הפתרון שלו עובד מצויין עבור הטור הספציפי הזה אך לא תקף, למשל, עבור \(\sum\frac{1}{n^{3}}\)). כעת, אם נפתח את המכפלה של כל אינסוף הסוגריים ונסתכל על התוצאה, נקבל כמו קודם פולינום "אינסופי". מה יהיה המקדם של \(x^{2}\) בפולינום הזה? מקדם שכזה מתקבל על ידי בחירת גורם אחד מהצורה \(-\frac{x^{2}}{n^{2}\pi^{2}}\) מאחד מהסוגריים, ואת הגורם 1 מכל היתר; וכל בחירה אפשרית שכזו מצטרפת לסכום שמהווה המקדם של \(x^{2}\). בקיצור – המקדם הזה יהיה \(-\sum_{n=1}^{\infty}\frac{1}{n^{2}\pi^{2}}\).

מצד שני, כמו שכבר ראינו, המקדם של \(x^{2}\) בטור של \(\frac{\sin x}{x}\) הוא \(-\frac{1}{3!}\). על כן, על ידי השוואת מקדמים מקבלים כי \(-\frac{1}{6}=-\sum_{n=1}^{\infty}\frac{1}{n^{2}\pi^{2}}\), ועל ידי כפל שני האגפים ב-\(-\pi^{2}\) מקבלים את התוצאה: \(\sum_{n=1}^{\infty}\frac{1}{n^{2}}=\frac{\pi^{2}}{6}\). למרות שזוהי בסופו של דבר הוכחה טכנית, אני סבור שהיא מקסימה ונותנת תחושה טובה של האופן שבו פאי צץ משום מקום.

מה שחשוב לי במיוחד להבהיר כאן הוא חוסר הקשר המוחלט של פאי בדוגמה הזו לגאומטריה, מעגלים, העולם שלנו או כל דבר אחר. הסכום \(\sum\frac{1}{n^{2}}\) לא קשור במאום לכל אלו (טוב, כמו שראינו, הוא כן קשור, אך לא ברמה ההגדרתית-הצהרתית, אלא ברמה עמוקה בהרבה). היינו יכולים להגדיר את פאי באותה מידה להיות \(\sqrt{6\sum_{n=1}^{\infty}\frac{1}{n^{2}}}\) ולא יחס בין היקף מעגל וקוטרו, ואז מה היו אומרים אלו שמנסים לטעון שאלוהים מסוגל לשנות את פאי? הדיון היה מפסיק לעסוק בפאי גרידא, ועוסק למעשה בכל טור ובכל מספר אפשרי – ולטעמי, זה הופך את השאלה "האם אלוהים יכול לשנות את פאי" לכזו שבה התשובה השלילית ברורה בדיוק כמו בשאלה "האם אלוהים מסוגל להנחית מט במהלך הראשון בשחמט?"- אלוהים לא מסוגל לעשות זאת מכיוון שזה פשוט לא אפשרי, על פי כללי השחמט; כדי שהדבר כן יתרחש, חוקי השחמט יצטרכו להשתנות. אם אלוהים מסוגל לשנות את פאי, אז לאחר השינוי היצור שיתקבל כבר לא יהיה פאי אלא משהו אחר – משהו שאינו שווה, למשל, ל-\(\sqrt{6\sum_{n=1}^{\infty}\frac{1}{n^{2}}}\).

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

פרט לרעיון הבסיסי, אשתמש במשפט אלמנטרי מתורת פורייה – זהות פרסבל. זהות פרסבל היא הכללה למרחבי פונקציות של משפט פיתגורס; משפט פיתגורס אומר כי \(a^{2}+b^{2}=c^{2}\) כאשר \(a,b,c\) הן צלעות משולש ישר זווית; אפשר גם לחשוב על \(a,b\) כמייצגים פירוק לרכיבים מאונכים זה לזה של הצלע האלכסונית \(c\), ועל משפט פיתגורס בתור קשר בין גודלם של הרכיבים וגודל הסכום שלהם. הרעיון בפרסבל דומה – במקרה זה, אם \(f\left(x\right)\) היא פונקציה שמקיימת בלה בלה בלה אז ה"גודל" שלה בהקשר זה (שמבוסס על מושג של מכפלה פנימית במרחבי פונקציות – אמרתי שלא אוכל להרחיב מדי) הוא \(\frac{1}{\pi}\int_{-\pi}^{\pi}\left|f\left(x\right)\right|^{2}dx\). ההכנסה של פאי לתמונה אינה מקרית, כמובן; כבר אמרתי שאנליזה פורייה מתבססת על פירוק למרכיבים מחזוריים, כלומר סינוסים וקוסינוסים, שפאי משחק תפקיד חשוב במחזור שלהם. אם חושבים על המפלץ שכתבתי למעלה בתור \(c^{2}\) במשפט פיתגורס המקורי, אז זהות פרסבל נראית יחסית סבירה: \(\frac{1}{\pi}\int_{-\pi}^{\pi}\left|f\left(x\right)\right|^{2}dx=\left|a_{0}\right|^{2}+\sum_{n=1}^{\infty}\left|a_{n}\right|^{2}+\left|b_{n}\right|^{2}\). באגף ימין יש לנו סכום של המקדמים בריבוע – פשוט הכללה של \(a^{2}+b^{2}\) של פיתגורס.

כעת, אם נתונה לנו \(f\left(x\right)\), כיצד בעצם מחושבים המקדמים \(a_{n},b_{n}\), ולמה בעצם יש שני סוגי מקדמים? התשובה היא שאם עובדים עם סינוסים וקוסינוסים, יש שני מקרים שונים: המקדמים עבור קוסינוסים מחושבים באמצעות \(a_{n}=\frac{1}{\pi}\int_{-\pi}^{\pi}f\left(x\right)\cos\left(nx\right)dx\) כאשר \(n\ge0\), והמקדמים עבור סינוסים מחושבים באמצעות \(b_{n}=\frac{1}{\pi}\int_{-\pi}^{\pi}f\left(x\right)\sin\left(nx\right)dx\) כאשר \(n\ge1\). מדוע דווקא נוסחאות אלו זו? זוהי מכפלה פנימית של \(f\left(x\right)\) עם אחת מפונקציות הבסיס של בסיס אורתונורמלי למרחב, שבמקרה הזה הן סינוס וקוסינוס (למעשה \(a_{0}\) לא מייצג לא סינוס ולא קוסינוס ויש שם התחכמות נוספת אבל זה לחלוטין לא רלוונטי במקרה שלנו אז לא אכנס לכך). אם אנחנו יודעים לבצע את החישובים הללו, שאינם קשים במיוחד, התוצאה נובעת מאליה כשאנחנו מסתכלים על טור פורייה של פונקציה פשוטה להחריד: \(f\left(x\right)=x\).

ראשית, מהו ה"גודל" של הפונקציה הזו? \(\frac{1}{\pi}\int_{-\pi}^{\pi}\left|f\left(x\right)\right|^{2}dx=\frac{1}{\pi}\int_{-\pi}^{\pi}x^{2}dx=\frac{1}{2\pi}\left[\frac{x^{3}}{3}\right]_{-\pi}^{\pi}=\frac{1}{\pi}\frac{\pi^{3}-\left(-\pi^{3}\right)}{3}=\frac{2\pi^{3}}{3\pi}=2\frac{\pi^{2}}{3}\). כאמור, זהו חישוב פשוט מאוד עבור מי שמכיר אינטגרלים.

כעת, מהם המקדים של טור הפורייה? המקדמים \(a_{n}\) הם פשוטים למדי: אפס. זאת מכיוון ש-\(a_{n}=\frac{1}{\pi}\int_{-\pi}^{\pi}x\cos\left(nx\right)dx\), כלומר אינטגרל של פונקציה אי זוגית (פונקציה אי זוגית היא פונקציה המקיימת \(g\left(-x\right)=-g\left(x\right)\)) על תחום סימטרי סביב ראשית הצירים (נימוק פשוט לכך שהפונקציה אי זוגית: \(x\) בבירור אי זוגית, ואנו כופלים אותה ב-\(\cos\left(nx\right)\) הזוגית).

האינטגרל עבור \(b_{n}\) מחוכם יותר ודורש תעלולי אינטגרציה סטנדרטיים – בפרט, אינטגרציה בחלקים עובדת כאן. מי שלא מצליח לעקוב אחרי החישובים, לא נורא; בשביל זה לומדים מתישהו אינטגרציה, אבל זה לא הדבר החשוב באמת כאן:

\(b_{n}=\frac{1}{\pi}\int_{-\pi}^{\pi}x\sin\left(nx\right)dx=\frac{1}{\pi}\left[-\frac{x\cos\left(nx\right)}{n}\right]_{-\pi}^{\pi}+\frac{1}{\pi}\int_{-\pi}^{\pi}\cos\left(nx\right)dx\)

\(=\frac{1}{\pi}\frac{-\pi\cos\left(n\pi\right)-\pi\cos\left(-n\pi\right)}{n}+\frac{1}{\pi}\left[\frac{\sin\left(nx\right)}{n}\right]_{-\pi}^{\pi}=-\frac{-2\cos\left(n\pi\right)}{n}=2\frac{\left(-1\right)^{n+1}}{n}\)

השתמשתי כאן בלי לנמק בכל מני תכונות של סינוסים וקוסינוסים – ש-\(\sin\left(n\pi\right)=0\) לכל \(n\) (מה שכבר אמרתי) וש-\(\cos\left(n\pi\right)=\left(-1\right)^{n}\).

כעת אפשר לסיים על ידי שוויון פרסבל: \(2\frac{\pi^{2}}{3}=\sum_{n=1}^{\infty}\left|b_{n}\right|^{2}=\sum_{n=1}^{\infty}\frac{4}{n^{2}}\) ולכן על ידי חלוקת שני האגפים ב-4 מקבלים \(\sum_{n=1}^{\infty}\frac{1}{n^{2}}=\frac{\pi^{2}}{6}\). כלומר, בעיית חישוב הסכום הצטמצמה לבעיית חישוב אינטגרלים פשוטה יחסית; אך שוב, מדובר בשיטה אד-הוקית משהו, שמתבססת על כך ש"במזל"קיבלנו שהמקדמים \(b_{n}\) הם בעלי צורה כל כך נחמדה. עם זאת, השיטה אינה אד-הוקית באופן מוחלט במובן זה שאפשר לקחת את טורי הפורייה של פונקציות פשוטות רבות נוספות ולמצוא בעזרת שוויון פרסבל את סכומם.

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

עוד כמה דברים על מספרים p-אדיים

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

נתחיל מהנורמה ה-p-אדית. כזכור, הגדרנו אותה על מספרים טבעיים באופן הבא: \(\|a\|_{p}=\frac{1}{p^{\mbox{ord}_{p}\left(a\right)}}\) כאשר \(\mbox{ord}_{p}\left(a\right)\) הוגדר להיות החזקה הגבוהה ביותר של \(p\) שמחלקת את \(a\) (למשל \(\mbox{ord}_{3}\left(54\right)=3\) כי \(3^{3}\) מחלק את 54 אבל לא \(3^{4}\)). ההרחבה שלה למספרים רציונליים (ואחר כך לגבולות של סדרות של מספרים רציונליים) מתבצעת באופן "טבעי" כדי לשמור על התכונות הרצויות של נורמה (כפליות ורציפות). כזכור, אחת הדרישות שלנו מנורמה הייתה קיום סוג של אי שוויון המשולש: \(\|a+b\|_{p}\le\|a\|_{p}+\|b\|_{p}\). מסתבר שהנורמה ה-p-אדית מקיימת תכונה זו בצורה חזקה למדי. החשבון די פשוט: אם \(p^{n}\) מחלק את \(a\) ו-\(p^{m}\) מחלק את \(b\), ונניח ש-\(n<m\), אז \(p^{n}\) מחלק את \(a+b\), ולכן \(\|a+b\|_{p}\le\frac{1}{p^{n}}\) (ייתכן שאת \(a+b\) מחלקת חזקה גדולה יותר של \(p\), אבל אז הנורמה תהיה קטנה יותר מ-\(\frac{1}{p^{n}}\)). באופן כללי ניתן לתאר את האבחנה הזו כך: \(\|a+b\|_{p}\le\max\left\{ \|a\|_{p},\|b\|_{p}\right\} \). כלומר, הנורמה של סכום אינה יכולה להיות גדולה יותר מכל אחת מהנורמות של המחוברים (הסבירו לעצמכם מדוע תכונה זו גוררת מייד את אי שוויון המשולש "הרגיל"). לנורמות שמקיימות תכונה זו קוראים "נורמות לא ארכימדיות". זה תרגיל לא קשה במיוחד להראות גם כשמרחיבים את הנורמה על כל הרציונליים התכונה הזו נשמרת.

כזכור, השתמשנו בנורמות כדי להגדיר מטריקות – פונקציות מרחק, באופן הבא: \(d\left(a,b\right)=\|a-b\|\). בלשון מטריקות, תכונת הלא-ארכימדיות מתורגמת באופן הבא: לכל \(x,y\) ו"נקודת ביניים" \(z\) מתקיים \(d\left(x,y\right)\le\max\left\{ d\left(x,z\right),d\left(z,y\right)\right\} \). במילים אחרות – אם פעם כל מה שאמרנו הוא שהדרך הישירה מ-\(x\) אל \(y\) היא יותר קצרה מכל טיול שעובר בנקודת ביניים \(z\), עכשיו אנחנו אומרים שהיא יותר קצרה אפילו מ"חצי טיול" שכזה! (כמובן שזה לא תיאור מדויק של מה שהולך שם). ההשלכה הראשונה של התכונה הזו היא שכל משולש בעולם שלנו הוא שווה שוקיים: נניח ש-\(a,b,c\) הן שלוש נקודות במרחב. אם \(d\left(a,b\right)=d\left(a,c\right)\) אז המשולש שהן קודקודיו הוא שווה שוקיים על פי הגדרה; לכן נניח ש-\(d\left(a,b\right)\ne d\left(a,c\right)\) ובפרט, בלי הגבלת הכלליות, אפשר להניח ש-\(d\left(a,b\right)>d\left(a,c\right)\) כעת, מהי \(d\left(b,c\right)\)? אנו יודעים כי \(d\left(b,c\right)\le\max\left\{ d\left(a,b\right),d\left(a,c\right)\right\} =d\left(a,b\right)\). מצד שני, \(d\left(a,b\right)\le\max\left\{ d\left(a,c\right),d\left(b,c\right)\right\} \), ומכיוון שידוע לנו שלא מתקיים \(d\left(a,b\right)\le d\left(a,c\right)\) אז בהכרח \(d\left(a,b\right)\le d\left(b,c\right)\). קיבלנו שכל אחד מהמספרים הללו קטן או שווה מהשני ולכן \(d\left(a,b\right)=d\left(b,c\right)\) – משולש שווה שוקיים.

בואו נעבור לתופעה משעשעת נוספת: ניקח נקודה \(a\) ומרחק \(r\in\mathbb{R}\) כלשהו, ונתבונן בקבוצה \(B\left(a,r\right)=\left\{ x|d\left(a,b\right)<r\right\} \) – לקבוצה הזו קוראים "הכדור הפתוח ברדיוס \(r\) סביב \(a\)" כעת בואו ניקח נקודה \(x\in B\left(a,r\right)\) כלשהי ונתבונן בכדור הפתוח ברדיוס \(r\) סביבה. את מה הוא מכיל? אם \(x\in B\left(a,r\right)\) אז \(d\left(a,x\right)<r\). מצד שני, \(d\left(b,x\right)\le\max\left\{ d\left(a,x\right),d\left(a,b\right)\right\} <r\) (כי שני האיברים שעליהם נלקח המקסימום קטנים מ-\(r\)) ולכן \(x\in B\left(b,r\right)\), כלומר \(B\left(a,r\right)\subseteq B\left(b,r\right)\). מאותו שיקול בדיוק \(B\left(b,r\right)\subseteq B\left(a,r\right)\), ולכן \(B\left(a,r\right)=B\left(b,r\right)\). מסקנה: לכל כדור פתוח מתקיימת התכונה שכל נקודה בתוכו יכולה לשמש בתור ה"מרכז" שלו!

הנה עוד תכונה מפתיעה של ה-p-אדיים שנוגעת לאנליזה בהם. תזכורת מהממשיים: הטור \(\sum_{n=1}^{\infty}\frac{1}{n}\) – "הטור ההרמוני" – הוא הדוגמה ה"קלאסית" לטור לא מתכנס (אפשר להראות שהוא גדל בערך באותו קצב כמו \(\ln n\) ככל שמחברים לו איברים). זו דוגמת נגד פשוטה לטענה שטור מתכנס אם האיבר הכללי שלו שואף לאפס – טענה שמייד חושבים עליה כששומעים לראשונה על כך שזהו תנאי הכרחי לכך שטור יתכנס. במחשבה נוספת, זה קריטריון שהוא כמעט טוב מכדי להיות אמיתי; ובמקומו יש המוני מבחני התכנסות שונים ומשונים.

ובכן, במספרים p-אדיים מה שטוב מכדי להיות אמיתי הוא אמיתי. הסיבה לכך היא פשוטה ביותר – שוב, תכונת הלא-ארכימדיות של הנורמה ה-p-אדית. אם אנו לוקחים שני סכומים חלקיים של הטור \(\sum a_{n}\), נאמר \(S_{n}=\sum_{i=1}^{n}a_{i}\) ו-\(S_{m}=\sum_{i=1}^{m}a_{i}\) כש-\(n>m\), אז מקבלים שגודל ההפרש ביניהם מקיים \(\|S_{n}-S_{m}\|_{p}=\|a_{m+1}+\dots+a_{n}\|_{p}\le\max\left\{ \|a_{m+1}\|_{p},\dots,\|a_{n}\|_{p}\right\} \), ומכאן הוכחה שסדרת הסכומים החלקיים היא סדרת קושי היא תרגיל סטנדרטי בחדו"א.

נעבור כעת לתיאור של המספרים ה-p-אדיים שהוא שונה מהתיאורים שנתתי עד כה ונותן ככל הנראה את האינטואיציה הטובה ביותר לגבי האופן שבו הם "נראים" ואיך שחשבון מבוצע בהם. לפני כן, הבה נזכר איך כותבים מספרים ממשיים "רגילים": כשאנו כותבים מספר כמו 123 בבסיס עשרוני, אנו מתכוונים למספר \(1\cdot10^{2}+2\cdot10^{1}+3\cdot10^{0}\). כלומר, יש לנו סכום של חזקות של 10, כשהמקדם של כל חזקה הוא ספרה של המספר שלנו. ספרות שאחרי הנקודה מציינות חזקות שליליות: כך למשל 10.1 הוא המספר \(1\cdot10^{1}+0\cdot10^{0}+1\cdot10^{-1}\). מספר ממשי יכול להיכתב כשיש אינסוף ספרות מימין לנקודה; כך למשל \(0.333\dots\) מייצג את המספר \(3\cdot10^{-1}+3\cdot10^{-2}+\dots\), שניתן גם לכתוב באופן מקוצר בתור \(\sum_{n=1}^{\infty}\frac{3}{10^{n}}\), וחישוב שמשתמש בנוסחת הסכום של טור הנדסי יראה כי זהו אכן המספר \(\frac{1}{3}\) הישן והטוב. בדומה מקבלים גם כי \(0.999\dots\) הוא בעצם 1.

נחזור למספרים p-אדיים. כזכור, ההגדרה ה"אלגברית" שלי עבור שלמים p-אדיים הייתה בתור סדרה \(a_{1},a_{2},\dots\) של מספרים טבעיים כך ש-\(a_{n+1}\equiv a_{n}\left(\mbox{mod }p^{n}\right)\). מבחינה אינטואיטיבית נכון לחשוב על זה בתור "סדרת קירובים" למספר, כמו ש-\(1,1.4,1.41,1.414,\dots\) היא סדרת קירובים לשורש הממשי של 2. ניתן להראות (באופן מעט טכני אבל ממש לא מסובך) שעבור כל שלם p-אדי \(\alpha\) ניתן לבחור סדרה "קנונית" שדומה לסדרת הקירובים של שורש מבחינת גדלי האיברים בה – האיבר \(a_{n}\) יהיה מספר טבעי ששקול ל-\(\alpha\) מודולו \(p^{n}\) בטווח \(0,\dots,p^{n}-1\). אנו רוצים לומר משהו בסגנון "\(a_{n+1}\) הוא כמו \(a_{n}\) רק עם ספרה אחת נוספת"; כדי שזה יעבוד, צריך להציג את המספרים לא בבסיס 10 אלא בבסיס \(p\). כלומר, כותבים \(a_{n}=b_{0}\cdot p^{0}+b_{1}\cdot p^{1}+\dots+b_{n-1}p^{n-1}\) כשכל "ספרה" \(b_{i}\) היא מספר בין \(0\) ל-\(p-1\); ומכיוון ש-\(a_{n+1}\equiv a_{n}\left(\mbox{mod }p^{n}\right)\) נובע חיש קל ש-\(a_{n+1}=b_{0}p^{0}+\dots+b_{n-1}p^{n-1}+b_{n}p^{n}\) כך ש-\(b_{0},\dots,b_{n-1}\) זהים לאלו שהיו ב-\(a_{n}\), ו-\(b_{n}\) היא "הספרה החדשה". כעת אפשר לייצג את \(\alpha\) באופן הבא: \(\alpha=b_{0}p^{0}+b_{1}p^{1}+\dots\), כלומר על ידי סדרת הספרות האינסופית \(b_{0},b_{1},\dots\).

דוגמה פשוטה: המספר "שבע עשרה" יוצג בבסיס \(p\) כאשר \(p=7\) בתור \(23\) (כי הוא שווה ל-\(2\cdot7^{1}+3\cdot7^{0}\)). במקרה הזה הסדרה שלנו היא \(b_{0}=3,b_{1}=2,b_{2}=0,\dots\) וכן הלאה – כל הספרות החל מה-2 הן אפס ולכן לא כותבים אותן במפורש. לכל מספר טבעי זה יקרה – החל ממקום מסויים כל הספרות יהיו אפס ובינתיים לא קרה שום דבר מעניין.

אבל כעת הבה ונגדיר מספר \(\alpha\) באמצעות הסדרה \(a_{n}=1+p+\dots+p^{n}\). קל לבדוק שזוהי אכן סדרה חוקית שמקיימת את התנאי שאנו דורשים, ובמקרה הזה נקבל את סדרת הספרות \(b_{n}=1\) לכל \(n\). כלומר, המספר שלנו נכתב כך: \(\dots111\). במילים אחרות, זהו מספר בעל פיתוח אינסופי לשמאל, במקום לימין. אין כאן בעיה רעיונית שכן הטור \(\sum_{n=0}^{\infty}p^{n}\) שמגדיר את המספר הוא טור מתכנס במספרים p-אדיים (כי \(p^{n}\) הוא קטן יותר על פי הנורמה ה-p-אדית ככל ש-\(n\) גדול יותר; להוכחה פורמלית של התכנסות הטור אפשר להראות שסדרת הסכומים החלקיים היא סדרת קושי).

איך עובד חשבון במספרים p-אדיים? בדיוק כמו חשבון "רגיל" – ספרה ספרה. כך למשל \(\dots111+\dots111=\dots222\). לדוגמה יותר מעניינת הבה נניח ש-\(p=3\) ונתבונן במכפלה \(\dots1112\cdot2\). אם נכפול את שני המספרים בשיטת בית הספר נגלה שהתבנית קבועה – כפול של \(2\) ב-\(2\) נותן \(4\), ומאחר ואנו בבסיס \(p=3\) אז התוצאה היא הספרה \(1\) ועוד יתרה של \(1\) שאותה "מעבירים הלאה" למכפלה הבאה; ומכאן ואילך נקבל \(2\cdot1+1=3\), שמתורגם לספרה 0 ועוד יתרה של 1, ואותה יתרה תביא לכך שגם בהכפלת \(2\) ב-\(1\) הבא בתור נקבל ספרה 0 ויתרה 1, וכו' וכו' עד אינסוף – היתרה "נדחקת לאינסוף" עד שהיא "נעלמת" ואנו מקבלים שתוצאת הכפל היא \(1\) (או יותר מדוייק, \(\dots0001\)). במילים אחרות, \(\dots1112\) הוא ההופכי של \(2\) בחוג השלמים ה-3-אדיים – האיבר המקביל לחצי בשדה המספרים הרציונליים ה"רגילים" (תרגיל למתקדמים: להראות ש-\(\dots1112\) אכן זהה למספר \(\frac{1}{2}\), כשבונים את ה-3-אדיים באמצעות סדרות קושי של מספרים רציונליים – כלומר, שהסדרה הקבועה \(\frac{1}{2},\frac{1}{2},\dots\) והסדרה שמגדירה את \(\dots1112\) מתכנסות לאותו גבול – או במילים אחרות, ההפרש ביניהן שואף לאפס).

עד כה דיברתי על שלמים p-אדיים (וכפי שראינו, מכיוון שגם חצי הוא שלם 3-אדי, המילה "שלם" כאן היא במובן רחב יותר מזה ה"רגיל"). מספרים p-אדיים כלליים ניתנים לתיאור בתור \(p^{n}\varepsilon\) כאשר \(\varepsilon\) הוא שלם p-אדי הפיך, ומכך נובע שההצגה ה"כללית" של מספרים p-אדיים היא בתור ביטוי בבסיס \(p\) שיכול להכיל אינסוף ספרות משמאל לנקודה, אבל רק מספר סופי מימין לה. למשל \(\dots1112.12121\). שימו לב להיפוך – במספרים ממשיים אינסוף הספרות היו מימין לנקודה. שוב, ההבדל נובע מכך שבמספרים ממשיים, הספרות שמימין לנקודה ייצגו מספרים שהגודל שלהם (הנורמה שלהם) הלך וקטן; במספרים p-אדיים הגודל הולך וקטן דווקא כשהולכים שמאלה.

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

מספרים p-אדיים – בניה "אנליטית"

בפוסט הקודם הצגתי דרך "אלגברית" לבניית שדה המספרים ה-p-אדיים. הפעם אני רוצה להציג דרך שונה לחלוטין שמביאה בדיוק לאותה תוצאה, ונתחיל במוטיבציה – בניית המספרים הממשיים מתוך המספרים הרציונליים. יש שתי בניות מפורסמות לממשיים: האחת, של דדקינד, מסתמכת על כך שקיים ברציונליים יחס סדר, כלומר אפשר לדבר על \(a<b\). דדקינד משתמש במושג הסדר כדי ליצור אובייקטים חדשים – "חתכים", כך שכל מספר ממשי מיוצג על ידי קבוצת כל המספרים הרציונליים שקטנים ממנו או שווים לו. זוהי בנייה יפה עם הכללות יפות ואני ממש לא רוצה לדבר עליה הפעם.

הבניה השניה היא של קנטור. קנטור מסתמך על כך שקיים ברציונליים מושג של מרחק. המרחק בין \(a,b\) מוגדר בתור \(d\left(a,b\right)=\left|a-b\right|\), ומרגע שיש לנו פונקצית מרחק שכזו אפשר להגדיר באמצעותה את המושג של סדרת קושי – סדרה שהמרחק בין איבריה הולך וקטן לאפס, ובניסוח מתמטי פורמלי, לכל \(\varepsilon>0\) קיים מקום בסדרה, \(N\), כך שלכל \(n,m>N\) מתקיים \(d\left(a_{n},a_{m}\right)<\varepsilon\). האינטואיציה שמאחורי ההגדרה היא שכל סדרה מתכנסת (שאבריה מתקרבים עוד ועוד עד לנקודה אחת מובחנת, ה"גבול" של הסדרה) מהווה סדרת קושי; ולכן אם ההפך אינו נכון וקיימות סדרות קושי שאינן מתכנסות, טבעי לנסות ו"להשלים" את המרחב שלנו על ידי זיהוי הנקודות שבו עם אוסף סדרות הקושי שמתכנסות אליהן.

כל זה נשמע מבלבל מאוד, עד שמגיעים לשורה התחתונה. איך מיוצג המספר 1? באמצעות הסדרה \(\left(1,1,1,\dots\right)\) (מדוע זו סדרת קושי?) ובאופן דומה מיוצג כל מספר רציונלי. ואיך מיוצג מספר אי רציונלי כמו \(\sqrt{2}\) באמצעות סדרת מספרים רציונליים? ובכן, כבר הראיתי דוגמה בפוסט הקודם: למשל, הסדרה \(\left(1,1.4,1.41,\dots\right)\). כלומר, סדרה שבה כל איבר מקרב את \(\sqrt{2}\) ברמת דיוק של ספרה אחת יותר מהקודמת. הראיתי בפוסט הקודם שבסדרה הזו מתקיים \(d\left(a_{n},a_{n+1}\right)\le\frac{1}{10^{n}}\) ובעזרת קריטריון זה לא קשה להראות שמדובר בסדרת קושי.

וכעת עולה השאלה – האם ההרחבה הזו של הרציונליים היא ההרחבה האפשרית היחידה שמשתמשת בתעלול עם סדרות הקושי? התשובה נעוצה בשאלה האם ניתן להגדיר "מרחק" בצורה אחרת – ולכן, כמובן, בשאלה מהו "מרחק" בהקשר של הרציונליים. במתמטיקה קיים מושג כללי של "מרחק" שמכליל את המרחק הרגיל המוכר לנו; לפונקצית מרחק "כללית" שכזו קוראים מטריקה. פונקציה \(d:X\times X\to\mathbb{R}\) היא מטריקה אם היא מקיימת את שלוש התכונות הבאות:

  1. \(d\left(x,y\right)\ge0\) ו-\(d\left(x,y\right)=0\) אם ורק אם \(x=y\). כלומר: מרחק בין שתי נקודות הוא תמיד חיובי ממש אלא במקרה שבו שתי הנקודות זהות ואז המרחק ביניהן הוא תמיד 0.
  2. \(d\left(x,y\right)=d\left(y,x\right)\), כלומר המרחק הוא סימטרי – המרחק מ-\(x\) ל-\(y\) הוא כמו המרחק מ-\(y\) ל-\(x\) (ולכן הכי פשוט לדבר על המרחק בין \(x\) ו-\(y\)).
  3. אי שוויון המשולש: \(d\left(x,y\right)\le d\left(x,z\right)+d\left(z,y\right)\) לכל \(x,y,z\in X\). במילים: המרחק בין \(x\) ל-\(y\) הוא הקצר ביותר האפשרי; אם ננסה ללכת ב"דרך עקיפה", דרך איזו נקודת ביניים \(z\), סכום המרחקים שנלך יהיה גדול יותר.

הפאנץ' כאן הוא שכל פונקציה שמקיימת את התכונות הללו נקראת "מרחק", למרות שיש פונקציות מאוד מוזרות שממש לא מתנהגות כמו המרחק הרגיל שאנחנו מכירים. דוגמה לפונקציה שכזו היא פונקציה שנותנת 1 לכל \(x,y\) שונים זה מזה ו-0 ל-\(x=y\) – "המטריקה הדיסקרטית". קל לראות ששלוש התכונות שדרשנו מתקיימות עבורה, אבל מה ההגיון כאן? הפונקציה אומרת שהמרחק בין כל שתי נקודות ב"עולם" שלנו הוא 1; אם ה"עולם" שלנו הוא המספרים הרציונליים, הרי שפונקצית מרחק כזו מנותקת לחלוטין מהתפיסות המקובלות שלנו.

לכן אני הולך להשית עוד מגבלה על פונקצית ה"מרחק" שאדבר עליה – אדרוש שהיא תנבע ממושג כלשהו של "אורך", או במתמטית: נורמה. מה שאני הולך לתאר כאן הוא נורמה של שדות – כלומר, של קבוצות שבהן יש פעולת חיבור וכפל של איברים במרחב (ההקשר הנפוץ יותר הוא של מרחבים וקטוריים, אבל ההבדל אינו גדול עד כדי כך מבחינה רעיונית). במקום לקשקש יותר מדי פשוט אגש להגדרה: אם \(x\in\mathbb{F}\) הוא איבר בשדה מסמנים את הנורמה שלו (שהיא מספר ממשי) ב-\(\|x\|\) ודורשים שהיא תקיים תכונות שדי מזכירות את אלו של המטריקה:

  1. \(\|x\|\ge0\) ו-\(\|x\|=0\) אם ורק אם \(x=0\).
  2. \(\|x+y\|\le\|x\|+\|y\|\)
  3. \(\|xy\|=\|x\|\cdot\|y\|\)

תכונת הסימטריה של המרחק נעלמה לה כי נורמה מוגדרת רק עבור איבר בודד, אבל שתי התכונות האחרות נשתמרו באופן מסויים. התכונה השלישית מתארת את התנהגות הנורמה ביחס לפעולת הכפל – הנורמה של מכפלת איברים היא מכפלת הנורמות שלהן. הקשר למטריקות אינו מקרי: אם יש לנו נורמה, אז קל לבדוק שהפונקציה \(d\left(x,y\right)=\|x-y\|\) היא מטריקה. מה שחשוב לשים לב אליו הוא שלא כל מטריקה אפשר לקבל כך! יש מטריקות שלא ניתן לקבל באמצעות נורמות. את המטריקה הדיסקרטית ה"מטופשת" שתיארתי למעלה דווקא כן ניתן לקבל באמצעות נורמות – נגדיר \(\|0\|=0\)ו-\(\|x\|=1\) לכל \(x\ne0\). לנורמה הזו קוראים "הנורמה הטריוויאלית".

חזרה לרציונליים. אנחנו מכירים נורמה אחת עבור הרציונליים – הערך המוחלט, כלומר \(\|x\|=\left|x\right|\). האם אנחנו מכירים עוד נורמות? ובכן, למשל \(\|x\|=\sqrt{\left|x\right|}=\left|x\right|^{\frac{1}{2}}\) גם כן עובדת – נסו להוכיח זאת לעצמכם. למעשה, \(\|x\|=\left|x\right|^{\alpha}\) עבור כל \(1\ge\alpha>0\) ממשי. ויש לנו עוד קבוצה מעניינת במיוחד של נורמות שהן – אולי כבר ניחשתם – הנורמות ה-p-אדיות. אבל אני עדיין לא רוצה להציג אותן אלא לשמור אותן בסוד עד לשלב שבו הן יצוצו באופן טבעי. דווקא דברים שנראים "טבעיים" יחסית כמו \(\|x\|=\left|x\right|^{2}\) לא עובדים: \(\|1+1\|=\left|1+1\right|^{2}=4>\left|1\right|^{2}+\left|1\right|^{2}=\|1\|+\|1\|\) מראה שאי שוויון המשולש לא מתקיים עבור "נורמה" כזו.

בואו נביט שניה על שתי הנורמות \(\|x\|_{1}=\left|x\right|\) ו-\(\|x\|_{2}=\left|x\right|^{\frac{1}{2}}\). ברור שהן נותנות מושג שונה של "גודל", אבל האם הן משפיעות על מה שהיה המושג הבסיסי בדיון שלנו – סדרות קושי? כלומר, האם קיימת סדרה שנחשבת לסדרת קושי על פי הנורמה הראשונה אבל לא על פי השניה? אם שתי הנורמות מגדירות בדיוק את אותן סדרות קושי, נאמר שהן שקולות. זו לא סתם הגדרה שרירותית – אם שתי הנורמות מגדירות את אותן סדרות קושי אז כשנבצע השלמה למרחב ונוסיף לו את כל הגבולות של סדרות הקושי הלא מתכנסות שבו, נקבל בדיוק את אותה התוצאה. על פי ההגדרה הזו, די קל לראות ש-\(\|\|_{1}\) ו-\(\|\|_{2}\) הן שקולות. למי שלא מפחד מאינפי, הנה הוכחה:

ניקח סדרת קושי \(a_{1},a_{2},a_{3},\dots\) על פי הנורמה \(\|\|_{1}\); כדי להראות שהיא קושי על פי הנורמה \(\|\|_{2}\) צריך, בהינתן \(\varepsilon>0\) כלשהו, למצוא מקום בסדרה שהחל ממנו אברי הסדרה קרובים עד כדי \(\varepsilon\) על פי הנורמה \(\|\|_{2}\). לשם כך ראשית נמצא מקום \(N\) בסדרה שהחל ממנו אברי הסדרה קרובים עד כדי \(\varepsilon^{2}\) על פי \(\|\|_{1}\); כלומר, לכל \(n,m>N\) מתקיים \(\|x_{n}-x_{m}\|_{1}<\varepsilon^{2}\). כעת נוציא שורש לשני האגפים ונקבל \(\|x_{n}-x_{m}\|_{1}^{\frac{1}{2}}<\varepsilon\), כלומר \(\left|x_{n}-x_{m}\right|^{\frac{1}{2}}<\varepsilon\), כלומר \(\|x_{n}-x_{m}\|_{2}<\varepsilon\). באופן דומה מטפלים גם בכיוון השני (להראות שסדרה שהיא קושי על פי \(\|\|_{2}\) היא קושי גם על פי \(\|\|_{1}\)).

את ההוכחה הזו ניתן לבצע באותו האופן לכל \(1\ge\alpha>0\), ובכך לראות שכל הנורמות מהצורה \(\|x\|=\left|x\right|^{\alpha}\) שקולות זו לזו – וכשמשלימים את הרציונליים על פיהן, מקבלים את הממשיים. מי נותר?

ובכן, מתברר שהתנהגות הנורמות על הרציונליים נקבעות בצורה חזקה מאוד על פי ערכן על המספרים הטבעיים. עד כדי כך שניתן להוכיח כי אם קיים טבעי \(n\) כך ש-\(\|n\|>1\), אז הנורמה היא בהכרח מהצורה \(\|x\|=\left|x\right|^{\alpha}\). ההוכחה מעט טכנית ולא אכנס אליה, אך היא אינה מסובכת במיוחד. אם כן, הנורמות שנותרו הן אלו שלכל טבעי נותנות ערך לכל היותר 1. זו כבר התנהגות מוזרה – הרי אינטואיטיבית היינו מצפים שככל שהמספר הטבעי יגדל כך גם הנורמה שלו תגדל; אך זה לא נובע מהדרישות שהצבנו לנורמה.

אם כן, הבה וניקח נורמה כלשהי שמקיימת \(\|n\|\le1\) לכל \(n\) ונבין איך היא מתנהגת. אם היא איננה הנורמה הטריוויאלית שנותנת 1 לכל טבעי, אז קיים \(n_{0}\) קטן ביותר עבורו \(\|n_{0}\|<1\), ואותו \(n_{0}\) חייב להיות ראשוני; כי אחרת קיימים שני טבעיים \(a,b<n_{0}\) (ומכיוון שהם קטנים יותר מ-\(n_{0}\) הנורמה שלהם היא 1, כי \(n_{0}\) המינימלי שעבורו זה לא כך) כך ש-\(1=\|a\|\cdot\|b\|=\|ab\|=\|n_{0}\|<1\) – סתירה. שימו לב שכאן השתמשנו בכפליות הנורמה – כלומר, עבור פונקצית מרחק "סתם" ההוכחה נשברת כבר בשלב זה. מכיוון ש-\(n_{0}\) הוא ראשוני, אסמן אותו מעתה בתור \(p\).

השלב הבא הוא להבין איך הנורמה מתנהגת על כל המספרים הטבעיים. הדרך לחקור את כל הטבעיים עוברת לעתים קרובות דרך כל הראשוניים, וכאן נעשה אותו הדבר: ניקח ראשוני \(q\ne p\) ונשאל את עצמנו מהי \(\|q\|\). היעד שלי הוא להראות ש-\(\|q\|=1\), והדרך לכך עוברת בשילוב חביב של אנליזה ותורת המספרים. ראשית, משפט בסיסי בתורת המספרים אומר שאם \(x,y\) שני מספרים שלמים הזרים זה לזה (אין להם מחלק משותף הגדול מ-1) אז קיימים שני מספרים שלמים \(a,b\) כך ש-\(ax+by=1\) (באופן כללי יותר – תמיד ניתן לכתוב את המחלק המשותף המקסימלי של שני מספרים כצירוף לינארי בשלמים שלהם). כעת נשתמש בתעלול אנליטי סטנדרטי. נניח ש-\(\|q\|<1\), אז קיים \(n\) שעבורו \(\|p\|^{n}<\frac{1}{2}\) וגם \(\|q\|^{n}<\frac{1}{2}\) (כי אם \(0<t<1\) אז ככל שמעלים אותו בחזקה גבוהה יותר כך הוא מתקרב יותר ויותר לאפס). עכשיו נשלב את שני אלו לקבלת סתירה:

\(1 = \|1\|=\|ap^{n}+bq^{n}\|\le\|a\|\cdot\|p\|^{n}+\|b\|\cdot\|q\|^{n}<\frac{1}{2}+\frac{1}{2}=1\)

כאן השתמשנו גם בכפליות הנורמה וגם באי שוויון המשולש, וכמובן גם בכך ש-\(p^{n},q^{n}\) זרים (כי הם חזקות של ראשוניים שונים – אם במקום \(q\) היינו לוקחים מספר טבעי "כלשהו" זה לא היה עובד).

מסקנה: \(\|q\|=1\) לכל ראשוני שונה מ-\(p\). מכאן אנחנו מסוגלים להסיק את הערך של הנורמה על כל מספר טבעי \(a\): נכתוב את \(a\) בתור \(a=p^{k}\cdot\prod q_{i}^{k_{i}}\) (\(k\) יכול להיות גם אפס), ואז מכפליות הנורמה נקבל \(\|a\|=\|p\|^{k}\cdot\prod\|q_{i}\|^{k_{i}}=\|p\|^{k}\). בואו נסמן את \(\|p\|\) בתור \(\rho\) ונשתמש בסימון המוזר \(k=\mbox{ord}_{p}\left(a\right)\) כדי לסמן את החזקה הגבוהה ביותר של \(p\) שמחלקת את \(a\); אז קיבלנו ש-\(\|a\|=\rho^{\mbox{ord}_{p}\left(a\right)}\). מכאן ההכללה עבור מספרים רציונליים היא קלה: מתכונת הכפליות של הנורמה עולה שבהכרח \(\|\frac{1}{b}\|=\frac{1}{\|b\|}\), ולכן \(\|\frac{a}{b}\|=\frac{\|a\|}{\|b\|}=\frac{\rho^{\mbox{ord}_{p}\left(a\right)}}{\rho^{\mbox{ord}_{p}\left(b\right)}}=\rho^{\mbox{ord}_{p}\left(a\right)-\mbox{ord}_{p}\left(b\right)}\) (שימו לב שעבור מספרים רציונליים הנורמה עשויה לתת ערכים גדולים מ-1).

ובכן, זוהי הנורמה ה-p-אדית המדוברת. מכיוון ש-\(\rho<1\), היא בעלת התכונה שככל ש-\(a\) מתחלק על ידי חזקה גדולה יותר של \(p\), כך הנורמה שלו קטנה יותר. כדי להבין עד כמה זה מוזר, שימו לב ש-\(\|n!\|\to0\) על פי הגדרת הנורמה הזו. למעשה, עוד לא סיימתי כי לא ברור מיהו \(\rho\), אלא שזה לא משנה: אפשר להראות שעבור כל שני ערכי \(0<\rho_{1},\rho_{2}<1\) הנורמה שנקבל על ידי ההגדרה שלעיל תהיה זהה – הדבר היחיד שמשנה הוא \(p\). לכן כשמגדירים את הנורמה באופן מסודר נוהגים לבחור \(\rho=\frac{1}{p}\) (זו אינה בחירה שרירותית לגמרי – יש בה הגיון "אסתטי" כלשהו שאציג בפוסט הבא).

לסיכום: מה שהראיתי (שמכונה "משפט אוסטרובסקי") הוא שמעל \(\mathbb{Q}\) קיימות, עד כדי שקילות, רק נורמת הערך המוחלט, הנורמה הטריוויאלית והנורמה ה-p-אדית לכל ראשוני \(p\). מכאן שההשלמות האפשריות השונות של \(\mathbb{Q}\) (עבור מטריקות שמושרות מנורמות) הן רק הממשיים (על ידי הערך המוחלט), ההשלמה הטריוויאלית והלא מעניינת שנותנת הנורמה הטריוויאלית, וההשלמות ה-p-אדיות, \(\mathbb{Q}_{p}\), שהם בדיוק – אבל בדיוק – השדות שתיארתי בפוסט הקודם. בפוסט הבא אציג כמה תכונות משעשעות של הנורמה ה-p-אדית שהופכות את האנליזה במספרים p-אדיים למעניינת.

אז מהו שדה המספרים ה-p-אדיים?

בפוסט הקודם דיברתי על משוואות דיופנטיות, והפעם אגש ישר לעניין. נניח שמבקשים מאיתנו לפתור את המשוואה \(x^{2}\equiv2\left(\mbox{mod }7\right)\). אפשר לשאול למה בכלל ידוע שיש למשוואה הזו פתרון, ואפשר לדבר על דרכים כלליות לפתור אותה, אבל לא אכנס לכך כרגע – רק אעיר שבגלל ש-\(7\) ראשוני, יש דרכים שיטתיות לעשות זאת – אריתמטיקה מודולרית היא פשוטה יותר כשאנחנו מודולו מספר ראשוני. במקרה שלנו אפשר לראות ששני הפתרונות (כשאנחנו מגבילים את עצמנו לתחום \(0,\dots,6\), שכל מספר שלם אחר שקול לאיבר מתוכו מודולו 7) הם \(x=3,4\) (אין זה מקרה ש-\(3+4=7\); אפשר לחשוב על \(4\) גם בתור \(-3\), ולכן כשמעלים אותו בריבוע מקבלים אותו דבר כמו \(3\) בריבוע).
האתגר הבא שלנו, כפי שכתבתי בפוסט הקודם, הוא לפתור את המשוואה מודולו \(7^{n}\), עבור כל \(n\ge2\). אם אצליח למצוא שיטה כללית לעשות זאת (ולא רק עבור 7 אלא עבור כל ראשוני), אוכל להשתמש במשפט השאריות הסיני כדי לפתור כל משוואה מודולו כל מספר שלם.
אם כן, נתחיל מלנסות ולפתור את המשוואה מודולו \(7^{2}\). האבחנה הראשונה היא שאם \(a^{2}\equiv2\left(\mbox{mod }7^{2}\right)\), אז \(a\equiv3,4\left(\mbox{mod 7}\right)\) – כלומר, מודולו 7, \(a\) נראה בדיוק כמו אחד הפתרונות של המשוואה המקורית. מדוע? כי אם \(a^{2}\equiv2\left(\mbox{mod }7^{2}\right)\) אז המשמעות של כך, ממש מן ההגדרה, היא \(7^{2}|a^{2}-2\), כלומר \(7^{2}\) מחלק את ההפרש בין \(a^{2}\) ובין 2, כשחושבים על שניהם כמספרים שלמים. אם \(7^{2}\) מחלק את ההפרש, ודאי שגם \(7\) מחלק את ההפרש, ולכן \(a^{2}\equiv2\left(\mbox{mod }7\right)\), כלומר מודולו 7 \(a\) הוא אחד מהפתרונות של המשוואה המקורית, וכבר אמרנו שהם \(3,4\).
אם כן, בואו נחפש את כל הפתרונות ששקולים ל-3 מודולו 7. אפשר לומר שהצורה הכללית של פתרון \(a\) שכזה היא \(a=3+7\cdot k\), כאשר \(k\) הוא מספר שלם כלשהו. בואו נציב את זה למשוואה המקורית ונראה מה קורה: \(2\equiv a^{2}\equiv\left(3+7k\right)^{2}\equiv3^{2}+14bk+7^{2}k^{2}\equiv9+14\cdot3k\left(\mbox{mod }7^{2}\right)\) (\(7^{2}k\) נעלם כשלוקחים את הכל מודולו \(7^{2}\)). אחרי העברת אגפים נקבל ש-\(7+14\cdot3k\equiv0\left(\mbox{mod }7^{2}\right)\), כלומר \(7^{2}|7+14\cdot3k\); אבל אפשר להוציא מאגף שמאל את הגורם המשותף 7, ולכן נקבל ש-\(7|1+6k\), או \(1+6k\equiv0\left(\mbox{mod 7}\right)\), וממשוואה זו קל לחלץ את \(k\): \(k\equiv1\left(\mbox{mod }7\right)\). אם כן, איזה פתרון חדש קיבלנו? את \(a=3+7=10\) (עבור הערך הבא של \(k\), \(k=8\), נקבל \(a=3+7\cdot8=59\equiv10\left(\mbox{mod }7^{2}\right)\)). השיטה שלנו עבדה.
אפשר מן הסתם להמשיך עם השיטה הזו עוד, ועוד, ועוד, כשעל כל פתרון ישן אנחנו מקבלים פתרון חדש. בואו ננסה לתאר את זה בצורה מסודרת: התחלנו ממספר \(a_{1}\) שמקיים \(a_{1}^{2}\equiv2\left(\mbox{mod 7}\right)\), ובנינו ממנו מספר \(a_{2}\) שמקיים \(a_{2}^{2}\equiv2\left(\mbox{mod }7^{2}\right)\); ואותו מספר קיים בנוסף ש-\(a_{2}\equiv a_{1}\left(\mbox{mod }7\right)\). באופן כללי, בהינתן \(a_{n}\) שמקיים \(a_{n}^{2}\equiv2\left(\mbox{mod 7}^{n}\right)\), אפשר לבנות \(a_{n+1}\) שמקיים \(a_{n+1}^{2}\equiv2\left(\mbox{mod 7}^{n+1}\right)\), ובנוסף לכך \(a_{n+1}\equiv a_{n}\left(\mbox{mod }7^{n}\right)\). אפשר לחשוב על המידע על אוסף הפתרונות הזה כאילו הוא מקודד בתור סדרה, \(a_{1},a_{2},\dots\).
הבה ונעבור לרגע לדון במשוואה \(x^{2}=2\) מעל המספרים הממשיים. הפתרון של המשוואה ניתן לכתיבה בתור \(\sqrt{2}=1.4142\dots\), כשהנקודות מציינות שהספרות ממשיכות וממשיכות עד אין קץ, ובלי שתהיה בהן מחזוריות קבועה – זו המשמעות של היות \(\sqrt{2}\) אי רציונלי. המספר שאנחנו כותבים בפועל הוא פשוט קירוב רציונלי ל-\(\sqrt{2}\) האי רציונלי. הבה ונכתוב את האיברים הראשונים בקירוב:
\(b_{0}=1,b_{1}=1.4,b_{2}=1.41,b_{3}=1.414,b_{4}=1.4142\) וכן הלאה (התחלתי הפעם את המספור מ-0 לצורכי נוחות שיתבררו בקרוב).
אם נעלה את \(b_{4}\) בריבוע, נקבל את המספר המגוחך \(1.99996164\). ההפרש בינו לבין 2 הוא \(0.00003836\dots\) – הפרש פצפון. ככל שנתקדם עוד יותר בסדרה נקבל הפרשים עוד יותר קטנים. כלומר, המרחק שבין אברי \(b_{n}\) ובין 2 הולך ושואף לאפס. נהוג לסמן זאת \(\lim_{n\to\infty}\left|2-b_{n}^{2}\right|=0\), ובקיצור: \(\lim_{n\to\infty}b_{n}^{2}=2\). על בסיס הרעיון הזה טבעי להגדיר את \(\sqrt{2}\) מלכתחילה בתור גבול הסדרה \(\lim_{n\to\infty}b_{n}\). זה כמובן מעלה את התמיהה מדוע צריך "להגדיר את \(\sqrt{2}\)" – האם הוא לא היה קיים מאז ומעולם? ובכן, תלוי בגישה שלנו לחיים; אם כל מי שאנחנו מכירים כרגע הוא מספרים רציונליים (שנבנו באופן מסודר מהשלמים, שנבנו באופן מסודר מהטבעיים, שאותם קיבלנו מאלוהים), אז לא – עדיין אין לנו בנמצא מספרים אי רציונליים ויש להגדיר אותם.
שימו לב לתכונה מעניינת נוספת של סדרת הקירובים \(a_{n}\). ההפרש בין שני איברים סמוכים מקיים \(\left|b_{n+1}-b_{n}\right|\le10^{-n}\), כלומר אם נחסר שני איברים סמוכים זה מזה, נקבל מספר עם הרבה אפסים בהתחלה (\(n+1\) במספר). אפשר לומר ששני המספרים הללו קרובים זה לזה עד כדי חזקה קטנה של \(n\).
אם כן, נסכם: אפשר לחשוב על \(\sqrt{2}\) כאילו הוא מקודד סדרה של קירובים הולכים ומשתפרים עבור פתרון למשוואה \(b^{2}=2\), כשהדרך שבה אנחנו מודדים קרבה היא על ידי הערך המוחלט של ההפרש. הסדרה הזו מקיימת את התכונות ש-\(\left|b_{n}^{2}-2\right|\le10^{-n}\) ובנוסף \(\left|b_{n+1}-b_{n}\right|\le10^{-n}\). נראה מוכר?
הפאנץ' הוא שגם על סדרת המספרים שהצגתי קודם, זו שמקיימת \(a_{n}^{2}\equiv2\left(\mbox{mod }7^{n}\right)\) ו-\(a_{n+1}\equiv a_{n}\left(\mbox{mod }7^{n}\right)\) אפשר לחשוב בתור "סדרת קירובים שהולכים ומשתפרים" לפתרון של המשוואה \(x^{2}\equiv2\) מודולו חזקות הולכות וגדלות של 7. יש הגיון רב בגישה הזו: הרי אם \(a_{n}^{2}\equiv2\left(\mbox{mod }7^{n}\right)\), אז גם \(a_{n}^{2}\equiv2\left(\mbox{mod }7^{k}\right)\) לכל \(k<n\) (מאותו נימוק שנתתי קודם, כי \(7^{k}\) מחלק את \(7^{n}\) ולכן מחלק כל מה שמתחלק על ידי \(7^{n}\)), ולכן הפתרון \(a_{n}\) איכשהו כבר מקודד את כל הפתרונות הקודמים, בדומה לאופן שבו \(1.4142\) מקודד את כל הקירובים הקודמים של שורש 2. מן הסתם הסדרה \(a_{n}\) הזו לא נגמרת לעולם, כשם שסדרת הקירובים הרציונליים של \(\sqrt{2}\) שהצגתי לא נגמרת לעולם; אבל אם אפשר לחשוב על "מספר" ממשי, שאפילו מסומן בתור \(\sqrt{2}\), שמייצג את סדרת הקירובים הרציונליים כולה, למה לא לחשוב על מספר שמהווה גבול לסדרה \(a_{n}\) שלנו? אפשר להגדיר מספרים כאלו בדיוק באותו האופן שבו הגדרנו את המספרים הממשיים. ובכן, התשובה לשאלה "למה לא" היא פשוטה – אין סיבה לא לעשות זאת, ואכן עושים זאת, ולתוצאה, במקרה זה, קוראים מספרים \(7\)-אדיים.
מכיוון שכל הדיון הזה עסק במשוואה ספציפית, \(x^{2}\equiv2\left(\mbox{mod }7^{n}\right)\), התמונה הגדולה קצת התפספסה – מה התכונה המאפיינת של \(a_{n}\) שאינה קשורה למשוואה שאותה \(a_{n}\) באה לנסות ולפתור? ובכן, שמתקיים \(a_{n+1}\equiv a_{n}\left(\mbox{mod }7^{n}\right)\). אם כן, זה כל מה שנדרוש. הבה ונגדיר זאת פורמלית: שלם \(7\)-אדי הוא סדרה \(\left(a_{1},a_{2},\dots\right)\) שאבריה מקיימים \(a_{n+1}\equiv a_{n}\left(\mbox{mod }7^{n}\right)\). ובאופן כללי: סדרה שאבריה מקיימים \(a_{n+1}\equiv a_{n}\left(\mbox{mod }p^{n}\right)\) עבור ראשוני \(p\) כלשהו נקראת שלם p-אדי.
שימו לב שקראתי ליצור שהתקבל שלם p-אדי, ולא "מספר" p-אדי. הסיבה לכך היא שעדיין לא הגענו לסוף הסיפור. מן הסתם קבוצה של מספרים איננה מעניינת כל כך לכשעצמה – ברגע שמוגדרות עליה פעולות חשבון היא נהיית מעניינת יותר. הגדרת חיבור וכפל על השלמים ה-p-אדיים נובעת באופן די טבעי: \(\left(a_{1},a_{2},\dots\right)+\left(b_{1},b_{2},\dots\right)=\left(a_{1}+b_{1},a_{2}+b_{2},\dots\right)\) ו-\(\left(a_{1},a_{2},\dots\right)\cdot\left(b_{1},b_{2},\dots\right)=\left(a_{1}\cdot b_{1},a_{2}\cdot b_{2},\dots\right)\) (לא קשה לראות שגם הסכום והמכפלה מקיימים את הדרישה משלם p-אדי). אם כן, השלמים ה-p-אדיים הם חוג; ומכיוון ש-\(\left(a,a,a,\dots\right)\) הוא שלם p-אדי, אפשר לחשוב עליהם כעל חוג שמרחיב את חוג השלמים.
כאשר נתקלים במתמטיקה בחוגי מספרים שכאלו אשר מרחיבים את השלמים, אחד מהגישושים הראשונים שמבצעים כדי להבין איך החוגים "נראים" הוא למצוא את ההכללה המתאימה למשפט היסודי של האריתמטיקה עבורם. עבור שלמים המשפט היסודי של האריתמטיקה אומר שכל מספר ניתן להצגה באופן יחיד כמכפלה של מספרים ראשוניים, עד כדי שינוי של הסדר שלהם והכפלה באיברים הפיכים (בשלמים ההפיכים היחידים הם \(1,-1\)). כך למשל את 15 ניתן להציג כ-\(3\cdot5\), אך גם כ-\(\left(-1\right)\cdot5\cdot\left(-1\right)\cdot3\). די ברור ששתי ההצגות זהות באופן עקרוני.
בחלק מהחוגים שמרחיבים את השלמים המצב כבר לא כך כך נחמד. דוגמה פשוטה היא החוג \(\mathbb{Z}\left[\sqrt{-5}\right]\), החוג שמתקבל מהשלמים על ידי הוספת \(\sqrt{-5}\) למשחק , כך שאברי החוג הם מהצורה \(a+b\sqrt{-5}\) עם \(a,b\in\mathbb{Z}\). זהו אמנם חוג, אך מתקיים בו \(6=2\cdot3=\left(1+\sqrt{-5}\right)\left(1-\sqrt{-5}\right)\), וניתן לבדוק שכל האיברים שמופיעים בפירוקים הללו הם בעצם אי פריקים ("אי פריק" הוא המושג המעניין כאן ולא "ראשוני"; בחוג השלמים שני המושגים הללו מזדהים, ומכאן ה"בלבול" בשמות – לאיברים ראשוניים הגדרה וחשיבות משל עצמם). מצד אחד, זו תוצאה מצערת למדי (שחירבה לחלוטין הוכחה בת המאה ה-19 למשפט האחרון של פרמה). מצד שני, בעיה זו היוותה את הבסיס לתורת המספרים האלגברית – נושא שראוי בעצמו לפוסטים רבים, ולא אגע בו כעת.
למרבה המזל, בשלמים ה-p-אדיים המצב נחמד ופשוט מאוד: כל שלם p-אדי השונה מאפס ניתן להצגה בתור \(\alpha=p^{n}\varepsilon\), כאשר \(\varepsilon\) הוא שלם p-אדי הפיך. זה כמובן מעלה את השאלה מיהם האיברים ההפיכים; התשובה היא פשוטה ונחמדה בעצמה: כל שלם \(\left(a_{1},a_{2},\dots\right)\) שעבורו \(a_{1}\not\equiv0\left(\mbox{mod }p\right)\) (זה תרגיל נחמד להוכיח זאת). מכאן שלמשל, כל המספרים השלמים שאינם מתחלקים בידי \(p\) הם הפיכים בחוג השלמים ה-p-אדיים.
מכיוון שישנה הצגה כל כך פשוטה לשלמים ה-p-אדיים, לא קשה לראות בעזרתה שאין בחוג מה שנקרא "מחלקי אפס" – איברים שונים מאפס שמכפלתם היא 0 (למשל, בחוג \(\mathbb{Z}_{6}\), האיברים \(2,3\) הם מחלקי אפס כי מכפלתם היא אפס). ההוכחה פשוטה: מכפלה של שני שלמים היא מהצורה \(p^{n}\varepsilon_{1}\cdot p^{m}\varepsilon_{2}=p^{n+m}\left(\varepsilon_{1}\varepsilon_{2}\right)\). אם זה שווה לאפס אפשר לכפול בהופכי של האיבר ההפיך \(\varepsilon_{1}\varepsilon_{2}\) ולקבל כי \(p^{n+m}=0\) – סתירה.
כעת הגענו לפאנץ': מכיוון שחוג השלמים הוא ללא מחלקי אפס, ניתן להרחיב אותו באופן כזה שלכל איבר יהיה הופכי, בדיוק באותו תהליך שבו משתמשים כדי לבנות את הרציונליים מתוך השלמים – תהליך של בניית שדה שברים של חוג (גם כאן, מדובר על תהליך סטנדרטי עבור חוגי הרחבה של השלמים). התוצאה מסומנת לרוב ב-\(\mathbb{Q}_{p}\) ונקראת, סוף סוף, "שדה המספרים ה-p-אדיים". הבניה אינה נגמרת כאן – כשם ש-\(\mathbb{R}\) אינו סגור אלגברית (לא לכל פולינום יש שורש) והוא מורחב ל-\(\mathbb{C}\), גם את \(\mathbb{Q}_{p}\) ניתן להרחיב עוד; עם זאת, לא אציג זאת כאן (ההרחבה מסובכת יותר מההרחבה של \(\mathbb{R}\)).
אם כן, אלו הם, באופן בסיסי, המספרים ה-p-אדיים. לפני שאגיד משהו על השימוש שעושים בהם לפתרון משוואות דיופנטיות אציג אותם שוב, והפעם מזווית ראייה שונה. הבניה שהצגתי בפוסט הזה הייתה "אלגברית" במהותה – הגדרתי את המספרים באמצעות סדרות שמקיימות תכונה אלגברית כלשהי של שקילות מודולו חזקות של \(p\), ואת התוצאה הרחבתי לשדה באמצעות בניה אלגברית סטנדרטית. בפוסט הבא אראה איך אפשר להגיע אל המספרים ה-p-אדיים גם מכיוון שונה לגמרי – כיוון אנליטי (שגם הוא, בסופו של דבר, זהה באופיו לבניה של הממשיים מהרציונליים).