intros k l.
elim l; clear l.
intros a b c forces_abc forces_a forces_b.
apply forces_abc with (k' := k); try assumption.
unfold Suc in |- *; apply successor_refl.
simpl in |- *; intros i l ih a b c forces_abc forces_a forces_b.
apply ih with (a := Imp (Atom i) a) (b := Imp (Atom i) b); try assumption.
intros k' suc1 forces_ia forces_ib.
unfold forces_t in |- *; unfold forces_t2 in |- *; simpl in |- *.
intros k'' suc2 suc3 forces_i.
change (forces_t2 k k'' c) in |- *.
apply forces_abc.
assumption.
apply (forces_ia k''); assumption.
apply (forces_ib k''); assumption.
Qed.

(* Specifications: *)
Lemma forces_vimp0 :
forall (k : kripke_tree) (l : list Int) (b : form),
(forall k' : kripke_tree, Suc k' k -> forces_t2 k k' b) ->
forces_t k (vimp l b).