- May 31, 2021
-
-
Paolo G. Giarrusso authored
-
- May 25, 2021
- Mar 25, 2021
-
-
Ralf Jung authored
-
- Mar 24, 2021
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
-
The syntax re-uses the existing support for pure names, namely the % and %H patterns. Using "[% H]" is like `iDestruct ... as (?) "H"` and using "[%x H]" (with the string-ident plugin) is like `iDestruct ... as (x) "H"`. This changes how these patterns are parsed. Previously, both would have been handled as conjunctions (using IntoAnd or IntoSep, depending on whether the hypothesis is persistent or not). This means it was possible for the user to use "[% H]" to destruct a pure hypothesis ⌜φ ∧ ψ⌝ and put only the first conjunct in the Gallina context, leaving the other one in the IPM; such patterns will now break, since iExistDestruct does not handle this use case.
-
- Mar 23, 2021
-
-
Fixes #404
-
- Mar 10, 2021
-
-
Ralf Jung authored
-
- Jan 27, 2021
-
-
- Jan 19, 2021
-
-
Robbert Krebbers authored
-
- Dec 04, 2020
-
-
Robbert Krebbers authored
This is an alternative to !591.
-
- Dec 02, 2020
-
-
Robbert Krebbers authored
This reverts merge request !591
-
- Dec 01, 2020
-
-
`iDestruct ("H" with "HP")` where "H" is persistent is supposed to consume "H" if it isn't a forall. Due to a bug in the tactic, this behavior was never triggered and "H" was always left alone.
-
- Nov 11, 2020
-
-
Tej Chajed authored
This test is incompatible with Coq 8.8 and Coq 8.9, but Iris no longer supports those versions.
-
Tej Chajed authored
-
Tej Chajed authored
-
- 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
-
- 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 05, 2020
-
-
Robbert Krebbers authored
-
- 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.
-
Robbert Krebbers authored
-
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
-
-
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 23, 2020
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- May 16, 2020
-
-
Tej Chajed authored
Fixes #319
-
- Apr 15, 2020
-
-
Paolo G. Giarrusso authored
Fix #302, including their ASCII variants. - Don't use quotes `'` that are not surrounded by spaces. - However, notation `'(⊢@{' PROP } )` prevents parsing `(⊢@{PROP} Q)` using the `⊢@{PROP} Q` notation. To fix that, we force left-factorization: we add a notation for `'(⊢@{' PROP } Q )`, defined to coincide with '⊢@{' PROP } Q but which can be left-factored with `( '⊢@{' PROP } )`. - Add left and right operator sections for (bi)entailment - Add tests. Also do all of the above also for ASCII notations, except for operator sections, which seem to require more discussion.
-
- Apr 14, 2020
-
-
Paolo G. Giarrusso authored
-
- Apr 07, 2020
-
-
Tej Chajed authored
-
Tej Chajed authored
Fixes #307.
-