- 10 Mar, 2016 1 commit
-
-
Robbert Krebbers authored
Thanks to Amin Timany for the suggestion.
-
- 08 Mar, 2016 2 commits
- 07 Mar, 2016 2 commits
-
-
Robbert Krebbers authored
So, only use the type class for contractive functors.
-
Ralf Jung authored
Add both non-expansive and contractive functors, and bundle them for the general Iris instance as well as the global functor construction This allows us to move the \later in the user-defined functor to any place we want. In particular, we can now have "\later (iProp -> iProp)" in the ghost CMRA.
-
- 06 Mar, 2016 1 commit
-
-
Robbert Krebbers authored
Since functor instances are just used as combinators, there is really no need for functors that are not contractive.
-
- 02 Mar, 2016 1 commit
-
-
Robbert Krebbers authored
This cleans up some ad-hoc stuff and prepares for a generalization of saved propositions.
-
- 01 Mar, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 29 Feb, 2016 1 commit
-
-
Ralf Jung authored
-
- 26 Feb, 2016 4 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
It now also contains a non-expansiveness proof.
-
Robbert Krebbers authored
I have simplified the following CMRA axioms: cmra_unit_preservingN n x y : x ≼{n} y → unit x ≼{n} unit y; cmra_op_minus n x y : x ≼{n} y → x ⋅ y ⩪ x ≡{n}≡ y; By dropping off the step-index, so into: cmra_unit_preservingN x y : x ≼ y → unit x ≼ unit y; cmra_op_minus x y : x ≼ y → x ⋅ y ⩪ x ≡ y; The old axioms can be derived.
-
- 24 Feb, 2016 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This way it behaves better for discrete CMRAs.
-
Robbert Krebbers authored
-
- 20 Feb, 2016 1 commit
-
-
Ralf Jung authored
-
- 19 Feb, 2016 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This fix removes superflous white space in pretty printing. For example ✓{S n} x was pretty printed incorrectly as ✓{(S n)} x.
-
- 18 Feb, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 17 Feb, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 15 Feb, 2016 1 commit
-
-
Ralf Jung authored
-
- 13 Feb, 2016 5 commits
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.
-
Robbert Krebbers authored
Since Coq 8.4 did not backtrack on eauto premises, we used to ensure that hints like Hint Extern 0 (?x ≡{_}≡ ?y) => reflexivity. were not used for goals involving evars by writing ?x ≡{_}≡ ?y instead of _ ≡{_}≡ _. This seems to be a legacy issue that no longer applies to Coq 8.5, so I have removed these restrictions making these hints thus more powerful.
-
Ralf Jung authored
-
- 11 Feb, 2016 7 commits
-
-
Robbert Krebbers authored
Also do some minor clean up.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Instead, I separate it into a total function and a predicate describe whether the action is allowed or not. This has some advantages: * It is much easier to deal with total functions and predicates in Coq than with functions into option. * Already existing functions do not need to be wrapped. Instead, when using a local update you end up with a sensible side condition as a Coq Prop. * The definition of local updates (and all CMRA instances) no longer depend on option.
-
- 10 Feb, 2016 4 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
This way we avoid many one-off indexes and no longer need special cases for index 0 in many definitions. For example, the definition of the distance relation on option and excl has become much easier. Also, uPreds no longer need to hold at index 0. In order to make this change possible, we had to change the notions of "contractive functions" and "chains" slightly. Thanks to Aleš Bizjak and Amin Timany for suggesting this change and to help with the proofs.
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- 09 Feb, 2016 1 commit
-
-
Ralf Jung authored
-
- 08 Feb, 2016 1 commit
-
-
Robbert Krebbers authored
-