 20 Feb, 2018 2 commits


JacquesHenri Jourdan authored
Revert "Remove the domain finiteness hypothesis for the function CMRA, and put cmra_extend in Type." This reverts commit fa897ff5.

JacquesHenri Jourdan authored
The finiteness was needed to have the axiom of choice over the domain. This axiom is not needed if cmra_extend is in Type.

 07 Dec, 2017 1 commit


JacquesHenri Jourdan authored

 06 Dec, 2017 1 commit


JacquesHenri Jourdan authored
restriction in uPred_closed.

 27 Nov, 2017 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
In same spirit as the other 'primitive' types like `option`, `prod`, ...

 15 Nov, 2017 1 commit


Ralf Jung authored

 11 Nov, 2017 2 commits


Ralf Jung authored

Robbert Krebbers authored

 28 Oct, 2017 1 commit


Robbert Krebbers authored
This way, it can be used with `iApply`.

 27 Oct, 2017 1 commit


Ralf Jung authored

 26 Oct, 2017 2 commits


Robbert Krebbers authored

Robbert Krebbers authored

 25 Oct, 2017 3 commits


Robbert Krebbers authored

Robbert Krebbers authored
Rename `UCMRA` → `Ucmra` Rename `CMRA` → `Cmra` Rename `OFE` → `Ofe` (`Ofe` was already used partially, but many occurences were missing) Rename `STS` → `Sts` Rename `DRA` → `Dra`

Robbert Krebbers authored

 26 Sep, 2017 1 commit


Robbert Krebbers authored
We used to normalize the goal, and then checked whether it was of a certain shape. Since `uPred_valid P` normalized to `True ⊢ P`, there was no way of making a distinction between the two, hence `True ⊢ P` was treated as `uPred_valid P`. In this commit, I use type classes to check whether the goal is of a certain shape. Since we declared `uPred_valid` as `Typeclasses Opaque`, we can now make a distinction between `True ⊢ P` and `uPred_valid P`.

 17 Sep, 2017 1 commit


Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.

 07 Aug, 2017 1 commit


JacquesHenri Jourdan authored

 06 Aug, 2017 1 commit


JacquesHenri Jourdan authored

 13 Jun, 2017 3 commits


Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored
It can be derived, thanks to Ales for noticing!

 09 Mar, 2017 1 commit


Robbert Krebbers authored

 09 Feb, 2017 1 commit


Robbert Krebbers authored

 27 Jan, 2017 1 commit


Ralf Jung authored

 11 Jan, 2017 1 commit


Ralf Jung authored
This approach is originally by Robbert

 05 Jan, 2017 1 commit


Ralf Jung authored

 03 Jan, 2017 1 commit


Ralf Jung authored
This patch was created using find name *.v  xargs L 1 awk i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 ' and some minor manual editing

 13 Dec, 2016 1 commit


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.

 09 Dec, 2016 1 commit


Ralf Jung authored

 05 Dec, 2016 3 commits


Robbert Krebbers authored
Using this new definition we can express being contractive using a Proper. This has the following advantages:  It makes it easier to state that a function with multiple arguments is contractive (in all or some arguments).  A solve_contractive tactic can be implemented by extending the solve_proper tactic.

Robbert Krebbers authored
This removes Ralf's hack of using later_car, which is not function in the logic. Thanks to Aleš for suggesting this.

Ralf Jung authored

 02 Dec, 2016 1 commit


Robbert Krebbers authored

 25 Nov, 2016 1 commit


Ralf Jung authored

 24 Nov, 2016 1 commit


JacquesHenri Jourdan authored
The idea on magic wand is to use it for curried lemmas and use ⊢ for uncurried lemmas.

 22 Nov, 2016 3 commits


Ralf Jung authored

Robbert Krebbers authored

Ralf Jung authored
Use COFEs only for the recursive domain equation solver
