תהא L⊆Σ∗ שפה ויהיו x,y∈Σ∗.
נגדיר יחס L∼שקילות מייהיל-נרוד באופ הבא: ⟺xL∼y לכל מילה z∈Σ∗ מתקיים xz∈L⟺yz∈L.
כלומר, x,y שקולות מייהיל-נרוד לפי L⟺לא קיים זנב מפריד z∈Σ∗ עבורו xz∈L וגם yz∈L או להפך.
הערה
שימו ש-L∼ הוא יחס מעל Σ∗.
בהרצאה הוכחנו כי היחס L∼ הוא יחס שקילות ולכן מחלק את Σ∗ למחלקות שקילות.
דוגמה
L={ak∣k≡0(mod2)},Σ={a}
דוגמה למילים שקולות מייהיל-נרוד:
a,aaa
נוכיח זאת: יהי z∈Σ∗
אם ∣z∣ זוגי אז ∣xz∣,∣yz∣ אי זוגיים ולכן xz,yz∈L.
אם ∣z∣ אי-זוגי אז ∣xz∣,∣yz∣ זוגיים ולכן xz,yz∈L.
כלומר, לכל z∈Σ∗ מתקיים xz∈L⟺yz∈L.
דוגמה למילים שאינן שקולות:
ε,a
נראה זנב מפריד בדמות z=a שעבורו aa∈L אך a∈L.
משפט
שפה L היא רגולרית ⟺ ביחס L∼ יש מספר סופי של מחלקות שקילות.
בנוסף, אם ביחס L∼ יש מספר סופי של מחלקות שקילות, זהו מספר המצבים המינימאלי ב-DFA עבור L.
תרגיל
הוכיחו באמצעות משפט מייהיל-נרוד שהשפה הבאה רגולרית מעל Σ={a,b}.
L={w∈Σ∗∣a מסתיימת ב-w}
הוכחה:
נוכיח כי יש מספר סופי של מחלקות שקילות ביחס L∼, ואז לפי משפט מייהיל, L רגולרית.
נטען שמחלקות השקילות הן
S1={w∈Σ∗∣a מתסיימת ב-w}S2={w∈Σ∗∣a לא מסתיימת ב-w}
נוכיח שאלו אכן מחלקות השקילות:
האיחוד הוא Σ∗: נוכיח כי S1∪S2=Σ∗ בהכלה דו כיוונית. (תרגיל לבית!)
הקבוצות לא ריקות:S1=∅ כי a∈S1 ו-S2=∅ כי b∈S2.
אם x,y∈Si אז xL∼y:
יהיו x,y∈S1. מהגדרת S1, x,y∈Σ∗ ומסתיימות ב-a. נראה כי אין ביניהן זנב מפריד ולכן xL∼y.
יהא z∈Σ∗.
א. אם z מסתיימת ב-a או z=ε אז xz,yz מסתיימות ב-a ולכן xz∈L וגם yz∈L.
ב. אם z מסתיימת ב-b אז xz,yz מסתיימות ב-b ולכן xz∈L∧yz∈L.
יהיו x,y∈S2. (המקרה שקול ולכן תרגיל לבית!!!!!)
אם x∈Si,y∈Sj עבור i=j אז xL∼y:
תהי x∈S1 ותהי y∈S2. מהגדרת הקבוצות x מסתיימת ב-a ו-y לא מסתיימת ב-a לכן z=ε הוא זנב מפריד כי נקבל xz∈L∧yz∈L
לכן, xL∼y. ∎
בהוכחת משפט מייהיל-נרוד ראיתם שניתן לייצג את המצבים באס"ד מינימלי עבור L, בעזרת מחלקות השקילות כך:
Q={[w]L∣w∈Σ∗}q0=[ε]LF={[w]∣w∈L}δ([w],σ)=[wσ]
נראה אוטומט עבור השפה מהתרגיל האחרון.
תרגיל
הוכיחו באמצעות משפט מייהיל-נרוד שהשפה הבאה אינה רגולרית:
L={a2n∣n∈N}
לכל Σ={a}.
הוכחה:
נוכי שביחס L∼ יש ∞ מחלקות שקילות, וממשפט מייהיל-נרוד נסיק ש-L לא רגולרית.
נראה שלכל m,n∈N כך ש-m<n מתקיים שמחלקות השקילות של a2n,a2m שונות.
כדי להראות זאת, מספיק להראות זנב מפריד בין המילים ואז נסיק a2mL∼a2n ולכן [a2m]=[a2n].
נבחר z=a2n∈Σ∗. נסמן x=a2n,y=a2m.
כיוון ש-n>m אז n−m>0. לכן, 1+2n−m>1 מספר אי זוגי ואז 2m(1+2n−m) לא יכול להיות חזקה של 2 כי בחזקה של 2 כל הגורמים בכפל הם מספרים זוגיים. סה"כ, yz∈L. לכן, z הוא זנב מפריד בין x,y ולכן xL∼y.
לכן, לכל m<n∈N מתקיים [a2n]=[a2m] ולכן יש ∞ מחלקות שקילות ביחס L∼. ∎
תרגיל
תהי L שפת כל המילים מעל Σ={a,b} שאינן מכילות את הרצף bb.
בנו אס"ד עבור L והוכיחו שהוא מינימלי.
נבנה אס"ד עבור L:
A=(Q,Σ,q0,δ,F)
כאשר:
Q={q0,q1,q2},Σ={a,b},F={q0,q1}
כאשר δ ניתנת להסקה מהציור.
בנינו אס"ד עבור L עם 3 מצבים. לכן, ממשפט מייהיל-נרוד נסיק שביחס L∼ יש לכל היותר 3 מחלקות שקילות.
נראה כעת, כי ביחס L∼ יש לפחות 3 מחלקות שקילות ואז נסיק שביחס יש בדיוק 3 מחלקות שקילות, ולכן A שבנינו הוא מינימאלי.
נראה זאת ע"י כך שנראה שקיימות 3 מילים שאינן שקולות ביחס L∼ ולכן נקבל שיש לפחות 3 מחלקות שקילות.
נסתכל על המילים x,y,w∈Σ∗ כאשר x=ε,y=b,w=bb.
מתקיים xL∼y כי z=b זנב מפריד שכן xz=b∈L∧yz=bb∈L.
מתקיים yL∼w כי z=ε זנב מפריד שכן yz=b∈L∧wz=bb∈L.
מתקיים xL∼w כי z=ε זנב מפריד שכן xz=ε∈L,wz=bb∈L.
לכן, קיבלנו כי יש לפחות 3 מחלקות שקילות. עם החלק הקודם נסיק שיש בדיוק 3 מחלקות שקילות. לכן, לפי משפט מייהיל-נרוד, A הוא אס"ד מינימאלי.