deffunc H1( SortSymbol of S) -> set = { f where f is Element of product (Carrier OAF,$1) : for i, j being Element of P st i >= j holds
((bind B,i,j) . $1) . (f . i) = f . j
}
;
consider C being ManySortedSet of such that
A1: for s being SortSymbol of S holds C . s = H1(s) from PBOOLE:sch 5();
for i being set st i in the carrier of S holds
C . i c= (SORTS OAF) . i
proof
let i be set ; :: thesis: ( i in the carrier of S implies C . i c= (SORTS OAF) . i )
assume i in the carrier of S ; :: thesis: C . i c= (SORTS OAF) . i
then reconsider s = i as SortSymbol of S ;
defpred S1[ Element of product (Carrier OAF,s)] means for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . ($1 . i) = $1 . j;
A2: (SORTS OAF) . s = product (Carrier OAF,s) by PRALG_2:def 17;
{ f where f is Element of product (Carrier OAF,s) : S1[f] } c= product (Carrier OAF,s) from FRAENKEL:sch 10();
hence C . i c= (SORTS OAF) . i by A1, A2; :: thesis: verum
end;
then C c= SORTS OAF by PBOOLE:def 5;
then reconsider C = C as ManySortedSubset of SORTS OAF by PBOOLE:def 23;
reconsider C = C as MSSubset of (product OAF) by PRALG_2:20;
for o being OperSymbol of S holds C is_closed_on o
proof
let o be OperSymbol of S; :: thesis: C is_closed_on o
rng ((Den o,(product OAF)) | (((C # ) * the Arity of S) . o)) c= (C * the ResultSort of S) . o
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in rng ((Den o,(product OAF)) | (((C # ) * the Arity of S) . o)) or x in (C * the ResultSort of S) . o )
assume A3: x in rng ((Den o,(product OAF)) | (((C # ) * the Arity of S) . o)) ; :: thesis: x in (C * the ResultSort of S) . o
reconsider K = (Den o,(product OAF)) | (((C # ) * the Arity of S) . o) as Function ;
consider y being set such that
A4: ( y in dom K & x = K . y ) by A3, FUNCT_1:def 5;
dom K = (dom (Den o,(product OAF))) /\ (((C # ) * the Arity of S) . o) by RELAT_1:90;
then A5: ( y in dom (Den o,(product OAF)) & y in ((C # ) * the Arity of S) . o ) by A4, XBOOLE_0:def 4;
reconsider MS = C as ManySortedSet of ;
dom the Arity of S = the carrier' of S by FUNCT_2:def 1;
then y in (C # ) . (the Arity of S . o) by A5, FUNCT_1:23;
then y in (C # ) . (the_arity_of o) by MSUALG_1:def 6;
then A7: y in product (MS * (the_arity_of o)) by PBOOLE:def 19;
A8: dom the ResultSort of S = the carrier' of S by FUNCT_2:def 1;
x in Result o,(product OAF) by A3;
then x in (the Sorts of (product OAF) * the ResultSort of S) . o by MSUALG_1:def 10;
then x in the Sorts of (product OAF) . (the ResultSort of S . o) by A8, FUNCT_1:23;
then x in (SORTS OAF) . (the ResultSort of S . o) by PRALG_2:20;
then x in (SORTS OAF) . (the_result_sort_of o) by MSUALG_1:def 7;
then A9: x is Element of product (Carrier OAF,(the_result_sort_of o)) by PRALG_2:def 17;
then reconsider x1 = x as Function ;
now
let s be SortSymbol of S; :: thesis: x in C . (the_result_sort_of o)
for i, j being Element of P st i >= j holds
((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j
proof
let i, j be Element of P; :: thesis: ( i >= j implies ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j )
assume A10: i >= j ; :: thesis: ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j
A11: Den o,(product OAF) = the Charact of (product OAF) . o by MSUALG_1:def 11
.= (OPS OAF) . o by PRALG_2:20 ;
reconsider OPE = (OPS OAF) . o as Function ;
consider g being Function such that
A12: ( y = g & dom g = dom (MS * (the_arity_of o)) & ( for t being set st t in dom (MS * (the_arity_of o)) holds
g . t in (MS * (the_arity_of o)) . t ) ) by A7, CARD_3:def 5;
reconsider y = y as Function by A12;
A13: dom y = dom (MS * (the_arity_of o)) by A7, CARD_3:18;
A14: rng (the_arity_of o) c= dom MS
proof
let i be set ; :: according to TARSKI:def 3 :: thesis: ( not i in rng (the_arity_of o) or i in dom MS )
assume i in rng (the_arity_of o) ; :: thesis: i in dom MS
then i in the carrier of S ;
hence i in dom MS by PARTFUN1:def 4; :: thesis: verum
end;
then A15: dom y = dom (the_arity_of o) by A13, RELAT_1:46;
set y1 = (commute y) . i;
reconsider Co = commute y as Function ;
A16: y in Funcs (Seg (len (the_arity_of o))),(Funcs the carrier of P,|.OAF.|)
proof
A17: dom y = Seg (len (the_arity_of o)) by A15, FINSEQ_1:def 3;
rng y c= Funcs the carrier of P,|.OAF.|
proof
let z be set ; :: according to TARSKI:def 3 :: thesis: ( not z in rng y or z in Funcs the carrier of P,|.OAF.| )
assume z in rng y ; :: thesis: z in Funcs the carrier of P,|.OAF.|
then consider n being set such that
A18: ( n in dom y & z = y . n ) by FUNCT_1:def 5;
A19: n in dom (MS * (the_arity_of o)) by A7, A18, CARD_3:18;
then z in (MS * (the_arity_of o)) . n by A7, A18, CARD_3:18;
then A20: z in MS . ((the_arity_of o) . n) by A19, FUNCT_1:22;
n in dom (the_arity_of o) by A14, A19, RELAT_1:46;
then (the_arity_of o) . n = (the_arity_of o) /. n by PARTFUN1:def 8;
then reconsider Pa = (the_arity_of o) . n as SortSymbol of S ;
z in { f where f is Element of product (Carrier OAF,Pa) : for i, j being Element of P st i >= j holds
((bind B,i,j) . Pa) . (f . i) = f . j
}
by A1, A20;
then consider z' being Element of product (Carrier OAF,Pa) such that
A21: ( z' = z & ( for i, j being Element of P st i >= j holds
((bind B,i,j) . Pa) . (z' . i) = z' . j ) ) ;
reconsider z = z as Function by A21;
A22: dom z = dom (Carrier OAF,Pa) by A21, CARD_3:18
.= the carrier of P by PARTFUN1:def 4 ;
rng z c= |.OAF.|
proof
let p be set ; :: according to TARSKI:def 3 :: thesis: ( not p in rng z or p in |.OAF.| )
assume p in rng z ; :: thesis: p in |.OAF.|
then consider r being set such that
A23: ( r in dom z & z . r = p ) by FUNCT_1:def 5;
dom z = dom (Carrier OAF,Pa) by A21, CARD_3:18;
then A24: p in (Carrier OAF,Pa) . r by A21, A23, CARD_3:18;
reconsider r' = r as Element of P by A22, A23;
reconsider r' = r' as Element of P ;
r' in the carrier of P ;
then consider U0 being MSAlgebra of S such that
A25: ( U0 = OAF . r & (Carrier OAF,Pa) . r = the Sorts of U0 . Pa ) by PRALG_2:def 16;
dom the Sorts of (OAF . r') = the carrier of S by PARTFUN1:def 4;
then the Sorts of (OAF . r') . Pa in rng the Sorts of (OAF . r') by FUNCT_1:def 5;
then p in union (rng the Sorts of (OAF . r')) by A24, A25, TARSKI:def 4;
then A26: p in |.(OAF . r').| by PRALG_2:def 13;
|.(OAF . r').| in { |.(OAF . k).| where k is Element of P : verum } ;
then |.(OAF . r').| c= union { |.(OAF . k).| where k is Element of the carrier of P : verum } by ZFMISC_1:92;
then |.(OAF . r').| c= |.OAF.| by PRALG_2:def 14;
hence p in |.OAF.| by A26; :: thesis: verum
end;
hence z in Funcs the carrier of P,|.OAF.| by A22, FUNCT_2:def 2; :: thesis: verum
end;
hence y in Funcs (Seg (len (the_arity_of o))),(Funcs the carrier of P,|.OAF.|) by A17, FUNCT_2:def 2; :: thesis: verum
end;
per cases ( the_arity_of o <> {} or the_arity_of o = {} ) ;
suppose A27: the_arity_of o <> {} ; :: thesis: ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j
then dom (the_arity_of o) <> {} ;
then Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then Co in Funcs the carrier of P,(Funcs (Seg (len (the_arity_of o))),|.OAF.|) by A16, FUNCT_6:85;
then consider ss being Function such that
A28: ( ss = Co & dom ss = the carrier of P & rng ss c= Funcs (Seg (len (the_arity_of o))),|.OAF.| ) by FUNCT_2:def 2;
reconsider y1 = (commute y) . i as Function ;
A29: y1 in product (the Sorts of (OAF . i) * (the_arity_of o))
proof
A30: dom (the Sorts of (OAF . i) * (the_arity_of o)) = dom (the_arity_of o) by PRALG_2:10
.= Seg (len (the_arity_of o)) by FINSEQ_1:def 3 ;
Co . i in rng Co by A28, FUNCT_1:def 5;
then consider ts being Function such that
A31: ( ts = Co . i & dom ts = Seg (len (the_arity_of o)) & rng ts c= |.OAF.| ) by A28, FUNCT_2:def 2;
for w being set st w in dom (the Sorts of (OAF . i) * (the_arity_of o)) holds
y1 . w in (the Sorts of (OAF . i) * (the_arity_of o)) . w
proof
let w be set ; :: thesis: ( w in dom (the Sorts of (OAF . i) * (the_arity_of o)) implies y1 . w in (the Sorts of (OAF . i) * (the_arity_of o)) . w )
assume A32: w in dom (the Sorts of (OAF . i) * (the_arity_of o)) ; :: thesis: y1 . w in (the Sorts of (OAF . i) * (the_arity_of o)) . w
then A33: w in dom y by A15, A30, FINSEQ_1:def 3;
A34: w in dom (the_arity_of o) by A30, A32, FINSEQ_1:def 3;
y . w in (MS * (the_arity_of o)) . w by A7, A13, A33, CARD_3:18;
then A35: y . w in MS . ((the_arity_of o) . w) by A34, FUNCT_1:23;
dom (the_arity_of o) <> {} by A27;
then Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then y = commute (commute y) by A16, FUNCT_6:87;
then reconsider y = y as Function-yielding Function ;
A36: y . w in MS . ((the_arity_of o) /. w) by A34, A35, PARTFUN1:def 8;
reconsider yw = y . w as Function ;
reconsider Pi = (the_arity_of o) /. w as SortSymbol of S ;
yw in { ff where ff is Element of product (Carrier OAF,Pi) : for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (ff . i) = ff . j
}
by A1, A36;
then consider jg being Element of product (Carrier OAF,Pi) such that
A37: ( jg = yw & ( for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (jg . i) = jg . j ) ) ;
dom (Carrier OAF,((the_arity_of o) /. w)) = the carrier of P by PARTFUN1:def 4;
then A38: yw . i in (Carrier OAF,((the_arity_of o) /. w)) . i by A37, CARD_3:18;
consider U0 being MSAlgebra of S such that
A39: ( U0 = OAF . i & (Carrier OAF,((the_arity_of o) /. w)) . i = the Sorts of U0 . ((the_arity_of o) /. w) ) by PRALG_2:def 16;
(Carrier OAF,((the_arity_of o) /. w)) . i = the Sorts of (OAF . i) . ((the_arity_of o) . w) by A34, A39, PARTFUN1:def 8
.= (the Sorts of (OAF . i) * (the_arity_of o)) . w by A34, FUNCT_1:23 ;
hence y1 . w in (the Sorts of (OAF . i) * (the_arity_of o)) . w by A16, A30, A32, A38, FUNCT_6:86; :: thesis: verum
end;
hence y1 in product (the Sorts of (OAF . i) * (the_arity_of o)) by A30, A31, CARD_3:18; :: thesis: verum
end;
A40: for t being set st t in dom (doms (OAF ?. o)) holds
Co . t in (doms (OAF ?. o)) . t
proof
let t be set ; :: thesis: ( t in dom (doms (OAF ?. o)) implies Co . t in (doms (OAF ?. o)) . t )
assume t in dom (doms (OAF ?. o)) ; :: thesis: Co . t in (doms (OAF ?. o)) . t
then reconsider t = t as Element of P by PRALG_2:18;
A41: (doms (OAF ?. o)) . t = Args o,(OAF . t) by PRALG_2:18;
dom (the_arity_of o) <> {} by A27;
then Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then Co in Funcs the carrier of P,(Funcs (Seg (len (the_arity_of o))),|.OAF.|) by A16, FUNCT_6:85;
then consider ss being Function such that
A42: ( ss = Co & dom ss = the carrier of P & rng ss c= Funcs (Seg (len (the_arity_of o))),|.OAF.| ) by FUNCT_2:def 2;
reconsider yt = Co . t as Function ;
Co . t in product (the Sorts of (OAF . t) * (the_arity_of o))
proof
A43: dom (the Sorts of (OAF . t) * (the_arity_of o)) = dom (the_arity_of o) by PRALG_2:10
.= Seg (len (the_arity_of o)) by FINSEQ_1:def 3 ;
Co . t in rng Co by A42, FUNCT_1:def 5;
then consider ts being Function such that
A44: ( ts = Co . t & dom ts = Seg (len (the_arity_of o)) & rng ts c= |.OAF.| ) by A42, FUNCT_2:def 2;
A45: dom y = Seg (len (the_arity_of o)) by A15, FINSEQ_1:def 3;
for w being set st w in dom (the Sorts of (OAF . t) * (the_arity_of o)) holds
yt . w in (the Sorts of (OAF . t) * (the_arity_of o)) . w
proof
let w be set ; :: thesis: ( w in dom (the Sorts of (OAF . t) * (the_arity_of o)) implies yt . w in (the Sorts of (OAF . t) * (the_arity_of o)) . w )
assume A46: w in dom (the Sorts of (OAF . t) * (the_arity_of o)) ; :: thesis: yt . w in (the Sorts of (OAF . t) * (the_arity_of o)) . w
then A47: w in dom (the_arity_of o) by A43, FINSEQ_1:def 3;
y . w in (MS * (the_arity_of o)) . w by A7, A13, A43, A45, A46, CARD_3:18;
then A48: y . w in MS . ((the_arity_of o) . w) by A47, FUNCT_1:23;
dom (the_arity_of o) <> {} by A27;
then Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then y = commute (commute y) by A16, FUNCT_6:87;
then reconsider y = y as Function-yielding Function ;
A49: y . w in MS . ((the_arity_of o) /. w) by A47, A48, PARTFUN1:def 8;
reconsider yw = y . w as Function ;
reconsider Pi = (the_arity_of o) /. w as SortSymbol of S ;
yw in { ff where ff is Element of product (Carrier OAF,Pi) : for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (ff . i) = ff . j
}
by A1, A49;
then consider jg being Element of product (Carrier OAF,Pi) such that
A50: ( jg = yw & ( for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (jg . i) = jg . j ) ) ;
dom (Carrier OAF,((the_arity_of o) /. w)) = the carrier of P by PARTFUN1:def 4;
then A51: yw . t in (Carrier OAF,((the_arity_of o) /. w)) . t by A50, CARD_3:18;
consider U0 being MSAlgebra of S such that
A52: ( U0 = OAF . t & (Carrier OAF,((the_arity_of o) /. w)) . t = the Sorts of U0 . ((the_arity_of o) /. w) ) by PRALG_2:def 16;
(Carrier OAF,((the_arity_of o) /. w)) . t = the Sorts of (OAF . t) . ((the_arity_of o) . w) by A47, A52, PARTFUN1:def 8
.= (the Sorts of (OAF . t) * (the_arity_of o)) . w by A47, FUNCT_1:23 ;
hence yt . w in (the Sorts of (OAF . t) * (the_arity_of o)) . w by A16, A43, A46, A51, FUNCT_6:86; :: thesis: verum
end;
hence Co . t in product (the Sorts of (OAF . t) * (the_arity_of o)) by A43, A44, CARD_3:18; :: thesis: verum
end;
hence Co . t in (doms (OAF ?. o)) . t by A41, PRALG_2:10; :: thesis: verum
end;
A53: Co in product (doms (OAF ?. o))
proof
dom (the_arity_of o) <> {} by A27;
then Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then Co in Funcs the carrier of P,(Funcs (Seg (len (the_arity_of o))),|.OAF.|) by A16, FUNCT_6:85;
then consider Co' being Function such that
A54: ( Co' = Co & dom Co' = the carrier of P & rng Co' c= Funcs (Seg (len (the_arity_of o))),|.OAF.| ) by FUNCT_2:def 2;
dom Co = dom (doms (OAF ?. o)) by A54, PRALG_2:18;
hence Co in product (doms (OAF ?. o)) by A40, CARD_3:18; :: thesis: verum
end;
reconsider y1' = y1 as Element of Args o,(OAF . i) by A29, PRALG_2:10;
A55: dom (OAF ?. o) = the carrier of P by PARTFUN1:def 4;
A56: bind B,i,j is_homomorphism OAF . i,OAF . j by A10, Th2;
A57: OPE = IFEQ (the_arity_of o),{} ,(commute (OAF ?. o)),(Commute (Frege (OAF ?. o))) by PRALG_2:def 20;
then A58: y in dom (Commute (Frege (OAF ?. o))) by A5, A11, A27, FUNCOP_1:def 8;
A59: x1 = OPE . y by A4, A11, FUNCT_1:70
.= (Commute (Frege (OAF ?. o))) . y by A27, A57, FUNCOP_1:def 8
.= (Frege (OAF ?. o)) . (commute y) by A58, PRALG_2:def 6
.= (OAF ?. o) .. (commute y) by A53, PRALG_2:def 8 ;
then A60: x1 . i = ((OAF ?. o) . i) . ((commute y) . i) by A55, PRALG_1:def 17
.= (Den o,(OAF . i)) . y1 by PRALG_2:14 ;
(bind B,i,j) # y1' = (commute y) . j
proof
dom (the_arity_of o) <> {} by A27;
then A61: Seg (len (the_arity_of o)) <> {} by FINSEQ_1:def 3;
then y = commute (commute y) by A16, FUNCT_6:87;
then reconsider y = y as Function-yielding Function ;
Co in Funcs the carrier of P,(Funcs (Seg (len (the_arity_of o))),|.OAF.|) by A16, A61, FUNCT_6:85;
then consider ss being Function such that
A62: ( ss = Co & dom ss = the carrier of P & rng ss c= Funcs (Seg (len (the_arity_of o))),|.OAF.| ) by FUNCT_2:def 2;
reconsider y2 = (commute y) . j as Function ;
A63: Co . j in rng Co by A62, FUNCT_1:def 5;
A64: Co . i in rng Co by A62, FUNCT_1:def 5;
consider ts being Function such that
A65: ( ts = Co . j & dom ts = Seg (len (the_arity_of o)) & rng ts c= |.OAF.| ) by A62, A63, FUNCT_2:def 2;
reconsider Two = y2 as FinSequence by A65, FINSEQ_1:def 2;
A66: now
let n be Nat; :: thesis: ( n in dom y2 implies ((bind B,i,j) # y1') . n = y2 . n )
assume A67: n in dom y2 ; :: thesis: ((bind B,i,j) # y1') . n = y2 . n
then A68: n in dom (the_arity_of o) by A65, FINSEQ_1:def 3;
consider ts' being Function such that
A69: ( ts' = Co . i & dom ts' = Seg (len (the_arity_of o)) & rng ts' c= |.OAF.| ) by A62, A64, FUNCT_2:def 2;
consider sT being Function such that
A70: ( sT = y & dom sT = Seg (len (the_arity_of o)) & rng sT c= Funcs the carrier of P,|.OAF.| ) by A16, FUNCT_2:def 2;
reconsider yn = y . n as Function ;
A71: y1' . n = yn . i by A16, A65, A67, FUNCT_6:86;
reconsider Pi = (the_arity_of o) /. n as SortSymbol of S ;
A72: (the_arity_of o) /. n = (the_arity_of o) . n by A68, PARTFUN1:def 8;
y . n in (MS * (the_arity_of o)) . n by A7, A13, A65, A67, A70, CARD_3:18;
then yn in MS . Pi by A68, A72, FUNCT_1:23;
then yn in { f where f is Element of product (Carrier OAF,Pi) : for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (f . i) = f . j
}
by A1;
then consider yn' being Element of product (Carrier OAF,Pi) such that
A73: ( yn' = yn & ( for i, j being Element of P st i >= j holds
((bind B,i,j) . Pi) . (yn' . i) = yn' . j ) ) ;
now
thus ((bind B,i,j) # y1') . n = ((bind B,i,j) . ((the_arity_of o) /. n)) . (yn . i) by A65, A67, A69, A71, MSUALG_3:def 8
.= yn . j by A10, A73 ; :: thesis: verum
end;
hence ((bind B,i,j) # y1') . n = y2 . n by A16, A65, A67, FUNCT_6:86; :: thesis: verum
end;
A74: dom ((bind B,i,j) # y1') = dom (the_arity_of o) by MSUALG_3:6
.= Seg (len (the_arity_of o)) by FINSEQ_1:def 3 ;
then reconsider One = (bind B,i,j) # y1' as FinSequence by FINSEQ_1:def 2;
for n being Nat st n in Seg (len (the_arity_of o)) holds
One . n = Two . n by A65, A66;
hence (bind B,i,j) # y1' = (commute y) . j by A65, A74, FINSEQ_1:17; :: thesis: verum
end;
then (Den o,(OAF . j)) . ((bind B,i,j) # y1') = ((OAF ?. o) . j) . ((commute y) . j) by PRALG_2:14
.= x1 . j by A55, A59, PRALG_1:def 17 ;
hence ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j by A56, A60, MSUALG_3:def 9; :: thesis: verum
end;
suppose A75: the_arity_of o = {} ; :: thesis: ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j
A76: Den o,(product OAF) = the Charact of (product OAF) . o by MSUALG_1:def 11
.= (OPS OAF) . o by PRALG_2:20
.= IFEQ (the_arity_of o),{} ,(commute (OAF ?. o)),(Commute (Frege (OAF ?. o))) by PRALG_2:def 20
.= commute (OAF ?. o) by A75, FUNCOP_1:def 8 ;
A77: MS * {} = {} ;
reconsider co = (commute (OAF ?. o)) . y as Function ;
A78: co = (curry' (uncurry (OAF ?. o))) . y by FUNCT_6:def 12;
A79: dom (OAF ?. o) = the carrier of P by PARTFUN1:def 4;
A80: for d being Element of P holds x1 . d = (Den o,(OAF . d)) . {}
proof
let d be Element of P; :: thesis: x1 . d = (Den o,(OAF . d)) . {}
reconsider g = (OAF ?. o) . d as Function ;
g = Den o,(OAF . d) by PRALG_2:14;
then dom g = Args o,(OAF . d) by FUNCT_2:def 1
.= {{} } by A75, PRALG_2:11 ;
then A81: y in dom g by A7, A75, CARD_3:19;
then A82: [d,y] in dom (uncurry (OAF ?. o)) by A79, FUNCT_5:45;
reconsider co' = (curry' (uncurry (OAF ?. o))) . y as Function by A78;
A83: co . d = co' . d by FUNCT_6:def 12
.= (uncurry (OAF ?. o)) . d,y by A82, FUNCT_5:29
.= g . y by A79, A81, FUNCT_5:45 ;
x1 = (commute (OAF ?. o)) . y by A4, A76, FUNCT_1:70;
then x1 . d = (Den o,(OAF . d)) . y by A83, PRALG_2:14
.= (Den o,(OAF . d)) . {} by A7, A75, A77, CARD_3:19, TARSKI:def 1 ;
hence x1 . d = (Den o,(OAF . d)) . {} ; :: thesis: verum
end;
A84: bind B,i,j is_homomorphism OAF . i,OAF . j by A10, Th2;
set F = bind B,i,j;
A85: x1 . i = (Den o,(OAF . i)) . {} by A80;
A86: x1 . j = (Den o,(OAF . j)) . {} by A80;
Args o,(OAF . i) = {{} } by A75, PRALG_2:11;
then reconsider E = {} as Element of Args o,(OAF . i) by TARSKI:def 1;
A87: ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = (Den o,(OAF . j)) . ((bind B,i,j) # E) by A84, A85, MSUALG_3:def 9;
Args o,(OAF . j) = {{} } by A75, PRALG_2:11;
hence ((bind B,i,j) . (the_result_sort_of o)) . (x1 . i) = x1 . j by A86, A87, TARSKI:def 1; :: thesis: verum
end;
end;
end;
then x in { f where f is Element of product (Carrier OAF,(the_result_sort_of o)) : for i, j being Element of P st i >= j holds
((bind B,i,j) . (the_result_sort_of o)) . (f . i) = f . j
}
by A9;
hence x in C . (the_result_sort_of o) by A1; :: thesis: verum
end;
then x in C . (the_result_sort_of o) ;
then A88: x in C . (the ResultSort of S . o) by MSUALG_1:def 7;
dom the ResultSort of S = the carrier' of S by FUNCT_2:def 1;
hence x in (C * the ResultSort of S) . o by A88, FUNCT_1:23; :: thesis: verum
end;
hence C is_closed_on o by MSUALG_2:def 6; :: thesis: verum
end;
then A89: C is opers_closed by MSUALG_2:def 7;
reconsider L = product OAF as non-empty MSAlgebra of S ;
reconsider C = C as MSSubset of L ;
set MSA = L | C;
A90: L | C = MSAlgebra(# C,(Opers L,C) #) by A89, MSUALG_2:def 16;
now
let s be SortSymbol of S; :: thesis: for f being Element of (SORTS OAF) . s holds
( f in the Sorts of (L | C) . s iff for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j )

let f be Element of (SORTS OAF) . s; :: thesis: ( f in the Sorts of (L | C) . s iff for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j )

A91: f is Element of product (Carrier OAF,s) by PRALG_2:def 17;
thus ( f in the Sorts of (L | C) . s iff for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j ) :: thesis: verum
proof
hereby :: thesis: ( ( for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j ) implies f in the Sorts of (L | C) . s )
assume f in the Sorts of (L | C) . s ; :: thesis: for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j

then f in { g where g is Element of product (Carrier OAF,s) : for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (g . i) = g . j
}
by A1, A90;
then consider k being Element of product (Carrier OAF,s) such that
A92: k = f and
A93: for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (k . i) = k . j ;
thus for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j by A92, A93; :: thesis: verum
end;
assume for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j ; :: thesis: f in the Sorts of (L | C) . s
then f in { h where h is Element of product (Carrier OAF,s) : for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (h . i) = h . j
}
by A91;
hence f in the Sorts of (L | C) . s by A1, A90; :: thesis: verum
end;
end;
hence ex b1 being strict MSSubAlgebra of product OAF st
for s being SortSymbol of S
for f being Element of (SORTS OAF) . s holds
( f in the Sorts of b1 . s iff for i, j being Element of P st i >= j holds
((bind B,i,j) . s) . (f . i) = f . j ) ; :: thesis: verum