- May 06, 2019
-
-
Paolo G. Giarrusso authored
-
Paolo G. Giarrusso authored
-
- Mar 05, 2019
-
-
Ralf Jung authored
-
- Jan 24, 2019
-
-
Maxime Dénès authored
This is in preparation for coq/coq#9274.
-
- Dec 10, 2018
-
-
Robbert Krebbers authored
-
- Nov 29, 2017
-
-
Robbert Krebbers authored
-
- Nov 14, 2017
-
-
Robbert Krebbers authored
-
- Oct 31, 2017
-
-
Robbert Krebbers authored
-
- Oct 30, 2017
-
-
Robbert Krebbers authored
-
- Oct 25, 2017
-
-
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
-
Robbert Krebbers authored
-
- Sep 17, 2017
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- Aug 17, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Jun 08, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Apr 07, 2017
-
-
Jacques-Henri Jourdan authored
-
- Mar 24, 2017
-
-
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.
-
- Feb 09, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Jan 27, 2017
-
-
Ralf Jung authored
-
- Jan 05, 2017
-
-
Ralf Jung authored
-
- Jan 03, 2017
-
-
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
-
- Dec 09, 2016
- Nov 29, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The rewrite auth_validN_eq was not performed in the hypothesis. It used to work in 8.5 because of magic.
-
- Nov 28, 2016
-
-
Robbert Krebbers authored
Also, use explicit unfolding lemmas for auth_valid and auth_validN. The `Arguments valid _ _ !_ /` hack did not really work when one has to deal with the valid instance of the cmra, which underneath also includes a `cmra_valid`. Declaring a similar Arguments for `cmra_valid` is a bad idea, it will also end up unfold stuff for the exclusive and option CMRA.
-
Ralf Jung authored
Proof was done by Hai & me
-
- Nov 25, 2016
-
-
Robbert Krebbers authored
-
- Nov 22, 2016
-
-
Ralf Jung authored
Use COFEs only for the recursive domain equation solver
-
- Oct 25, 2016
-
-
Robbert Krebbers authored
-
- Oct 06, 2016
-
-
Robbert Krebbers authored
-
- Oct 05, 2016
-
-
Robbert Krebbers authored
-
- Oct 03, 2016
-
-
Robbert Krebbers authored
-
- Sep 28, 2016
-
-
Robbert Krebbers authored
This allows us to factor out properties about connectives that commute with the big operators.
-
- Sep 20, 2016
-
-
Robbert Krebbers authored
-