- Feb 28, 2018
-
-
Robbert Krebbers authored
-
- Feb 21, 2018
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- Feb 19, 2018
-
-
Ralf Jung authored
-
- Feb 16, 2018
-
-
Ralf Jung authored
-
- Feb 15, 2018
-
-
Ralf Jung authored
-
- Jan 13, 2018
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Dec 22, 2017
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Janno authored
-
- Dec 14, 2017
-
-
Jacques-Henri Jourdan authored
-
- Dec 04, 2017
-
-
Jacques-Henri Jourdan authored
-
- Nov 27, 2017
-
-
Robbert Krebbers authored
-
- Nov 14, 2017
-
-
Robbert Krebbers authored
-
- Oct 31, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Oct 30, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Oct 27, 2017
-
-
Robbert Krebbers authored
-
- Oct 19, 2017
- Oct 09, 2017
-
-
Ralf Jung authored
-
- Sep 25, 2017
-
-
Dan Frumin authored
-
Dan Frumin authored
Instead of writing a separate tactic lemma for each pure reduction, there is a single tactic lemma for performing all of them. The instances of PureExec can be shared between WP tactics and, e.g. symbolic execution in the ghost threadpool
-
- Sep 18, 2017
-
-
Robbert Krebbers authored
That caused some problems, e.g.: From iris.base_logic Require Export fix. Gave: Syntax error: [constr:global] expected after [export_token] (in [vernac:gallina_ext]).
-
- Aug 22, 2017
-
-
Ralf Jung authored
Implementation is by Robbert <FP/iris-atomic!5 (comment 19496)>
-
- Jun 12, 2017
-
-
Robbert Krebbers authored
-
- Jun 08, 2017
-
-
Robbert Krebbers 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 18, 2017
-
-
Robbert Krebbers authored
-
- Feb 07, 2017
-
-
Ralf Jung authored
-
- Feb 06, 2017
-
-
Ralf Jung authored
-
- Jan 17, 2017
-
-
Robbert Krebbers authored
-