component ActionIsIllegal { provides IA pp; requires IB rp; behaviour { on pp.ia(): rp.ia(); on rp.oa(): illegal; } // Simulate ActionIsIllegal => // Action is illegal // if following trace is performed: // pp.ia // rp.ia } interface IA { in void ia(); behaviour { on ia: {} } } interface IB { in void ia(); out void oa(); behaviour { on ia: illegal; on ia: {} } }