intros x y z t h; elim h; intros H' H'0; clear h.
intro h; elim h; intros H'1 H'2; clear h.
split.
apply H'; assumption.
apply H'0; assumption.
Qed.

(* Specifications: *)
Theorem resolution :
forall (p q : Type -> Prop) (a : Type),
p a -> (forall x : Type, p x -> q x) -> q a.