let J be non empty set ; for A, B being set
for f being Function of A,B
for g being Function of B,A st g * f = id A holds
(J => g) ** (J => f) = id (J --> A)
let A, B be set ; for f being Function of A,B
for g being Function of B,A st g * f = id A holds
(J => g) ** (J => f) = id (J --> A)
let f be Function of A,B; for g being Function of B,A st g * f = id A holds
(J => g) ** (J => f) = id (J --> A)
let g be Function of B,A; ( g * f = id A implies (J => g) ** (J => f) = id (J --> A) )
set F = (J => g) ** (J => f);
dom ((J => g) ** (J => f)) = J
by MSUALG_3:2;
then reconsider F = (J => g) ** (J => f) as ManySortedSet of J by PARTFUN1:def 2, RELAT_1:def 18;
assume A1:
g * f = id A
; (J => g) ** (J => f) = id (J --> A)
A2:
for j being object st j in J holds
F . j = id ((J --> A) . j)
then reconsider F = F as ManySortedFunction of J --> A,J --> A by PBOOLE:def 15;
for j being set st j in J holds
F . j = id ((J --> A) . j)
by A2;
hence
(J => g) ** (J => f) = id (J --> A)
by MSUALG_3:def 1; verum