// Dezyne verification does not allow interaction through multiple // provided ports on a single activation trigger. These models are // intended to test interpreter handling and detection of this class // of errors. interface IA { in void ia(); out void oa(); behaviour { on ia: {} on optional: oa; } } interface IB { in void ib(); out void ob(); behaviour { bool is_active = false; on ib: is_active = true; [is_active] on inevitable: {ob; is_active = false;} } } component fork_required_out { provides IA ppa; provides IA ppb; requires IB rp; behaviour { on ppa.ia(): rp.ib(); on ppb.ia(): {} on rp.ob(): {ppa.oa(); ppb.oa();} } }