interface ITopon { in void e(); in void t(); out void a(); behaviour { bool b = false; bool c = false; on t: { a; } [b][!c] { on e: a; } [!b][!c] { on e: a; } [!c][!b] { on e: a; } } } component Topon { provides ITopon i; behaviour { bool b = false; bool c = false; on i.t(): { i.a(); } [b][!c] { on i.e(): i.a(); } [!b][!c] { on i.e(): i.a(); } [!c][!b] { on i.e(): i.a(); } } }