Algebraic Specifications:Algebraic CLOCK - 3
bell(init) –> quiet
bell(tick(C)) –> (if alarm_time(tick(C)) = time(tick(C)) and alarm(C) = on
then ringing else quiet)
bell(setalarm(C,T)) –> (if T = time(C) and alarm(C) = on
then ringing else quiet)
bell(enable(C)) –> (if alarm_time(C) = time(tick(C))
then ringing else quiet)
bell(disable(C)) –> quiet
alarm(init) –> off
alarm(tick(C)) –> alarm(C)
alarm(setalarm(C,T)) –> alarm(C)
alarm(enable(C)) –> (if alarm(C) = off then on)
alarm(disable(C)) –> (if alarm(C) = on then off)