 14 Mar, 2017 1 commit


Robbert Krebbers authored
This has some advantages:  Evaluation contexts behave like a proper "Huet's zipper", and thus: + We no longer need to reverse the list of evaluation context items in the `reshape_expr` tactic. + The `fill` function becomes tailrecursive.  It gives rise to more definitional equalities in simulation proofs using binary logical relations proofs. In the case of binary logical relations, we simulate an expressions in some ambient context, i.e. `fill K e`. Now, whenever we reshape `e` by turning it into `fill K' e'`, we end up with `fill K (fill K' e')`. In order to use the rules for the expression that is being simulated, we need to turn `fill K (fill K' e')` into `fill K'' e'` for some `K'`. In case of the old `foldr`based approach, we had to rewrite using the lemma `fill_app` to achieve that. However, in case of the old `foldl`based `fill`, we have that `fill K (fill K' e')` is definitionally equal to `fill (K' ++ K) e'` provided that `K'` consists of a bunch of `cons`es (which is always the case, since we obtained `K'` by reshaping `e`). Note that this change hardly affected `heap_lang`. Only the proof of `atomic_correct` broke. I fixed this by proving a more general lemma `ectxi_language_atomic` about `ectxi`languages, which should have been there in the first place.

 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 1 commit


Ralf Jung authored

 08 Dec, 2016 2 commits


Robbert Krebbers authored

Ralf Jung authored

 29 Aug, 2016 1 commit


Robbert Krebbers authored
(which are useful in Amin's logical relations development).

 08 Aug, 2016 1 commit


Robbert Krebbers authored
This generalization is surprisingly easy in Iris 3.0, so I could not resist not doing it :).

 20 Jul, 2016 1 commit


JacquesHenri Jourdan authored
* Values are considered as atomic expressions (this does not hurt, and this makes the proofs of atomicity simpler).

 19 Jul, 2016 1 commit


Robbert Krebbers authored
I also reverted 7952bca4 since there is no need for atomic to be a boolean predicate anymore. Moreover, I introduced a hint database fsaV for solving sideconditions related to FSAs, in particular, sideconditions related to expressions being atomic.

 30 Mar, 2016 1 commit


Ralf Jung authored
and show that this is an instance of evaluation contexts
