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_term_app sigma s:
(forall x, x ∈ consts s -> R' x = None -> x ∈ C) ->
inv_term C (sigma • enc_term C s) >* inv_subst C sigma • s.