Regarding assertion consecutive and goto ops

In reply to megamind:


b[=m] // is equivalent to 
( b [->m] ##1 !b [*0:$] ) // Thus, 
b[=1] //is equivalent to:
!b[*0:$] ##1 b ##1 !b[*0:$]
b[=2] // is equivalent to:
!b[*0:$] ##1 b ##1 !b[*0:$] ##1 b ##1 !b[*0:$]
//--------------
a[=3] ##1 b; //3 non consecutive/consecutive a and then b anytime after last a
// [Ben] Not quite true 
a[=3] ##1 b; //3 non consecutive/consecutive a and then !a until b 
// Between the last "a" and "b"  a==0 
//
// [quote]If above understanding is correct , then can we use ##5 instead of ##1 in the first case? 
// [Ben] Using a repeat of 2 for simplicity 
a[=2] ##5 b; // is same as 
!a[*0:$] ##1 a ##1 !a[*0:$] ##1 a ##1 !a[*0:$] (##5 b) 
// Between the last a and the b there could be 5 cycles where a==1
// Consider this sequence 
a  0 0 1 0 1 0  1 1 1 1 1   // 2 non-consecutive "a"s followed by the sequence (##5 b) 
b  0 0 0 0 0 0 (0 0 0 0 1)  // While (##5 b) "a" can have any value.     
b  0 0 0 0 0 0 (X X X X 1)  // While (##5 b) "b" can be x . 
b  0 0 0 0 0 (X X X X 1)  // While (##5 b) "b" can be x . 

// [quote] if we use ##1 then b should happen just after a clock cycle 
//  and not anytime after a, 
// basically what is the use of ##1 in the first case where b don't care about it
// [Ben] Not true on the statement  "b should happen just after a clock cycle" 
// TRUE for "b can happen just after a clock cycle, but if it happen later, then a==0 until b==1"