לוגיקה ותורת הקבוצות - אוניברסיטת רייכמן

הרצאה 6 - לוגיקה: לוגיקה פורמלית ולוגיקה פסוקית

Formal Logic · Propositional Logic — Syntax & Semantics

תוכן עניינים

  1. לוגיקה לא-פורמלית מול פורמלית
  2. מעט היסטוריה — אריסטו, בּוּל, פרגה
  3. לוגיקה פורמלית: הצרנה ושלושת רכיביה
  4. יחס הנביעה: ⊨ (סמנטית) מול ⊢ (סינטקטית)
  5. לוגיקה פסוקית — תחביר
  6. נוסחה בנויה כהלכה (wff)
  7. כתיב מקוצר וסדר קדימויות
  8. עץ הגזירה / Parsing Tree
  9. תתי-נוסחאות (Subformulas)
  10. משפט הקריאה היחידה
  11. אינדוקציה מבנית
  12. דוגמה: לכל נוסחה באורך \(n\) יש \(\le n\) תתי-נוסחאות
  13. לוגיקה פסוקית — סמנטיקה
  14. סיפוק, ספיק, טאוטולוגיה וסתירה
  15. נביעה סמנטית
  16. תכונות יחס הנביעה
  17. משפט הדדוקציה הסמנטי
  18. סיכום ונקודות מפתח

1. לוגיקה לא-פורמלית מול פורמלית

לוגיקה לא-פורמלית

עוסקת בהגיון (reasoning), היסק (inference), הקש (deduction), טיעונים תקינים והסקת מסקנות בהסתמך על נתונים. דוגמה קלאסית — בלש כמו שרלוק הולמס.

לוגיקה פורמלית

עוסקת בהיסק לגבי תוכן פורמלי לחלוטין. דוגמה:

דוגמה: יורד גשם → הדשא רטוב
הנחות: יורד גשם — \(A\). אם יורד גשם אז הדשא רטוב — \(A \to B\).
טענה: הדשא רטוב — \(B\).
הוכחה: \(A, A \to B \models B\).

לוגיקה במדעי המחשב — דוגמאות שימוש

2. מעט היסטוריה

מקור המילה logic — יוונית: λογική (logikē).

3. לוגיקה פורמלית: הצרנה ושלושת רכיביה

הצרנה (Formalization)
"תרגום" טקסט בשפה טבעית לשפה הפורמלית של הלוגיקה.
דוגמה: \(A=\)"יורד גשם", \(B=\)"הדשא רטוב". המשפט "אם יורד גשם אז הדשא רטוב" \(\to\) \(A \to B\).

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

שלושת רכיבי לוגיקה פורמלית

  1. תחביר (Syntax) — שפה פורמלית לכתיבת הנחות וטענות. מגדירה:
    • אלף-בית (האותיות החוקיות) — האטומים.
    • המילים החוקיות, הנקראות בד"כ נוסחאות — wff (well-formed formula).
  2. סמנטיקה (Semantics) — המשמעות של השפה. מאפשרת להגדיר:
    • יחס נביעה (consequence relation).
    • סיפוק (satisfaction), תקפות (validity), סתירה (contradiction).
  3. מערכת הוכחה (Proof system) — מנגנון תחבירי המגדיר יחס נביעה. מכיל אקסיומות וכללי היסק. אידיאלית, יחס הנביעה הסינטקטי זהה לזה המוגדר ע"י הסמנטיקה.

4. יחס הנביעה: ⊨ (סמנטית) מול ⊢ (סינטקטית)

יחס בינארי בין קבוצת נוסחאות \(S\) (assumptions — הנחות) ונוסחה \(\alpha\) (claim — טענה).

שני סימונים
\(S \models \alpha\) — נביעה סמנטית (semantic consequence).
\(S \vdash \alpha\) — נביעה סינטקטית (syntactic consequence).
דוגמאות
\(\{\alpha,\; \alpha \to \beta\} \models \beta\) ✓
\(\{\alpha,\; \alpha \to \beta\} \not\models \gamma\) (אין מספיק מידע על \(\gamma\)).

שלוש תכונות יחס נביעה

הוכחה סינטקטית — דוגמה

בהינתן \(S = \{\gamma,\; \gamma \to \beta,\; \beta \to \alpha\}\):

    γ, γ → β  ⟹  β   (כלל היסק modus ponens)
    β, β → α  ⟹  α   (כלל היסק)

    ⟹  S ⊢ α

5. לוגיקה פסוקית — תחביר

השפה מורכבת מהסימנים הבאים:

היקף השפה
יש \(\aleph_0\) משתנים ובסך הכל \(\aleph_0\) נוסחאות בשפה. כל נוסחה היא באורך סופי (b-"אורך" = מספר תווים, כאשר קבוע \(T/F\) ומשתנה \(p_i\) נספרים כתו יחיד).

