let K be non empty doubleLoopStr ; :: thesis: for J being Function of K,K holds
( J is isomorphism iff ( J is additive & ( for x, y being Scalar of K holds J . (x * y) = (J . x) * (J . y) ) & J . (1_ K) = 1_ K & J is one-to-one & J is onto ) )

let J be Function of K,K; :: thesis: ( J is isomorphism iff ( J is additive & ( for x, y being Scalar of K holds J . (x * y) = (J . x) * (J . y) ) & J . (1_ K) = 1_ K & J is one-to-one & J is onto ) )
A1: now
assume A2: J is isomorphism ; :: thesis: ( J is additive & ( for x, y being Scalar of K holds
( J . (x * y) = (J . x) * (J . y) & J . (1_ K) = 1_ K ) ) & J is one-to-one & J is onto )

then A3: J is monomorphism by Def12;
then J is linear by Def8;
hence ( J is additive & ( for x, y being Scalar of K holds
( J . (x * y) = (J . x) * (J . y) & J . (1_ K) = 1_ K ) ) ) by GROUP_1:def 13, GROUP_6:def 6; :: thesis: ( J is one-to-one & J is onto )
thus J is one-to-one by A3, Def8; :: thesis: J is onto
thus J is onto by A2, Def12; :: thesis: verum
end;
now
assume that
A4: ( J is additive & ( for x, y being Scalar of K holds J . (x * y) = (J . x) * (J . y) ) & J . (1_ K) = 1_ K ) and
A5: J is one-to-one and
A6: J is onto ; :: thesis: J is isomorphism
( J is multiplicative & J is unity-preserving ) by A4, GROUP_1:def 13, GROUP_6:def 6;
then J is monomorphism by A5, Def8, A4;
hence J is isomorphism by A6, Def12; :: thesis: verum
end;
hence ( J is isomorphism iff ( J is additive & ( for x, y being Scalar of K holds J . (x * y) = (J . x) * (J . y) ) & J . (1_ K) = 1_ K & J is one-to-one & J is onto ) ) by A1; :: thesis: verum