- 11 Nov, 2017 2 commits
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- 02 Nov, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Thanks to Amin Timany for an initial version of the proof.
-
- 28 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
This way, it can be used with `iApply`.
-
- 26 Oct, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Amin Timany authored
-
- 25 Oct, 2017 6 commits
-
-
Robbert Krebbers authored
Replace/remove some occurences of `persistently` into `persistent` where the property instead of the modality is used.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
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
-
- 27 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
This causes a bit of backwards incompatibility: it may now succeed with later stripping below unlocked/TC transparent definitions. This problem actually occured for `wsat`.
-
- 17 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- 23 Aug, 2017 1 commit
-
-
Ralf Jung authored
-
- 17 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 07 Aug, 2017 2 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri 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!
-
- 12 May, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 24 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
Instead, I have introduced a type class `Monoid` that is used by the big operators: Class Monoid {M : ofeT} (o : M → M → M) := { monoid_unit : M; monoid_ne : NonExpansive2 o; monoid_assoc : Assoc (≡) o; monoid_comm : Comm (≡) o; monoid_left_id : LeftId (≡) monoid_unit o; monoid_right_id : RightId (≡) monoid_unit o; }. Note that the operation is an argument because we want to have multiple monoids over the same type (for example, on `uPred`s we have monoids for `∗`, `∧`, and `∨`). However, we do bundle the unit because: - If we would not, the unit would appear explicitly in an implicit argument of the big operators, which confuses rewrite. By bundling the unit in the `Monoid` class it is hidden, and hence rewrite won't even see it. - The unit is unique. We could in principle have big ops over setoids instead of OFEs. However, since we do not have a canonical structure for bundled setoids, I did not go that way.
-
- 15 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
- Allow framing of persistent hypotheses below the always modality. - Allow framing of persistent hypotheses in just one branch of a disjunction.
-
- 09 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
Now, we never need to unfold LimitPreserving in LambdaRust, and hence the entails_lim tactic is no longer needed.
-
- 11 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 27 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 22 Jan, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 11 Jan, 2017 1 commit
-
-
Ralf Jung authored
There are certainly more places this is useful, but let's start with this simple test
-
- 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
-
- 27 Dec, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 23 Dec, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 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 1 commit
-
-
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.
-