- Apr 03, 2018
-
-
Robbert Krebbers authored
The closing view shift's LHS mask is now universally quantified, which makes it easier to execute the closing view shift.
-
Robbert Krebbers authored
-
- Mar 28, 2018
-
-
Robbert Krebbers authored
-
- Feb 21, 2018
-
-
Robbert Krebbers authored
-
- Feb 07, 2018
-
-
Robbert Krebbers authored
-
- Jan 24, 2018
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This partially solves #112.
-
- Jan 23, 2018
-
-
Robbert Krebbers authored
-
- Jan 16, 2018
-
-
Robbert Krebbers authored
This used to be done by using `ElimModal` in backwards direction. Having a separate type class for this gets rid of some hacks: - Both `Hint Mode`s in forward and backwards direction for `ElimModal`. - Weird type class precedence hacks to make sure the right instance is picked. These were needed because using `ElimModal` in backwards direction caused ambiguity.
-
- Dec 23, 2017
-
-
Jacques-Henri Jourdan authored
-
- Nov 30, 2017
-
-
Robbert Krebbers authored
-
- Nov 27, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
In same spirit as the other 'primitive' types like `option`, `prod`, ...
-
- Nov 21, 2017
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- Nov 20, 2017
-
-
Robbert Krebbers authored
-
- Nov 16, 2017
-
-
Ralf Jung authored
-
- Nov 15, 2017
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
It does not really help since the main work of the proof is in showing that `cFunctor_map F (iProp_fold, iProp_unfold)` is injective, but whatever.
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
- Nov 13, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The proof mode now explicitly keeps track of anonymous hypotheses (i.e. hypotheses that are introduced by the introduction pattern `?`). Consider: Lemma foo {M} (P Q R : uPred M) : P -∗ (Q ∗ R) -∗ Q ∗ P. Proof. iIntros "? [H ?]". iFrame "H". iFrame. Qed. After the `iIntros`, the goal will be: _ : P "H" : Q _ : R --------------------------------------∗ Q ∗ P Anonymous hypotheses are displayed in a special way (`_ : P`). An important property of the new anonymous hypotheses is that it is no longer possible to refer to them by name, whereas before, anonymous hypotheses were given some arbitrary fresh name (typically prefixed by `~`). Note tactics can still operate on these anonymous hypotheses. For example, both `iFrame` and `iAssumption`, as well as the symbolic execution tactics, will use them. The only thing that is not possible is to refer to them yourself, for example, in an introduction, specialization or selection pattern. Advantages of the new approach: - Proofs become more robust as one cannot accidentally refer to anonymous hypotheses by their fresh name. - Fresh name generation becomes considerably easier. Since anonymous hypotheses are internally represented by natural numbers (of type `N`), we can just fold over the hypotheses and take the max plus one. This thus solve issue #101.
-
- Nov 11, 2017
-
-
Robbert Krebbers authored
-
- Nov 01, 2017
-
-
Robbert Krebbers authored
This solves issue #100: the proof mode notation is sometimes not printed. As Ralf discovered, the problem is that there are two overlapping notations: ```coq Notation "P ⊢ Q" := (uPred_entails P Q). ``` And the "proof mode" notation: ``` Notation "Γ '--------------------------------------' □ Δ '--------------------------------------' ∗ Q" := (of_envs (Envs Γ Δ) ⊢ Q%I). ``` These two notations overlap, so, when having a "proof mode" goal of the shape `of_envs (Envs Γ Δ) ⊢ Q%I`, how do we know which notation is Coq going to pick for pretty printing this goal? As we have seen, this choice depends on the import order (since both notations appear in different files), and as such, Coq sometimes (unintendedly) uses the first notation instead of the latter. The idea of this commit is to wrap `of_envs (Envs Γ Δ) ⊢ Q%I` into a definition so that there is no ambiguity for the pretty printer anymore.
-
- Oct 29, 2017
-
-
Robbert Krebbers authored
This commit is based on code by Amin Timany.
-
- Oct 28, 2017
-
-
Robbert Krebbers authored
This way, it can be used with `iApply`.
-
Jacques-Henri Jourdan authored
This is to be used on top of stdpp's 4b5d254e.
-
- Oct 26, 2017
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Now that we have the plain modality, we can get rid of the basic updates in the soundness statement.
-
- Oct 25, 2017
-
-
Robbert Krebbers authored
Replace/remove some occurences of `persistently` into `persistent` where the property instead of the modality is used.
-
Robbert Krebbers authored
-