130 likes | 300 Vues
Formal Specifications for Complex Systems (236368) Tutorial #2. Z notation; Examples. סימונים של Zed. לא נראה: סכמות ( Schema notation ) הגדרות Definitions) ) סלים ( Bags ). נראה: מספרים Numbers) ) סימונים ( Conventions ) פעולות לוגיות ( Logic ) פונקציות ( Functions )
E N D
Formal Specifications for Complex Systems (236368)Tutorial #2 Z notation; Examples
סימונים של Zed • לא נראה: • סכמות (Schema notation) • הגדרות Definitions)) • סלים (Bags) • נראה: • מספרים Numbers)) • סימונים (Conventions) • פעולות לוגיות (Logic) • פונקציות (Functions) • פעולות על קבוצות (Sets & expressions) • יחסים (Relations) (ראה תקציר של Zed באתר הקורס)
מספרים מספרים שלמים, טבעיים וטבעיים ללא אפס פעולות חשבון כמו שאנחנו מכירים אותם יחסים בין מספרים פונקצית העוקב
Example What should be written here? What does the schema mean? ┌─── SomeAction ─────────────── SchemeName a?: SomeType a!: SomeType ├─────────────────────────── a! = a? + 2 └───────────────────────────
פעולות לוגיות - סימון לכל x מסוג T הפרדיקט p מתקיים קיים x מסוג T המקיים את הפרדיקט p קיים בדיוק x אחד מסוג T המקיים את הפרדיקט p
פונקציות dom(f) A dom(f) = A dom(f) A, One-to-one dom(f) = A, One-to-one dom(f) A, ran(f)=B dom(f) = A, ran(f)=B
פונקציות - דוגמאות (1) A = {a, b, c, d, e} B = {1, 2, 3, 4, 5} {(a 1) (b 2) (c 2)} (3) A = {a, b, c, d, e} B = {1, 2, 3, 4, 5} {(a 1) (b 2) (c 3)} (5) A = {a, b, c, d, e} B = {1, 2, 3} {(a 1) (b 2) (c 3)} (2) A = {a, b, c} B = {1, 2, 3, 4, 5} {(a 1) (b 2) (c 2)} (4) A = {a, b, c} B = {1, 2, 3, 4, 5} {(a 1) (b 2) (c 3)} (6) A = {a, b, c} B = {1, 2} {(a 1) (b 2) (c 2)}
יחסים A={1, 2, 3} B={a, b, c} R={ (1, a) (1, b) (3,c) } Not necessarily a function R;R; … ;R (n times)
יחסים (המשך) What does this mean? X = {1, 2, 3, 4, 5} Y = {a, b, c, d, e} Z = {א, ב, ג, ד} Q = {(1, a)(2, b)(3, c)(4, d)(5, e)} R = {(a, א)(b, ב)(c, ג)(d, ד)} Q;R = ?
יחסים (המשך) הסבר לא מדויק בסימון: R = {(1, a)(2, b)(3, c)(4, d)(5, e)} A = {1, 2, 3, 6} result is: A = {1, 2, 3} result is: A = {b, c, d} result is: A = {b, c, d} result is: