 21 Jul, 2016 1 commit


Robbert Krebbers authored
In particular, remove ectx_language.atomic, because it seems unused expect for a smart constructor for language.atomic.

 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 5 commits


Robbert Krebbers authored

Robbert Krebbers authored

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.

Robbert Krebbers authored

Robbert Krebbers authored

 15 Jul, 2016 1 commit


Robbert Krebbers authored

 11 Jul, 2016 1 commit


JacquesHenri Jourdan authored

 10 May, 2016 1 commit


Robbert Krebbers authored

 19 Apr, 2016 1 commit


Robbert Krebbers authored
This gets rid of the (ambiguous) notation %l, because we can declare LitLoc as a coercion. It also shortens the code.

 29 Mar, 2016 4 commits


Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored
This required a new ectx axiom: Positivity of evaluation contexts. This axiom was also present in the old Iris 1.1 development, back when it still derived lifting axioms for ectx languages.

Ralf Jung authored

 10 Mar, 2016 1 commit


Robbert Krebbers authored
Thanks to Amin Timany for the suggestion.

 05 Mar, 2016 1 commit


Ralf Jung authored

 04 Mar, 2016 1 commit


Robbert Krebbers authored

 02 Mar, 2016 1 commit


Robbert Krebbers authored
For consistency's sake.

 18 Feb, 2016 1 commit


Ralf Jung authored

 17 Feb, 2016 2 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.

 15 Feb, 2016 1 commit


Robbert Krebbers authored
It now also reshapes expressions as values for contexts that need values such as AppECtx.

 13 Feb, 2016 1 commit


Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.

 12 Feb, 2016 1 commit


Robbert Krebbers authored

 09 Feb, 2016 1 commit


Ralf Jung authored
add basic notions of literals, unary operators and binary operators, and use them to define +, , <=, ...

 03 Feb, 2016 3 commits
 02 Feb, 2016 5 commits


Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored
Notable changes: * I am now using the same names for the fields of the language record and the instances in heap_lang. In order to deal with shadowing, I have put all definitions in heap_lang.v in a module. * Instead of defining evaluation contexts recursively, these are now defined using lists. This way we can easily reuse operations on lists. For example, composition of evaluation contexts is just appending lists. Also, it allowed me to simplify the rather complicated proof of step_by_val as induction on the shape of contexts no longer results in a blowup of the number of cases. * Use better automation to prove all lemmas of heap_lang. * I have introduced tactics to invert steps and to do steps. These tactics greatly helped simplifying boring parts of lifting lemmas.
