interface modelingSilent { in void e(); out void a1(); out void a2(); behaviour { void f() { f(); } void g() { bool b = false; if (b) h(); } void h() { bool b = false; if (b) g(); else a1; } bool b = false; on e: {} on inevitable: b = true; on inevitable: { if (b) a1; } on optional: { if (b) a1; else a2; } on optional: { f(); } on optional: { g(); } } }