Section EncodingLemmas.
Variable (C: list X) (n: nat).
Hypothesis (O: ord' (map (ctype X) C) < n).
Global Instance enc_proper:
Proper (equiv (@step X) ++> equiv (@step Y)) (enc_term C).
Global Instance inv_proper:
Proper (equiv (@step Y) ++> equiv (@step X)) (inv_term C).

Lemma enc_inv_motivation s:
(forall x, x ∈ consts s -> R' x = None -> x ∈ C) ->
inv_term C (enc_term C s) >* (fun x => AppR (var x) (map const C)) • s.