intros i g a; elim a; clear a.
trivial.
intros j.
simpl in |- *.
intros less_j.
elim (equal_dec i j).
intros equal_j.
elimtype False.
apply less_irrefl with i.
apply equal_less_less with j; assumption.
trivial.
simpl in |- *.
intros a ih_a b ih_b below_ab.
rewrite ih_a.
rewrite ih_b.
trivial.
elim below_ab; trivial.
elim below_ab; trivial.
simpl in |- *.
intros a ih_a b ih_b below_ab.
rewrite ih_a.
rewrite ih_b.
trivial.
elim below_ab; trivial.
elim below_ab; trivial.
simpl in |- *.
intros a ih_a b ih_b below_ab.
rewrite ih_a.
rewrite ih_b.
trivial.
elim below_ab; trivial.
elim below_ab; trivial.
Qed.

Lemma subst_list_below :
forall (i : Int) (g : form) (l : flist),
below_list l i -> subst_list i g l = l.