- 15 Feb, 2018 4 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
- 14 Feb, 2018 1 commit
-
-
Ralf Jung authored
-
- 13 Feb, 2018 2 commits
-
-
Ralf Jung authored
-
Jacques-Henri Jourdan authored
-
- 12 Feb, 2018 4 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
This reverts commit 78ba9509.
-
Jacques-Henri Jourdan authored
-
Robbert Krebbers authored
This supports Iris 2 like update modalities, as used in e.g. by @jtassaro. This commit fixes issue #154.
-
- 07 Feb, 2018 1 commit
-
-
Robbert Krebbers authored
This commit implements a generic `iAlways` tactic that is not tied to `persistently`, `affinely` and `plainly` but can be instantiated with a variety of always-style modalities. In order to plug in an always-style modality, one has to decide for both the persistent and spatial what action should be performed upon introducing the modality: - Introduction is only allowed when the context is empty. - Introduction is only allowed when all hypotheses satisfy some predicate `C : PROP → Prop` (where `C` should be a type class). - Introduction will only keep the hypotheses that satisfy some predicate `C : PROP → Prop` (where `C` should be a type class). - Introduction will clear the context. - Introduction will keep the context as-if. Formally, these actions correspond to the following inductive type: ```coq Inductive always_intro_spec (PROP : bi) := | AIEnvIsEmpty | AIEnvForall (C : PROP → Prop) | AIEnvFilter (C : PROP → Prop) | AIEnvClear | AIEnvId. ``` An always-style modality is then a record `always_modality` packing together the modality with the laws it should satisfy to justify the given actions for both contexts.
-
- 25 Jan, 2018 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 24 Jan, 2018 2 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
- 23 Jan, 2018 1 commit
-
-
Jacques-Henri Jourdan authored
1- Avoid [type_term (eq_refl : @eq Type PROP PROP')] when [PROP] is not given. This has significant performance implications. 2- In th case PROP is given (i.e., only when the tactic is manually used), introduce all the foralls and lets.
-
- 22 Jan, 2018 2 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
- 19 Jan, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 18 Jan, 2018 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 16 Jan, 2018 2 commits
-
-
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.
-
Jacques-Henri Jourdan authored
-
- 13 Jan, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 12 Jan, 2018 2 commits
-
-
Robbert Krebbers authored
-
Jacques-Henri Jourdan authored
Use [notypeclasses refine] instead of eapply in iLöb and iNext, to workaround the confusion of apply wrt canonical structures.
-
- 07 Jan, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 31 Dec, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 23 Dec, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 22 Dec, 2017 5 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
- 21 Dec, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 20 Dec, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 14 Dec, 2017 1 commit
-
-
Ralf Jung authored
-
- 22 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
It used to be an inline pattern match. This also restores compatibility with Coq 8.6.1.
-
- 14 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 13 Nov, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-