‫מהי לוגיקה?‬
                                                   ‫תורת ההיגיון‬        ‫•‬
  ‫תורת ההיסק מתארת טיעונים תקפים - טיעונים ששומרים על אמיתות.‬          ‫•‬
                    ‫תקפות היא תכונה מבנית (תחבירית) של טיעונים‬
                  ‫תנאיי-קדם ללוגיקה: שפה בעלת תחביר וסמנטיקה.‬          ‫•‬

                                    ‫תחביר – מבנה של ביטוים בשפה.‬
‫סמנטיקה – פשר (משמעות) של הביטויים, הקשר שבין השפה לבין מה שהיא‬
                                           ‫מדברת עליו.‬


            ‫לוגיקה במדעי המחשב‬
                                  ‫מחשב מחקה יכולת שכלית (היגיון)‬       ‫•‬
                                      ‫תוכנית מחשב - סוג של הוכחה.‬      ‫•‬
                       ‫תורת התכנות- לוגיקה שימושית. אימות תוכנה.‬
                                                        ‫תכנות לוגי.‬    ‫•‬
                                                    ‫בינה מלאכותית‬      ‫•‬

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

                                                        ‫מבנה הטיעון:‬
                ‫אם ‪ p‬וגם לא ‪ ,q‬אז ‪ .r‬לא ‪ r‬ו-‪ .p‬לכן ‪.q‬‬
                      ‫‪(p¬q(→r, ¬r  p├ q‬‬
‫תחשיב הפסוקים‬
   ‫נדון בפסוקיי חיווי, אשר יש להם בדיוק אחד משני ערכים: אמת (‪)True‬‬
                                               ‫או שקר (‪.)False‬‬
                                                ‫1. קנדה היא מדינה.‬
                                                    ‫2. משה הוא כלב‬
                                                  ‫3. סגור את הדלת!‬
                                                          ‫4. ‪|X| = X‬‬
                                             ‫5. משפט זה הוא שקר.‬
 ‫מפסוקים יסודיים ניתן לבנות פסוקים מורכבים בתוספת מילות חיבור כגון:‬
                                                        ‫ו, או, לא, וכו':‬
                     ‫קנדה היא מדינה ומשה הוא כלב.‬


                       ‫קשרים לוגיים‬
                     ‫"לא ‪."P‬‬               ‫שלילה (‪: ¬P )negation‬‬           ‫•‬
                   ‫"‪ P‬ו- ‪.“Q‬‬  ‫קוניונקציה (‪ ,conjunction‬גימום)‪:PQ‬‬          ‫•‬
                  ‫“‪ P‬או ‪.“Q‬‬   ‫דיסיונקציה (‪ ,disjunction‬איווי) ‪: PQ‬‬        ‫•‬
              ‫אימפליקציה (‪ ,implication‬אימוז) ‪" : P→Q‬אם ‪ P‬אז ‪.“Q‬‬           ‫•‬
         ‫"‪ P‬אם ורק אם ‪.“Q‬‬          ‫שקילות (‪: P↔Q )equivalence‬‬              ‫•‬


                               ‫תחביר‬
 ‫הגדרה: נוסחא נקראת בנויה היטב (‪ )well-formed formula‬אם ניתן ליצור אותה‬
                                                   ‫לפי החוקים הבאים:‬
                              ‫1. כל פסוק אטומי...,‪ p,q‬הוא נוסחא בנויה היטב.‬
                                            ‫2. קבוע ‪ ‬הוא נוסחא בנויה היטב.‬
                                        ‫3. אם ‪ A‬ו- ‪ B‬הן נוסחאות בנויות היטב,‬
‫אז גם (‪ (AB), (A  B), (A  B), (A  B) , )¬A‬הן נוסחאות בנויות היטב.‬
‫4. כל נוסחא בנויה היטב ניתן ליצור במס' סופי של צעדים ע"י שימוש בחוקים 3-1.‬
‫פסוקים מורכבים‬
                         ‫דוגמא: )‪)¬)¬p(( ,(pq) ,((pq))¬p(( ,))¬p(q‬‬
                                       ‫‪((p  q)), (p  q  r), ( p‬‬ ‫ולא‬
‫משפט (בלי הוכחה) (קריאה יחידה) כל נוסחה שייכת בדיוק ל1 מהסוגים הבאים:‬
                                                       ‫פסוק אטומי.‬   ‫1.‬
                                   ‫)‪ )¬A‬עבור נוסחה אחת ויחידה ‪.A‬‬     ‫2.‬
      ‫)‪ (A ○ B‬עבור קשר בינארי ○ אחד ויחיד ונוסחאות יחידות ‪ A‬ו-‪.B‬‬     ‫3.‬

            ‫אינדוקציה על נוסחאות‬
‫אם תכונה ‪ P‬נכונה לכל הפסוקים האטומיים, ומהנחה ש-‪ P‬נכונה לנוסחאות ‪ A‬ו-‬
   ‫‪ B‬נובע ש-‪ P‬נכונה ל-(‪ ,(AB), (AB), (AB), (AB), )¬A‬אזי ‪P‬‬
                                      ‫נכונה לכל נוסחא בנויה היטב.‬
                           ‫הסכם: אפשר להשמיט סוגריים חיצוניות וסוגריים‬
                          ‫עבור ¬. לדוגמא נרשום ‪ ¬PQ‬במקום )‪))¬P(Q‬‬

                             ‫הצרנה‬
                         ‫זהו מקס או שההוא מוריץ ואני ליצן: ‪p  q  r‬‬    ‫•‬
                         ‫אני אגיע הביתה ואביא תותים אם לא ירד גשם.‬      ‫•‬
                ‫אם לא יובל ולא איל יעברו את הבחינה, גם חגי לא יעבור.‬    ‫•‬
                                           ‫לא כולם (מהשלושה) יכשלו.‬     ‫•‬

                         ‫סמנטיקה‬
 ‫פירוש או מודל הוא השמה }‪ - l: P  {F,T‬שיוך ערכיי אמת לפסוקים אטומיים.‬
                                          ‫פשר של הקשרים – פונקציות אמת:‬
                          ‫}‪f : {F,T} n  {F,T‬‬
                            ‫לא כל הפסוקים בשפה טבעית הם פונקציות אמת:‬
          ‫‪P ¬P‬‬
                                             ‫"אני יודע ש-‪" ,"P‬מחר יהיה ‪."P‬‬
          ‫‪F‬‬    ‫‪T‬‬                      ‫שלילה. ‪ ¬P‬אמיתי אם ורק אם ‪ P‬שקרי.‬
          ‫‪T‬‬    ‫‪F‬‬                                         ‫קבוע שקר. ‪l()=F‬‬
‫קוניונקציה‬               ‫דיסיונקציה‬
 ‫‪ PQ‬אמיתי כאשר גם ‪ P‬וגם ‪Q‬‬      ‫‪ PQ‬שיקרי כאשר גם ‪ P‬וגם ‪Q‬‬
       ‫אמיתי, אחרת שקרי:‬             ‫שיקרי, אחרת אמיתי :‬
          ‫‪P‬‬    ‫‪Q‬‬    ‫‪PQ‬‬               ‫‪P‬‬    ‫‪Q‬‬       ‫‪PQ‬‬
          ‫‪F‬‬    ‫‪F‬‬        ‫‪F‬‬             ‫‪F‬‬    ‫‪F‬‬        ‫‪F‬‬
          ‫‪F‬‬    ‫‪T‬‬        ‫‪F‬‬             ‫‪F‬‬    ‫‪T‬‬        ‫‪T‬‬
          ‫‪T‬‬    ‫‪F‬‬        ‫‪F‬‬             ‫‪T‬‬    ‫‪F‬‬        ‫‪T‬‬
          ‫‪T‬‬    ‫‪T‬‬        ‫‪T‬‬             ‫‪T‬‬    ‫‪T‬‬        ‫‪T‬‬


     ‫אימפליקציה‬                           ‫שקילות‬
                         ‫‪P→Q‬‬                           ‫‪P↔Q‬‬
 ‫שקרי כאשר ‪ P‬אמיתי ו- ‪ Q‬שקרי,‬   ‫אמיתי כאשר ל- ‪ P‬ול- ‪ Q‬יש אותו‬
                  ‫אחרת אמיתי.‬           ‫ערך אמת, אחרת שקרי.‬
     ‫‪P‬‬    ‫‪Q‬‬        ‫‪P→Q‬‬                 ‫‪P‬‬       ‫‪Q‬‬    ‫‪P↔Q‬‬
     ‫‪F‬‬     ‫‪F‬‬        ‫‪T‬‬                  ‫‪F‬‬       ‫‪F‬‬        ‫‪T‬‬
     ‫‪F‬‬     ‫‪T‬‬        ‫‪T‬‬                  ‫‪F‬‬       ‫‪T‬‬        ‫‪F‬‬
     ‫‪T‬‬     ‫‪F‬‬        ‫‪F‬‬                  ‫‪T‬‬       ‫‪F‬‬        ‫‪F‬‬
     ‫‪T‬‬     ‫‪T‬‬        ‫‪T‬‬                  ‫‪T‬‬       ‫‪T‬‬        ‫‪T‬‬



‫אם 3=1+1, אז פריס‬
   ‫היא בירת צרפת.‬
‫יחס ספיקות‬
                           ‫הגדרה. (הרחבה של פירוש לפסוקים מורכבים)‬
                                                             ‫• ‪l()=F‬‬
                                        ‫• ‪ l)¬A(=T‬אם ורק אם ‪l(A)=F‬‬
                                 ‫• ‪ l(AB)=T‬אם ורק אם ‪l(A)=l(B)=T‬‬
                            ‫• ‪ l(AB)=T‬אם ורק אם ‪ l(A)=T‬או ‪l(B)=T‬‬
                           ‫• ‪ l(AB)=T‬אם ורק אם ‪ l(A)=F‬או ‪l(B)=T‬‬
                                   ‫• ‪ l)A↔B(=T‬אם ורק אם )‪l(A)=l(B‬‬
                        ‫פירוש ‪ l‬מספק ‪ ,A‬או ‪ l‬הוא מודל של ‪ ,A‬אם ‪l(A)=T‬‬
                                                                 ‫עובדה.‬
‫ערך האמת של פסוק מורכב היא פונקציה של ערכי האמת של הפסוקים אטומיים‬
                                                   ‫שלו (קריאה יחידה !).‬

            ‫בעיות ספיקות ותקפות‬
     ‫• נוסחה נקראת ספיקה (או עקבית) אם יש לה מודל. נוסחה לא ספיקה‬
                                                   ‫נקראת סתירה.‬
  ‫בעיית ספיקות (‪ :)SAT problem‬האם (ומתיי) הנוסחה ספיקה? ‪ SAT‬היא‬
                                                      ‫בעיית ‪.NP‬‬
  ‫• נוסחה ‪ A‬נקראת תקפה, או טאוטולוגיה, אם כל פירוש הוא מודל של ‪.A‬‬
                                  ‫בעיית תקפות: האם נוסחה ‪ A‬תקפה?‬
              ‫‪ A‬היא טאוטולוגיה אם ורק אם ‪ ¬A‬היא לא ספיקה.‬


‫‪p q ¬ p  q‬‬          ‫טבלאות אמת‬
‫‪F F T F T F‬‬
                              ‫טבלת אמת של פסוק מורכב מתארת את ערכי‬
‫‪F T T F T T‬‬                            ‫האמת של הפסוק עבור כל פרוש.‬
‫‪T F F T F F‬‬                    ‫אם הפסוק מורכב מ- ‪ m‬פסוקים אטומיים, אזי‬
                                    ‫יש ‪ ,2m‬צרופים ובטבלת האמת שלו‬
‫‪T T F T T T‬‬
                                                    ‫תהיינה ‪ 2m‬שורות.‬
      ‫1 3 1 2‬
‫טאוטולוגיות וסתירות‬
‫נוסחה המקבלת ערך אמת ‪ T‬לכל הצבה עבור המשתנים שלה היא טאוטולוגיה.‬
                       ‫נוסחה המקבלת ערך ‪ F‬לכל הצבה כזאת היא סתירה.‬
                       ‫‪p‬‬        ‫‪¬p‬‬    ‫‪p¬p‬‬     ‫‪pp‬‬
                       ‫‪F‬‬         ‫‪T‬‬      ‫‪F‬‬       ‫‪T‬‬
                       ‫‪T‬‬         ‫‪F‬‬      ‫‪F‬‬       ‫‪T‬‬
                           ‫ניתן להוכיח טאוטולוגיות וסתירות בשיטת השלילה.‬
                                           ‫דוגמא: )‪(AB( →)¬AB‬‬



              ‫שקילות של פסוקים‬
    ‫שני פסוקים נקראים שקולים אם יש להם אותם מודלים. פסוקים שקולים‬
                                           ‫מהבאים אותה טענה.‬
                          ‫נסמן את השקילות ב- ‪ .‬בדוגמא: ‪.A  AA‬‬

        ‫משפט: נוסחאות ‪ A‬ו- ‪ B‬שקולות אם ורק אם ‪ AB‬היא טאוטולוגיה.‬
                                               ‫הוכחה נובעת מן ההגדרות:‬
                            ‫כיוון ראשון: (נניח ‪ AB‬היא טאוטולוגיה.)‬
 ‫מהגדרת ‪ A  B‬נובע ש)‪ I(A  B‬אמת רק אם )‪ ,I(A)=I(B‬ומכך שזוהי‬
      ‫טאוטולוגיה נובע שזה נכון לכל ‪ .I‬לכן, בהכרח ל‪ A‬ול‪ B‬יש את אותם‬
                             ‫המודלים. ולכן מהגדרת השקילות ‪.A  B‬‬
                                               ‫כיוון שני: (נניח ‪)A  B‬‬
‫אם ‪ A‬שקול ל‪ ,B‬אז יש ל‪ A‬ול‪ B‬את אותם המודלים. ומכאן שכל פירוש של‬
   ‫‪ A‬שווה לכל פירוש של ‪ .B‬לכן, מהגדרת ‪ ‬כל פירוש ‪ I‬יהיה מודל של‬
                                      ‫‪ AB‬ומכאן שזוהי טאוטולוגיה.‬
¬)p  q))¬p  ¬q) -‫טבלת אמת ל‬

             p   q   ¬ (p  q)  )¬ p                   ¬ q)
             F   F   T   F   F    F    T   T     F   T   T   F
             F   T   T   F   F    T    T   T     F   T   F   T
             T   F   T   T   F    F    T   F     T   T   T   F
             T   T   F   T   T    T    T   F     T   F   F   T
                     3   1   2     1   4   2     1   3   2   1
  ‫תוך שימוש בשקילויות יסודיות ניתן להוכיח שקילויות חדשות בלי להשתמש‬
                                                       .‫בטבלאות אמת‬


                     ‫שקילויות יסודיות‬
