Set Implicit Arguments.

Definition pred_le A (P Q : A->Prop) :=
  forall x, P x -> Q x.

Lemma pred_le_refl : forall A (P:A->Prop),
  pred_le P P.
Proof. unfold pred_le. auto. Qed.

Hint Resolve pred_le_refl.

Lemma test :
  forall (P1 P2:nat->Prop),
  (forall Q, pred_le (fun a => P1 a /\ P2 a) Q -> True) ->
   True.
Proof. intros. eapply H. eauto. (* used to work *)
       apply pred_le_refl. Qed.
