interface II { in void ia(); out void oa(); behaviour { bool b = false; [!b] on ia: b = true; [b] on ia: illegal; [b] on inevitable: {b = false; oa;} } } interface IO { in void ia(); out void oa(); out void ob(); behaviour { bool b = false; [!b] on ia: b = true; [b] on ia: illegal; [b] on inevitable: {b = false; oa;} [b] on inevitable: {b = false; ob;} } } component compliance_out_async_nondet { provides II pp; requires IO rp; behaviour { bool b = false; [!b] on pp.ia(): {b = true; rp.ia();} on rp.oa(): {b = false; pp.oa();} on rp.ob(): pp.oa(); } }