How to detect glitch using assertions?

Let’s skip the usual discussion here (I’m sure there’s a very good reason why your guys aren’t doing synchronous design, why you need to check combinatorial outputs, bla bla bla).

You only say that a glitch is allowed in the first 3ns, but how do you decide when a glitch is allowed again? This is something you also need to model. You can’t use concurrent assertions like this (at least probably not without a lot of extra support code). There are probably other (static?) tools out there that can help you with this.