interface ihello { in void hello(); out void cruel(); out void world(); behaviour { bool idle = true; [idle] on hello: idle = !idle; [!idle] { on hello: illegal; on inevitable: {idle = !idle; cruel;} on inevitable: {idle = !idle; world;} } } } component async_nondet { provides ihello h; behaviour { requires dzn.async i; bool idle = true; [idle] on h.hello(): {idle = !idle; i.req();} [!idle] { on i.ack(): {idle = !idle; h.cruel();} on i.ack(): {idle = !idle; h.world();} } } }