State Transition Specifications:ASLAN Clock
TYPE BellStatus IS (quiet, ringing), AlarmStatus IS (disabled, enabled)
VARIABLE time, alarm_time: INTEGER, bell: BellStatus, alarm: AlarmStatus
INITIAL (time = midnight) & (bell = quiet) & (alarm = disabled)
TRANSITION tick ENTRY TRUE
EXIT (time = succ(time???? ???????? & (if ((alarm_time = time) & (alarm = enabled)) then (bell = ringing) else (bell = bell?) fi) & (alarm = alarm?) & (alarm_time = alarm_time?)