intros A World le forces0 kripke k w a0 forces_a0 a1 b forces_a1_b.
simpl in |- *.
intros k' w' le_k_k' forces_a0_a1.
apply (forces_a1_b k').
assumption.
assumption.
change (forces A World le forces0 k' a1) in |- *.
apply (forces_a0_a1 k').
assumption.
elim kripke.
intros refl trans mon.
apply refl.
assumption.
apply forces_mon with (k := k); assumption.
Qed.

(* Specifications: *)
Lemma forces_a0_imp_a1_imp_b__forces_a1_imp_b :
forall (A : Set) (World : A -> Type) (le : A -> A -> Type)
(forces0 : A -> Int -> Prop),
Kripke_Model A World le forces0 ->
forall k : A,
World k ->
forall a0 : form,
forces A World le forces0 k a0 ->
forall a1 b : form,
forces A World le forces0 k (Imp (Imp a0 a1) b) ->
forces A World le forces0 k (Imp a1 b).