SystemVerilog Assertion properties can be built with implication operators |=> and sequences ##1
For example :
property P1;
@(posedge clk)
A ##1 B |=> C ##1 D;
endproperty
Above we have used A ##1 B as an enabling sequence (antecedent) and C ##1 D as the fulfilling sequence (consequent).
I do not see why it could not be rewritten as :
property P2;
@(posedge clk)
A ##1 B ##1 C ##1 D;
endproperty
When and why would you choose implication |=> over a sequence ##1 ?