MODULE main VAR x : boolean; y : boolean; z : boolean; e : boolean; r : boolean; ASSIGN init (x) := FALSE; next (x) := !r & case e : !x; TRUE : x; esac; init (y) := FALSE; next (y) := !r & case e : y <-> !x; TRUE : y; esac; init (z) := FALSE; next (z) := !r & case e : z <-> !(x & y); TRUE : z; esac; SPEC AG !(x & y & z)