שינויים
הייתה טעות בדוגמה של CNF בC_2. התייחסות ל1 כמו שהוא ו0 כשלילה, כשזה צריך להיות הפוך.
[[מתמטיקה בדידה - מערך תרגול|חזרה למערכי התרגול]]
סיכום הנושא המלא נמצא בדף [[88-101 חשיבה מתמטית]].
אזהרה: דף זה נועד להכיר ללומד המתחיל את החשיבה הלוגיקית הקשיחה. כיוון שמדובר בלומד המתחיל ואיננו רוצים להבריח אותו, הדוגמאות וההסברים לעיתים "מעגלים פינות" (מבחינת דיוק קשיח ופורמלי) לטובת הסבר ברור ומסביר פנים. ==קשרים, כמתיםפסוקים וקַשָּרִים, הצרנה וטבלאות אמת==
=== קשרים וכמתים אטומים, פסוקים וקשרים===
הערה: קשר נוסף שהינו נפוץ בתחום המתמטקיה והוא גרירה דו-כיוונית (ידוע בכינויו אם ורק אם, אמ"מ).
הגדרתו פשוטה (נובעת משמו..) והיא מוגדרת ע"י קשר הגרירה החד כיווני.
<math>A\leftrightarrow B</math> שטבלת האמת שלו זהה לטבלת האמת של <math>(A\to B)\and(B\to A)</math>
===הגדרות הקשורות לקבוצות= הצרנה ====ההגדרה האינטואיטיבית לקבוצה הינה "אוסף של איברים".בקבוצה אין משמעות לסדר האיברים, ואיבר אינו יכול להופיע פעמיים. דוגמאות ל3 קבוצות (קבוצות נוהגים לסמן בין 2 סוגריים מסולסלות):
פתרון: נסמן A אני עייף, B אני רעב, C אני עצבני, D אני הולך לישוןההצרנה <math>[(A\forall c land B)\in to (C \rightarrow lor D)]\and[(cC \in land \lnot A )\and c \in to B)]</math> *הצרן תנאי השקול לכך ש-C אינה מוכלת באיחוד של A וB
==טאוטולוגיות==
הגדרה: נאמר שביטוי <math>A</math> שקול טאוטולוגית לביטוי <math>B</math> (ונסמן <math>A \equiv B</math>)
אם הביטוי <math>A \iff leftrightarrow B</math> הינו טאוטולוגיה (במילים: A קורה אמ"מ B קורה)
====תרגיל: ====הוכח באמצעות טבלאות אמת שניתן להציג את הקשרים 'גרירה' ו'וגם' באמצעות 'או' ושלילה בלבד
פתרון:
מתקיים <math>A\to B \equiv \neg A \or B</math>
ומתקיים <math>A \and B = \equiv \neg(\neg A \or \neg B)</math>
* <math>\ (A \leftrightarrow B) \equiv (A \rightarrow B) \wedge (B \rightarrow A)</math>.
===דרכי הוכחהטענת גרירה===הוכח שהפסוקים הבאים הינם טאוטולוגיות"טענות גרירה" הם טענות נפוצות במתמטיקה. טענות אלו פשוט טוענות שמתקיים כי:*אם (משהו) אז (משהו). בשביל לרמוז על נכונות הטענה מסמנים <math>(A\rightarrow Rightarrow B) \leftrightarrow (\neg B \rightarrow \neg A)</math>*להדגיש כי הפסוק <math>A \leftrightarrow (\neg A \rightarrow F)B</math>הינו אמת. במידה ולא מגלים לכם אם טענה הגרירה נכונה או לא (או שאתם לא מאמינים למרצה) אזי עומדות בפניכם שתי אופציות:
1. אם הטענה נכונה אזי כדאי להוכיח אותה ע"י כך שתראו שאם A נכון אז גם B נכון. או בצורה פרקטית יותר: נניח שA נכון ונוכיח שגם B נכון.
2. אם הטענה אינה נכונה אזי כדאי למצוא דוגמא שתפריך אותה. דוגמא מפריכה היא דוגמא עבורה A נכון וB לא נכון.
====תרגיל====
האם משני הנתונים:
א. אם אני מנגן בחצוצרה אז אני לא מנגן בתופים ובפסנתר יחד.
ב. אם אני לא מנגן בחצוצרה אז אני לא מנגן בפסנתר.
ניתן להסיק: אני לא מנגן בפסנתר אז אני מנגן בתופים.
פתרון: לא, זה תלוי מי זה "אני": במידה ו"אני" לא מנגן על אף כלי (מתאים לשורה F,F,F בטבלת האמת שאטומיה הן: "מנגן בחצוצרה", "מנגן בתופים", "מנגן בפנתר") נקבל כי הנתונים (א+ב) מקבלים ערך <math>T</math> והמסקנה <math>F</math>. ולכן הפסוק "(מסקנה)<math>\to</math>(נתונים)" אינו נכון.
====תרגיל====
האם משני הנתונים:
א. אם אני מנגן בחצוצרה אז אני לא מנגן בתופים ובפסנתר יחד.
ב. אם אני לא מנגן בחצוצרה אז אני לא מנגן בפסנתר.
ניתן להסיק: אם אני מנגן בפסנתר אני לא מנגן בתופים.
פתרון: נכון, זה לא תלוי במי זה "אני" (במילים אחרות הפסוק "(מסקנה)<math>\to</math>(נתונים)" הוא טאוטולוגיה ולא מושפע מערכי האמת של האטומים שלו). בהינתן א+ב אנו רוצים להוכיח את המסקנה, שהיא בעצמה טענת גרירה. לכן: נניח שמנגן בפסנתר, לכן לפי ב מנגן בחצוצרה. ואז לפי א יוצא שלא מנגן בתופים או לא מנגן בפסנתר (דה-מורגן). כיון שנתון שמנגן בפסנתר מתחייב שלא בתופים.
===הכרחי ומספיק ===
הערה (טרמינולוגיה):
*כאשר אומרים ש B הוא תנאי הכרחי ל A פירושו הוא שהפסוק <math>A \to B</math> נכון. לעיתים, לצורך הדגשה מסמנים <math>A \Rightarrow B</math>
*כאשר אומרים ש B הוא תנאי מספיק ל A פירושו הוא שהפסוק <math>B \to A</math> נכון. לעיתים, לצורך הדגשה מסמנים <math>B \Rightarrow A</math>
*כאשר אומרים ש B הוא תנאי הכרחי ומספיק ל A פירושו הוא שהפסוק <math>B \rightarrow A</math> נכון. לעיתים, לצורך הדגשה מסמנים <math>A \iff B</math>
====תרגיל====
השלם את המשפט הבא: כדי שירד גשם _____ שיהיו עננים בשמים. לכן אם נסמן ע"י "יש עננים בשמים = A", "יורד גשם = B" נקבל "A____B".
פיתרון: הכרחי, <math>\Leftarrow </math>
====תרגיל====
השלם את המשפט הבא: כניסת המורה לכיתה הוא תנאי _____ שיהיה שקט בכיתה. לכן אם נסמן ע"י "כניסת המורה= A", "שקט בכיתה = B" נקבל "A____B".
פיתרון: מספיק, <math>\Rightarrow </math>
===תרגיל===
(a) כדי שלזכות בלוטו _____ למלא כרטיס לוטו.
(b) כדי שהיה שקט בכיתה _____ ללחוץ mute all
(c) לקבל ציון עם 3ספרות בקורס _____ לקבל 100 בקורס.
==דרכי הוכחה==
כאשר רוצים להוכיח טענה, לפעמים יותר נח להוכיח ניסוח שקול (לוגית) אליה. דוגמאות נפוצות מוצגים בטענה הבאה:
הוכח:
*<math>(A\rightarrow B) \equiv (\neg B \rightarrow \neg A)\equiv ((\neg A) \vee B)</math>
*(הנחה בשלילה) <math>A \equiv (\neg A \rightarrow F)</math>
*<math>(A\lor B) \equiv (\neg A \rightarrow B)</math>
דוגמאות מילוליות:
* בשביל להוכיח את הטענה ש "אם מישהו יכתוב בדיחה במבחן במקום תשובה אז הוא יקבל ניקוד חלקי" ניתן להוכיח באופן שקול כי " אם מישהו לא קיבל ניקוד חלקי במבחן אז זה אומר שהוא לא כתב בדיחה במבחן במקום תשובה"
* בשביל להוכיח את הטענה ש "הגובה שלי נמוך מ- 3 מטר" אפשר להוכיח באופן שקול כי הגובה שלי לפחות 3 מטר ולהגיע לסתירה. למשל הטיעון הבא: "אם הגובה שלי לפחות 3 מטר, אז הראש שלי היה נוגע בתקרה. כיוון שהוא לא נוגע בתקרה, זו סתירה ולכן איני בגובה 3 מטר"
==פרדיקטים וכמתים==
בניגוד לאטומים שהם ללא משתנים ה'''פרדיקטים''' הינם פונקציות התלויות במשתנים. לדוגמא ניתן להגדיר את הפרדיקט <math>S(x)</math> להיות פרדיקט שמביע כי x הינו סטודנט באוניברסיטה ("מביע" פירושו שאם x הוא סטודנט אזי <math>S(x)</math> הוא T ואם x אינו סטודנט <math>S(x)</math> הוא F).
כיוון שאטומים הם ללא משתנים הם יכולים להיות T או F אבל לא שניהם. לעומתם פרדיקטים הם תלויים במשתנים ולכן ערך האמת שלהם יקבע לפי ההצבה במשתנים. למשל הפרדיקט <math>S(x,y)</math>שמביע כי <math>x<y</math> יהיה נכון במקרה ש <math>S(2,3)</math> ולא נכון במקרה ש <math>S(3,2)</math>. כלומר לכל הצבה במשתני הפרדיקטים נקבל פסוק. הערה: משמשים בקשרים גם בפרדיקטים למשל <math>S(x,y)</math> הפרדיקט המוגדר <math>(x>0) \land (x<y)</math>
בנוסף, ניתן להוסיף כמתים.
הכמת "לכל" <math>\forall</math> והכמת "קיים" <math>\exist</math>
תפקיד מרכזי של הכמת הוא להבהיר את כוונת הטענה. למשל הטענה ש "סטונדט הוא יצור חרוץ" יכולה לקבל 2 משמעויות בעזרת הכמתים. או "כל סטודנט הוא יצור חרוץ" או "קיים סטודנט שהוא יצור חרוץ".
הטענה הראשונה טוענת לגבי כלל הסטודנטים (אם רוצים להוכיח כי הטענה נכונה צריך לעבור בין כל הסטודנטים ולוודא שהם חרוצים ואם רוצים להוכיח כי הטענה לא נכונה מספיק למצוא סטודנט אחד שאינו חרוץ).
לעומתה הטענה השניה טוענת שניתן למצוא סטודנט אחד (לפחות) שהוא חרוץ (אם רוצים להוכיח את הטענה צריך למצוא סטודנט שהוא חרוץ ואם רוצים להוכיח כי הטענה לא נכונה צריך לעבור בין כל הסטודנטים ולוודא שהם אינם חרוצים
הצרן: לכל מספר p גדול מ-1: (p ראשוני) אמ"מ (אם הוא מחלק מכפלת מספרים אז הוא מחלק את אחד המספרים).
פתרון:
ההצרנה <math>\forall p >1 : (P(p)\iff Q(p))</math> כאשר
* <math>P(x)</math> הוא הפרדיקט המביע כי"x הוא ראשוני".
* <math>Q(x)</math> הוא הפרדיקט המביע <math>\forall a,b : p|ab \Rightarrow (p|a \lor p|b)</math>
הערה: אחרי שמכמתים על כל משתני הפרדיקט מקבלים פסוק ללא משתנים.
הערה: שמות המשתנים אינם חשובים למשל עבור הפרדיק <math>S(x,y)</math> המוגדר <math>x\leq y</math> הפסוק <math>\forall x\forall y S(x,y)</math> הוא זהה לפסוק
<math>\forall t\forall s S(t,s)</math>
הערה: סדר הכמתים כן משתנה (לפעמים) למשל <math>\exist x\forall y S(x,y)</math> לא שקול לפסוק <math>\forall y \exist x S(x,y)</math>
נשים לב כי בשביל לקבוע אם הפסוק <math>\forall x P(x)</math> אנחנו צריכים לדעת איזה x ים "חוקיים" (בהנחה שאנחנו יודעים את P) ומכאן שנעבור להגדרות הבאות.
===תרגיל===
הצרינו את הפסוקים
(a) "כל שתי נקודות שונות קובעות ישר" באמצעות הפרדיקט הדו-מקומי P(x,l) - x נמצא ב l כאשר המשתנה x הוא נקודה ו l הוא ישר.
(b) "כל שתי נקודות שונות קובעות ישר אחד ויחיד"
====תרגיל====
נגדיר פרדיקט <math>R(x,z,y)</math> המביע כי <math>x<z<y</math>.
האם הפסוק <math>\forall x\forall y \exists z : (x<y)\to R(x,z,y)</math> אמיתי?
פתרון: אם המשתנים מגיעים מהשלמים הפסוק שקרי (שהרי לא קיים z עבור x=1,y=2). אם המשתנים מגיעים מהרציונאלים הפסוק אמת (תכונה זאת נקראת צפיפות הרציונאלים). מסקנה: צריך לדעת מאיפה מגיעים משתני הפרדיקט.
מה לא חשוב? לא חשוב שמות המשתנים. למשל <math>\forall x\forall y \exists z : (x<y)\to R(x,z,y)</math>
זה פסוק זהה לפסוק <math>\forall m\forall n \exists k : (m<n)\to R(m,k,n)</math>
חשוב גם הסדר, והכוונה לשני דברים:
*סדר הופעת הכמתים, למשל הפסוק <math>\forall x\exists z \forall y : (x<y)\to R(x,z,y)</math> הוא שקרי גם כשהמשתנים מגיעים מהרציונאלים (שהרי אפשר למצוא y שבין x לz)
*סדר המשתנים בתוך הפרדיקט, למשל הפסוק <math>\forall x\forall y \exists z : (x<y)\to R(x,y,z)</math> נכון גם כשהמשתנים מגיעים מהשלמים.
==== תרגיל ====
הוכח או הפרך (משתני הפרדיקט נלקחים מהטבעיים):
א. <math>(\forall n (P(n) \lor Q(n))) \Rightarrow ((\forall n P(n)) \lor (\forall n Q(n)))</math>
ב. <math>(\forall n (P(n) \lor Q(n))) \Leftarrow ((\forall n P(n)) \lor (\forall n Q(n)))</math>
פיתרון:
א. הפרכה. ניקח את <math>P(n)</math> להיות <math>1</math> על הזוגיים ו-<math>0</math> על אי-זוגיים, ו-<math>Q(n)</math> להפך. אכן כל מספר טבעי הוא זוגי או אי-זוגי, אך זה לא נכון שכל מספר הוא זוגי או שכל מספר הוא אי-זוגי.
ב. הוכחה: יהי <math>n</math>. אם מתקיים <math>P(n)</math> אז בפרט מתקיים <math>P(n) \lor Q(n)</math> כדרוש. אחרת, לפי השקילות <math>a\lor b \equiv \lnot a \rightarrow b</math>, מתקיים שלכל מס' טבעי, ובפרט עבור <math>n</math>, מתקיים <math>Q(n)</math>, ולכן מתקיים <math>P(n) \lor Q(n)</math> כדרוש.
==== תרגיל ====
הטענה: "כלב נובח אינו נושך" אם"ם "כלב נושך אינו נובח" צריכה להיות מנוסחת בצורה פורמלית יותר כ: "עבור כל כלב מתקיים כי: (כלב נובח אינו נושך) אם"ם (כלב נושך אינו נובח)"
נוכיח את הטענה: נסמן ב- D את קבוצת כל הכלבים ב -A את הנובחים וב- B את הנושכים אז הדוגמא היא בעצם <math>\forall x\in D :((x\in A\to x\notin B)\iff (x\in B \to x\notin A)) </math>
שזה בעצם מהצורה (לכל כלב) * <math>\ (p \rightarrow q) \iff ((\neg q) \rightarrow (\neg p))</math>.
באופן דומה ניתן לעשות אם הטענה: מי שלא לומד בסמסטר נכשל במבחן אמ"מ מי שלא נכשל במבחן למד בסמסטר
==שלילת פסוקים==
לדוגמא:
*"לכל אדם בעולם קיים דג עם מספר קשקשים כגיל האדם או שאורכו עשירית מאורך האדם"
השלילה היא:
*"'''קיים''' אדם כך ש'''לא''' קיים דג עם מספר קשקשים כגיל האדם או שאורכו עשירית מאורך האדם"
נמשיך:
*"קיים אדם ש'''לכל''' דג בעולם '''לא נכון''' ש(יש לו מספר קשקשים כגיל האדם או שאורכו עשירית מאורך האדם)"
כלומר
*"קיים אדם שלכל דג בעולם יש מספר קשקשים שונה מגיל האדם וגם אורכו של הדג שונה מעשירית אורך האדם"
הערה: סדר הכמתים הוא חשוב (כמו בעברית) - לדוגמא: יש הבדל בין "לכל סיר קיים מכסה" לבין "קיים מכסה שמתאים לכל סיר".דוגמא: הצרן את המשפט "לכל מספר טבעי יש מספר טבעי הגדול ממנו" פתרון: <math>\forall n\in\mathbb{N}\,\exists m\in\mathbb{N}:n<m</math> לעומת זאת <math>\exists m\in\mathbb{N}\,\forall n\in\mathbb{N}:n<m</math> פירושו שקיים מספר טבעי שגדול מכל המספרים הטבעיים.
פתרון: <math>\forall x\in\mathbb{R}\,\exists A\subset\mathbb{Q}:\forall\epsilon\in\mathbb{R}_{+}\exists q\in A\,:|x-q|<\epsilon</math> .
תרגילים:
דוגמאות של הצרנת ושלילת המושגים 'תלות לינארית', 'גבול סדרה', 'חח"ע', וכדומה
==צורות נורמליות: CNF ,DNF (אם רלוונטי לקורס שאתם לוקחים. אם לא שמעתם על הדברים האלה - תדלגו)==
ישנן שתי "צורות נורמליות" להצגת '''כל''' פסוקית - DNF ו CNF.
===DNF===
ביטוי בצורת DNF מורכב מאוסף "פסוקיות" המחוברות ביניהן על ידי פעולות "או". כל פסוקית בעצמה מורכבת מאטומים המחוברים ביניהם על ידי פעולות "וגם". כל אטום הוא משתנה או שלילת משתנה.
בצורה סכמטית: <math>D_1 \lor D_2 \lor \dots \lor D_n</math> כאשר כל <math>D_i</math> מהצורה <math>p_1\land p_2 \land \dots \land p_m</math> וכל <math>p_i</math> שווה למשתנה <math>x</math>
או לשלילתו <math>\lnot x</math>.
דוגמא: נמצא את צורת DNF של טבלת האמת הבאה:
{| border="1" align="center" style="text-align:center;"
|<math>f(x_1,x_2,x_3)</math>
| <math>x_3</math>
|<math>x_2</math>
|<math>x_1</math>
|-
|0
|0
|0
|0
|-
|0
|0
|0
|1
|-
|1
|0
|1
|0
|-
|1
|1
|0
|0
|-
|0
|0
|1
|1
|-
|1
|1
|0
|1
|-
|0
|1
|1
|0
|-
|0
|1
|1
|1
|-
|}
נתמקד בשורות שערך האמת שלהן הוא 1 (שורות 3, 4, 6).
לשורה 3 נתאים את הפסוקית <math>D_1=\lnot x_1 \land x_2 \land \lnot x_3</math>
מה עשינו? החלפנו כל משתנה שערכו 0 בשלילה שלו, וכל משתנה שערכו 1 השארנו בלי לגעת.
מה יצא לנו מזה? שימו לב שרק הצבה של ערכי האמת של <math>x_1,x_2,x_3</math> שמופיעים בשורה 3 תתן ערך אמת 1 ב <math>D_1</math>. כל הצבה אחרת (כלומר: הצבה של ערכי אמת של המשתנים בשורה אחרת) תתן 0 ב <math>D_1</math>.
באופן דומה נייצר <math>D_2</math> עבור שורה 4 ו <math>D_3</math> עבור שורה 6:
<math>D_2=\lnot x_1 \land\lnot x_2 \land x_3, \quad D_3=x_1\land \lnot x_2 \land x_3</math>
כעת ה DNF של טבלת האמת היא פשוט
<math>D_1\or D_2 \or D_3=(\lnot x_1 \land x_2 \land \lnot x_3) \or (\lnot x_1 \land \lnot x_2 \land x_3) \or (x_1 \land \lnot x_2 \land x_3)</math>.
===CNF===
ביטוי בצורת CNF מורכב מאוסף "פסוקיות" המחוברות ביניהן על ידי פעולות "וגם". כל פסוקית בעצמה מורכבת מאטומים המחוברים ביניהם על ידי פעולות "או". כל אטום הוא משתנה או שלילת משתנה.
בצורה סכמטית: <math>C_1 \land C_2 \land \dots \land C_n</math> כאשר כל <math>C_i</math> מהצורה
<math>q_1\lor q_2 \lor \dots \lor q_m</math> וכל <math>q_i</math> שווה למשתנה <math>x</math>
או לשלילתו <math>\lnot x</math>.
נדגים על הדוגמא לעיל.
נתמקד בשורות שערך האמת שלהן הוא 0 (שורות 1, 2, 5, 7, 8)
לשורה 1 נתאים את הפסוקית <math>C_1= x_1 \lor x_2 \lor x_3</math>
מה עשינו? כל משתנה שערכו 0 השארנו בלי לגעת, וכל משתנה שערכו 1 החלפנו בשלילתו.
מה יצא לנו מזה? שימו לב שרק הצבה של ערכי האמת של <math>x_1,x_2,x_3</math> שמופיעים בשורה 1 תתן ערך אמת 0 ב <math>C_1</math>. כל הצבה אחרת (כלומר: הצבה של ערכי אמת של המשתנים בשורה אחרת) תתן 1 ב <math>C_1</math>.
באופן דומה נייצר <math>C_2,C_3,C_4,C_5</math> עבור שורות 2 , 5, 7 ו-8:
<math>C_2= \lnot x_1 \lor x_2 \lor x_3, C_3=\lnot x_1\lor \lnot x_2 \lor x_3</math>
<math> C_4=x_1 \lor \lnot x_2 \lor \lnot x_3, C_5= \lnot x_1 \lor \lnot x_2 \lor \lnot x_3</math>
כעת ה CNF של טבלת האמת היא פשוט
<math>C_1 \land C_2 \land C_3 \land C_4 \land C_5 </math>
הרחבה על עניינים אלו ניתן למצוא פה [[88-101 חשיבה מתמטית]]