שפה מסדר ראשון

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

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

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

המבנה של שפה מסדר ראשון

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

  1. עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \mathcal V } – אוסף כל סימני המשתנים, למשל עיבוד הנוסחה נכשל (שגיאת המרה. השרת ("https://en.wikipedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle \ v_{0},v_{1},v_{2},v_{3},\dots } .
  2. – אוסף כל סימני הקבועים: עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ c_0,c_1,c_2,\dots} .
  3. – אוסף כל סימני הפונקציות, כאשר כל פונקציה מאופיינת בשלושה דברים עיקריים (מלבד שמה), והם:
א. פונקציית המקומיות , אשר בעצם אומרת לנו כמה פרמטרים מקבלת הפונקציה (קלט) וכמה היא תחזיר (פלט).
ב. תחום הפונקציה , אשר מגדיר מאילו קבוצות ערכים יהיו הפרמטרים שלנו.
ג. וטווח הפונקציה עיבוד הנוסחה נכשל (שגיאת המרה. השרת ("https://en.wikipedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle Rng} , אשר מגדיר לאילו קבוצות ערכים שייכת תוצאת הפונקציה.
4. עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \mathcal R } – אוסף כל סימני היחסים (הפרדיקטים), כאשר כל סימן יחס מאופיין במציין המקומיות , בדומה לפונקציות. אלא אם כן צוין אחרת, ההנחה הרווחת היא שסימן השוויון שייך ל-עיבוד הנוסחה נכשל (שגיאת המרה. השרת ("https://en.wikipedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle {\mathcal {R}}} . לרוב מקובל להשתמש בסימון במקום בסימון עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle =} , וזאת כדי להבדיל מהסימן המקובל להשמת ערך.
5. קשרים לוגיים ושני הכמתים, לכל וקיים עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \exists} .
6. סימני עזר כגון סוגריים, פסיק ונקודתיים.

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

דוגמה. בשפה המשמשת לתיאור מערכת המספרים השלמים יש שתי פונקציות (החיבור והכפל), יחס אחד ('קטן מ-', המסומן ב-'>') ושני קבועים (0 ו-1). להלן כמה דוגמאות לביטויים:

  • עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ x_6}
  • עיבוד הנוסחה נכשל (שגיאת המרה. השרת ("https://en.wikipedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle \ 1+1+1}
  • עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ (x_1+x_2)\cdot (x_3+x_4)}

מביטויים כאלה אפשר להרכיב פסוקים:

  • עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \forall x_1 \exists x_2(x_1+x_2=0)}
  • עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \forall x \exists y (y>x)}

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

משום ש-5 איננו קבוע של השפה. במקום זה, צריך לומר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ x>1+1+1+1+1} .

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

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

  • לכל a, אם קיים x כך ש-x שייך ל-a, אז לכל b כך ש-b אינה שייכת ל-a, קיים c כך ש((קיים e כך ש-e שייך ל-c), אבל לא קיים d כך ש-(d שייכת ל-a וגם d שייכת ל-c)).

כדי לחסוך בזמן, אפשר להגדיר בשפה הזו

  • a הוא קו ישר אם קיים x כך ש-x שייך ל-a, ו-
  • x היא נקודה אם קיים a כך ש-x שייך ל-a.

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

גם בשפה החשובה ביותר במתמטיקה, זו של תורת הקבוצות האקסיומטית, יש רק יחס אחד, השייכות, המסומן ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \in} . את יחס השוויון מגדירים לפי הכלה. שתי קבוצות שוות אם יש להן אותם איברים:

פינת המשל

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

ראו גם

קישורים חיצוניים

הערך באדיבות ויקיפדיה העברית, קרדיט,
רישיון cc-by-sa 3.0
This article is issued from Hamichlol. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.