 02 Feb, 2016 32 commits


Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored
Still, there are some other inconsistencies between these two files that may need fixing, like whether to take fork into account or not and order of arguments.

Robbert Krebbers authored
These are no longer needed, since fill is no longer a type class.

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Ralf Jung authored

Robbert Krebbers authored
Remarks: * eauto needs more fuel to automatically solve the sideconditions. * ssreflect rewrite works if we do a set (φ ..) first. No idea why.

Ralf Jung authored

Ralf Jung authored
...unfortunately, that proof actually got longer because some automation no longer works

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers 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.

 01 Feb, 2016 8 commits


Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored
This way we can more easily state lemmas for concrete languages for arbitrary global functors.

Robbert Krebbers authored
This enables us to remove a whole bunch of type annotations.
