OR Construct basics in Concurrent Assertions

In reply to ben@SystemVerilog.us:

In reply to hisingh:
then all threads must be tested with its consequent for the assertion to terminate as successful.

Could you please elaborate on this ?

I am having a hard time of making sense of it logically .

For the Attempt1 at TIME : 300 , the “or” construct is behaving as “and” construct as it waits for longer sequence ( a ##1 a ##1 b |-> c ) to complete .

In the 2 paths possible ( Path1 :: Thread1 |-> c and Path2 :: Thread2 |-> c )

why is taking the longer path instead of the shorter one ?