6. נוסחה בנויה כהלכה — Well-Formed Formula (wff)

בתחשיב הפסוקים, נוסחה (formula) נקראת גם פסוק (proposition).

הגדרה אינדוקטיבית
קבוצת הנוסחאות הבנויות כהלכה (wff) מוגדרת באופן הבא:
  • פסוקים אטומיים (Atomic propositions) — wff:
    • \(\text{True},\;\text{False}\)
    • כל משתנה \(p_i\)
  • אם \(\alpha,\beta\) הינן wff, אז כך גם: \((\neg\alpha),\;(\alpha \vee \beta),\;(\alpha \wedge \beta),\;(\alpha \to \beta)\).
דוגמאות לנוסחאות בנויות כהלכה
\(P \vee \neg P\)
\(\forall x \exists y\,(y > x)\) (לוגיקה מסדר ראשון).
דוגמאות לנוסחאות שאינן בנויות כהלכה
khjgrkl⟩jhfg)wre4gt
\(P \vee \vee \to \neg P\)

7. כתיב מקוצר וסדר קדימויות

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

דוגמאות

כתיב מקוצרכתיב מלא
\(\neg A \wedge B \vee \neg C \to D\)\(((((\neg A) \wedge B) \vee (\neg C)) \to D)\)
\(A \to B \to C\)\(((A \to B) \to C)\)
\((F \to F) \to F\)שונה מ-\(F \to (F \to F)\)!
הערה פורמלית
באופן פורמלי, נוסחה הבנויה כהלכה הינה בכתיב מלא. נוסחה בכתיב מקוצר מייצגת את הנוסחה הבנויה כהלכה בכתיב מלא.

8. עץ הגזירה / בנייה (Parsing Tree)

המבנה של נוסחה מהווה עץ. זהו עץ הבנייה / עץ הגזירה של הנוסחה.

דוגמה: \(\alpha = (((\neg A) \wedge (B \vee C)) \vee (\neg C)) \to D\)

                    →
                   / \
                  ∨   D
                 / \
                ∧   ¬
               / \   \
              ¬   ∨   C
              |  / \
              A B   C

אלגוריתם בנייה

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

9. תתי-נוסחאות (Subformulas)

רעיונית: תתי-הנוסחאות של \(\alpha\) הינן הנוסחאות המתקבלות בצמתי עץ-הגזירה של \(\alpha\).

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

הגדרה רקורסיבית
קבוצת תתי-הנוסחאות של \(\alpha\):
  • אם \(\alpha\) אטומי, אז רק \(\alpha\) הינה תת-הנוסחה שלה.
  • אם \(\alpha = (\neg\beta)\), אז \(\alpha\) וכל תתי-הנוסחאות של \(\beta\) הינן תתי-נוסחאות של \(\alpha\).
  • אם \(\alpha\) מהצורה \((\beta \wedge \gamma)\) / \((\beta \vee \gamma)\) / \((\beta \to \gamma)\), אז \(\alpha\) וכל תתי-הנוסחאות של \(\beta\) ושל \(\gamma\) הינן תתי-נוסחאות של \(\alpha\).

תת-נוסחה של \(\alpha\) אשר אינה \(\alpha\) עצמה הינה תת-נוסחה ממש (strict subformula).

10. משפט הקריאה היחידה (Unique Readability)

משפט
אם \(\alpha\) נוסחה בנויה כהלכה (wff), אזי בדיוק אחד מהמקרים הללו מתקיים:
  • \(\alpha = \text{True}\)
  • \(\alpha = \text{False}\)
  • \(\alpha = p_i\) עבור משתנה \(p_i\)
  • \(\alpha = (\neg\beta)\) עבור \(\beta\) שהיא wff.
  • \(\alpha = (\beta_1 \wedge \beta_2)\) עבור \(\beta_1, \beta_2\) wff.
  • \(\alpha = (\beta_1 \vee \beta_2)\) עבור \(\beta_1, \beta_2\) wff.
  • \(\alpha = (\beta_1 \to \beta_2)\) עבור \(\beta_1, \beta_2\) wff.
בכל המקרים, \(p_i, \beta, \beta_1, \beta_2\) נקבעים באופן יחיד.
משמעות "α = (β₁ ∧ β₂)"
הכוונה היא ש-\(\alpha\) הינה תחבירית מהצורה (of the form) \((\beta_1 \wedge \beta_2)\), ולא רק שקולה לכך באיזשהו מובן. זה ה-Syntactic structure של הנוסחה.

11. אינדוקציה מבנית (Structural Induction)

ניתן להוכיח שתכונה \(H\) נכונה לכל הנוסחאות באינדוקציה על מבנה הנוסחה (By induction on the structure of the formula).

שלד של הוכחה באינדוקציה מבנית
תהי \(\gamma\) נוסחה כלשהי.

