Pour tous X, Y de n(R) on a rg(XY ) ≤ min{rg(X),rg(Y )}.
Ainsi la fonction rg est solution du problème. On en déduit que pour toute fonction croissante g : [[0, n]] → R , Xg(rg X) est solution du problème.
Montrons la réciproque.
Soit f une solution du problème.
Soit X dans n (R). Pour toute P de GLn(R) on a f(PX) ≤ f(X). Comme X = P-1(PX) on a f(X) ≤ f(PX). Ainsi f(PX) = f(X). De même f(XP) = f(X).
Ainsi f(PXQ) = f(X) pour toutes P,Q inversibles. Or deux matrices X et Y ont même rang si et seulement s’il existe P et Q inversibles telles que PXQ = Y .
Il existe donc g : [[0,n]] → R telle que f(X) = g(rg(X)). Il reste à montrer que g est croissante.
Pour toute r de [[0,n]], on a g(r) = f(Jr) où Jr = Diag(Ir,On-r) (Oq est la matrice carrée nulle de taille q). Mais si r ≤ s alors JrJs = Jr et f(Jr) ≤ f(Js) donc g(r) ≤ g(s). La preuve est complète.