// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // // The module below demonstrates the difference between conditional statements// // and conditional expressions. The module below generates the following // // guarded actions: // // * True => error = 0<i&a[i-1] // // * True => assert i-1<2 // // Since we initially have i==0, the evaluation of this module fails while // // the analogous module CondStat1.qrz works fine. To be precise, the assertion// // fails, while the rhs of assignment to variable error yields value false. // // ************************************************************************** // module CondExpr1(nat ?i,[2]bool ?a,event !error) { error = (i>0 ? (a[i+2] ? true : false) : false); } drivenby { nothing; }