intros j a l; elim l; clear l.
intros; trivial.
intros i l ih b below_l.
simpl in |- *.
rewrite (ih (Imp (Atom i) b)); clear ih.
change
(vimp l (Imp (subst_form j a (Atom i)) (subst_form j a b)) =
vimp l (Imp (Atom i) (subst_form j a b))) in |- *.
rewrite (subst_form_below j a (Atom i)).
trivial.
simpl in |- *.
apply below_l.
left; trivial.
intros i0 in0.
apply below_l.
right; assumption.
Qed.

(* Specifications: *)
Lemma max_int_of_form : forall a : form, {j : Int | below_form a j}.
intros a; elim a; clear a.