- 27 Sep, 2017 3 commits
-
-
Robbert Krebbers authored
-
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`.
-
Ralf Jung 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`.
-
- 25 Sep, 2017 3 commits
-
-
Robbert Krebbers authored
This problem has been reported by Léon Gondelman. Before, when using, for example wp_alloc, in an expression like: ref (ref v) It would apply `tac_wp_alloc` to the outermost ref, after which it fails to establish that the argument `ref v` is a value. In this commit, other evaluation positions will be tried whenever it turn out that the argument of the construct is not a value. The same applies to store/cas/... I have implemented this by making use of the new `IntoVal` class.
-
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
-
- 21 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 17 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- 09 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 28 Aug, 2017 2 commits
-
-
Robbert Krebbers authored
persistent context. Given the source does not contain a box: - Before: no-op if there is a Persistent instance. - Now: no-op in all cases.
-
Robbert Krebbers authored
-
- 24 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 20 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
This makes it easier to frame or introduce some modalities before introducing universal quantifiers.
-
- 12 Jul, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 17 May, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 13 Apr, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This enables things like `iSpecialize ("H2" with "H1") in the below: "H1" : P ---------□ "H2" : □ P -∗ Q ---------∗ R
-
- 11 Apr, 2017 1 commit
-
-
Ralf Jung authored
-
- 21 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 20 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 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.
-
- 14 Mar, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
- Support for a `//` modifier to close the goal using `done`. - Support for framing in the `[#]` specialization pattern for persistent premises, i.e. `[# $H1 $H2]` - Add new "auto framing patterns" `[$]`, `[# $]` and `>[$]` that will try to solve the premise by framing. Hypothesis that are not framed are carried over to the next goal.
-
- 12 Mar, 2017 1 commit
-
-
Ralf Jung authored
-
- 11 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 10 Mar, 2017 1 commit
-
-
Ralf Jung authored
-
- 21 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
This fixes issue #72.
-
- 15 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 13 Feb, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Jacques-Henri Jourdan authored
When using [iAssert ... with ">[]"], we should not use [tac_assert_persistent], and eliminate the modality instead. This patch is still not ideal, because some modalities (e.g., later) preserve persistence.
-
- 12 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
For example, when having `"H" : ∀ x : Z, P x`, using `iSpecialize ("H" $! (0:nat))` now works. We do this by first resolving the `IntoForall` type class, and then instantiating the quantifier.
-
- 09 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 25 Jan, 2017 1 commit
-
-
Ralf Jung authored
Also add "Local" to some Default Proof Using to keep them more contained
-
- 23 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 22 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
This fixes issue #51.
-
- 17 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 06 Jan, 2017 1 commit
-
-
Ralf Jung authored
-