- 15 Sep, 2020 3 commits
- 14 Sep, 2020 6 commits
- 21 Jul, 2020 2 commits
-
-
Tej Chajed authored
Preserve identifiers in binders where possible, analogous to the support for destructing existentials in !479. Fixes #336.
-
When running `iDestruct "H" as (?) "H"`, use the name of the binder in "H". For example, if "H" has type `∃ y, Φ y`, we now use `y` as the name of the variable after freshening. Previously the name was always the equivalent of running `fresh H`. The implementation achieves this by forwarding the desired identifier name through the `IntoExist` typeclass. Identifiers are serialized in Gallina by using them as the name of a function of type `ident_name := unit -> unit`.
-
- 15 Jul, 2020 3 commits
- 14 Jul, 2020 10 commits
- 02 Jul, 2020 2 commits
-
-
Simon Friis Vindum authored
-
Ralf Jung authored
-
- 29 Jun, 2020 1 commit
-
-
Ralf Jung authored
-
- 26 Jun, 2020 1 commit
-
-
Ralf Jung authored
-
- 17 Jun, 2020 1 commit
-
-
Simon Friis Vindum authored
-
- 29 May, 2020 1 commit
-
-
- it doesn't seem to conflict with anything in Ltac
-
- 28 May, 2020 1 commit
-
-
Robbert Krebbers authored
-
- 25 May, 2020 3 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- 23 May, 2020 1 commit
-
-
Robbert Krebbers authored
-
- 18 May, 2020 2 commits
- 28 Apr, 2020 1 commit
-
-
Paolo G. Giarrusso authored
-
- 25 Apr, 2020 1 commit
-
-
Abel Nieto authored
Here's one case this lemma might be useful. Suppose we want to programmatically generate namespaces for e.g. locks: ``` Definition lockN (l : loc) := nroot .@ "lock" .@ l. ``` Then to know that two such namespaces are disjoint, we need to know that the corresponding locations are distinct. For that we use the lemma here introduced. ``` Lemma ne l1 l2 v1 v2 : l1 ↦ v1 -∗ l2 ↦ v2 -∗ ⌜l1 ≠ l2⌝. Proof. iApply mapsto_mapsto_ne. (* goal ¬ ✓ 2%Qp *) by intros []. Qed. ```
-
- 24 Apr, 2020 1 commit
-
-
Robbert Krebbers authored
-