(************************************************************************)

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.

Lemma below_vimp : forall (j : Int) (l : list Int) (a b : form), (forall j : Int, below_form a j -> below_form b j) -> below_form (vimp l a) j -> below_form (vimp l b) j.