
input_ports {
   integer A;
}

output_ports {
   integer B;
}

shared_var {
   mat2 M reader;
   mat3 H writer;
}

var {
   integer j;
}

init_comp {
   initcomp(j);
}

input_rules {
   { avail(A[i]) => j = val(A[i]); : (i 10) ; i < j } ||
   avail(A) => 
}

comp {
   foo(j);
}

output_rules {
   true => B = j; &&
   { true => B = j; : (i 10) } &&
   { { true : (j 10) (k 10) ; j < k}, g => B = j; : (i 10) } &&
   true => B = j; &&
   true => B = j;
}
