רקע מהיר
תחביר (Syntax)
- קבועים: \(T, F\); משתנים: \(p_0, p_1, p_2, \ldots\) (או \(A, B, C, \ldots\)).
- קשרים: \(\neg, \wedge, \vee, \to\).
- סוגריים: \(( \;\;\;)\).
- סדר קדימויות (משמאל לימין): \(\neg, \wedge, \vee, \to\).
- כל מילה (נוסחה) היא סדרה סופית של הסימנים — לכן \(\aleph_0\) נוסחאות בשפה.
Well-Formed Formula (wff)
פסוק = חוקי אם יש לו עץ יצירה/גזירה. לעץ היצירה יש
קריאה יחידה.
הגדרה אינדוקטיבית: \(T/F, p_i, (\neg\alpha), (\alpha\wedge\beta), (\alpha\vee\beta), (\alpha\to\beta)\).
סמנטיקה
הסמנטיקה היא החלק בלוגיקה שבו נקבעת המשמעות. מגדירה לכל פסוק את ערך האמת שלו ע"י ערכי האמת \(T/F\) לאטומים המרכיבים אותו וע"י טבלאות האמת של הקשרים.
השמה / סיפוק
\(v: \{p_0,p_1,\ldots\} \to \{T,F\}\) — נותן ערך לכל אטום. \(v\) מתרחבת לכל פסוק רקורסיבית.
\(v\)
מספקת את \(\alpha\) אם \(v(\alpha)=T\).
ספיק: \(\exists v.\;v(\alpha)=T\).
טאוטולוגיה: \(\forall v.\;v(\alpha)=T\).
סתירה: \(\forall v.\;v(\alpha)=F\).
נביעה לוגית
המסקנה \(\beta\) נובעת לוגית מההנחות \(S\) אם בכל מצב שבו ההנחות ב-\(S\) אמיתיות גם המסקנה אמיתית.
פורמלית: \(S \models \beta\) אם כל \(v\) שמספקת את \(S\) מספקת גם את \(\beta\).
הדרך היחידה להפריך נביעה: דוגמה להשמה שמספקת את \(S\) ולא את \(\beta\).
תכונות יחס הנביעה
- רפלקסיביות: \(\alpha \in S \Rightarrow S \models \alpha\).
- מונוטוניות: \(S \models \alpha\) ו-\(S \subseteq S' \Rightarrow S' \models \alpha\).
- טרנזיטיביות: \(S \models \alpha\) ו-\(S \cup \{\alpha\} \models \beta \Rightarrow S \models \beta\).
משפט הדדוקציה (סמנטי)
\(S \models (\alpha \to \beta) \;\Longleftrightarrow\; S \cup \{\alpha\} \models \beta\).
בפרט: \(\{\alpha\} \models \beta \iff\) \(\alpha \to \beta\) טאוטולוגיה.
תרגיל 1: עצי גזירה
השאלה
כתבו את עץ היצירה של הנוסחאות הבאות:
- \((((\neg B) \vee C) \to A)\)
- \((D \wedge (((\neg(A \vee B)) \to C) \vee (\neg B)))\)
פתרון א
מסירים סוגריים חיצוניים: \(((\neg B) \vee C) \to A\). הקשר המרכזי = \(\to\) (כשמספר \(( = )\) מתאזן).
→
/ \
∨ A
/ \
¬ C
|
B
פתרון ב
מסירים סוגריים חיצוניים: \(D \wedge (((\neg(A \vee B)) \to C) \vee (\neg B))\). הקשר המרכזי = \(\wedge\).
∧
/ \
D ∨
/ \
→ ¬
/ \ |
¬ C B
|
∨
/ \
A B
טיפ לעבודה ידנית
סרוק את הביטוי משמאל לימין, סופר \(( -)\). כשהמונה מגיע ל-0 בפעם הראשונה לפני הסוף — הקשר שמופיע מיד אחרי הוא הקשר המרכזי.
תרגיל 2: \(\mathrm{rank}(\alpha)-1 \le\) מספר הקשרים
השאלה
נגדיר \(\mathrm{rank}: \text{WFF} \to \mathbb{N}\) כך:
- \(\mathrm{rank}(\alpha) = 1\) אם \(\alpha\) אטום.
- \(\mathrm{rank}(\neg\alpha) = \mathrm{rank}(\alpha) + 1\).
- \(\mathrm{rank}(\alpha_1 \diamond \alpha_2) = \max(\mathrm{rank}(\alpha_1), \mathrm{rank}(\alpha_2)) + 1\) עבור \(\diamond \in \{\wedge, \vee, \to\}\).
הראו כי בכל נוסחה \(\alpha\) מספר הקשרים גדול או שווה ל-\(\mathrm{rank}(\alpha) - 1\).
הוכחה. באינדוקציה מבנית. נסמן ב-a את מס' הקשרים ב-α.
בסיס: α אטום (T/F/pᵢ).
rank(α) = 1, a = 0, ולכן rank(α) - 1 = 0 ≤ 0 = a. ✓
מקרה 1: α = ¬α₁ (הקשר הראשי ¬).
הנחת האינדוקציה: rank(α₁) - 1 ≤ a₁ (מס' הקשרים ב-α₁).
לכן:
rank(α) - 1 = rank(¬α₁) - 1 = (rank(α₁) + 1) - 1
= rank(α₁)
≤ a₁ + 1 (לפי הנחת האינדוקציה: rank(α₁) ≤ a₁ + 1)
= a (מס' קשרים ב-α = a₁ + 1, ה-¬ הוא קשר נוסף).
✓
מקרה 2: α = α₁ ◇ α₂ עם ◇ ∈ {∧, ∨, →}.
הנחת האינדוקציה: rank(α₁) - 1 ≤ a₁, rank(α₂) - 1 ≤ a₂.
לכן:
rank(α) - 1 = max(rank(α₁), rank(α₂)) + 1 - 1
= max(rank(α₁), rank(α₂))
≤ max(a₁ + 1, a₂ + 1)
≤ a₁ + a₂ + 1
= a (a = a₁ + a₂ + 1).
✓
∎
פרשנות
rank מודד את
עומק העץ של הנוסחה.
מספר הקשרים מודד את
סך הצמתים הפנימיים. בעץ — עומק \(\le\) מספר צמתים פנימיים, מה שמתורגם למשפט המבוקש.
תרגיל 3: הצרנת טיעון ובדיקת נביעה ע"י טבלת אמת
השאלה
הצרינו את הטיעון הבא, בנו טבלת אמת, וקבעו אם המסקנה נובעת לוגית מההנחות:
"אם היום יום נעים אצא לטיול. היום יום לא נעים. לכן לא אצא לטיול."
שלב 1: מילון משתנים
- \(A\) — "היום יום נעים".
- \(B\) — "אצא לטיול".
שלב 2: הצרנה
- הנחה 1: "אם היום יום נעים אצא לטיול" → \(A \to B\).
- הנחה 2: "היום יום לא נעים" → \(\neg A\).
- מסקנה: "לא אצא לטיול" → \(\neg B\).
השאלה: האם \(\{A \to B,\; \neg A\} \models \neg B\)?
שלב 3: טבלת אמת
| \(v\) | \(A\) | \(B\) | \(A \to B\) (הנחה 1) | \(\neg A\) (הנחה 2) | \(\neg B\) (מסקנה) | ההנחות סופקו? |
| \(v_1\) | T | T | T | F | F | לא (¬A=F) |
| \(v_2\) | T | F | F | F | T | לא (A→B=F) |
| \(v_3\) | F | T | T | T | F | כן |
| \(v_4\) | F | F | T | T | T | כן |
מסקנה
בשורה \(v_3\) ההנחות סופקו, אך המסקנה \(\neg B\) לא סופקה (כי \(B=T\)). זה משמש כ-דוגמה נגדית:
\[ \{A \to B,\; \neg A\} \not\models \neg B. \]
למה זה לא נכון? — טעות הפיכת התנאי
"אם נעים → אצא" + "לא נעים" — לא מבטיח "לא אצא". ייתכן שאצא גם אם לא נעים, מסיבה אחרת (חבר התקשר…). זוהי
טעות לוגית קלאסית:
denying the antecedent. לעומת זאת, \(\{A\to B, A\} \models B\)
הוא תקין (modus ponens).
תרגיל 5: \(\alpha,\beta,\gamma\) ספיקות + \(\{\alpha\wedge\beta\}\models\gamma\) ⟹ \(\gamma\) ספיקה?
השאלה
הוכיחו או הפריכו: לכל שלושה פסוקים \(\alpha, \beta, \gamma\), אם \(\alpha, \beta, \gamma\) ספיקות וגם \(\{\alpha \wedge \beta\} \models \gamma\) אזי \(\gamma\) ספיקה.
הטענה נכונה — באופן ריקני, שכן ההנחה כוללת "γ ספיקה" כבר! אבל בואו נבחן את הניסוח בלי ההנחה הזו, ונראה למה היא הכרחית.
דוגמה ש"מראה" את הפלא של נביעה ריקנית
ניקח: \(\alpha = p,\; \beta = \neg p,\; \gamma = q \wedge \neg q\).
- \(\alpha\) ספיק (\(v_T \models \alpha\)). ✓
- \(\beta\) ספיק (\(v_F \models \beta\)). ✓
- \(\alpha \wedge \beta = p \wedge \neg p\) — סתירה. אין השמה שמספקת אותה.
- לכן \(\{\alpha \wedge \beta\} \models \gamma\) — באופן ריקני (vacuously) — נכון לכל \(\gamma\).
- אבל \(\gamma = q \wedge \neg q\) — סתירה, לא ספיקה!
מסקנה
הניסוח שכולל "\(\gamma\) ספיקה" יוצא נכון
טריוויאלית. ללא ההנחה הזו, הטענה
לא נכונה — דוגמה נגדית עם הפסוקים מעלה.
לקח
זהירות עם נביעה מקבוצה לא-ספיקה! \(S\) שאינה ספיקה גוררת לוגית את כל הפסוקים שבעולם — לרבות סתירות. תמיד בדקו אם \(S\) ספיקה לפני שדנים במה נובע ממנה.
תרגיל 6: פיצול/חיבור הנחות בנביעה
השאלה
יהיו \(\alpha, \beta, \gamma\) פסוקים. הוכיחו או הפריכו:
- אם \(\{\alpha, \beta\} \models \gamma\) אזי \(\{\alpha\} \models \gamma\) או \(\{\beta\} \models \gamma\).
- אם \(\{\alpha\} \models \gamma\) או \(\{\beta\} \models \gamma\) אזי \(\{\alpha, \beta\} \models \gamma\).
סעיף א — הפרכה
ניקח \(\alpha = p,\; \beta = \neg p,\; \gamma = q\).
- \(\{p, \neg p\}\) סתירה → \(\{\alpha, \beta\} \models \gamma\) באופן ריקני. ✓
- \(\{p\} \not\models q\): \(v(p)=T, v(q)=F\) מספקת את \(p\) אך לא את \(q\).
- \(\{\neg p\} \not\models q\): \(v(p)=F, v(q)=F\) מספקת את \(\neg p\) אך לא את \(q\).
הטענה הופרכה.
סעיף ב — נכון, מונוטוניות
הוכחה. נניח ש-{α} ⊨ γ (המקרה השני {β} ⊨ γ סימטרי).
כיוון ש-{α} ⊆ {α, β}, לפי מונוטוניות יחס הנביעה:
{α, β} ⊨ γ.
∎
הוכחה ישירה (בלי לצטט מונוטוניות):
תהא v המספקת את {α, β}, אז בפרט v מספקת את α.
מכיוון ש-{α} ⊨ γ ו-v מספקת את α, נובע v(γ)=T.
⟹ כל v המספקת את {α, β} מספקת את γ, כלומר {α, β} ⊨ γ.
אינטואיציה
הוספת הנחות יכולה רק
להגביר את כוח ההסקה. אבל פיצול הנחות לא תמיד אפשרי — הקבוצה כולה עשויה להיות סתירה גם אם כל פסוק בנפרד ספיק.
תרגיל 7: נביעה דיסיונקטיבית ופיצול לפי \(\alpha/\neg\alpha\)
השאלה
יהיו \(\alpha, \beta, \delta\) פסוקים. הוכיחו או הפריכו:
- אם \(\{\alpha\} \models \beta \vee \delta\) אזי \(\{\alpha\} \models \beta\) או \(\{\alpha\} \models \delta\).
- עבור קבוצת פסוקים \(\{\gamma_1, \ldots, \gamma_n\}\) ופסוקים \(\alpha, \beta\):
אם \(\{\gamma_1, \ldots, \gamma_n, \neg\alpha\} \models \beta\) וגם \(\{\gamma_1, \ldots, \gamma_n, \alpha\} \models \beta\) אזי \(\{\gamma_1, \ldots, \gamma_n\} \models \beta\).
סעיף א — הפרכה
ניקח \(\alpha = q,\; \beta = p,\; \delta = \neg p\).
- \(\beta \vee \delta = p \vee \neg p\) טאוטולוגיה, לכן \(\{q\} \models p \vee \neg p\). ✓
- \(\{q\} \not\models p\): \(v(p)=F, v(q)=T\) מספקת את \(q\) ולא את \(p\).
- \(\{q\} \not\models \neg p\): \(v(p)=T, v(q)=T\) מספקת את \(q\) ולא את \(\neg p\).
הטענה הופרכה.
סעיף ב — נכון, פיצול למקרים
הוכחה. נסמן S = {γ₁, γ₂, ..., γₙ}.
נתון: S ∪ {α} ⊨ β ו- S ∪ {¬α} ⊨ β.
צריך: S ⊨ β.
תהא v השמה המספקת את S. נראה ש-v(β) = T.
נחלק למקרים:
• אם v(α) = T:
v מספקת את S וגם את α, כלומר את S ∪ {α}.
מכיוון ש-S ∪ {α} ⊨ β, נובע v(β) = T. ✓
• אם v(α) = F:
אז v(¬α) = T. v מספקת את S וגם את ¬α, כלומר את S ∪ {¬α}.
מכיוון ש-S ∪ {¬α} ⊨ β, נובע v(β) = T. ✓
בכל מקרה v(β) = T, ולכן S ⊨ β. ∎
דפוס חשוב — Proof by Cases
הטכניקה: לכל \(\alpha\) ולכל \(v\), בדיוק אחד מהמצבים \(v(\alpha)=T\) או \(v(\alpha)=F\) חל. אם בשני המצבים יש לנו את אותה מסקנה, היא נכונה תמיד. זוהי דרך עוצמתית להוכיח \(S \models \beta\) ע"י הוספת \(\alpha\) "מלאכותית" לקבוצת ההנחות.
סיכום ונקודות חשובות
כלי המפתח לבדיקת נביעה סמנטית
- בנו טבלת אמת על כל המשתנים שמופיעים בהנחות ובמסקנה.
- סמנו את השורות שבהן כל ההנחות סופקו (T).
- בכל אחת מהשורות הללו: אם המסקנה T בכולן ⟹ נביעה מתקיימת. אם יש שורה שבה המסקנה F ⟹ הפרכה.
טכניקות הוכחה
- הוכחת נביעה: תהא \(v\) השמה כלשהי המספקת את \(S\); נראה \(v(\alpha)=T\). השתמשו בטבלאות אמת, מונוטוניות וטרנזיטיביות.
- הפרכת נביעה: מצאו השמה אחת \(v\) שמספקת את \(S\) אך לא את \(\alpha\). זה מספיק!
- Proof by cases: פיצול לפי \(v(\alpha)=T\) או \(v(\alpha)=F\) — כלי חזק (תרגיל 7ב).
- נביעה ריקנית: אם \(S\) סתירה, אז \(S \models \alpha\) לכל \(\alpha\). בדקו ספיקות של \(S\) לפני הסקה!
זכרו
- טאוטולוגיה: \(\forall v.\;v(\alpha)=T\) — דוגמה: \(p \vee \neg p\).
- סתירה: \(\forall v.\;v(\alpha)=F\) — דוגמה: \(p \wedge \neg p\).
- ספיק: \(\exists v.\;v(\alpha)=T\) — כל טאוטולוגיה ספיקה, אבל לא כל פסוק ספיק טאוטולוגיה.
- משפט הדדוקציה: \(\{\alpha\} \models \beta \iff \alpha \to \beta\) טאוטולוגיה — מאפשר להחליף בין נביעה לגרירה.