- 12 Aug, 2020 1 commit
-
-
Ralf Jung authored
-
- 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`.
-
- 14 Jul, 2020 1 commit
-
-
Ralf Jung authored
-
- 30 Jun, 2020 1 commit
-
-
Simon Friis Vindum authored
-
- 29 Jun, 2020 1 commit
-
-
Simon Friis Vindum authored
-
- 12 Jun, 2020 1 commit
-
-
Tej Chajed authored
Fixes #325. Also added a tests for the various `iSpecialize` error cases involving the `[%]` and `[//]` specialization patterns.
-
- 23 May, 2020 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 07 Apr, 2020 2 commits
-
-
Tej Chajed authored
-
Tej Chajed authored
Fixes #307.
-
- 06 Apr, 2020 2 commits
-
-
Tej Chajed authored
-
Tej Chajed authored
Notably this support relies on string to identifier conversion, which works natively using Ltac2 in Coq 8.11+ and with a plugin (https://github.com/ppedrot/coq-string-ident) in Coq 8.10. To use it, you must replace intro_patterns.string_to_ident_hook with a real implementation; see https://gitlab.mpi-sws.org/iris/string-ident for a working implementation that works with Coq 8.11 (using Ltac2). The syntax is %H (within a string intro pattern). This is technically backwards-incompatible, because this was previously supported and parsed as % and H separately. To restore the old behavior, separate with a space, eg [% H].
-
- 03 Apr, 2020 1 commit
-
-
Robbert Krebbers authored
-
- 20 Mar, 2020 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
- The error messages were wrong: the goal needs to be absorbing, not the hypothesis. - The wrong failure number was used in `iAssumption`, which caused the error not to be propagated properly.
-
- 18 Mar, 2020 1 commit
-
-
Robbert Krebbers authored
-
- 18 Feb, 2020 4 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
It was already marked as deprecated in `doc/proof_mode.md`.
-
Robbert Krebbers authored
- Rename `IPureElim` -> `iPure`, `IAlwaysElim` -> `IIntuitionistic` - Drop `IAlwaysIntro` (it's just `IModalIntro`).
-
- 01 Feb, 2020 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Make handling of `AddModal` in `tac_specialize_frame` consistent with that in `tac_specialize_assert`.
-
Robbert Krebbers authored
The result of `iSpecialize ("H" with "[H1 .. Hn]")` was always put in the spatial context. This commit strenghtens this tactic by putting the result in the intuitionistic context if the following conditions hold: 1. The hypothesis `H` is persistent. 2. All the hypotheses `H1 .. Hn` are intuitionistic (or similarly, in case `[-H1 .. Hn]` is used, if all remaining hypotheses are intuitionistic). 3. If the pattern `[> ..]` for adding a modality is not used.
-
- 04 Dec, 2019 1 commit
-
-
Robbert Krebbers authored
-
- 22 Nov, 2019 1 commit
-
-
When proving `foo` through a fixpoint, Coq's guardedness checker needs to see to which arguments `foo` is applied. Opaque lemmas applied to `foo` itself prevent that, so make them transparent. * Make `IntoEmpValid` lemmas transparent. * Expose application of `IntoEmpValid` instance to its argument. * Add comment to `tac_pose_proof` This MR brings back the type of `tac_pose_proof` to the one it had before !329. Hence, this seems worth a comment.
-
- 20 Nov, 2019 1 commit
-
-
Robbert Krebbers authored
Also, rewrite `iIntoEmpValid`. Now, instead of using Ltac to traverse the type of the term and generate goals for the premises, we repeatedly apply a series of lemmas. This has the advantage that it works up to convertability, and we no longer need the `eval ...` hacks.
-
- 10 Nov, 2019 1 commit
-
-
Robbert Krebbers authored
Fix issue pointed out by @tchajed in iris/iris!330 (comment 41322)
-
- 08 Nov, 2019 1 commit
-
-
Paolo G. Giarrusso authored
-
- 07 Nov, 2019 2 commits
-
-
Paolo G. Giarrusso authored
-
Robbert Krebbers authored
-
- 13 Sep, 2019 1 commit
-
-
Jacques-Henri Jourdan authored
The general idea is to first import/export modules which are further than the current one, and then import/export modules which are close dependencies. This commit tries to use the same order of imports for every file, and describes the convention in ProofGuide.md. There is one exception, where we do not follow said convention: in program_logic/weakestpre.v, using that order would break printing of texan triples (??).
-
- 11 Sep, 2019 1 commit
-
-
Robbert Krebbers authored
This commit closes issue #265.
-
- 13 Aug, 2019 5 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Based on @Blaisorblade's suggestion.
-
- 01 Jul, 2019 1 commit
-
-
Robbert Krebbers authored
-