מקרי הבסיס

  • אם \(\gamma\) הקבוע \(\text{True}\) אזי \(H\) מתקיימת, שכן ...
  • אם \(\gamma\) הקבוע \(\text{False}\) אזי \(H\) מתקיימת, שכן ...
  • אם \(\gamma\) המשתנה \(p_i\) אזי \(H\) מתקיימת, שכן ...

שלבי המעבר

הנחה: \(H\) מתקיימת לכל תתי-הנוסחאות-ממש של \(\gamma\). אזי:
  • אם \(\gamma = (\neg\beta)\) אזי \(H\) מתקיימת עבורה, שכן ...
  • אם \(\gamma = (\alpha \wedge \beta)\) אזי \(H\) מתקיימת עבורה, שכן ...
  • אם \(\gamma = (\alpha \vee \beta)\) אזי \(H\) מתקיימת עבורה, שכן ...
  • אם \(\gamma = (\alpha \to \beta)\) אזי \(H\) מתקיימת עבורה, שכן ...

12. דוגמה: לכל נוסחה באורך \(n\) יש \(\le n\) תתי-נוסחאות

משפט
לכל נוסחה באורך \(n\) יש לכל היותר \(n\) תתי-נוסחאות.
הוכחה. באינדוקציה מבנית. תהי γ נוסחה כלשהי.

מקרי הבסיס:
אם γ קבוע T/F או משתנה pᵢ — אורך 1, יש לה תת-נוסחה אחת (γ עצמה).
1 ≤ 1. ✓

מקרה (¬β):
יהי m האורך של β ו-u מס' תתי-הנוסחאות של β.
לפי הנחת האינדוקציה, u ≤ m.
ל-γ יש תת-נוסחה אחת יותר מאשר ל-β (היא עצמה), ואורכה גדול ב-3 (סוגריים + ¬), כלומר m+3.
לכן: u+1 ≤ m+1 ≤ m+3. ✓

מקרה (α∧β) / (α∨β) / (α→β):
יהיו m₁, m₂ אורכי α ו-β, ו-u₁, u₂ מס' תתי-הנוסחאות שלהן.
לפי הנחת האינדוקציה, u₁ ≤ m₁ ו-u₂ ≤ m₂.
ל-γ יש עד u₁+u₂+1 תתי-נוסחאות, ואורכה m₁+m₂+3.
לכן: u₁+u₂+1 ≤ m₁+m₂+1 ≤ m₁+m₂+3. ✓

∎

13. לוגיקה פסוקית — סמנטיקה

השמה (Assignment / Valuation)
השמה היא מתן ערך-אמת (truth value) של \(\text{True/False}\) לכל המשתנים.
פורמלית: \(v: \{p_0, p_1, p_2, \ldots\} \to \{T, F\}\).
ערך-האמת של פסוק עבור השמה מסוימת נקבע רקורסיבית ע"י טבלאות האמת של הקשרים.

טבלאות האמת של הקשרים

\(\alpha\)\(\beta\)\(\neg\alpha\)\(\alpha\vee\beta\)\(\alpha\wedge\beta\)\(\alpha\to\beta\)
FFTFFT
FTTTFT
TFFTFF
TTFTTT

שתי השמות מיוחדות: \(v_T\) נותנת \(T\) לכל אטום; \(v_F\) נותנת \(F\) לכל אטום.

דוגמה לחישוב
\(\alpha = p \to (q \wedge r)\). השמה: \(v(p)=T,\;v(q)=T,\;v(r)=F\).
\(v(q \wedge r) = T \wedge F = F\). \(v(\alpha) = T \to F = F\). לכן \(v(\alpha)=F\).

14. סיפוק, ספיק, טאוטולוגיה וסתירה

סיפוק (Satisfaction)
ההשמה \(v\) מספקת (satisfies) את \(\alpha\) אם \(v(\alpha) = T\). סימון: \(v \models \alpha\).
\(v\) מספקת קבוצה \(S\) אם היא מספקת את כל הנוסחאות ב-\(S\).

15. נביעה סמנטית (Semantic Consequence)

