- 16 Jan, 2018 1 commit
-
-
Robbert Krebbers authored
-
- 23 Dec, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 07 Dec, 2017 1 commit
-
-
Ralf Jung authored
-
- 05 Dec, 2017 3 commits
- 26 Nov, 2017 2 commits
-
-
David Swasey authored
-
David Swasey authored
-
- 23 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
It can be infered now.
-
- 11 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Nov, 2017 6 commits
-
-
David Swasey authored
This reverts commit 913059d2.
-
David Swasey authored
This is derived from `wp_forget_not_stuck` and a trivial preorder on stuckness bits. (The two lemmas are redundant, but I have examples where each seems more natural than the other.) I did *not* bake `wp_stuckness_mono` into `strong_mono` for two reasons. Mainly, I didn't see a nice way to combine the two proofs (beyond `cut`). Less important, changing the type of `wp_strong_mono` will break code.
-
David Swasey authored
I saw no need for `stuckness_flip`: strong atomicity always works, while weak atomicity works only for expressions that are not stuck. Since this seemed unclear, I split lemma `wp_atomic'` up into `wp_strong_atomic` (parametric in the WP's `s`) and `wp_weak_atomic` (not). The proof mode instance is stated in terms of the derived rule `wp_atomic` (parametric in `s`).
-
David Swasey authored
-
David Swasey authored
-
- 08 Nov, 2017 4 commits
-
-
David Swasey authored
-
David Swasey authored
Pull progress bit out of the WP fixpoint, make (most) wp adequacy notation only parsing, and generalize forget_progress.
-
David Swasey authored
-
David Swasey authored
-
- 04 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 25 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 25 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 20 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
This makes it easier to frame or introduce some modalities before introducing universal quantifiers.
-
- 13 Apr, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 15 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
- Allow framing of persistent hypotheses below the always modality. - Allow framing of persistent hypotheses in just one branch of a disjunction.
-
- 14 Mar, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
- Support for a `//` modifier to close the goal using `done`. - Support for framing in the `[#]` specialization pattern for persistent premises, i.e. `[# $H1 $H2]` - Add new "auto framing patterns" `[$]`, `[# $]` and `>[$]` that will try to solve the premise by framing. Hypothesis that are not framed are carried over to the next goal.
-
- 10 Mar, 2017 1 commit
-
-
Ralf Jung authored
-
- 24 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 20 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 12 Jan, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 11 Jan, 2017 1 commit
-
-
Ralf Jung authored
This approach is originally by Robbert
-
- 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
-
- 09 Dec, 2016 2 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
The WP construction now takes an invariant on states as a parameter (part of the irisG class) and no longer builds in the authoritative ownership of the entire state. When instantiating WP with a concrete language on can choose its state invariant. For example, for heap_lang we directly use `auth (gmap loc (frac * dec_agree val))`, and avoid the indirection through invariants entirely. As a result, we no longer have to carry `heap_ctx` around.
-
- 06 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.
-