intros p q; case p; case q; simpl in |- *; auto; intros p0 p1;
apply
((fun (x y : positive) (_ : positive -> positive) =>
nat_of_P_mult_morphism x y) p1 p0 (fun x => x)).
Qed.

(* Specifications: *)
Theorem Zmin_sym : forall m n : Z, Zmin n m = Zmin m n.
intros m n; unfold Zmin in |- *.