הגדרה
יהי \(\alpha\) פסוק ו-\(S\) קבוצה (סופית או אינסופית) של פסוקים. \(\alpha\) נובע סמנטית מ-\(S\), בסימון \(S \models \alpha\), אם"מ כל השמה המספקת את \(S\) מספקת גם את \(\alpha\):
\[ S \models \alpha \;\Longleftrightarrow\; \forall v.\; \bigl(\forall x \in S,\; v(x) = T\bigr) \Rightarrow v(\alpha) = T. \]
שתי משמעויות של ⊨
לסימן \(\models\) שני שימושים:
• \(S \models \alpha\) — \(\alpha\) נובע סמנטית מ-\(S\) (קבוצת פסוקים, פסוק).
• \(v \models \alpha\) — \(v\) מספקת את \(\alpha\) (השמה, פסוק; כלומר \(v(\alpha) = T\)).
דוגמה לבדיקה ידנית של נביעה
\(\beta = A \vee \neg B,\;\gamma = B \to C,\;\alpha = A \vee B \vee C\). האם \(\{\beta,\gamma\} \models \alpha\)?
בונים טבלת אמת על \(A, B, C\) (8 השמות), מסמנים את השורות שבהן גם \(v(\beta)=T\) וגם \(v(\gamma)=T\), ובכל אחת מהן בודקים אם \(v(\alpha)=T\). אם בכולן כן — נביעה מתקיימת. אם יש שורה אחת שבה לא — נביעה מופרכת.
איך מפריכים נביעה?
הדרך היחידה להפריך נביעה לוגית היא דוגמה להשמה שמספקת את \(S\) אך לא את \(\alpha\).
הערה: אם אין השמה שמספקת את \(S\) — הנביעה מתקיימת באופן ריקני (vacuously) לכל \(\alpha\).

16. תכונות יחס הנביעה הסמנטית

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

רפלקסיביות
לכל \(\alpha \in S\) מתקיים \(S \models \alpha\).

הוכחה: תהא \(\alpha \in S\) ו-\(v\) השמה כלשהי המספקת את \(S\). לפי הגדרת סיפוק קבוצה, \(v\) מספקת את כל הנוסחאות ב-\(S\), ובפרט את \(\alpha\). ∎
מונוטוניות
אם \(S \models \alpha\) ו-\(S \subseteq S'\) אז \(S' \models \alpha\).

הוכחה: תהא \(v\) המספקת את \(S'\). כיוון ש-\(S \subseteq S'\), \(v\) מספקת גם את \(S\). מכאן (לפי \(S \models \alpha\)), \(v\) מספקת גם את \(\alpha\). ∎
"טרנזיטיביות"
אם \(S \models \alpha\) ו-\(S \cup \{\alpha\} \models \beta\) אז \(S \models \beta\).

הוכחה: תהא \(v\) המספקת את \(S\). מ-\(S \models \alpha\): \(v(\alpha)=T\), ולכן \(v\) מספקת את \(S \cup \{\alpha\}\). מ-\(S \cup \{\alpha\} \models \beta\): \(v(\beta)=T\). ∎

17. משפט הדדוקציה הסמנטי

משפט הדדוקציה הסמנטית
לכל קבוצת פסוקים \(S\) ופסוקים \(\alpha, \beta\):
\[ S \models (\alpha \to \beta) \;\;\Longleftrightarrow\;\; S \cup \{\alpha\} \models \beta. \]
בפרט, לכל \(\alpha, \beta\):
\[ \{\alpha\} \models \beta \;\;\Longleftrightarrow\;\; \models (\alpha \to \beta) \quad\text{(כלומר \(\alpha\to\beta\) טאוטולוגיה).} \]
הוכחה.

(⟹) נתון S ⊨ (α→β). נוכיח S ∪ {α} ⊨ β.
תהא v המספקת את S ∪ {α}. נראה ש-v(β)=T.
v מספקת את S ∪ {α}, ובפרט את S. מכיוון ש-S ⊨ (α→β):
  v(α→β) = T.
כעת v מספקת את α וגם את (α→β), ולפי טבלת האמת של →:
  v(β) = T. ✓

(⟸) נתון S ∪ {α} ⊨ β. נוכיח S ⊨ (α→β).
תהא v המספקת את S. נראה ש-v(α→β)=T.
• אם v(α) = F: לפי טבלת האמת של → → v(α→β) = T. ✓
• אם v(α) = T: אזי v מספקת את S ∪ {α}, ומהנתון v(β) = T.
  לפי טבלת האמת של → → v(α→β) = T. ✓

∎
למה זה חשוב?
ההבדל בין שני האגפים: \(S \models \beta\) מוגדרת עבור קבוצה \(S\) שעשויה לכלול אינסוף פסוקים, בעוד שגרירה \(\alpha \to \beta\) מוגדרת עבור פסוק יחיד \(\alpha\) (הפסוק \(\alpha\) יכול לשלב מס' פסוקים, אך מס' סופי). משפט הדדוקציה מאפשר "להעביר" הנחה אחת לצד הימני של ⊨.

18. סיכום ונקודות מפתח

מבט קדימה
ראינו את התחביר והסמנטיקה של לוגיקה פסוקית. השלב הבא: מערכת הוכחה (Proof system) — אקסיומות וכללי היסק שמוגדרים סינטקטית, ומשפטי שלמות (\(\vdash \Leftrightarrow \models\)) שמוודאים שהמערכת "מסכימה" עם הסמנטיקה.