- 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 Jan, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 30 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 28 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
This way, it can be used with `iApply`.
-
- 25 Oct, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The advantage is that we can directly use a Coq introduction pattern `cpat` to perform actions to the pure assertion. Before, this had to be done in several steps: iDestruct ... as "[Htmp ...]"; iDestruct "Htmp" as %cpat. That is, one had to introduce a temporary name. I expect this to be quite useful in various developments as many of e.g. our invariants are written as: ∃ x1 .. x2, ⌜ pure stuff ⌝ ∗ spacial stuff.
-
- 17 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- 20 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
This makes it easier to frame or introduce some modalities before introducing universal quantifiers.
-
- 07 Aug, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 24 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 15 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 14 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 27 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 23 Jan, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 09 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 06 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
-
- 23 Dec, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 09 Dec, 2016 1 commit
-
-
Ralf Jung authored
-
- 05 Dec, 2016 1 commit
-
-
Robbert Krebbers authored
Using this new definition we can express being contractive using a Proper. This has the following advantages: - It makes it easier to state that a function with multiple arguments is contractive (in all or some arguments). - A solve_contractive tactic can be implemented by extending the solve_proper tactic.
-
- 02 Dec, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 28 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 27 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 25 Nov, 2016 5 commits
-
-
Robbert Krebbers authored
-
Jacques-Henri Jourdan authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
No longer `put box_own_prop γ P` in the invariant, it is persistent.
-
Jacques-Henri Jourdan authored
-
- 24 Nov, 2016 4 commits
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
The idea on magic wand is to use it for curried lemmas and use ⊢ for uncurried lemmas.
-
- 22 Nov, 2016 2 commits
-
-
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.
-
Ralf Jung authored
-
- 20 Nov, 2016 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 17 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 16 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
We need instances like EqDecision and Countable for it. We could redeclare those instead, though.
-
- 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.
-