set X = the carrier' of S;
set AS = ((SORTS A) # ) * the Arity of S;
set RS = (SORTS A) * the ResultSort of S;
defpred S1[ set , set ] means for o being OperSymbol of S st $1 = o holds
$2 = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o)));
A1: for x being set st x in the carrier' of S holds
ex y being set st S1[x,y]
proof
let x be set ; :: thesis: ( x in the carrier' of S implies ex y being set st S1[x,y] )
assume x in the carrier' of S ; :: thesis: ex y being set st S1[x,y]
then reconsider o = x as OperSymbol of S ;
take IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) ; :: thesis: S1[x, IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o)))]
let o1 be OperSymbol of S; :: thesis: ( x = o1 implies IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) = IFEQ (the_arity_of o1),{} ,(commute (A ?. o1)),(Commute (Frege (A ?. o1))) )
assume x = o1 ; :: thesis: IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) = IFEQ (the_arity_of o1),{} ,(commute (A ?. o1)),(Commute (Frege (A ?. o1)))
hence IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) = IFEQ (the_arity_of o1),{} ,(commute (A ?. o1)),(Commute (Frege (A ?. o1))) ; :: thesis: verum
end;
consider f being Function such that
A2: ( dom f = the carrier' of S & ( for x being set st x in the carrier' of S holds
S1[x,f . x] ) ) from CLASSES1:sch 1(A1);
reconsider f = f as ManySortedSet of by A2, PARTFUN1:def 4, RELAT_1:def 18;
for x being set st x in dom f holds
f . x is Function
proof
let x be set ; :: thesis: ( x in dom f implies f . x is Function )
assume x in dom f ; :: thesis: f . x is Function
then reconsider o = x as OperSymbol of S by A2;
per cases ( the_arity_of o = {} or the_arity_of o <> {} ) ;
suppose A4: the_arity_of o = {} ; :: thesis: f . x is Function
f . x = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) by A2
.= commute (A ?. o) by A4, FUNCOP_1:def 8 ;
hence f . x is Function ; :: thesis: verum
end;
suppose A5: the_arity_of o <> {} ; :: thesis: f . x is Function
f . x = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) by A2
.= Commute (Frege (A ?. o)) by A5, FUNCOP_1:def 8 ;
hence f . x is Function ; :: thesis: verum
end;
end;
end;
then reconsider f = f as ManySortedFunction of by FUNCOP_1:def 6;
hereby :: thesis: ( not I <> {} implies ex b1 being ManySortedFunction of ((SORTS A) # ) * the Arity of S,(SORTS A) * the ResultSort of S st verum )
assume I <> {} ; :: thesis: ex f being ManySortedFunction of ((SORTS A) # ) * the Arity of S,(SORTS A) * the ResultSort of S st
for o being OperSymbol of S holds f . o = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o)))

