looks like exp_to_i4_correct needs a syneq-like relation

Unfortunately, pattern-match compilation really does create different
(though suitably equivalent) values because it introduces new bindings
and hence closure environments change. This commit introduces a
value-equivalence relation on IL4 values (slightly simpler than the
original syneq, because it requires Letrecs and Recclosures to have the
same number of definitions) and proves that evaluate_i4 respects this
relation.

To finish exp_to_i4_correct, it will be necessary to prove a shifting
theorem (which can only be proved up to the new IL4 value-equivalence
relation). Then the existing almost-complete proof of exp_to_i4_correct
will need to be generalised to also be up to this relation (and then the
final subgoal can be solved).