לוגיקת זמן
לוגיקת זמן, או לוגיקה טמפורלית (באנגלית: Temporal Logic) היא הרחבה של הלוגיקה הקלאסית המאפשרת ביטויים הקשורים בזמן. לוגיקת זמן היא חלק מהלוגיקה המודלית.
לוגיקת זמן מאפשרת לנו לעסוק בקו זמן, ועל כן מאפשרת לנו לנסח מתמטית משפטים כמו "אני תמיד רעב", "לבסוף אהיה רעב", או "אהיה רעב עד שאוכל משהו". קו הזמן מתחלק לשני סוגים אפשריים: קו זמן לינארי, שמוגבל לקו זמן אפשרי אחד (כמו בדוגמאות לעיל), וקו זמן מסתעף (Branching logic) שמאפשר לעבוד במספר קוי זמן חלופיים במקביל. בצורה כזו אנו מניחים מראש סביבה לא צפויה שמספר דברים שונים יכולים להתרחש בה. בסביבה כזו נוכל לנסח את המשפטים: "יש אפשרות שאשאר רעב לנצח" או "יש אפשרות שלבסוף לא אהיה רעב". במידה ואנו לא יודעים אם אי פעם אוכל - שני המשפטים הם בחזקת נכונים.
אמיר פנואלי זכה בשנת 1996 בפרס טיורינג על הכנסת לוגיקת הזמן אל מדעי המחשב. כיום נעשה שימוש נרחב בלוגיקת זמן באימות תוכנה כדי להוכיח מתמטית נכונות של מערכת מחשב, זאת להבדיל מתהליך בדיקת תוכנה על ידי בודקי תוכנה אנושיים.
אופרטורים של לוגיקת זמן [עריכה]
לוגיקת זמן מכילה שני סוגי אופרטורים: אופרטורים לוגיים ואופרטורים מודליים. האופרטורים הלוגיים הם פעולות בוליאניות רגילות (
). האופרטורים המודליים שמתשמשים בהם בלוגיקת זמן מוגדרים כך:
| טקסטואלי | סימול | הגדרה | הסבר | תרשים |
| אופרטורים בינארים | ||||
U ![]() |
![]() |
![]() |
|
![]() |
R ![]() |
![]() |
![]() |
|
![]() |
| אופרטורים אונריים | ||||
N ![]() |
![]() |
![]() |
|
![]() |
F ![]() |
![]() |
![]() |
לבסוף: לבסוף |
![]() |
G ![]() |
![]() |
![]() |
תמיד: |
![]() |
A ![]() |
![]() |
|
||
E ![]() |
![]() |
קיים לפחות מסלול אחד מנקודת זמן זו שבו |
||
סימולים אלטרנטיביים:
- אופרטור R מוחלף לעתים על ידי הסימון V.
- אופרטור W משמעו U חלש ושקול ל-
. כלומר
משמעו
מתקיים עד ש-
מתקיים, או ש-
ממשיך להתקיים לעולם.
אופרטורים אונריים מוגדרים היטב כאשר (B(
מוגדר היטב. אופרטורים בינארים מוגדרים היטב כאשר (B(
ו- (C(
מוגדרים היטב.
שקילויות [עריכה]
להלן מספר שקילויות בלוגיקת זמן שניתן להסיק מההגדרות שניתנו לעיל:


















. כלומר
משמעו 









