הגדרה: תכונה
של שפות RE היא קבוצת שפות . תכונה תיקרא תכונה טריויאלית אם מתקיים או .
סימון:
עבור תכונה S, נגדיר את הסימון הבא: .
היא שפה המכילה את קידודי כל מכונות טיורינג שהשפות
שהן מקבלות שייכות ל-.
אבחנה: אם S
טריויאלית אז .
משפט Rice: לכל תכונה לא טריויאלית נובע כי .
דוגמאות לשימושים במשפט:
נגדיר את השפה .
היא שפה המתאימה לתכונה . איננה תכונה טריויאלית:
קיימות שפות ב-RE המקיימת את : , וכמו כן קיימות שפות ב-RE שאינן מקיימות את : .
מכאן לפי משפט Rice: .
.
.
משפט Rice 2:
תהי S תכונה לא טריויאלית המקיימת , אזי מתקיים: .
כיצד משתמשים במשפט Rice כדי
להוכיח ששפה אינה ב-R?
נגדיר תכונה ונוכיח שמתקיים:
קיימת כך ש-
(ומכאן ).
קיימת כך ש- (ומכאן ).
נראה כי .
נסיק כי .
מתי לא נשתמש במשפט Rice?
קיימות שפות שקל להוכיח בעזרת
רדוקציה, אך קשה להתאימן למשפט Rice.
דוגמא: .
קל למצוא רדוקציה מ-, לדוגמא: אולם בעייתי להשתמש עבור
שפה זו במשפט Rice.
כאשר התכונה היא תכונה של מכונה ולא
של שפה. למשל: שפת קידודי כל המכונות העוצרות על הפלט הריק.
לכל שפה ב-RE שאינה מכילה את יש מ"ט שמקבלת אותה
וגם עוצרת על
ויש מ"ט שמקבלת אותה ולא עוצרת על ולכן התכונה תלויה
במכונה ולא בשפה.
החלק הראשון
בבקשה