intros j l.
elim l; clear l.
intros a b below_ab below_a.
apply below_ab; assumption.
simpl in |- *; intros i l ih a b below_ab below_a.
apply ih with (a := Imp (Atom i) a); try assumption.
intros j' below_ia.
elim below_ia; clear below_ia; intros below_i below_a0.
split.
assumption.
apply below_ab; assumption.
Qed.

(* Specifications: *)
Lemma below_vimp2 :
forall (j : Int) (l : list Int) (a b c : form),
(forall j : Int, below_form a j -> below_form b j -> below_form c j) ->
below_form (vimp l a) j ->
below_form (vimp l b) j -> below_form (vimp l c) j.