- 30 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 25 Oct, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
I have reimplemented the tactic for introduction of ∀s/pures using type classes, which directly made it much more modular.
-
- 05 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 28 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 27 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 26 Sep, 2017 2 commits
-
-
Robbert Krebbers authored
-
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`.
-
- 21 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 28 Aug, 2017 4 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
We now first iPoseProof the lemma and instantiate its premises before trying to search for the sub-term where to apply. As a result, instantiation of the premises of the applied lemmas happens only once, instead of it being done for each sub-term as obtained by reshape_expr.
-
Robbert Krebbers authored
-
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.
-
- 04 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 12 May, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Otherwise, the tactic will fail subsequently. Besides, it was inconsistent w.r.t. the iLöb tactic, which was already doing this.
-
- 09 May, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 13 Apr, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 28 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 23 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
This fixes issue #84.
-
- 21 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 16 Mar, 2017 5 commits
-
-
Robbert Krebbers authored
This fixes issue #81.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 15 Mar, 2017 2 commits
-
-
Robbert Krebbers authored
- Allow framing of persistent hypotheses below the always modality. - Allow framing of persistent hypotheses in just one branch of a disjunction.
-
Robbert Krebbers authored
-
- 14 Mar, 2017 1 commit
-
-
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.
-
- 24 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 22 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 21 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
This fixes issue #72.
-
- 15 Feb, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 13 Feb, 2017 1 commit
-
-
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.
-