This fixes the following issue by JH Jourdan:
The fact of including uPred_[...] in the module uPred (in base_logic.v),
implies that typeclasses instances are declared twice. Once in module
uPred and once in module uPred_[...]. This has the unfortunate
consequence that it has to backtrack to both instances each time the
first one fails, making failure of type class search for e.g.
PersistentP potentially exponential.
Goal ((□ ∀ (x1 x2 x3 x4 x5: nat), True -∗ True) -∗ True : iProp Σ).
Time iIntros "#H".
Undo.
Remove Hints uPred_derived.forall_persistent : typeclass_instances.
Time iIntros "#H".
Thanks to Jason Gross @ Coq club for suggesting this fix.