Canonical swapXY_rmorphism := AddRMorphism swapXY_is_multiplicative.Canonical swapXY_linear := AddLinear swapXY_is_scalable.

(* Specifications: *)
Lemma max_size_lead_coefXY u : size (lead_coef u) <= sizeY u.
Lemma sizeYE u : sizeY u = size (swapXY u).
Lemma swapXY_poly_XaY p : swapXY (poly_XaY p) = poly_XaY p.
Lemma swapXY_poly_XmY p : swapXY (poly_XmY p) = poly_XmY p.
Lemma poly_XaY0 : poly_XaY 0 = 0.
Lemma poly_XmY0 : poly_XmY 0 = 0.
Lemma swapXY_map (R S : ringType) (f : {additive R -> S}) u : swapXY (u ^ map_poly f) = swapXY u ^ map_poly f.