- 13 Feb, 2016 6 commits
-
-
Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.
-
Robbert Krebbers authored
-
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
-
Ralf Jung authored
change statement of inv-open lemmas such that they do not force the invariant, and the 'inner step', to appear right next to each other
-
Ralf Jung authored
-
- 12 Feb, 2016 3 commits
-
-
Ralf Jung authored
The rationale is that, just like the always lemmas about uPred and the frame-preserving updates for maps and iprdos, the versions with the ' are the "more specific" versions, hard-coding more assumptions in the shape of their conclusion.
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- 11 Feb, 2016 13 commits
-
-
Robbert Krebbers authored
Also do some minor clean up.
-
Robbert Krebbers authored
-
Ralf Jung authored
globalC -> globalF New notation: iPropG, iFunctorG
-
Ralf Jung authored
Introduce the notion of "Frame Shift Assertions", and use to prove the rules about inv and auth at once for pvs and wp Yeah, the name is horrible... but on the plus side, I think it should be possible to show that atomic triples and atomic shifts are also frame shift assertions, and then we get all this stuff for them for free.
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung 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 14 commits
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
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
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
It is now slightly below implication. In order to do this, I had to change the notation from P ={E1,E2}=> Q to P >{E1,E2}=> Q because the prefer ={n is already used at level 70 for the distance of the metric.
-
- 09 Feb, 2016 4 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-