PP  P                                PP  P
(PQ) R  P(QR)                     (PQ) R  P (QR)
PQ  QP                              PQ  QP
P(QR) (PQ)(PR)                   P(QR) (PQ)(PR)
PP                                  PTP
PTT                                  P
P  ¬P  T                             P  ¬P  F
P  (PQ)  P                          P  (P  Q)  P
¬(P  Q)  ¬P  ¬Q                     ¬(P  Q)  ¬P  ¬Q
                                 ¬¬P  P
‫שלמות פונקציונאלית‬
:‫-מקומית‬n ‫ מגדירה פונקצית אמת‬A(p1,…,pn) ‫כל נוסחה‬

       g(l(p1(,…,l)pn))=l(A)       ,l ‫לכל‬
                                            :‫דוגמה‬
            (p  q  ¬r()¬p  q  r)



        p        q        r        A

        T        T        T        F

        T        T        F        T

        T        F        T        F

        T        F        F        F

        F        T        T        T

        F        T        F        F

        F        F        T        F

        F        F        F        F
‫משפט השלמות הפונקציונאלית‬
‫משפט (שלמות פונקציונאלית). לכל פונקצית אמת קיימת נוסחה המגדירה אותה.‬
                                                                       ‫הוכחה:‬
                                             ‫תהיה ‪ f‬פונקצית אמת ‪-n‬מקומית.‬
   ‫נגדיר }‪( Hf={(a1,a2,…,an){F,T}n :f(a1,…,an)=T‬תמונה הפוכה של ‪T‬‬
                                                                  ‫ביחס ל- ‪.)f‬‬
              ‫לכל )‪ x=(a1,a2,…,an‬נשייך נוסחה ‪ ř1ř2… řn = Ax‬כך ש:‬
       ‫‪ ři‬הוא ‪ ri‬אם ‪ ,T=ai‬אחרת ‪ ři‬הוא ‪ .¬ri‬אז פירוש ‪ l‬מספק את ‪ Ax‬אם"ם‬
                                                           ‫))‪,x=(l(r1),...,l(rn‬‬
                         ‫כלומר אם"ם ‪.I(r1) = a1, I(r2) = a2, …, I)rn) = an‬‬
 ‫מהגדרת הקוניונקציה פירוש ‪ I‬ייתן ‪ I(Ax(=T‬אם"ם ‪ I)řj(=T‬לכל ‪ j‬ומהדרך בה‬
          ‫הגדרנו את הליטרלים, זה יתקיים אך ורק מתי ש ‪ I(rj) = aj‬לכל ‪.j‬‬
                           ‫נגדיר ‪ Af= Ax1Ax2 … Axk‬עבור כל ‪ xi‬מ- ‪.Hf‬‬
      ‫אז, לכל פירוש ‪ l(Af)=T ,l‬אם"ם קיים ‪ x  Hf‬כך ש ))‪x=(l(r1),...,l(rn‬‬
         ‫זאת היות ומהגדרת הדיסיונקציה ‪ l(Af)=T‬אם"ם קיים ‪ Axj‬שעבורו‬
                 ‫‪l(Axj)=T‬והראנו שזה מתקיים אם"ם ))‪ ,xj=(l(r1),...,l(rn‬ז"א‬
                                                     ‫)‪.f(l(r1(,…,l)rn))=l(Af‬‬

                                   ‫הסבר נוסף:‬
       ‫‪ …. I)Axk)=T‬או ‪ I(Ax2)=T‬או ‪l(Af)=T  I(Ax1)=T‬‬
                             ‫אם כך, עבור ‪ j‬כלשהו:‬
       ‫‪I(Axj)=T ‬‬
                       ‫נזכיר ש: ‪ Axj= ř1ř2… řn‬ומכאן:‬
       ‫‪ …. I)řn)=T ‬וגם ‪ I(ř2)=T‬וגם ‪I(ř1ř2… řn)=T  I(ř1)=T‬‬
       ‫‪I(r1)= a1, I(r2)= a2, …. , I)rn)= an ‬‬
       ‫‪xj=(a1, a2, …, an)=(I(r1), I(r2(, …. , I(rn)) ‬‬
                                 ‫נזכיר ש: ‪xjЄHf‬‬
       ‫‪(I(r1), I(r2(=, …. , I)rn)) ЄHf ‬‬
       ‫‪F(I(r1), I(r2(=, …. , I)rn))=T‬‬
‫קבוצות שלמות של קשרים‬
‫הגדרה: קבוצה של קשרים שבאמצעותם ניתן לתאר כל פונקצית אמת נקראת שלמה.‬
                          ‫)‪P  Q  (PQ)  (QP‬‬
                   ‫‪P  Q  ¬P  Q‬‬         ‫‪P  Q  ¬P  Q‬‬
                 ‫(‪P  Q  ¬)¬P¬Q‬‬        ‫(‪P  Q  ¬)¬P¬Q‬‬
                    ‫מסקנה. }‪ {¬, }, {¬, }, {¬, ‬הן קבוצות שלמות של קשרים.‬
     ‫ממשפט השלמות הפונקציונאלית נובע שהקבוצה }‪ Q={¬, , ‬היא‬
                                                    ‫קבוצה שלמה של קשרים‬
  ‫( השתמשנו אך ורק בקשרים אלו והראנו שאנו יכולים לבנות כל פונקציית אמת).‬
‫ע"מ להראות שהקבוצות הנתונות הן קבוצות שלמות של קשרים, מספיק להראות‬
                                      ‫שנוכל לבנות באמצעותן את הקבוצה ‪.Q‬‬
                           ‫}‪ - {¬, ‬נוכל להשיג קוניונקציה ע"י (‪P  Q  ¬)¬P¬Q‬‬
                          ‫}‪ - {¬, ‬נוכל להשיג דיסיונקציה ע"י (‪P  Q  ¬)¬P¬Q‬‬
    ‫}‪ - {¬, ‬נוכל להשיג דיסיונקציה ע"י ‪ P  Q  ¬P  Q‬וע"י כך נבנה את }‪.{¬, ‬‬
                    ‫קבוצות לא שלמות של קשרים‬
  ‫למה. }‪ {,,, ‬היא קבוצה לא שלמה של קשרים. (כי אי אפשר ליצור שלילה)‬
  ‫הוכחה. להבדיל מ-‪ ,¬p‬כל נוסחה הבנויה מ- }‪ {,,, ‬היא אמיתית כאשר כל‬
 ‫הפסוקים האטומיים שלה אמיתיים. [באינדוקציה על מספר הקשרים בנוסחה – נוכיח‬
                                           ‫שתמיד אמת (אין מצב של שלילה)].‬
         ‫טענה: כל נוסחה הבנויה מ }‪ {,,, ‬היא אמיתית כאשר כל הפסוקים‬
                                               ‫האטומיים שלה אמיתיים.‬
                                                      ‫הוכחה: (באינדוקציה)‬
‫בסיס: משתמשים ב-0 קשרים, אז הנוסחה היא מהצורה ‪ P‬כאשר ‪ P‬אטום ולכן‬
                                        ‫כאשר ‪ P‬אמיתי, הנוסחה אמיתית.‬
‫הנחה: כאשר אנו משתמשים ב-‪ n‬קשרים או פחות, אם כל הפסוקים האטומיים‬
                                        ‫אמיתיים, אז גם הנוסחה אמיתית.‬
              ‫צעד: תהי ‪ A‬נוסחה בעלת 1+‪ n‬קשרים, אם כך, ‪ A‬היא מהצורה:‬
          ‫‪(a) B  C (b) B  C (c) B  C (d) B  C‬‬
 ‫ב-‪ B‬וב-‪ C‬יש אם כך פחות מ1+‪ n‬קשרים, לכן, מהנחת האינדוקציה, כאשר כל‬
  ‫הפסוקים האטומיים ב‪ A‬אמיתיים, אז גם ‪ B‬ו-‪ C‬אמיתיים ומכאן שלפי הגדרת‬
                                    ‫הקשרים }‪ ,{,,, ‬גם ‪ A‬אמיתית.‬
‫קבוצות לא שלמות של קשרים‬
                               ‫למה. }¬,‪ {‬היא קבוצה לא שלמה של קשרים.‬
   ‫קוניונקציה יוצרת טבלת אמת בה יש מספר אי זוגי של שורות שנותנות ‪.T‬‬
‫נוכיח באינדוקציה על כמות הקשרים כי כל טבלת אמת עם יותר מאטום אחד‬
     ‫של נוסחה הבנויה מהקשרים }¬,‪ {‬הינה בעלת כמות זוגית של שורות‬
‫המקבלות את הערך ‪ ,T‬ולכן לא ניתן לבנות קוניוקציה באמצעות קשרים אלו.‬
                 ‫בסיס: (קשר יחיד) הנוסחא היא מהצורה ‪ q  p‬או ‪. ¬p‬‬
                                 ‫במצב זה טבלאות האמת יתאימו לטענה:‬
                       ‫‪p‬‬    ‫‪q‬‬    ‫‪¬p‬‬    ‫‪p‬‬   ‫‪q‬‬   ‫‪qp‬‬
                       ‫‪T‬‬    ‫‪T‬‬     ‫‪F‬‬    ‫‪T‬‬   ‫‪T‬‬     ‫‪T‬‬
                       ‫‪T‬‬    ‫‪F‬‬     ‫‪F‬‬    ‫‪T‬‬   ‫‪F‬‬     ‫‪F‬‬
                       ‫‪F‬‬    ‫‪T‬‬     ‫‪T‬‬    ‫‪F‬‬   ‫‪T‬‬     ‫‪F‬‬
                       ‫‪F‬‬    ‫‪F‬‬     ‫‪T‬‬    ‫‪F‬‬   ‫‪F‬‬     ‫‪T‬‬

‫הנחה: נניח כי עבור נוסחאות בעלות ‪ N‬קשרים או פחות (מהקבוצה }¬,‪,){‬‬
      ‫הטענה מתקיימת, כלומר, יש כמות זוגית של שורות בטבלת האמת של‬
                                                ‫נוסחאות אלו המקבלות ‪.T‬‬
                   ‫צעד: תהי ‪ A‬נוסחה בעלת 1+‪ N‬קשרים מהקבוצה }¬,‪,{‬‬
                           ‫א. ‪ ¬B‬ב. ‪B C‬‬               ‫אז ‪ A‬היא מהצורה:‬
  ‫מקרה א. מהנחת האינדוקציה, ‪( B‬בעלת ‪ N‬קשרים) היא בעלת כמות זוגית‬
      ‫של שורות בטבלת האמת שלה שנותנות ‪ .T‬ולכן, מהגדרת השלילה, ‪A‬‬
   ‫תהיה בעלת מס' זוגי של שורות שיתנו ‪ ,F‬והיות ובטבלת אמת מס' זוגי של‬
                            ‫שורות סה"כ, אז גם מס' זוגי של שורות שיתנו ‪.T‬‬
    ‫מקרה ב. נסמן ב*‪ B‬את קבוצת השורות של טבלת האמת של ‪ B‬שיתנו ‪,T‬‬
 ‫ו*‪ ,C‬באופן דומה. מהנחת האינדוקציה |*‪ |B‬ו- |*‪ |C‬זוגיים, כלומר ‪,|B*| =2k‬‬
‫‪ .|C*| =2t‬בסה"כ בטבלת האמת של ‪ A‬יש מספר זוגי של שורות ‪( 2m‬מהיותה‬
     ‫טבלת אמת). כמות השורות שבהן ‪ A‬אמת היא כמות השורות בהן ‪ B‬ו-‪C‬‬
                ‫שקר יחד, בנוסף לכמות השורות בהן ‪ B‬ו-‪ C‬אמת יחד, כלומר‬
                        ‫|*‪ 2m - |B*C*| + |B*C‬שורות בהן ‪ A‬נותנת אמת.‬
‫אך מתקיים |*‪ ,|B*C*| = |B*| + |C*| - |B*C*| = 2k + 2t - |B*C‬ולכן‬
           ‫|*‪ 2 m - |B*C*| + |B*C*| = 2 m - 2k - 2t + 2 |B*  C‬זוגי.‬
‫קבוצות קשרים שלמות‬
                        - "..-‫ – "לא וגם‬NAND
P   Q   PQ     PQ  ¬)PQ) ‫ מוגדרת ע"י‬PQ
F   F    T
F   T    T                       -‫קל לראות ש‬
                                   PP  ¬P
