Cannot we have a more general instance that applies to any kind of invariant? Something like:
```coq
ElimInv φ P ?? Pinv Pout ?? ?? →
ElimInv φ ⎡P⎤ ?? ⎡Pinv⎤ ⎡Pout⎤ Q Q'.
```

I spent 15 minutes thinking about something like this, but I could not come with anything like this. Please propose something if you have a better idea.

The issue is that potentially, Q and Q' are not in the embedded logic, so you cannot just use ⎡Q⎤ and ⎡Q'⎤. Btw, we have a similar problem for ElimMod, and we have to define several instances in proofmode/monpred.v to make this kinda work.

I spent 15 minutes thinking about something like this, but I could not come with anything like this. Please propose something if you have a better idea.
The issue is that potentially, `Q` and `Q'` are not in the embedded logic, so you cannot just use `⎡Q⎤` and `⎡Q'⎤`. Btw, we have a similar problem for `ElimMod`, and we have to define several instances in `proofmode/monpred.v` to make this kinda work.