intros i g n; elim n; clear n.
intros l a nth; inversion_clear nth.
simpl in |- *.
apply My_NthO.
intros n ih l a nth.
inversion_clear nth.
simpl in |- *.
apply My_NthS.
apply ih.
assumption.
Qed.
(************************************************************************)
Fixpoint below_form (a : form) (i : Int) {struct a} : Prop :=
match a with
| Falsum => True
| Atom j => Less j i
| AndF a0 a1 => below_form a0 i /\ below_form a1 i
| OrF a0 a1 => below_form a0 i /\ below_form a1 i
| Imp a0 a1 => below_form a0 i /\ below_form a1 i
end.
Definition below_list (L : flist) (i : Int) :=
forall a : form, In a L -> below_form a i.
(********************************************************************)

(* Specifications: *)
Lemma below_form_less_below_form :
forall (a : form) (i j : Int), below_form a i -> Less i j -> below_form a j.