- Oct 01, 2020
-
-
Robbert Krebbers authored
put it into a type class `BiPureForall`. This property does not hold for embeddings of classical logic into Coq.
-
- Sep 29, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Previously, if would "cleanup" `<affine>` and `□` if the result after framing is affine and intuitionistic, respectively. This behavior was inconsistent, since similar "cleanup" was not performed for `<absorbing>` and `<persistent>`. This MR thus removes this "cleanup" of modalities. It now consistently removes the modalities `<affine>`, `<absorbing>, `<persistent>` and `□` only if the result after framing is `True` or `emp`. Since `iFrame` is already very complicated, and since its performance is sometimes suboptimal in bigger developments, @jung and I believed doing fewer "smart" things is better than the alternative, namely performing doing sophisticated "cleanup" for all modalities, which is presented in iris/iris!450
-
- Sep 28, 2020
-
-
Tej Chajed authored
A failing iIntros for implications should prettify the identifier before printing, and iIntros on something that isn't a wand or implication should say what couldn't be introduced (to clarify that `iIntros "HP HQ"` failed because of the HQ in particular, for example).
-
- Sep 24, 2020
-
-
Tej Chajed authored
`iDestruct H as "H1 H2"` produces an error that says the pattern should contain exactly one proper introduction pattern. When multiple patterns are provided, due to Ltac variable shadowing iDestructHypFindPat was instead reporting only the first pattern in the error message (and even that was printed as the parsed AST rather than the original string).
-
- Sep 21, 2020
-
-
Tej Chajed authored
The error handling for `iIntro (?)` and similar tactics didn't correctly report failures when the goal couldn't be turned into a universal quantifier. This is something missing from !482 due to no test triggering the error.
-
- Sep 10, 2020
-
-
Robbert Krebbers authored
The old code contained a bunch of unused spaghetti that was not cleaned up after a refactoring. @jihgfee menaged to trigger a wrong code path in the old code, but I failed to turn his test case into a self-contained one.
-
Ralf Jung authored
-
Ralf Jung authored
-
- Aug 29, 2020
- Aug 28, 2020
-
-
Ralf Jung authored
-
- Aug 12, 2020
- Jul 22, 2020
-
-
Fixes #337.
-
- Jul 21, 2020
-
-
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`.
-
- Jul 15, 2020
-
-
Robbert Krebbers authored
-
- Jul 14, 2020
-
-
Ralf Jung authored
-
- Jun 30, 2020
-
-
Simon Friis Vindum authored
-
- Jun 29, 2020
-
-
Simon Friis Vindum authored
-
- Jun 26, 2020
-
-
Ralf Jung authored
-
- Jun 12, 2020
-
-
Tej Chajed authored
Fixes #325. Also added a tests for the various `iSpecialize` error cases involving the `[%]` and `[//]` specialization patterns.
-
- May 25, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- May 24, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- May 23, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- May 07, 2020
-
-
Ralf Jung authored
-
- Apr 22, 2020
-
-
Paolo G. Giarrusso authored
-
- Apr 07, 2020
-
-
Tej Chajed authored
-
Tej Chajed authored
Fixes #307.
-
- Apr 06, 2020
-
-
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].
-
- Apr 03, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-