Canonical Frobenius_aut_rmorphism := RMorphism Frobenius_aut_is_rmorphism.
End FrobeniusAutomorphism.

(* Specifications: *)
Lemma exprDn_char x y n : [char R].-nat n -> (x + y) ^+ n = x ^+ n + y ^+ n.
Lemma rmorph_comm (S : ringType) (f : {rmorphism R -> S}) x y :
comm (f x) (f y).
Lemma scaler_prod I r (P : pred I) (F : I -> R) (G : I -> A) :
\prod_(i <- r | P i) (F i *: G i) =
\prod_(i <- r | P i) F i *: \prod_(i <- r | P i) G i.
Lemma scaler_prodl (I : finType) (S : pred I) (F : I -> A) k :
\prod_(i in S) (k *: F i)  = k ^+ #|S| *: \prod_(i in S) F i.
Lemma mulKr : {in unit, left_loop (@inv R) *%R}.
Lemma commrV x y : comm x y -> comm x y^-1.
Lemma unitrE x : (x \is a unit) = (x / x == 1).
Lemma invrK : involutive (@inv R).
Lemma invr_inj : injective (@inv R).
Lemma divrI : {in unit, right_injective (fun x y => x / y)}.
Lemma unitrMr x y : x \is a unit -> (x * y \is a unit) = (y \is a unit).
Lemma invrM : {in unit &, forall x y, (x * y)^-1 = y^-1 * x^-1}.
Lemma unitrM_comm x y :
comm x y -> (x * y \is a unit) = (x \is a unit) && (y \is a unit).
Lemma unitrX x n : x \is a unit -> x ^+ n \is a unit.
Lemma unitrX_pos x n : n > 0 -> (x ^+ n \in unit) = (x \in unit).
Lemma exprVn x n : x^-1 ^+ n = x ^- n.
Lemma exprB m n x : n <= m -> x \is a unit -> x ^+ (m - n) = x ^+ m / x ^+ n.
Lemma invr_eq0 x : (x^-1 == 0) = (x == 0).
Lemma sdivr_closed_div : sdivr_closed -> divr_closed.
Lemma divring_closedBM : divring_closed -> subring_closed S.
End ClosedPredicates.