packages feed

SableCC2Hs-0.0.0.1: examples/Lift.mch

MACHINE Lift

ABSTRACT_VARIABLES  floor

INVARIANT  floor : 0..99 /* NAT */

ASSERTIONS floor>=0
INITIALISATION floor := 4

OPERATIONS

	inc = PRE floor<99 THEN floor := floor + 1 END ;
	
	dec = BEGIN floor := floor - 1 END;
	/* 
	result  <-- ground = BEGIN result := bool(floor=0) END
	dec = PRE floor>0 THEN floor := floor - 1 END ;  */
	
	result  <-- ground = 
	            IF floor=0 THEN
	             result := TRUE
	            ELSE
	             result := FALSE
	            END
	
END