• Robbert Krebbers's avatar
    Use different module structuring of uPred. · 766dbcd2
    Robbert Krebbers authored
    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.
    766dbcd2
Name
Last commit
Last update
benchmark Loading commit data...
build Loading commit data...
docs Loading commit data...
theories Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
CHANGELOG.md Loading commit data...
LICENSE Loading commit data...
LICENSE-CODE Loading commit data...
LICENSE-DOCS Loading commit data...
Makefile Loading commit data...
ProofMode.md Loading commit data...
README.md Loading commit data...
_CoqProject Loading commit data...
naming.txt Loading commit data...
opam Loading commit data...
opam.pins Loading commit data...