- 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 (??).
-
- 06 Mar, 2019 1 commit
-
-
Dan Frumin authored
-
- 05 Mar, 2019 1 commit
-
-
Ralf Jung authored
-
- 24 Jan, 2019 1 commit
-
-
Maxime Dénès authored
This is in preparation for coq/coq#9274.
-
- 23 May, 2018 2 commits
-
-
Robbert Krebbers authored
This version allows one to either close or cancel the invariant after opening it.
-
Robbert Krebbers authored
-
- 03 May, 2018 1 commit
-
-
Ralf Jung authored
-
- 02 May, 2018 1 commit
-
-
Ralf Jung authored
If the accessor introduces a binder, the first Coq-level intro pattern of `iInv` is used for that binder unless the type of the binder is unit, in which case `iInv` removes it completely. Binders on the closing view shift are not (yet) supported as they are harder to smoothly eliminate in the unit case.
-
- 26 Apr, 2018 1 commit
-
-
Ralf Jung authored
New IntoAcc typeclass to decouple creating and elliminating accessors; ElimInv supports both with and without Hclose
-
- 25 Apr, 2018 2 commits
- 04 Apr, 2018 1 commit
-
-
Robbert Krebbers authored
Extend ElimModal with Boolean flags to specify whether it operates on the persistent/spatial context.
-
- 28 Mar, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 03 Mar, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 01 Mar, 2018 1 commit
-
-
Jacques-Henri Jourdan authored
This requires changing the Hint Mode of the [Frame] type class because it should not fail if its parameter is an evar, but instantiate it instead. In order to prevent all the other instances of [Frame] to intantiate this evar themselves, we create a new type class [KnwonFrame], which corresponds to the old behavior.
-
- 23 Feb, 2018 4 commits
-
-
Robbert Krebbers authored
-
Joseph Tassarotti authored
-
Robbert Krebbers authored
-
Joseph Tassarotti authored
-
- 15 Feb, 2018 1 commit
-
-
Ralf Jung authored
-
- 30 Oct, 2017 2 commits
-
-
Robbert Krebbers authored
These unfolds kind of make sense, and I was quite surprised that it used to work before. However, when changing to primitive records, these unfolds are actually needed.
-
Robbert Krebbers authored
-
- 25 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 11 Apr, 2017 2 commits
- 07 Apr, 2017 1 commit
-
-
Ralf Jung authored
-
- 27 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 05 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 03 Jan, 2017 1 commit
-
-
Ralf Jung authored
This patch was created using find -name *.v | xargs -L 1 awk -i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 ' and some minor manual editing
-
- 13 Dec, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 09 Dec, 2016 2 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- 24 Nov, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
The idea on magic wand is to use it for curried lemmas and use ⊢ for uncurried lemmas.
-
- 23 Nov, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 22 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
We do this by introducing a type class UpClose with notation ↑. The reason for this change is as follows: since `nclose : namespace → coPset` is declared as a coercion, the notation `nclose N ⊆ E` was pretty printed as `N ⊆ E`. However, `N ⊆ E` could not be typechecked because type checking goes from left to right, and as such would look for an instance `SubsetEq namespace`, which causes the right hand side to be ill-typed.
-
- 17 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 03 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
The old choice for ★ was a arbitrary: the precedence of the ASCII asterisk * was fixed at a wrong level in Coq, so we had to pick another symbol. The ★ was a random choice from a unicode chart. The new symbol ∗ (as proposed by David Swasey) corresponds better to conventional practise and matches the symbol we use on paper.
-
- 28 Oct, 2016 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 25 Oct, 2016 1 commit
-
-
Robbert Krebbers authored
There are now two proof mode tactics for dealing with modalities: - `iModIntro` : introduction of a modality - `iMod pm_trm as (x1 ... xn) "ipat"` : eliminate a modality The behavior of these tactics can be controlled by instances of the `IntroModal` and `ElimModal` type class. We have declared instances for later, except 0, basic updates and fancy updates. The tactic `iMod` is flexible enough that it can also eliminate an updates around a weakest pre, and so forth. The corresponding introduction patterns of these tactics are `!>` and `>`. These tactics replace the tactics `iUpdIntro`, `iUpd` and `iTimeless`. Source of backwards incompatability: the introduction pattern `!>` is used for introduction of arbitrary modalities. It used to introduce laters by stripping of a later of each hypotheses.
-