Interview Questions on Assertions

In reply to Shubhabrata:


b[=1] // is equivalent to: 
!b[*0:$] ##1 b ##1 !b[*0:$] 

b[=0:1] ##1 a;  // is equivalent to 
b ##1 !b[*0:$] ##1 a  or // because of the empty match !b[*0] ##1 b ##1 !b[*0:$]  
!b[*1] ##1 b ##1 !b[*0:$] ##1 a

THus, !a |-> b[=0:1] ##1 a; requires that b appears either immediately or later on.