(* Considered preliminaries *)
Set Implicit Arguments.
From Undecidability.HOU Require Export calculus.terms std.std.
Fixpoint sapp {X} (A: list X) (sigma: fin -> X): fin -> X :=
match A with
| nil => sigma
| a :: A => a .: sapp A sigma
end.
Notation "A .+ sigma" := (sapp A sigma) (at level 67, right associativity).

Lemma it_up_spec X n (sigma: fin -> @exp X) x:
it n up_exp_exp sigma x =
if dec2 lt x n then var_exp x else ren_exp (plus n) (sigma (x - n)).