set T = the Sorts of U1;
defpred S1[ set ] means ex msf being ManySortedFunction of U1,U1 st
( $1 = msf & msf is_isomorphism U1,U1 );
consider X being set such that
A1:
for x being set holds
( x in X iff ( x in product (MSFuncs the Sorts of U1,the Sorts of U1) & S1[x] ) )
from XBOOLE_0:sch 1();
A2:
id the Sorts of U1 in product (MSFuncs the Sorts of U1,the Sorts of U1)
by Th22;
ex F being ManySortedFunction of U1,U1 st
( id the Sorts of U1 = F & F is_isomorphism U1,U1 )
by MSUALG_3:16;
then reconsider X = X as non empty set by A1, A2;
X is MSFunctionSet of the Sorts of U1,the Sorts of U1
then reconsider X = X as MSFunctionSet of the Sorts of U1,the Sorts of U1 ;
take
X
; :: thesis: for h being ManySortedFunction of U1,U1 holds
( h in X iff h is_isomorphism U1,U1 )
let h be ManySortedFunction of U1,U1; :: thesis: ( h in X iff h is_isomorphism U1,U1 )
assume A3:
h is_isomorphism U1,U1
; :: thesis: h in X
h in product (MSFuncs the Sorts of U1,the Sorts of U1)
by Th22;
hence
h in X
by A1, A3; :: thesis: verum