T   F    T
              (PQ)  (PQ)  ~(PQ)  PQ
T   T    F              (PP)(QQ)  PQ
                 .‫{ היא קבוצת קשרים שלמה‬} ‫לכן‬

                     - "‫ – "לא או‬NOR
P   Q   PQ
                PQ  ¬)PQ) ‫ מוגדר ע"י‬PQ
F   F    T
F   T    F          P  P  ¬P :‫מתקיים‬
T   F    F          (PQ)(PQ)  PQ
                    (PP)(QQ)  PQ
T   T    F
                .‫{ היא קבוצת קשרים שלמה‬} ‫לכן‬
)gates( ‫שערים‬
      a             ¬a   :NOT ‫שער‬

      a            ab   :AND ‫שער‬
      b
      a                   :OR ‫שער‬
      b            ab

(ab))¬a¬b( :‫רשת לתיאור הנוסחה‬
               a
               b
           a
           b

           ‫שערים נוספים‬
 a        ¬)ab)=¬a¬b :NAND ‫שער‬
 b
a         ¬)ab)=¬a¬b
b                               :NOR ‫שער‬

           a                        :‫דוגמא‬
                          ab
           b
‫צורות נורמאליות‬
                            ‫אם ‪ p‬הוא פסוק אטומי, אז ‪ p‬ו-‪ ¬p‬הם ליטרלים.‬
     ‫הגדרה. נוסחה בצורה דיסיונקטיבית נורמאלית )‪ (DNF‬היא דיסיונקציה של‬
                                            ‫קוניונקציות של ליטרלים.‬
                                 ‫דוגמא: (‪(p¬qr)(rp)  (r¬q¬p‬‬

                           ‫מסקנה 1. כל נוסחה שקולה לנוסחה בצורת ‪.DNF‬‬
‫הוכחה 6. אם ‪ f‬היא פונקצית אמת המוגדרת ע"י נוסחה ‪ , B‬אז הנוסחה ‪ Af‬שבנינו‬
       ‫בהוכחת משפט השלמות הפונקציונאלית שקולה ל-‪ , B‬והיא בצורת ‪.DNF‬‬



                           ‫דואליות‬
                      ‫הגדרה: תהי ‪ A‬נוסחה שמכילה ‪ , , , ,T‬ו- ¬ בלבד.‬
 ‫נוסחה דואלית ל- ‪ A‬מתקבלת ממנה בהחלפת כל ‪ ‬ב- ‪ ‬וכל ‪ ‬ב- ‪ ,‬כל ‪ T‬ב-‬
                                                        ‫‪ ‬וכל ‪ ‬ב-‪T‬‬
              ‫נוסחה דואלית‬                        ‫נוסחה‬
                ‫‪(PQ)R‬‬                         ‫‪(PQ)R‬‬
         ‫((‪¬)PQ)(P)¬Q¬S‬‬              ‫((‪¬)PQ)(P)¬Q¬S‬‬
       ‫למת עזר. השלילה של נוסחה שקולה לנוסחה דואלית שבה כל משתנה‬
                                            ‫מוחלף בשלילה שלו.‬
                                ‫שקול להפעלת דה-מורגן מבחוץ פנימה.‬
                 ‫דוגמא: ‪¬))PQ)R)  ¬(PQ)¬R  )¬P¬Q(¬R‬‬
‫צורות נורמליות - המשך‬
                  ‫‪r¬q¬p‬‬       ‫פסוקית (‪ )clause‬היא דיסיונקציה של ליטרלים:‬
‫הגדרה. נוסחה בצורה קוניונקטיבית נורמאלית )‪ (CNF‬היא קוניונקציה של פסוקיות.‬
                       ‫דוגמא: )‪(p¬qr)(rp) (r¬q¬p‬‬
                             ‫מסקנה 2. כל נוסחה שקולה לנוסחה בצורת ‪.CNF‬‬
                                                                    ‫הוכחה.‬
      ‫נניח ש- ‪ f‬היא פונקצית אמת המוגדרת ע"י נוסחה ‪ ,¬B‬ו- ‪ Af‬היא הנוסחה‬
     ‫המקבילה ב-‪ . DNF‬אז ‪ ¬Af‬שקולה ל-‪ ,B‬וניתן להפוך ‪ ¬Af‬לנוסחה דואלית‬
  ‫בצורת ‪ CNF‬כי השלילה של נוסחה שקולה לנוסחה דואלית שבה כל משתנה‬
    ‫מוחלף בשלילה שלו, כל ‪ ‬מוחלף ב ‪ ‬ולהיפך כך שעוברים מ‪ DNF‬ל‪.CNF‬‬

                                 ‫‪CNF‬‬
    ‫‪p‬‬       ‫‪q‬‬       ‫‪A‬‬                       ‫)‪A  (pq) )¬p¬q‬‬
    ‫‪F‬‬       ‫‪F‬‬       ‫‪F‬‬      ‫‪pq‬‬         ‫כל פסוקית מתאים לשורה עם ערך ‪F‬‬
    ‫‪F‬‬       ‫‪T‬‬       ‫‪T‬‬                                       ‫בטבלת אמת.‬
    ‫‪T‬‬       ‫‪F‬‬       ‫‪T‬‬                 ‫לכל משתנה ‪ p‬אנו רושמים ‪ p‬אם ערכו‬
    ‫‪T‬‬       ‫‪T‬‬       ‫‪F‬‬     ‫‪¬p¬q‬‬              ‫‪ F‬ו- ‪ ¬p‬אם ערכו ‪ T‬בשורה זו.‬



    ‫אלגוריתמים לבניית ‪ DNF‬ו-‪CNF‬‬
                                                ‫• סילוק ‪ ‬ו- ‪;‬‬
                               ‫• הכנסת שלילה פנימה (צורת ‪(NNF‬‬
                                             ‫• פריסה של ‪ ‬או ‪.‬‬
                            ‫‪((p  q) ¬)q  r))  s‬‬        ‫דוגמה:‬
                            ‫‪¬))p  q) ¬)q  r))  s‬‬
                             ‫‪)¬)p  q) (q  r))  s‬‬
                            ‫‪))¬p  ¬q( (q  r))  s‬‬
                          ‫)‪)¬p  ¬q  s) ((q  r)  s‬‬
                        ‫)‪)¬p  ¬q  s) (q  s)  (r  s‬‬
‫פסוקיות הורן‬
  ‫פסוקית הורן )‪ (Horn clause‬היא פסוקית שמכילה לא יותר מליטרל חיובי אחד.‬
                  ‫) ‪p¬q1...¬qn (  (q1... qn)  p‬‬
                   ‫) ‪¬q1...¬qn (  (q1... qn)  ‬‬
                             ‫)‪p (Tp‬‬
                                ‫נוסחת הורן היא קוניונקציה של פסוקיות הורן.‬


    ‫אלגוריתם הכרעה לנוסחאות הורן‬
                                        ‫אלגוריתם ‪ HORN‬להכרעת ספיקות:‬
                               ‫נסמן אטומים בנוסחת הורן לפי כללים הבאים:‬
                                       ‫נסמן ‪ T‬אם הוא קיים בנוסחה.‬    ‫1.‬
     ‫אם יש פסוקית ‪ (Q1... Qn)  P‬בנוסחה כך שכל ‪ Qi‬בו מסומן,‬        ‫2.‬
                            ‫נסמן גם ‪ P‬ונחזור ל-2, אחרת נעבור ל-3.‬
                        ‫הנוסחה היא ספיקה אם ורק אם ‪ ‬לא מסומן.‬       ‫3.‬

                  ‫משפט. אלגוריתם ‪ HORN‬מכריע בעיית ספיקות לנוסחאות הורן.‬
  ‫הוכחה. אם בנוסחת הורן ‪ A‬יש ‪ n‬אטומים, האלגוריתם מסיים בלא יותר מ-)1+‪(n‬‬
                                                             ‫צעדים. נוכיח:‬
        ‫כל ‪ P‬מסומן הוא אמיתי בכל מודל של ‪ A‬באינדוקציה על מספר הצעדים של‬
                              ‫האלגוריתם. בסיס (צעד 1): ‪ T‬אמיתי בכל מודל.‬
  ‫אם בפסוקית ‪ (Q1... Qn)P‬כל ‪ Qi‬מסומן, אז גם הפסוקית וגם כל ‪( Qi‬בהנחת‬
     ‫אינדוקציה) חייבים להיות אמיתיים בכל מודל של ‪ .A‬לכן גם ‪ P‬חייב להיות‬
              ‫אמיתי בכל מודל של ‪ A‬וזה נובע ישירות מהגדרת האימפליקציה.‬
                        ‫(א) אם ‪ ‬מסומן, ‪ A‬לא ספיקה, כי ‪ ‬לא יכול להיות אמיתי.‬
  ‫(ב) אם ‪ ‬לא מסומן, נגדיר פירוש ‪ l‬שבו האטומים המסומנים, ורק הם, אמיתיים.‬
‫נניח ש-‪ l‬הוא לא מודל של ‪ .A‬אז קיימת פסוקית ‪ (Q1... Qn)P‬של ‪ A‬שהיא‬
     ‫שקרית ב- ‪.l‬אבל זה אפשרי רק כאשר כל ‪ Qi‬אמיתי (מסומן) ו-‪ P‬שקרי (לא‬
    ‫מסומן) – סתירה זוהי סתירה לדרך בה הגדרנו את האלגוריתם, שכן בו אם‬
     ‫)‪ (Q1... Qn‬מסומנים אז נסמן גם את ‪ P‬ולכן ‪ P‬חייב להיות אמיתי במודל ‪I‬‬
                        ‫ומכאן הסתירה. לכן ‪ l‬הוא מודל של ‪ A‬ומכאן ‪ A‬ספיקה.‬
‫אלגוריתם הורן – הוכחת ההכרעה‬
  ‫באינדוקציה על מס' הצעדים‬
                           ‫(הסבר נוסף)‬
   ‫טענה: במהלך האלגוריתם אנו מסמנים פסוקים ‪ P1... Pn‬הטענה שלנו היא‬
          ‫שכל פסוק שסומן אמיתי בכל מודל של ‪ – A( A‬הנוסחה שלנו).‬
                ‫נוכיח זאת באינדוקציה על מס' הצעדים של האלגוריתם.‬

             ‫בסיס: בצעד הראשון אנחנו מסמנים את ‪ T‬ו-‪ T‬אמיתי בכל מודל.‬

       ‫הנחה: בצעד ה-‪ ,n‬הפסוקים שסימנו עד כה אמיתיים בכל מודל של ‪.A‬‬

‫צעד: בצעד ה-1+‪ n‬נבדוק אם בפסוקית מסויימת מהצורה ‪(Q1... Qn)  P‬‬
                                                       ‫כל ‪ Qi‬מסומן.‬
    ‫אם כולם מסומנים אז על מנת שהפסוקית תהיה אמת בהכרח ‪ P‬חייב‬
        ‫להיות אמת. אנו נמצאים ב‪ CNF‬ולכן ע"מ ש-‪ A‬יהיה אמיתי אז כל‬
 ‫הפסוקיות חיבות להיות אמיתיות (מתכונת הקוניונקציה), לכן על מנת ש‪A‬‬
         ‫יהיה אמיתי, ‪ P‬חייב להיות אמיתי ולכן ‪ P‬אמיתי בכל מודל של ‪.A‬‬
                ‫הוכחנו שכל פסוק שמסומן באלגוריתם אמיתי בכל מודל.‬

           ‫כעת נוכיח שכאשר האלגוריתם מסתיים, התשובה שהוא נותן נכונה.‬
 ‫מקרה א': ‪ ‬מסומן. אם כך, אז ‪ A‬לא ספיקה, כי ‪ ‬לא יכול להיות אמיתי, וזה‬
                                           ‫סותר את הטענה הקודמת.‬
     ‫מקרה ב': ‪ ‬לא מסומן. נגדיר פירוש ‪ l‬שבו האטומים המסומנים, ורק הם,‬
        ‫אמיתיים. נניח ש-‪ l‬הוא לא מודל של ‪ .A‬אז קיימת פסוקית ...‪(Q1‬‬
‫‪ Qn)P‬של ‪ A‬שהיא שקרית ב- ‪.l‬אבל זה אפשרי רק כאשר כל ‪ Qi‬אמיתי‬
‫(מסומן) ו-‪ P‬שקרי (לא מסומן) – סתירה זוהי סתירה לדרך בה הגדרנו את‬
    ‫האלגוריתם, שכן בו אם )‪ (Q1... Qn‬מסומנים אז נסמן גם את ‪ P‬ולכן ‪P‬‬
  ‫חייב להיות אמיתי במודל ‪ I‬ומכאן הסתירה.. לכן ‪ l‬הוא מודל של ‪ A‬ומכאן‬
                                                          ‫‪ A‬ספיקה.‬

מצגת לוגיקה מלאה חלק 1 מתוך 3

  • 1.
    ‫מהי לוגיקה?‬ ‫תורת ההיגיון‬ ‫•‬ ‫תורת ההיסק מתארת טיעונים תקפים - טיעונים ששומרים על אמיתות.‬ ‫•‬ ‫תקפות היא תכונה מבנית (תחבירית) של טיעונים‬ ‫תנאיי-קדם ללוגיקה: שפה בעלת תחביר וסמנטיקה.‬ ‫•‬ ‫תחביר – מבנה של ביטוים בשפה.‬ ‫סמנטיקה – פשר (משמעות) של הביטויים, הקשר שבין השפה לבין מה שהיא‬ ‫מדברת עליו.‬ ‫לוגיקה במדעי המחשב‬ ‫מחשב מחקה יכולת שכלית (היגיון)‬ ‫•‬ ‫תוכנית מחשב - סוג של הוכחה.‬ ‫•‬ ‫תורת התכנות- לוגיקה שימושית. אימות תוכנה.‬ ‫תכנות לוגי.‬ ‫•‬ ‫בינה מלאכותית‬ ‫•‬ ‫טיעונים‬ ‫אם רכבת מאחרת וגם אין מוניות זמינות בתחנה, אז אלי מאחר לפגישה.‬ ‫•‬ ‫אבל אלי לא איחר לפגישה למרות שרכבת איחרה. לכן היו מוניות זמינות‬ ‫בתחנה.‬ ‫אם יורד גשם ולטלי אין מטריה איתה, אז היא מצטננת. טלי לא הצטננה‬ ‫•‬ ‫למרות שהיה גשם. לכן לטלי הייתה מטריה.‬ ‫מבנה הטיעון:‬ ‫אם ‪ p‬וגם לא ‪ ,q‬אז ‪ .r‬לא ‪ r‬ו-‪ .p‬לכן ‪.q‬‬ ‫‪(p¬q(→r, ¬r  p├ q‬‬
  • 2.
    ‫תחשיב הפסוקים‬ ‫נדון בפסוקיי חיווי, אשר יש להם בדיוק אחד משני ערכים: אמת (‪)True‬‬ ‫או שקר (‪.)False‬‬ ‫1. קנדה היא מדינה.‬ ‫2. משה הוא כלב‬ ‫3. סגור את הדלת!‬ ‫4. ‪|X| = X‬‬ ‫5. משפט זה הוא שקר.‬ ‫מפסוקים יסודיים ניתן לבנות פסוקים מורכבים בתוספת מילות חיבור כגון:‬ ‫ו, או, לא, וכו':‬ ‫קנדה היא מדינה ומשה הוא כלב.‬ ‫קשרים לוגיים‬ ‫"לא ‪."P‬‬ ‫שלילה (‪: ¬P )negation‬‬ ‫•‬ ‫"‪ P‬ו- ‪.“Q‬‬ ‫קוניונקציה (‪ ,conjunction‬גימום)‪:PQ‬‬ ‫•‬ ‫“‪ P‬או ‪.“Q‬‬ ‫דיסיונקציה (‪ ,disjunction‬איווי) ‪: PQ‬‬ ‫•‬ ‫אימפליקציה (‪ ,implication‬אימוז) ‪" : P→Q‬אם ‪ P‬אז ‪.“Q‬‬ ‫•‬ ‫"‪ P‬אם ורק אם ‪.“Q‬‬ ‫שקילות (‪: P↔Q )equivalence‬‬ ‫•‬ ‫תחביר‬ ‫הגדרה: נוסחא נקראת בנויה היטב (‪ )well-formed formula‬אם ניתן ליצור אותה‬ ‫לפי החוקים הבאים:‬ ‫1. כל פסוק אטומי...,‪ p,q‬הוא נוסחא בנויה היטב.‬ ‫2. קבוע ‪ ‬הוא נוסחא בנויה היטב.‬ ‫3. אם ‪ A‬ו- ‪ B‬הן נוסחאות בנויות היטב,‬ ‫אז גם (‪ (AB), (A  B), (A  B), (A  B) , )¬A‬הן נוסחאות בנויות היטב.‬ ‫4. כל נוסחא בנויה היטב ניתן ליצור במס' סופי של צעדים ע"י שימוש בחוקים 3-1.‬
  • 3.
    ‫פסוקים מורכבים‬ ‫דוגמא: )‪)¬)¬p(( ,(pq) ,((pq))¬p(( ,))¬p(q‬‬ ‫‪((p  q)), (p  q  r), ( p‬‬ ‫ולא‬ ‫משפט (בלי הוכחה) (קריאה יחידה) כל נוסחה שייכת בדיוק ל1 מהסוגים הבאים:‬ ‫פסוק אטומי.‬ ‫1.‬ ‫)‪ )¬A‬עבור נוסחה אחת ויחידה ‪.A‬‬ ‫2.‬ ‫)‪ (A ○ B‬עבור קשר בינארי ○ אחד ויחיד ונוסחאות יחידות ‪ A‬ו-‪.B‬‬ ‫3.‬ ‫אינדוקציה על נוסחאות‬ ‫אם תכונה ‪ P‬נכונה לכל הפסוקים האטומיים, ומהנחה ש-‪ P‬נכונה לנוסחאות ‪ A‬ו-‬ ‫‪ B‬נובע ש-‪ P‬נכונה ל-(‪ ,(AB), (AB), (AB), (AB), )¬A‬אזי ‪P‬‬ ‫נכונה לכל נוסחא בנויה היטב.‬ ‫הסכם: אפשר להשמיט סוגריים חיצוניות וסוגריים‬ ‫עבור ¬. לדוגמא נרשום ‪ ¬PQ‬במקום )‪))¬P(Q‬‬ ‫הצרנה‬ ‫זהו מקס או שההוא מוריץ ואני ליצן: ‪p  q  r‬‬ ‫•‬ ‫אני אגיע הביתה ואביא תותים אם לא ירד גשם.‬ ‫•‬ ‫אם לא יובל ולא איל יעברו את הבחינה, גם חגי לא יעבור.‬ ‫•‬ ‫לא כולם (מהשלושה) יכשלו.‬ ‫•‬ ‫סמנטיקה‬ ‫פירוש או מודל הוא השמה }‪ - l: P  {F,T‬שיוך ערכיי אמת לפסוקים אטומיים.‬ ‫פשר של הקשרים – פונקציות אמת:‬ ‫}‪f : {F,T} n  {F,T‬‬ ‫לא כל הפסוקים בשפה טבעית הם פונקציות אמת:‬ ‫‪P ¬P‬‬ ‫"אני יודע ש-‪" ,"P‬מחר יהיה ‪."P‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫שלילה. ‪ ¬P‬אמיתי אם ורק אם ‪ P‬שקרי.‬ ‫‪T‬‬ ‫‪F‬‬ ‫קבוע שקר. ‪l()=F‬‬
  • 4.
    ‫קוניונקציה‬ ‫דיסיונקציה‬ ‫‪ PQ‬אמיתי כאשר גם ‪ P‬וגם ‪Q‬‬ ‫‪ PQ‬שיקרי כאשר גם ‪ P‬וגם ‪Q‬‬ ‫אמיתי, אחרת שקרי:‬ ‫שיקרי, אחרת אמיתי :‬ ‫‪P‬‬ ‫‪Q‬‬ ‫‪PQ‬‬ ‫‪P‬‬ ‫‪Q‬‬ ‫‪PQ‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫אימפליקציה‬ ‫שקילות‬ ‫‪P→Q‬‬ ‫‪P↔Q‬‬ ‫שקרי כאשר ‪ P‬אמיתי ו- ‪ Q‬שקרי,‬ ‫אמיתי כאשר ל- ‪ P‬ול- ‪ Q‬יש אותו‬ ‫אחרת אמיתי.‬ ‫ערך אמת, אחרת שקרי.‬ ‫‪P‬‬ ‫‪Q‬‬ ‫‪P→Q‬‬ ‫‪P‬‬ ‫‪Q‬‬ ‫‪P↔Q‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫אם 3=1+1, אז פריס‬ ‫היא בירת צרפת.‬
  • 5.
    ‫יחס ספיקות‬ ‫הגדרה. (הרחבה של פירוש לפסוקים מורכבים)‬ ‫• ‪l()=F‬‬ ‫• ‪ l)¬A(=T‬אם ורק אם ‪l(A)=F‬‬ ‫• ‪ l(AB)=T‬אם ורק אם ‪l(A)=l(B)=T‬‬ ‫• ‪ l(AB)=T‬אם ורק אם ‪ l(A)=T‬או ‪l(B)=T‬‬ ‫• ‪ l(AB)=T‬אם ורק אם ‪ l(A)=F‬או ‪l(B)=T‬‬ ‫• ‪ l)A↔B(=T‬אם ורק אם )‪l(A)=l(B‬‬ ‫פירוש ‪ l‬מספק ‪ ,A‬או ‪ l‬הוא מודל של ‪ ,A‬אם ‪l(A)=T‬‬ ‫עובדה.‬ ‫ערך האמת של פסוק מורכב היא פונקציה של ערכי האמת של הפסוקים אטומיים‬ ‫שלו (קריאה יחידה !).‬ ‫בעיות ספיקות ותקפות‬ ‫• נוסחה נקראת ספיקה (או עקבית) אם יש לה מודל. נוסחה לא ספיקה‬ ‫נקראת סתירה.‬ ‫בעיית ספיקות (‪ :)SAT problem‬האם (ומתיי) הנוסחה ספיקה? ‪ SAT‬היא‬ ‫בעיית ‪.NP‬‬ ‫• נוסחה ‪ A‬נקראת תקפה, או טאוטולוגיה, אם כל פירוש הוא מודל של ‪.A‬‬ ‫בעיית תקפות: האם נוסחה ‪ A‬תקפה?‬ ‫‪ A‬היא טאוטולוגיה אם ורק אם ‪ ¬A‬היא לא ספיקה.‬ ‫‪p q ¬ p  q‬‬ ‫טבלאות אמת‬ ‫‪F F T F T F‬‬ ‫טבלת אמת של פסוק מורכב מתארת את ערכי‬ ‫‪F T T F T T‬‬ ‫האמת של הפסוק עבור כל פרוש.‬ ‫‪T F F T F F‬‬ ‫אם הפסוק מורכב מ- ‪ m‬פסוקים אטומיים, אזי‬ ‫יש ‪ ,2m‬צרופים ובטבלת האמת שלו‬ ‫‪T T F T T T‬‬ ‫תהיינה ‪ 2m‬שורות.‬ ‫1 3 1 2‬
  • 6.
    ‫טאוטולוגיות וסתירות‬ ‫נוסחה המקבלתערך אמת ‪ T‬לכל הצבה עבור המשתנים שלה היא טאוטולוגיה.‬ ‫נוסחה המקבלת ערך ‪ F‬לכל הצבה כזאת היא סתירה.‬ ‫‪p‬‬ ‫‪¬p‬‬ ‫‪p¬p‬‬ ‫‪pp‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫ניתן להוכיח טאוטולוגיות וסתירות בשיטת השלילה.‬ ‫דוגמא: )‪(AB( →)¬AB‬‬ ‫שקילות של פסוקים‬ ‫שני פסוקים נקראים שקולים אם יש להם אותם מודלים. פסוקים שקולים‬ ‫מהבאים אותה טענה.‬ ‫נסמן את השקילות ב- ‪ .‬בדוגמא: ‪.A  AA‬‬ ‫משפט: נוסחאות ‪ A‬ו- ‪ B‬שקולות אם ורק אם ‪ AB‬היא טאוטולוגיה.‬ ‫הוכחה נובעת מן ההגדרות:‬ ‫כיוון ראשון: (נניח ‪ AB‬היא טאוטולוגיה.)‬ ‫מהגדרת ‪ A  B‬נובע ש)‪ I(A  B‬אמת רק אם )‪ ,I(A)=I(B‬ומכך שזוהי‬ ‫טאוטולוגיה נובע שזה נכון לכל ‪ .I‬לכן, בהכרח ל‪ A‬ול‪ B‬יש את אותם‬ ‫המודלים. ולכן מהגדרת השקילות ‪.A  B‬‬ ‫כיוון שני: (נניח ‪)A  B‬‬ ‫אם ‪ A‬שקול ל‪ ,B‬אז יש ל‪ A‬ול‪ B‬את אותם המודלים. ומכאן שכל פירוש של‬ ‫‪ A‬שווה לכל פירוש של ‪ .B‬לכן, מהגדרת ‪ ‬כל פירוש ‪ I‬יהיה מודל של‬ ‫‪ AB‬ומכאן שזוהי טאוטולוגיה.‬
  • 7.
    ¬)p  q))¬p ¬q) -‫טבלת אמת ל‬ p q ¬ (p  q)  )¬ p  ¬ q) F F T F F F T T F T T F F T T F F T T T F T F T T F T T F F T F T T T F T T F T T T T F T F F T 3 1 2 1 4 2 1 3 2 1 ‫תוך שימוש בשקילויות יסודיות ניתן להוכיח שקילויות חדשות בלי להשתמש‬ .‫בטבלאות אמת‬ ‫שקילויות יסודיות‬ PP  P PP  P (PQ) R  P(QR) (PQ) R  P (QR) PQ  QP PQ  QP P(QR) (PQ)(PR) P(QR) (PQ)(PR) PP PTP PTT P P  ¬P  T P  ¬P  F P  (PQ)  P P  (P  Q)  P ¬(P  Q)  ¬P  ¬Q ¬(P  Q)  ¬P  ¬Q ¬¬P  P
  • 8.
    ‫שלמות פונקציונאלית‬ :‫-מקומית‬n ‫מגדירה פונקצית אמת‬A(p1,…,pn) ‫כל נוסחה‬ g(l(p1(,…,l)pn))=l(A) ,l ‫לכל‬ :‫דוגמה‬ (p  q  ¬r()¬p  q  r) p q r A T T T F T T F T T F T F T F F F F T T T F T F F F F T F F F F F
  • 9.
    ‫משפט השלמות הפונקציונאלית‬ ‫משפט(שלמות פונקציונאלית). לכל פונקצית אמת קיימת נוסחה המגדירה אותה.‬ ‫הוכחה:‬ ‫תהיה ‪ f‬פונקצית אמת ‪-n‬מקומית.‬ ‫נגדיר }‪( Hf={(a1,a2,…,an){F,T}n :f(a1,…,an)=T‬תמונה הפוכה של ‪T‬‬ ‫ביחס ל- ‪.)f‬‬ ‫לכל )‪ x=(a1,a2,…,an‬נשייך נוסחה ‪ ř1ř2… řn = Ax‬כך ש:‬ ‫‪ ři‬הוא ‪ ri‬אם ‪ ,T=ai‬אחרת ‪ ři‬הוא ‪ .¬ri‬אז פירוש ‪ l‬מספק את ‪ Ax‬אם"ם‬ ‫))‪,x=(l(r1),...,l(rn‬‬ ‫כלומר אם"ם ‪.I(r1) = a1, I(r2) = a2, …, I)rn) = an‬‬ ‫מהגדרת הקוניונקציה פירוש ‪ I‬ייתן ‪ I(Ax(=T‬אם"ם ‪ I)řj(=T‬לכל ‪ j‬ומהדרך בה‬ ‫הגדרנו את הליטרלים, זה יתקיים אך ורק מתי ש ‪ I(rj) = aj‬לכל ‪.j‬‬ ‫נגדיר ‪ Af= Ax1Ax2 … Axk‬עבור כל ‪ xi‬מ- ‪.Hf‬‬ ‫אז, לכל פירוש ‪ l(Af)=T ,l‬אם"ם קיים ‪ x  Hf‬כך ש ))‪x=(l(r1),...,l(rn‬‬ ‫זאת היות ומהגדרת הדיסיונקציה ‪ l(Af)=T‬אם"ם קיים ‪ Axj‬שעבורו‬ ‫‪l(Axj)=T‬והראנו שזה מתקיים אם"ם ))‪ ,xj=(l(r1),...,l(rn‬ז"א‬ ‫)‪.f(l(r1(,…,l)rn))=l(Af‬‬ ‫הסבר נוסף:‬ ‫‪ …. I)Axk)=T‬או ‪ I(Ax2)=T‬או ‪l(Af)=T  I(Ax1)=T‬‬ ‫אם כך, עבור ‪ j‬כלשהו:‬ ‫‪I(Axj)=T ‬‬ ‫נזכיר ש: ‪ Axj= ř1ř2… řn‬ומכאן:‬ ‫‪ …. I)řn)=T ‬וגם ‪ I(ř2)=T‬וגם ‪I(ř1ř2… řn)=T  I(ř1)=T‬‬ ‫‪I(r1)= a1, I(r2)= a2, …. , I)rn)= an ‬‬ ‫‪xj=(a1, a2, …, an)=(I(r1), I(r2(, …. , I(rn)) ‬‬ ‫נזכיר ש: ‪xjЄHf‬‬ ‫‪(I(r1), I(r2(=, …. , I)rn)) ЄHf ‬‬ ‫‪F(I(r1), I(r2(=, …. , I)rn))=T‬‬
  • 10.
    ‫קבוצות שלמות שלקשרים‬ ‫הגדרה: קבוצה של קשרים שבאמצעותם ניתן לתאר כל פונקצית אמת נקראת שלמה.‬ ‫)‪P  Q  (PQ)  (QP‬‬ ‫‪P  Q  ¬P  Q‬‬ ‫‪P  Q  ¬P  Q‬‬ ‫(‪P  Q  ¬)¬P¬Q‬‬ ‫(‪P  Q  ¬)¬P¬Q‬‬ ‫מסקנה. }‪ {¬, }, {¬, }, {¬, ‬הן קבוצות שלמות של קשרים.‬ ‫ממשפט השלמות הפונקציונאלית נובע שהקבוצה }‪ Q={¬, , ‬היא‬ ‫קבוצה שלמה של קשרים‬ ‫( השתמשנו אך ורק בקשרים אלו והראנו שאנו יכולים לבנות כל פונקציית אמת).‬ ‫ע"מ להראות שהקבוצות הנתונות הן קבוצות שלמות של קשרים, מספיק להראות‬ ‫שנוכל לבנות באמצעותן את הקבוצה ‪.Q‬‬ ‫}‪ - {¬, ‬נוכל להשיג קוניונקציה ע"י (‪P  Q  ¬)¬P¬Q‬‬ ‫}‪ - {¬, ‬נוכל להשיג דיסיונקציה ע"י (‪P  Q  ¬)¬P¬Q‬‬ ‫}‪ - {¬, ‬נוכל להשיג דיסיונקציה ע"י ‪ P  Q  ¬P  Q‬וע"י כך נבנה את }‪.{¬, ‬‬ ‫קבוצות לא שלמות של קשרים‬ ‫למה. }‪ {,,, ‬היא קבוצה לא שלמה של קשרים. (כי אי אפשר ליצור שלילה)‬ ‫הוכחה. להבדיל מ-‪ ,¬p‬כל נוסחה הבנויה מ- }‪ {,,, ‬היא אמיתית כאשר כל‬ ‫הפסוקים האטומיים שלה אמיתיים. [באינדוקציה על מספר הקשרים בנוסחה – נוכיח‬ ‫שתמיד אמת (אין מצב של שלילה)].‬ ‫טענה: כל נוסחה הבנויה מ }‪ {,,, ‬היא אמיתית כאשר כל הפסוקים‬ ‫האטומיים שלה אמיתיים.‬ ‫הוכחה: (באינדוקציה)‬ ‫בסיס: משתמשים ב-0 קשרים, אז הנוסחה היא מהצורה ‪ P‬כאשר ‪ P‬אטום ולכן‬ ‫כאשר ‪ P‬אמיתי, הנוסחה אמיתית.‬ ‫הנחה: כאשר אנו משתמשים ב-‪ n‬קשרים או פחות, אם כל הפסוקים האטומיים‬ ‫אמיתיים, אז גם הנוסחה אמיתית.‬ ‫צעד: תהי ‪ A‬נוסחה בעלת 1+‪ n‬קשרים, אם כך, ‪ A‬היא מהצורה:‬ ‫‪(a) B  C (b) B  C (c) B  C (d) B  C‬‬ ‫ב-‪ B‬וב-‪ C‬יש אם כך פחות מ1+‪ n‬קשרים, לכן, מהנחת האינדוקציה, כאשר כל‬ ‫הפסוקים האטומיים ב‪ A‬אמיתיים, אז גם ‪ B‬ו-‪ C‬אמיתיים ומכאן שלפי הגדרת‬ ‫הקשרים }‪ ,{,,, ‬גם ‪ A‬אמיתית.‬
  • 11.
    ‫קבוצות לא שלמותשל קשרים‬ ‫למה. }¬,‪ {‬היא קבוצה לא שלמה של קשרים.‬ ‫קוניונקציה יוצרת טבלת אמת בה יש מספר אי זוגי של שורות שנותנות ‪.T‬‬ ‫נוכיח באינדוקציה על כמות הקשרים כי כל טבלת אמת עם יותר מאטום אחד‬ ‫של נוסחה הבנויה מהקשרים }¬,‪ {‬הינה בעלת כמות זוגית של שורות‬ ‫המקבלות את הערך ‪ ,T‬ולכן לא ניתן לבנות קוניוקציה באמצעות קשרים אלו.‬ ‫בסיס: (קשר יחיד) הנוסחא היא מהצורה ‪ q  p‬או ‪. ¬p‬‬ ‫במצב זה טבלאות האמת יתאימו לטענה:‬ ‫‪p‬‬ ‫‪q‬‬ ‫‪¬p‬‬ ‫‪p‬‬ ‫‪q‬‬ ‫‪qp‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫הנחה: נניח כי עבור נוסחאות בעלות ‪ N‬קשרים או פחות (מהקבוצה }¬,‪,){‬‬ ‫הטענה מתקיימת, כלומר, יש כמות זוגית של שורות בטבלת האמת של‬ ‫נוסחאות אלו המקבלות ‪.T‬‬ ‫צעד: תהי ‪ A‬נוסחה בעלת 1+‪ N‬קשרים מהקבוצה }¬,‪,{‬‬ ‫א. ‪ ¬B‬ב. ‪B C‬‬ ‫אז ‪ A‬היא מהצורה:‬ ‫מקרה א. מהנחת האינדוקציה, ‪( B‬בעלת ‪ N‬קשרים) היא בעלת כמות זוגית‬ ‫של שורות בטבלת האמת שלה שנותנות ‪ .T‬ולכן, מהגדרת השלילה, ‪A‬‬ ‫תהיה בעלת מס' זוגי של שורות שיתנו ‪ ,F‬והיות ובטבלת אמת מס' זוגי של‬ ‫שורות סה"כ, אז גם מס' זוגי של שורות שיתנו ‪.T‬‬ ‫מקרה ב. נסמן ב*‪ B‬את קבוצת השורות של טבלת האמת של ‪ B‬שיתנו ‪,T‬‬ ‫ו*‪ ,C‬באופן דומה. מהנחת האינדוקציה |*‪ |B‬ו- |*‪ |C‬זוגיים, כלומר ‪,|B*| =2k‬‬ ‫‪ .|C*| =2t‬בסה"כ בטבלת האמת של ‪ A‬יש מספר זוגי של שורות ‪( 2m‬מהיותה‬ ‫טבלת אמת). כמות השורות שבהן ‪ A‬אמת היא כמות השורות בהן ‪ B‬ו-‪C‬‬ ‫שקר יחד, בנוסף לכמות השורות בהן ‪ B‬ו-‪ C‬אמת יחד, כלומר‬ ‫|*‪ 2m - |B*C*| + |B*C‬שורות בהן ‪ A‬נותנת אמת.‬ ‫אך מתקיים |*‪ ,|B*C*| = |B*| + |C*| - |B*C*| = 2k + 2t - |B*C‬ולכן‬ ‫|*‪ 2 m - |B*C*| + |B*C*| = 2 m - 2k - 2t + 2 |B*  C‬זוגי.‬
  • 12.
    ‫קבוצות קשרים שלמות‬  - "..-‫ – "לא וגם‬NAND P Q PQ PQ  ¬)PQ) ‫ מוגדרת ע"י‬PQ F F T F T T -‫קל לראות ש‬ PP  ¬P T F T (PQ)  (PQ)  ~(PQ)  PQ T T F (PP)(QQ)  PQ .‫{ היא קבוצת קשרים שלמה‬} ‫לכן‬  - "‫ – "לא או‬NOR P Q PQ PQ  ¬)PQ) ‫ מוגדר ע"י‬PQ F F T F T F P  P  ¬P :‫מתקיים‬ T F F (PQ)(PQ)  PQ (PP)(QQ)  PQ T T F .‫{ היא קבוצת קשרים שלמה‬} ‫לכן‬
  • 13.
    )gates( ‫שערים‬ a ¬a :NOT ‫שער‬ a ab :AND ‫שער‬ b a :OR ‫שער‬ b ab (ab))¬a¬b( :‫רשת לתיאור הנוסחה‬ a b a b ‫שערים נוספים‬ a ¬)ab)=¬a¬b :NAND ‫שער‬ b a ¬)ab)=¬a¬b b :NOR ‫שער‬ a :‫דוגמא‬ ab b
  • 14.
    ‫צורות נורמאליות‬ ‫אם ‪ p‬הוא פסוק אטומי, אז ‪ p‬ו-‪ ¬p‬הם ליטרלים.‬ ‫הגדרה. נוסחה בצורה דיסיונקטיבית נורמאלית )‪ (DNF‬היא דיסיונקציה של‬ ‫קוניונקציות של ליטרלים.‬ ‫דוגמא: (‪(p¬qr)(rp)  (r¬q¬p‬‬ ‫מסקנה 1. כל נוסחה שקולה לנוסחה בצורת ‪.DNF‬‬ ‫הוכחה 6. אם ‪ f‬היא פונקצית אמת המוגדרת ע"י נוסחה ‪ , B‬אז הנוסחה ‪ Af‬שבנינו‬ ‫בהוכחת משפט השלמות הפונקציונאלית שקולה ל-‪ , B‬והיא בצורת ‪.DNF‬‬ ‫דואליות‬ ‫הגדרה: תהי ‪ A‬נוסחה שמכילה ‪ , , , ,T‬ו- ¬ בלבד.‬ ‫נוסחה דואלית ל- ‪ A‬מתקבלת ממנה בהחלפת כל ‪ ‬ב- ‪ ‬וכל ‪ ‬ב- ‪ ,‬כל ‪ T‬ב-‬ ‫‪ ‬וכל ‪ ‬ב-‪T‬‬ ‫נוסחה דואלית‬ ‫נוסחה‬ ‫‪(PQ)R‬‬ ‫‪(PQ)R‬‬ ‫((‪¬)PQ)(P)¬Q¬S‬‬ ‫((‪¬)PQ)(P)¬Q¬S‬‬ ‫למת עזר. השלילה של נוסחה שקולה לנוסחה דואלית שבה כל משתנה‬ ‫מוחלף בשלילה שלו.‬ ‫שקול להפעלת דה-מורגן מבחוץ פנימה.‬ ‫דוגמא: ‪¬))PQ)R)  ¬(PQ)¬R  )¬P¬Q(¬R‬‬
  • 15.
    ‫צורות נורמליות -המשך‬ ‫‪r¬q¬p‬‬ ‫פסוקית (‪ )clause‬היא דיסיונקציה של ליטרלים:‬ ‫הגדרה. נוסחה בצורה קוניונקטיבית נורמאלית )‪ (CNF‬היא קוניונקציה של פסוקיות.‬ ‫דוגמא: )‪(p¬qr)(rp) (r¬q¬p‬‬ ‫מסקנה 2. כל נוסחה שקולה לנוסחה בצורת ‪.CNF‬‬ ‫הוכחה.‬ ‫נניח ש- ‪ f‬היא פונקצית אמת המוגדרת ע"י נוסחה ‪ ,¬B‬ו- ‪ Af‬היא הנוסחה‬ ‫המקבילה ב-‪ . DNF‬אז ‪ ¬Af‬שקולה ל-‪ ,B‬וניתן להפוך ‪ ¬Af‬לנוסחה דואלית‬ ‫בצורת ‪ CNF‬כי השלילה של נוסחה שקולה לנוסחה דואלית שבה כל משתנה‬ ‫מוחלף בשלילה שלו, כל ‪ ‬מוחלף ב ‪ ‬ולהיפך כך שעוברים מ‪ DNF‬ל‪.CNF‬‬ ‫‪CNF‬‬ ‫‪p‬‬ ‫‪q‬‬ ‫‪A‬‬ ‫)‪A  (pq) )¬p¬q‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪F‬‬ ‫‪pq‬‬ ‫כל פסוקית מתאים לשורה עם ערך ‪F‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫‪T‬‬ ‫בטבלת אמת.‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪T‬‬ ‫לכל משתנה ‪ p‬אנו רושמים ‪ p‬אם ערכו‬ ‫‪T‬‬ ‫‪T‬‬ ‫‪F‬‬ ‫‪¬p¬q‬‬ ‫‪ F‬ו- ‪ ¬p‬אם ערכו ‪ T‬בשורה זו.‬ ‫אלגוריתמים לבניית ‪ DNF‬ו-‪CNF‬‬ ‫• סילוק ‪ ‬ו- ‪;‬‬ ‫• הכנסת שלילה פנימה (צורת ‪(NNF‬‬ ‫• פריסה של ‪ ‬או ‪.‬‬ ‫‪((p  q) ¬)q  r))  s‬‬ ‫דוגמה:‬ ‫‪¬))p  q) ¬)q  r))  s‬‬ ‫‪)¬)p  q) (q  r))  s‬‬ ‫‪))¬p  ¬q( (q  r))  s‬‬ ‫)‪)¬p  ¬q  s) ((q  r)  s‬‬ ‫)‪)¬p  ¬q  s) (q  s)  (r  s‬‬
  • 16.
    ‫פסוקיות הורן‬ ‫פסוקית הורן )‪ (Horn clause‬היא פסוקית שמכילה לא יותר מליטרל חיובי אחד.‬ ‫) ‪p¬q1...¬qn (  (q1... qn)  p‬‬ ‫) ‪¬q1...¬qn (  (q1... qn)  ‬‬ ‫)‪p (Tp‬‬ ‫נוסחת הורן היא קוניונקציה של פסוקיות הורן.‬ ‫אלגוריתם הכרעה לנוסחאות הורן‬ ‫אלגוריתם ‪ HORN‬להכרעת ספיקות:‬ ‫נסמן אטומים בנוסחת הורן לפי כללים הבאים:‬ ‫נסמן ‪ T‬אם הוא קיים בנוסחה.‬ ‫1.‬ ‫אם יש פסוקית ‪ (Q1... Qn)  P‬בנוסחה כך שכל ‪ Qi‬בו מסומן,‬ ‫2.‬ ‫נסמן גם ‪ P‬ונחזור ל-2, אחרת נעבור ל-3.‬ ‫הנוסחה היא ספיקה אם ורק אם ‪ ‬לא מסומן.‬ ‫3.‬ ‫משפט. אלגוריתם ‪ HORN‬מכריע בעיית ספיקות לנוסחאות הורן.‬ ‫הוכחה. אם בנוסחת הורן ‪ A‬יש ‪ n‬אטומים, האלגוריתם מסיים בלא יותר מ-)1+‪(n‬‬ ‫צעדים. נוכיח:‬ ‫כל ‪ P‬מסומן הוא אמיתי בכל מודל של ‪ A‬באינדוקציה על מספר הצעדים של‬ ‫האלגוריתם. בסיס (צעד 1): ‪ T‬אמיתי בכל מודל.‬ ‫אם בפסוקית ‪ (Q1... Qn)P‬כל ‪ Qi‬מסומן, אז גם הפסוקית וגם כל ‪( Qi‬בהנחת‬ ‫אינדוקציה) חייבים להיות אמיתיים בכל מודל של ‪ .A‬לכן גם ‪ P‬חייב להיות‬ ‫אמיתי בכל מודל של ‪ A‬וזה נובע ישירות מהגדרת האימפליקציה.‬ ‫(א) אם ‪ ‬מסומן, ‪ A‬לא ספיקה, כי ‪ ‬לא יכול להיות אמיתי.‬ ‫(ב) אם ‪ ‬לא מסומן, נגדיר פירוש ‪ l‬שבו האטומים המסומנים, ורק הם, אמיתיים.‬ ‫נניח ש-‪ l‬הוא לא מודל של ‪ .A‬אז קיימת פסוקית ‪ (Q1... Qn)P‬של ‪ A‬שהיא‬ ‫שקרית ב- ‪.l‬אבל זה אפשרי רק כאשר כל ‪ Qi‬אמיתי (מסומן) ו-‪ P‬שקרי (לא‬ ‫מסומן) – סתירה זוהי סתירה לדרך בה הגדרנו את האלגוריתם, שכן בו אם‬ ‫)‪ (Q1... Qn‬מסומנים אז נסמן גם את ‪ P‬ולכן ‪ P‬חייב להיות אמיתי במודל ‪I‬‬ ‫ומכאן הסתירה. לכן ‪ l‬הוא מודל של ‪ A‬ומכאן ‪ A‬ספיקה.‬
  • 17.
    ‫אלגוריתם הורן –הוכחת ההכרעה‬ ‫באינדוקציה על מס' הצעדים‬ ‫(הסבר נוסף)‬ ‫טענה: במהלך האלגוריתם אנו מסמנים פסוקים ‪ P1... Pn‬הטענה שלנו היא‬ ‫שכל פסוק שסומן אמיתי בכל מודל של ‪ – A( A‬הנוסחה שלנו).‬ ‫נוכיח זאת באינדוקציה על מס' הצעדים של האלגוריתם.‬ ‫בסיס: בצעד הראשון אנחנו מסמנים את ‪ T‬ו-‪ T‬אמיתי בכל מודל.‬ ‫הנחה: בצעד ה-‪ ,n‬הפסוקים שסימנו עד כה אמיתיים בכל מודל של ‪.A‬‬ ‫צעד: בצעד ה-1+‪ n‬נבדוק אם בפסוקית מסויימת מהצורה ‪(Q1... Qn)  P‬‬ ‫כל ‪ Qi‬מסומן.‬ ‫אם כולם מסומנים אז על מנת שהפסוקית תהיה אמת בהכרח ‪ P‬חייב‬ ‫להיות אמת. אנו נמצאים ב‪ CNF‬ולכן ע"מ ש-‪ A‬יהיה אמיתי אז כל‬ ‫הפסוקיות חיבות להיות אמיתיות (מתכונת הקוניונקציה), לכן על מנת ש‪A‬‬ ‫יהיה אמיתי, ‪ P‬חייב להיות אמיתי ולכן ‪ P‬אמיתי בכל מודל של ‪.A‬‬ ‫הוכחנו שכל פסוק שמסומן באלגוריתם אמיתי בכל מודל.‬ ‫כעת נוכיח שכאשר האלגוריתם מסתיים, התשובה שהוא נותן נכונה.‬ ‫מקרה א': ‪ ‬מסומן. אם כך, אז ‪ A‬לא ספיקה, כי ‪ ‬לא יכול להיות אמיתי, וזה‬ ‫סותר את הטענה הקודמת.‬ ‫מקרה ב': ‪ ‬לא מסומן. נגדיר פירוש ‪ l‬שבו האטומים המסומנים, ורק הם,‬ ‫אמיתיים. נניח ש-‪ l‬הוא לא מודל של ‪ .A‬אז קיימת פסוקית ...‪(Q1‬‬ ‫‪ Qn)P‬של ‪ A‬שהיא שקרית ב- ‪.l‬אבל זה אפשרי רק כאשר כל ‪ Qi‬אמיתי‬ ‫(מסומן) ו-‪ P‬שקרי (לא מסומן) – סתירה זוהי סתירה לדרך בה הגדרנו את‬ ‫האלגוריתם, שכן בו אם )‪ (Q1... Qn‬מסומנים אז נסמן גם את ‪ P‬ולכן ‪P‬‬ ‫חייב להיות אמיתי במודל ‪ I‬ומכאן הסתירה.. לכן ‪ l‬הוא מודל של ‪ A‬ומכאן‬ ‫‪ A‬ספיקה.‬