- 18 Feb, 2016 3 commits
-
-
Robbert Krebbers authored
This avoids ambiguity with P and Q that we were using before for both uPreds/iProps and indexed uPreds/iProps.
-
Ralf Jung authored
-
Ralf Jung authored
-
- 17 Feb, 2016 7 commits
-
-
Robbert Krebbers authored
simplify_equality => simplify_eq simplify_equality' => simplify_eq/= simplify_map_equality => simplify_map_eq simplify_map_equality' => simplify_map_eq/= simplify_option_equality => simplify_option_eq simplify_list_equality => simplify_list_eq f_equal' => f_equal/= The /= suffixes (meaning: do simpl) are inspired by ssreflect.
-
Robbert Krebbers authored
The tactic injection H as H is doing exactly that.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- 16 Feb, 2016 12 commits
-
-
Robbert Krebbers authored
The singleton maps notation is now also more consistent with the insert <[_ := _]> _ notation for maps.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
* These type classes bundle an identifier into the global CMRA with a proof that the identifier points to the correct CMRA. Bundling allows us to get rid of many arguments everywhere. * I have setup the type classes so that we no longer have to keep track of the global CMRA identifiers. These are implicit and resolved automatically. * For heap I am also bundling the name of the heap RA instance. There always should be at most one heap instance so this does not introduce ambiguities. * We now have a "maps to" notation!
-
Ralf Jung authored
Whenever clients get this stuff out of invariants, this is much more convenient for them, compared to applying timelessness themselves. On the other hand, this makes the test proofs slightly more annoying, since they have to manually strip away that later. I am not sure if it is worth having separate lemmas (well, tactics, soon) for that. Eventually, we should have a tactic which, given "... * P * ... |- ... * \later^n P * ...", automatically gets rid of the P.
-
Robbert Krebbers authored
We now have: Π★{map Q } ... Π★{set Q } ... to differentiate between sets and maps.
-
Ralf Jung authored
-
Robbert Krebbers authored
With nicely overloaded notations for sets and maps.
-
Ralf Jung authored
-
Robbert Krebbers authored
We only use wp_value in the end if the resulting goal is yet another wp. Otherwise we may not be able to do a final view shift (as observed by Ralf).
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- 15 Feb, 2016 9 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
It now also reshapes expressions as values for contexts that need values such as AppECtx.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- 14 Feb, 2016 9 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This is shorter and more consistent with naming elsewhere.
-
Robbert Krebbers authored
This makes the proofs a lot nicer. I tried factoring out some properties about finite maps, but this was not entirely satisfactory. It would be nice to generalize from_heap_None and heap_singleton_inv_l somehow.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This works better with class interference.
-
Ralf Jung authored
-
Ralf Jung authored
-