שאלה - שפת "ויקיש" (INFERRED)

להלן נתונה תוכנית בשפת "ויקיש" (INFERRED):

let p = proc (a:?) (a 6) in (p proc (b:int) zero?(b))

ברצוננו לקבוע מהו טיפוס התוכנית (אם קיים). לשם כך, עליכם להשתמש באלגוריתם שנלמד בפרק 7 להקשת הטיפוס.

סעיף א' (10 נקודות)

הקצו לביטוי הנתון בשאלה ולתתי הביטויים שלו משתני-טיפוס מתאימים, וחברו משוואות מתאימות לביטוי הנתון ולתתי הביטויים שלו.

סעיף ב' (15 נקודות)

פתרו את המשוואות שהרכבתם בסעיף א' תוך שימוש ב- substitution ו- unification . בסיום רשמו מהו הטיפוס שאותו הקשתם עבור התוכנית הנתונה.