 16 Feb, 2016 40 commits


Robbert Krebbers authored
Now that there is more of it, it deserves its own place :).

Robbert Krebbers authored
Also, put stuff in a section.

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!

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored
this uncovered that our story with respect to disjointness of namespaces is still lacking

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.

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored
We now have: Π★{map Q } ... Π★{set Q } ... to differentiate between sets and maps.

Robbert Krebbers authored
* Clearly separate the file algebra/sts in three parts: 1.) The definition of an STS, step relations, and closure stuff 2.) The construction as a disjoint RA (this module should never be used) 3.) The construction as a CMRA with many derived properties * Turn stsT into a canonical structure so that we can make more of its arguments implicit. * Rename the underlying step relation of STSs to prim_step (similar naming as for languages, but here in a module to avoid ambiguity) * Refactor program_logic/sts by moving general properties of the STS CMRA to algebra/sts.v * Make naming and use of modules in program_logic/sts more consistent with program_logic/auth and program_logic/saved_prop * Prove setoid properties of all definitions in program_logic/sts

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored
With nicely overloaded notations for sets and maps.

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

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