then reconsider I' = I as non empty set ;
reconsider A' = A as MSAlgebra-Family of I',S ;
for x being set st x in the carrier' of S holds
f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x)
proof
let x be set ; :: thesis: ( x in the carrier' of S implies f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x) )
assume x in the carrier' of S ; :: thesis: f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x)
then reconsider o = x as OperSymbol of S ;
set C = Commute (Frege (A ?. o));
set F = Frege (A ?. o);
set Ar = the Arity of S;
set Rs = the ResultSort of S;
set Cr = the carrier of S;
set co = commute (A ?. o);
A7: ( dom the Arity of S = the carrier' of S & rng the Arity of S c= the carrier of S * ) by FUNCT_2:def 1, RELAT_1:def 19;
then dom (((SORTS A) # ) * the Arity of S) = dom the Arity of S by PARTFUN1:def 4;
then A8: (((SORTS A) # ) * the Arity of S) . o = ((SORTS A) # ) . (the Arity of S . o) by A7, FUNCT_1:22
.= ((SORTS A) # ) . (the_arity_of o) by MSUALG_1:def 6
.= product ((SORTS A) * (the_arity_of o)) by PBOOLE:def 19 ;
set ar = the_arity_of o;
A9: ( dom (the_arity_of o) = dom (the_arity_of o) & rng (the_arity_of o) c= the carrier of S ) by FINSEQ_1:def 4;
dom (SORTS A) = the carrier of S by PARTFUN1:def 4;
then A10: dom ((SORTS A) * (the_arity_of o)) = dom (the_arity_of o) by A9, RELAT_1:46;
A11: ( dom the ResultSort of S = the carrier' of S & rng the ResultSort of S c= the carrier of S ) by FUNCT_2:def 1, RELAT_1:def 19;
then dom ((SORTS A) * the ResultSort of S) = dom the ResultSort of S by PARTFUN1:def 4;
then A12: ((SORTS A) * the ResultSort of S) . o = (SORTS A) . (the ResultSort of S . o) by A11, FUNCT_1:22
.= (SORTS A) . (the_result_sort_of o) by MSUALG_1:def 7
.= product (Carrier A,(the_result_sort_of o)) by Def17 ;
per cases ( the_arity_of o = {} or the_arity_of o <> {} ) ;
suppose A13: the_arity_of o = {} ; :: thesis: f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x)
A14: f . x = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) by A2
.= commute (A ?. o) by A13, FUNCOP_1:def 8 ;
A15: (((SORTS A) # ) * the Arity of S) . o = {{} } by A8, A13, CARD_3:19;
A16: dom (A ?. o) = I by PARTFUN1:def 4;
set rs = the_result_sort_of o;
rng (A ?. o) c= Funcs {{} },|.A'.|
proof
let j be set ; :: according to TARSKI:def 3 :: thesis: ( not j in rng (A ?. o) or j in Funcs {{} },|.A'.| )
assume j in rng (A ?. o) ; :: thesis: j in Funcs {{} },|.A'.|
then consider a being set such that
A17: ( a in dom (A ?. o) & (A ?. o) . a = j ) by FUNCT_1:def 5;
reconsider i = a as Element of I' by A17, PARTFUN1:def 4;
A18: j = Den o,(A' . i) by A17, Th14;
A19: ( dom (Den o,(A' . i)) = Args o,(A' . i) & rng (Den o,(A' . i)) c= Result o,(A' . i) ) by FUNCT_2:def 1, RELAT_1:def 19;
A20: Args o,(A' . i) = {{} } by A13, Th11;
set So = the Sorts of (A' . i);
A21: Result o,(A' . i) = the Sorts of (A' . i) . (the_result_sort_of o) by Th10;
dom the Sorts of (A' . i) = the carrier of S by PARTFUN1:def 4;
then the Sorts of (A' . i) . (the_result_sort_of o) in rng the Sorts of (A' . i) by FUNCT_1:def 5;
then the Sorts of (A' . i) . (the_result_sort_of o) c= union (rng the Sorts of (A' . i)) by ZFMISC_1:92;
then A22: rng (Den o,(A' . i)) c= |.(A' . i).| by A19, A21, XBOOLE_1:1;
|.(A' . i).| in { |.(A' . d).| where d is Element of I' : verum } ;
then |.(A' . i).| c= union { |.(A' . d).| where d is Element of I' : verum } by ZFMISC_1:92;
then rng (Den o,(A' . i)) c= |.A'.| by A22, XBOOLE_1:1;
hence j in Funcs {{} },|.A'.| by A18, A19, A20, FUNCT_2:def 2; :: thesis: verum
end;
then A23: A ?. o in Funcs I,(Funcs {{} },|.A'.|) by A16, FUNCT_2:def 2;
then commute (A ?. o) in Funcs {{} },(Funcs I,|.A'.|) by FUNCT_6:85;
then A24: ex h being Function st
( h = commute (A ?. o) & dom h = {{} } & rng h c= Funcs I,|.A'.| ) by FUNCT_2:def 2;
rng (commute (A ?. o)) c= ((SORTS A) * the ResultSort of S) . o
proof
let j be set ; :: according to TARSKI:def 3 :: thesis: ( not j in rng (commute (A ?. o)) or j in ((SORTS A) * the ResultSort of S) . o )
assume A25: j in rng (commute (A ?. o)) ; :: thesis: j in ((SORTS A) * the ResultSort of S) . o
then consider a being set such that
A26: ( a in dom (commute (A ?. o)) & (commute (A ?. o)) . a = j ) by FUNCT_1:def 5;
reconsider h = j as Function by A26;
ex k being Function st
( k = h & dom k = I & rng k c= |.A'.| ) by A24, A25, FUNCT_2:def 2;
then A27: ( dom h = I & dom (Carrier A,(the_result_sort_of o)) = I ) by PARTFUN1:def 4;
for b being set st b in dom (Carrier A,(the_result_sort_of o)) holds
h . b in (Carrier A,(the_result_sort_of o)) . b
proof
let b be set ; :: thesis: ( b in dom (Carrier A,(the_result_sort_of o)) implies h . b in (Carrier A,(the_result_sort_of o)) . b )
assume b in dom (Carrier A,(the_result_sort_of o)) ; :: thesis: h . b in (Carrier A,(the_result_sort_of o)) . b
then reconsider i = b as Element of I' by PARTFUN1:def 4;
A28: ex U0 being MSAlgebra of S st
( U0 = A . i & (Carrier A,(the_result_sort_of o)) . i = the Sorts of U0 . (the_result_sort_of o) ) by Def16;
(A ?. o) . i = Den o,(A' . i) by Th14;
then A29: (Den o,(A' . i)) . a = h . i by A23, A24, A26, FUNCT_6:86;
dom (Den o,(A' . i)) = Args o,(A' . i) by FUNCT_2:def 1
.= {{} } by A13, Th11 ;
then ( (Den o,(A' . i)) . a in rng (Den o,(A' . i)) & rng (Den o,(A' . i)) c= Result o,(A' . i) ) by A24, A26, FUNCT_1:def 5, RELAT_1:def 19;
then h . i in Result o,(A' . i) by A29;
hence h . b in (Carrier A,(the_result_sort_of o)) . b by A28, Th10; :: thesis: verum
end;
hence j in ((SORTS A) * the ResultSort of S) . o by A12, A27, CARD_3:18; :: thesis: verum
end;
hence f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x) by A14, A15, A24, FUNCT_2:4; :: thesis: verum
end;
suppose A30: the_arity_of o <> {} ; :: thesis: f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x)
A31: f . x = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) by A2
.= Commute (Frege (A ?. o)) by A30, FUNCOP_1:def 8 ;
A33: dom (Commute (Frege (A ?. o))) = (((SORTS A) # ) * the Arity of S) . o
proof
thus dom (Commute (Frege (A ?. o))) c= (((SORTS A) # ) * the Arity of S) . o :: according to XBOOLE_0:def 10 :: thesis: (((SORTS A) # ) * the Arity of S) . o c= dom (Commute (Frege (A ?. o)))
proof
let j be set ; :: according to TARSKI:def 3 :: thesis: ( not j in dom (Commute (Frege (A ?. o))) or j in (((SORTS A) # ) * the Arity of S) . o )
assume j in dom (Commute (Frege (A ?. o))) ; :: thesis: j in (((SORTS A) # ) * the Arity of S) . o
then consider g being Function such that
A34: ( g in dom (Frege (A ?. o)) & j = commute g ) by Def6;
A35: ( dom g = I' & ( for i being Element of I' holds g . i in Args o,(A' . i) ) & rng g c= Funcs (dom (the_arity_of o)),|.A'.| ) by A34, Th17;
then A36: g in Funcs I,(Funcs (dom (the_arity_of o)),|.A'.|) by FUNCT_2:def 2;
then commute g in Funcs (dom (the_arity_of o)),(Funcs I,|.A'.|) by A30, FUNCT_6:85;
then A37: ex h being Function st
( h = commute g & dom h = dom (the_arity_of o) & rng h c= Funcs I,|.A'.| ) by FUNCT_2:def 2;
set cg = commute g;
for y being set st y in dom ((SORTS A) * (the_arity_of o)) holds
(commute g) . y in ((SORTS A) * (the_arity_of o)) . y
proof
let y be set ; :: thesis: ( y in dom ((SORTS A) * (the_arity_of o)) implies (commute g) . y in ((SORTS A) * (the_arity_of o)) . y )
assume A38: y in dom ((SORTS A) * (the_arity_of o)) ; :: thesis: (commute g) . y in ((SORTS A) * (the_arity_of o)) . y
then (the_arity_of o) . y in rng (the_arity_of o) by A10, FUNCT_1:def 5;
then reconsider s = (the_arity_of o) . y as SortSymbol of S by A9;
A39: ((SORTS A) * (the_arity_of o)) . y = (SORTS A) . s by A38, FUNCT_1:22
.= product (Carrier A,s) by Def17 ;
A40: dom (Carrier A,s) = I by PARTFUN1:def 4;
(commute g) . y in rng (commute g) by A10, A37, A38, FUNCT_1:def 5;
then consider h being Function such that
A41: ( h = (commute g) . y & dom h = I & rng h c= |.A'.| ) by A37, FUNCT_2:def 2;
for z being set st z in dom (Carrier A,s) holds
h . z in (Carrier A,s) . z
proof
let z be set ; :: thesis: ( z in dom (Carrier A,s) implies h . z in (Carrier A,s) . z )
assume z in dom (Carrier A,s) ; :: thesis: h . z in (Carrier A,s) . z
then reconsider i = z as Element of I' by PARTFUN1:def 4;
A42: ex U0 being MSAlgebra of S st
( U0 = A . i & (Carrier A,s) . i = the Sorts of U0 . s ) by Def16;
A43: ( g . i in Args o,(A' . i) & g . i in rng g ) by A35, FUNCT_1:def 5;
then consider f being Function such that
A44: ( f = g . i & dom f = dom (the_arity_of o) & rng f c= |.A'.| ) by A35, FUNCT_2:def 2;
A45: dom ((the Sorts of (A' . i) # ) * the Arity of S) = the carrier' of S by PARTFUN1:def 4;
A46: Args o,(A' . i) = ((the Sorts of (A' . i) # ) * the Arity of S) . o by MSUALG_1:def 9
.= (the Sorts of (A' . i) # ) . (the Arity of S . o) by A45, FUNCT_1:22
.= (the Sorts of (A' . i) # ) . (the_arity_of o) by MSUALG_1:def 6
.= product (the Sorts of (A' . i) * (the_arity_of o)) by PBOOLE:def 19 ;
dom the Sorts of (A' . i) = the carrier of S by PARTFUN1:def 4;
then A47: dom (the Sorts of (A' . i) * (the_arity_of o)) = dom (the_arity_of o) by A9, RELAT_1:46;
then A48: f . y in (the Sorts of (A' . i) * (the_arity_of o)) . y by A10, A38, A43, A44, A46, CARD_3:18;
(the Sorts of (A' . i) * (the_arity_of o)) . y = the Sorts of (A' . i) . s by A10, A38, A47, FUNCT_1:22;
hence h . z in (Carrier A,s) . z by A10, A36, A38, A41, A42, A44, A48, FUNCT_6:86; :: thesis: verum
end;
hence (commute g) . y in ((SORTS A) * (the_arity_of o)) . y by A39, A40, A41, CARD_3:18; :: thesis: verum
end;
hence j in (((SORTS A) # ) * the Arity of S) . o by A8, A10, A34, A37, CARD_3:18; :: thesis: verum
end;
let i be set ; :: according to TARSKI:def 3 :: thesis: ( not i in (((SORTS A) # ) * the Arity of S) . o or i in dom (Commute (Frege (A ?. o))) )
assume i in (((SORTS A) # ) * the Arity of S) . o ; :: thesis: i in dom (Commute (Frege (A ?. o)))
then consider g being Function such that
A49: ( g = i & dom g = dom ((SORTS A) * (the_arity_of o)) & ( for x being set st x in dom ((SORTS A) * (the_arity_of o)) holds
g . x in ((SORTS A) * (the_arity_of o)) . x ) ) by A8, CARD_3:def 5;
A50: rng g c= Funcs I,|.A'.|
proof
let a be set ; :: according to TARSKI:def 3 :: thesis: ( not a in rng g or a in Funcs I,|.A'.| )
assume a in rng g ; :: thesis: a in Funcs I,|.A'.|
then consider b being set such that
A51: ( b in dom g & g . b = a ) by FUNCT_1:def 5;
A52: a in ((SORTS A) * (the_arity_of o)) . b by A49, A51;
(the_arity_of o) . b in rng (the_arity_of o) by A10, A49, A51, FUNCT_1:def 5;
then reconsider cr = (the_arity_of o) . b as SortSymbol of S by A9;
((SORTS A) * (the_arity_of o)) . b = (SORTS A) . cr by A49, A51, FUNCT_1:22
.= product (Carrier A,cr) by Def17 ;
then consider h being Function such that
A53: ( h = a & dom h = dom (Carrier A,cr) & ( for j being set st j in dom (Carrier A,cr) holds
h . j in (Carrier A,cr) . j ) ) by A52, CARD_3:def 5;
A54: dom (Carrier A,cr) = I by PARTFUN1:def 4;
rng h c= |.A'.|
proof
let j be set ; :: according to TARSKI:def 3 :: thesis: ( not j in rng h or j in |.A'.| )
assume j in rng h ; :: thesis: j in |.A'.|
then consider c being set such that
A55: ( c in dom h & h . c = j ) by FUNCT_1:def 5;
reconsider i = c as Element of I' by A53, A55, PARTFUN1:def 4;
A56: h . i in (Carrier A,cr) . i by A53, A55;
A57: ex U0 being MSAlgebra of S st
( U0 = A . i & (Carrier A,cr) . i = the Sorts of U0 . cr ) by Def16;
dom the Sorts of (A' . i) = the carrier of S by PARTFUN1:def 4;
then (Carrier A,cr) . i in rng the Sorts of (A' . i) by A57, FUNCT_1:def 5;
then A58: h . i in |.(A' . i).| by A56, TARSKI:def 4;
|.(A' . i).| in { |.(A' . d).| where d is Element of I' : verum } ;
hence j in |.A'.| by A55, A58, TARSKI:def 4; :: thesis: verum
end;
hence a in Funcs I,|.A'.| by A53, A54, FUNCT_2:def 2; :: thesis: verum
end;
then A59: g in Funcs (dom (the_arity_of o)),(Funcs I,|.A'.|) by A10, A49, FUNCT_2:def 2;
then commute g in Funcs I,(Funcs (dom (the_arity_of o)),|.A'.|) by A30, FUNCT_6:85;
then A60: ex h being Function st
( h = commute g & dom h = I & rng h c= Funcs (dom (the_arity_of o)),|.A'.| ) by FUNCT_2:def 2;
A61: dom (Frege (A ?. o)) = product (doms (A ?. o)) by PARTFUN1:def 4;
A62: ( dom (doms (A ?. o)) = I' & ( for i being Element of I' holds (doms (A ?. o)) . i = Args o,(A' . i) ) ) by Th18;
for j being set st j in dom (doms (A ?. o)) holds
(commute g) . j in (doms (A ?. o)) . j
proof
let j be set ; :: thesis: ( j in dom (doms (A ?. o)) implies (commute g) . j in (doms (A ?. o)) . j )
assume j in dom (doms (A ?. o)) ; :: thesis: (commute g) . j in (doms (A ?. o)) . j
then reconsider ii = j as Element of I' by Th18;
A63: (doms (A ?. o)) . ii = Args o,(A' . ii) by Th18;
set cg = commute g;
reconsider h = (commute g) . ii as Function ;
A64: ( Args o,(A' . ii) = product (the Sorts of (A' . ii) * (the_arity_of o)) & dom (the Sorts of (A' . ii) * (the_arity_of o)) = dom (the_arity_of o) ) by Th10;
h in rng (commute g) by A60, FUNCT_1:def 5;
then A65: ex s being Function st
( s = h & dom s = dom (the_arity_of o) & rng s c= |.A'.| ) by A60, FUNCT_2:def 2;
set So = the Sorts of (A' . ii);
for a being set st a in dom (the Sorts of (A' . ii) * (the_arity_of o)) holds
h . a in (the Sorts of (A' . ii) * (the_arity_of o)) . a
proof
let a be set ; :: thesis: ( a in dom (the Sorts of (A' . ii) * (the_arity_of o)) implies h . a in (the Sorts of (A' . ii) * (the_arity_of o)) . a )
assume A66: a in dom (the Sorts of (A' . ii) * (the_arity_of o)) ; :: thesis: h . a in (the Sorts of (A' . ii) * (the_arity_of o)) . a
then g . a in rng g by A10, A49, A64, FUNCT_1:def 5;
then consider k being Function such that
A67: ( k = g . a & dom k = I & rng k c= |.A'.| ) by A50, FUNCT_2:def 2;
A68: k . ii = h . a by A59, A64, A66, A67, FUNCT_6:86;
(the_arity_of o) . a in rng (the_arity_of o) by A64, A66, FUNCT_1:def 5;
then reconsider s = (the_arity_of o) . a as SortSymbol of S by A9;
A69: (the Sorts of (A' . ii) * (the_arity_of o)) . a = the Sorts of (A' . ii) . s by A66, FUNCT_1:22;
A70: k in ((SORTS A) * (the_arity_of o)) . a by A10, A49, A64, A66, A67;
A71: ((SORTS A) * (the_arity_of o)) . a = (SORTS A) . s by A10, A64, A66, FUNCT_1:22
.= product (Carrier A,s) by Def17 ;
A72: ex U0 being MSAlgebra of S st
( U0 = A' . ii & (Carrier A,s) . ii = the Sorts of U0 . s ) by Def16;
dom (Carrier A,s) = I by PARTFUN1:def 4;
hence h . a in (the Sorts of (A' . ii) * (the_arity_of o)) . a by A68, A69, A70, A71, A72, CARD_3:18; :: thesis: verum
end;
hence (commute g) . j in (doms (A ?. o)) . j by A63, A64, A65, CARD_3:18; :: thesis: verum
end;
then A73: commute g in dom (Frege (A ?. o)) by A60, A61, A62, CARD_3:18;
commute (commute g) = g by A59, A30, FUNCT_6:87;
hence i in dom (Commute (Frege (A ?. o))) by A49, A73, Def6; :: thesis: verum
end;
set rs = the_result_sort_of o;
set CA = Carrier A,(the_result_sort_of o);
rng (Commute (Frege (A ?. o))) c= ((SORTS A) * the ResultSort of S) . o
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng (Commute (Frege (A ?. o))) or x in ((SORTS A) * the ResultSort of S) . o )
assume x in rng (Commute (Frege (A ?. o))) ; :: thesis: x in ((SORTS A) * the ResultSort of S) . o
then consider g being set such that
A74: ( g in dom (Commute (Frege (A ?. o))) & (Commute (Frege (A ?. o))) . g = x ) by FUNCT_1:def 5;
consider f being Function such that
A75: ( f in dom (Frege (A ?. o)) & g = commute f ) by A74, Def6;
reconsider g = g as Function by A75;
( dom f = I' & ( for i being Element of I' holds f . i in Args o,(A' . i) ) & rng f c= Funcs (dom (the_arity_of o)),|.A'.| ) by A75, Th17;
then A76: f in Funcs I,(Funcs (dom (the_arity_of o)),|.A'.|) by FUNCT_2:def 2;
commute g = f by A75, A76, A30, FUNCT_6:87;
then A77: ( x = (Frege (A ?. o)) . f & (Frege (A ?. o)) . f in rng (Frege (A ?. o)) ) by A74, A75, Def6, FUNCT_1:def 5;
then reconsider h = x as Function ;
A78: ( dom h = I' & ( for i being Element of I' holds h . i in Result o,(A' . i) ) ) by A77, Th16;
A79: dom (Carrier A,(the_result_sort_of o)) = I by PARTFUN1:def 4;
for j being set st j in dom (Carrier A,(the_result_sort_of o)) holds
h . j in (Carrier A,(the_result_sort_of o)) . j
proof
let j be set ; :: thesis: ( j in dom (Carrier A,(the_result_sort_of o)) implies h . j in (Carrier A,(the_result_sort_of o)) . j )
assume j in dom (Carrier A,(the_result_sort_of o)) ; :: thesis: h . j in (Carrier A,(the_result_sort_of o)) . j
then reconsider i = j as Element of I' by PARTFUN1:def 4;
A80: dom (the Sorts of (A' . i) * the ResultSort of S) = dom the ResultSort of S by A11, PARTFUN1:def 4;
A81: ex U0 being MSAlgebra of S st
( U0 = A' . i & (Carrier A,(the_result_sort_of o)) . i = the Sorts of U0 . (the_result_sort_of o) ) by Def16;
Result o,(A' . i) = (the Sorts of (A' . i) * the ResultSort of S) . o by MSUALG_1:def 10
.= the Sorts of (A' . i) . (the ResultSort of S . o) by A11, A80, FUNCT_1:22
.= (Carrier A,(the_result_sort_of o)) . i by A81, MSUALG_1:def 7 ;
hence h . j in (Carrier A,(the_result_sort_of o)) . j by A77, Th16; :: thesis: verum
end;
hence x in ((SORTS A) * the ResultSort of S) . o by A12, A78, A79, CARD_3:18; :: thesis: verum
end;
hence f . x is Function of ((((SORTS A) # ) * the Arity of S) . x),(((SORTS A) * the ResultSort of S) . x) by A31, A33, FUNCT_2:4; :: thesis: verum
end;
end;
end;
then reconsider f = f as ManySortedFunction of ((SORTS A) # ) * the Arity of S,(SORTS A) * the ResultSort of S by PBOOLE:def 18;
take f = f; :: thesis: for o being OperSymbol of S holds f . o = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o)))
let o be OperSymbol of S; :: thesis: f . o = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o)))
thus f . o = IFEQ (the_arity_of o),{} ,(commute (A ?. o)),(Commute (Frege (A ?. o))) by A2; :: thesis: verum
end;
assume I = {} ; :: thesis: ex b1 being ManySortedFunction of ((SORTS A) # ) * the Arity of S,(SORTS A) * the ResultSort of S st verum
consider f being ManySortedFunction of ((SORTS A) # ) * the Arity of S,(SORTS A) * the ResultSort of S;
take f ; :: thesis: verum