- 05 Oct, 2018 3 commits
-
-
-
- Removing head of list of observations after each reduction step in definition of wp - Adding support for observations to state_interp and world - Applying Ralf's suggestions to previous commit (e.g. replacing /\ and -> with unicode characters)
-
-
- 03 Oct, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 18 Jun, 2018 1 commit
-
-
Ralf Jung authored
-
- 24 May, 2018 1 commit
-
-
Ralf Jung authored
-
- 23 May, 2018 1 commit
-
-
Ralf Jung authored
There's a very low risk of these conflicting with Coq's standard library
-
- 07 Dec, 2017 2 commits
- 26 Nov, 2017 1 commit
-
-
David Swasey authored
-
- 23 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Nov, 2017 3 commits
-
-
David Swasey authored
This reverts commit 913059d2.
-
David Swasey authored
-
- 08 Nov, 2017 4 commits
-
-
David Swasey authored
-
David Swasey authored
-
David Swasey authored
-
David Swasey authored
-
- 30 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 25 Oct, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The advantage is that we can directly use a Coq introduction pattern `cpat` to perform actions to the pure assertion. Before, this had to be done in several steps: iDestruct ... as "[Htmp ...]"; iDestruct "Htmp" as %cpat. That is, one had to introduce a temporary name. I expect this to be quite useful in various developments as many of e.g. our invariants are written as: ∃ x1 .. x2, ⌜ pure stuff ⌝ ∗ spacial stuff.
-
- 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.
-
- 09 Mar, 2017 1 commit
-
-
Ralf Jung authored
-
- 11 Feb, 2017 1 commit
-
-
- 24 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 06 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 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
-
- 09 Dec, 2016 3 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-