:: BIRKHOFF semantic presentation
begin
definition
let S be non empty non void ManySortedSign ;
let X be V2() ManySortedSet of the carrier of S;
let A be non-empty MSAlgebra over S;
let F be ManySortedFunction of X, the Sorts of A;
funcF -hash -> ManySortedFunction of (FreeMSA X),A means :Def1: :: BIRKHOFF:def 1
( it is_homomorphism FreeMSA X,A & it || (FreeGen X) = F ** (Reverse X) );
existence
ex b1 being ManySortedFunction of (FreeMSA X),A st
( b1 is_homomorphism FreeMSA X,A & b1 || (FreeGen X) = F ** (Reverse X) ) by MSAFREE:def_5;
uniqueness
for b1, b2 being ManySortedFunction of (FreeMSA X),A st b1 is_homomorphism FreeMSA X,A & b1 || (FreeGen X) = F ** (Reverse X) & b2 is_homomorphism FreeMSA X,A & b2 || (FreeGen X) = F ** (Reverse X) holds
b1 = b2 by EXTENS_1:14;
end;
:: deftheorem Def1 defines -hash BIRKHOFF:def_1_:_
for S being non empty non void ManySortedSign
for X being V2() ManySortedSet of the carrier of S
for A being non-empty MSAlgebra over S
for F being ManySortedFunction of X, the Sorts of A
for b5 being ManySortedFunction of (FreeMSA X),A holds
( b5 = F -hash iff ( b5 is_homomorphism FreeMSA X,A & b5 || (FreeGen X) = F ** (Reverse X) ) );
theorem Th1: :: BIRKHOFF:1
for S being non empty non void ManySortedSign
for A being non-empty MSAlgebra over S
for X being V2() ManySortedSet of the carrier of S
for F being ManySortedFunction of X, the Sorts of A holds rngs F c= rngs (F -hash)
proof
let S be non empty non void ManySortedSign ; ::_thesis: for A being non-empty MSAlgebra over S
for X being V2() ManySortedSet of the carrier of S
for F being ManySortedFunction of X, the Sorts of A holds rngs F c= rngs (F -hash)
let A be non-empty MSAlgebra over S; ::_thesis: for X being V2() ManySortedSet of the carrier of S
for F being ManySortedFunction of X, the Sorts of A holds rngs F c= rngs (F -hash)
let X be V2() ManySortedSet of the carrier of S; ::_thesis: for F being ManySortedFunction of X, the Sorts of A holds rngs F c= rngs (F -hash)
let F be ManySortedFunction of X, the Sorts of A; ::_thesis: rngs F c= rngs (F -hash)
set R = Reverse X;
let i be set ; :: according to PBOOLE:def_2 ::_thesis: ( not i in the carrier of S or (rngs F) . i c= (rngs (F -hash)) . i )
assume i in the carrier of S ; ::_thesis: (rngs F) . i c= (rngs (F -hash)) . i
then reconsider s = i as SortSymbol of S ;
let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in (rngs F) . i or y in (rngs (F -hash)) . i )
A1: dom ((Reverse X) . s) = (FreeGen X) . s by FUNCT_2:def_1;
FreeGen X c= the Sorts of (FreeMSA X) by PBOOLE:def_18;
then A2: (FreeGen X) . s c= the Sorts of (FreeMSA X) . s by PBOOLE:def_2;
assume y in (rngs F) . i ; ::_thesis: y in (rngs (F -hash)) . i
then y in rng (F . s) by MSSUBFAM:13;
then consider x being set such that
A3: x in dom (F . s) and
A4: y = (F . s) . x by FUNCT_1:def_3;
rngs (Reverse X) = X by EXTENS_1:10;
then Reverse X is "onto" by EXTENS_1:9;
then rng ((Reverse X) . s) = X . s by MSUALG_3:def_3;
then consider a being set such that
A5: a in dom ((Reverse X) . s) and
A6: x = ((Reverse X) . s) . a by A3, FUNCT_1:def_3;
A7: dom ((F -hash) . s) = the Sorts of (FreeMSA X) . s by FUNCT_2:def_1;
y = ((F . s) * ((Reverse X) . s)) . a by A4, A5, A6, FUNCT_1:13
.= ((F ** (Reverse X)) . s) . a by MSUALG_3:2
.= (((F -hash) || (FreeGen X)) . s) . a by Def1
.= (((F -hash) . s) | ((FreeGen X) . s)) . a by MSAFREE:def_1
.= ((F -hash) . s) . a by A5, FUNCT_1:49 ;
then y in rng ((F -hash) . s) by A5, A1, A7, A2, FUNCT_1:def_3;
hence y in (rngs (F -hash)) . i by MSSUBFAM:13; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 1
ExFreeAlg1{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), P1[ set ] } :
ex A being strict non-empty MSAlgebra over F1() ex F being ManySortedFunction of F2(),A st
( P1[A] & F is_epimorphism F2(),A & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) ) )
provided
A1: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A2: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] and
A3: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F]
proof
set EMF = the MSAlgebra-Family of {} ,F1();
set CC = { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } ;
set SF = the Sorts of F2();
set I = the carrier of F1();
consider Xi being ManySortedSet of the carrier of F1() such that
A4: {Xi} = the carrier of F1() --> {{}} by MSUALG_9:5;
now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_F1()_holds_
the_Sorts_of_(product_the_MSAlgebra-Family_of_{}_,F1())_._i_=_{Xi}_._i
let i be set ; ::_thesis: ( i in the carrier of F1() implies the Sorts of (product the MSAlgebra-Family of {} ,F1()) . i = {Xi} . i )
assume i in the carrier of F1() ; ::_thesis: the Sorts of (product the MSAlgebra-Family of {} ,F1()) . i = {Xi} . i
then reconsider s = i as SortSymbol of F1() ;
thus the Sorts of (product the MSAlgebra-Family of {} ,F1()) . i = product (Carrier ( the MSAlgebra-Family of {} ,F1(),s)) by PRALG_2:def_10
.= {{}} by CARD_3:10, PRALG_2:def_9
.= ( the carrier of F1() --> {{}}) . s by FUNCOP_1:7
.= {Xi} . i by A4 ; ::_thesis: verum
end;
then A5: the Sorts of (product the MSAlgebra-Family of {} ,F1()) = {Xi} by PBOOLE:3;
reconsider R = [| the Sorts of F2(), the Sorts of F2()|] as MSCongruence of F2() by MSUALG_5:18;
[| the Sorts of F2(), the Sorts of F2()|] is MSCongruence of F2() by MSUALG_5:18;
then A6: [| the Sorts of F2(), the Sorts of F2()|] is Element of (CongrLatt F2()) by MSUALG_5:def_6;
the Sorts of (QuotMSAlg (F2(),R)) = { the Sorts of F2()} by MSUALG_9:29;
then A7: QuotMSAlg (F2(),R), Trivial_Algebra F1() are_isomorphic by MSUALG_9:26;
for i being set st i in {} holds
ex A being MSAlgebra over F1() st
( A = the MSAlgebra-Family of {} ,F1() . i & P1[A] ) ;
then P1[ product the MSAlgebra-Family of {} ,F1()] by A3;
then P1[ Trivial_Algebra F1()] by A1, A5, MSUALG_9:26;
then P1[ QuotMSAlg (F2(),R)] by A1, A7, MSUALG_3:17;
then A8: [| the Sorts of F2(), the Sorts of F2()|] in { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } by A6;
defpred S1[ set , set ] means ex R being MSCongruence of F2() st
( R = $1 & $2 = QuotMSAlg (F2(),R) );
defpred S2[ set ] means ex R being MSCongruence of F2() st
( R = $1 & P1[ QuotMSAlg (F2(),R)] );
A9: now__::_thesis:_for_q_being_set_st_q_in__{__C_where_C_is_Element_of_(CongrLatt_F2())_:_ex_R_being_MSCongruence_of_F2()_st_
(_R_=_C_&_P1[_QuotMSAlg_(F2(),R)]_)__}__holds_
q_is_MSCongruence_of_F2()
let q be set ; ::_thesis: ( q in { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } implies q is MSCongruence of F2() )
assume q in { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } ; ::_thesis: q is MSCongruence of F2()
then ex C being Element of (CongrLatt F2()) st
( q = C & ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) ) ;
hence q is MSCongruence of F2() ; ::_thesis: verum
end;
A10: { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } c= the carrier of (EqRelLatt the Sorts of F2())
proof
let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } or q in the carrier of (EqRelLatt the Sorts of F2()) )
assume q in { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } ; ::_thesis: q in the carrier of (EqRelLatt the Sorts of F2())
then q is Equivalence_Relation of the Sorts of F2() by A9;
hence q in the carrier of (EqRelLatt the Sorts of F2()) by MSUALG_5:def_5; ::_thesis: verum
end;
then reconsider CC = { C where C is Element of (CongrLatt F2()) : ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) } as non empty SubsetFamily of [| the Sorts of F2(), the Sorts of F2()|] by A8, MSUALG_7:5;
set R0 = meet |:CC:|;
A11: meet |:CC:| is MSEquivalence_Relation-like ManySortedRelation of the Sorts of F2() by A10, MSUALG_7:8;
reconsider R0 = meet |:CC:| as ManySortedRelation of F2() by A10, MSUALG_7:8;
R0 is MSEquivalence-like
proof
let i be set ; :: according to MSUALG_4:def_2,MSUALG_4:def_3 ::_thesis: for b1 being Element of bool [:( the Sorts of F2() . i),( the Sorts of F2() . i):] holds
( not i in the carrier of F1() or not R0 . i = b1 or b1 is Element of bool [:( the Sorts of F2() . i),( the Sorts of F2() . i):] )
let R be Relation of ( the Sorts of F2() . i); ::_thesis: ( not i in the carrier of F1() or not R0 . i = R or R is Element of bool [:( the Sorts of F2() . i),( the Sorts of F2() . i):] )
assume that
A12: i in the carrier of F1() and
A13: R0 . i = R ; ::_thesis: R is Element of bool [:( the Sorts of F2() . i),( the Sorts of F2() . i):]
thus R is Element of bool [:( the Sorts of F2() . i),( the Sorts of F2() . i):] by A11, A12, A13, MSUALG_4:def_2; ::_thesis: verum
end;
then reconsider R0 = R0 as MSEquivalence-like ManySortedRelation of F2() ;
{ C where C is Element of (CongrLatt F2()) : S2[C] } is Subset of (CongrLatt F2()) from DOMAIN_1:sch_7();
then reconsider R0 = R0 as MSCongruence of F2() by MSUALG_9:28;
take A = QuotMSAlg (F2(),R0); ::_thesis: ex F being ManySortedFunction of F2(),A st
( P1[A] & F is_epimorphism F2(),A & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) ) )
reconsider F = MSNat_Hom (F2(),R0) as ManySortedFunction of F2(),A ;
take F ; ::_thesis: ( P1[A] & F is_epimorphism F2(),A & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) ) )
A14: now__::_thesis:_for_c_being_set_st_c_in_CC_holds_
ex_w_being_set_st_S1[c,w]
let c be set ; ::_thesis: ( c in CC implies ex w being set st S1[c,w] )
assume c in CC ; ::_thesis: ex w being set st S1[c,w]
then reconsider cc = c as MSCongruence of F2() by A9;
consider w being set such that
A15: w = QuotMSAlg (F2(),cc) ;
take w = w; ::_thesis: S1[c,w]
thus S1[c,w] by A15; ::_thesis: verum
end;
consider FF being ManySortedSet of CC such that
A16: for c being set st c in CC holds
S1[c,FF . c] from PBOOLE:sch_3(A14);
FF is MSAlgebra-Family of CC,F1()
proof
let c be set ; :: according to PRALG_2:def_5 ::_thesis: ( not c in CC or FF . c is MSAlgebra over F1() )
assume c in CC ; ::_thesis: FF . c is MSAlgebra over F1()
then ex R being MSCongruence of F2() st
( R = c & FF . c = QuotMSAlg (F2(),R) ) by A16;
hence FF . c is MSAlgebra over F1() ; ::_thesis: verum
end;
then reconsider FF = FF as MSAlgebra-Family of CC,F1() ;
defpred S3[ Element of CC, set ] means ex F1 being ManySortedFunction of F2(),(FF . $1) st
( F1 = $2 & F1 is_homomorphism F2(),FF . $1 & ex R being MSCongruence of F2() st
( $1 = R & F1 = MSNat_Hom (F2(),R) ) );
A17: for c being Element of CC ex j being set st S3[c,j]
proof
let c be Element of CC; ::_thesis: ex j being set st S3[c,j]
consider R being MSCongruence of F2() such that
A18: R = c and
A19: FF . c = QuotMSAlg (F2(),R) by A16;
set j = MSNat_Hom (F2(),R);
reconsider F1 = MSNat_Hom (F2(),R) as ManySortedFunction of F2(),(FF . c) by A19;
take MSNat_Hom (F2(),R) ; ::_thesis: S3[c, MSNat_Hom (F2(),R)]
take F1 ; ::_thesis: ( F1 = MSNat_Hom (F2(),R) & F1 is_homomorphism F2(),FF . c & ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) ) )
thus F1 = MSNat_Hom (F2(),R) ; ::_thesis: ( F1 is_homomorphism F2(),FF . c & ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) ) )
MSNat_Hom (F2(),R) is_epimorphism F2(), QuotMSAlg (F2(),R) by MSUALG_4:3;
hence F1 is_homomorphism F2(),FF . c by A19, MSUALG_3:def_8; ::_thesis: ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) )
take R ; ::_thesis: ( c = R & F1 = MSNat_Hom (F2(),R) )
thus ( c = R & F1 = MSNat_Hom (F2(),R) ) by A18; ::_thesis: verum
end;
consider FofI1 being ManySortedSet of CC such that
A20: for c being Element of CC holds S3[c,FofI1 . c] from PBOOLE:sch_6(A17);
A21: for c being Element of CC ex F1 being ManySortedFunction of F2(),(FF . c) st
( F1 = FofI1 . c & F1 is_homomorphism F2(),FF . c )
proof
let c be Element of CC; ::_thesis: ex F1 being ManySortedFunction of F2(),(FF . c) st
( F1 = FofI1 . c & F1 is_homomorphism F2(),FF . c )
consider F1 being ManySortedFunction of F2(),(FF . c) such that
A22: F1 = FofI1 . c and
A23: F1 is_homomorphism F2(),FF . c and
ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) ) by A20;
take F1 ; ::_thesis: ( F1 = FofI1 . c & F1 is_homomorphism F2(),FF . c )
thus ( F1 = FofI1 . c & F1 is_homomorphism F2(),FF . c ) by A22, A23; ::_thesis: verum
end;
FofI1 is Function-yielding
proof
let c be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not c in dom FofI1 or FofI1 . c is set )
assume c in dom FofI1 ; ::_thesis: FofI1 . c is set
then reconsider cc = c as Element of CC ;
ex F1 being ManySortedFunction of F2(),(FF . cc) st
( F1 = FofI1 . cc & F1 is_homomorphism F2(),FF . cc ) by A21;
hence FofI1 . c is set ; ::_thesis: verum
end;
then reconsider FofI1 = FofI1 as ManySortedFunction of CC ;
consider H being ManySortedFunction of F2(),(product FF) such that
A24: H is_homomorphism F2(), product FF and
A25: for c being Element of CC holds (proj (FF,c)) ** H = FofI1 . c by A21, PRALG_3:29;
now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_F1()_holds_
(MSCng_H)_._i_=_R0_._i
let i be set ; ::_thesis: ( i in the carrier of F1() implies (MSCng H) . i = R0 . i )
assume i in the carrier of F1() ; ::_thesis: (MSCng H) . i = R0 . i
then reconsider s = i as SortSymbol of F1() ;
consider Q being Subset-Family of ([| the Sorts of F2(), the Sorts of F2()|] . s) such that
A26: Q = |:CC:| . s and
A27: (meet |:CC:|) . s = Intersect Q by MSSUBFAM:def_1;
A28: |:CC:| . s = { (t . s) where t is Element of Bool [| the Sorts of F2(), the Sorts of F2()|] : t in CC } by CLOSURE2:14;
(MSCng H) . s = R0 . s
proof
let a, b be set ; :: according to RELAT_1:def_2 ::_thesis: ( ( not [a,b] in (MSCng H) . s or [a,b] in R0 . s ) & ( not [a,b] in R0 . s or [a,b] in (MSCng H) . s ) )
hereby ::_thesis: ( not [a,b] in R0 . s or [a,b] in (MSCng H) . s )
assume A29: [a,b] in (MSCng H) . s ; ::_thesis: [a,b] in R0 . s
then A30: a in the Sorts of F2() . s by ZFMISC_1:87;
A31: b in the Sorts of F2() . s by A29, ZFMISC_1:87;
A32: [a,b] in MSCng (H,s) by A24, A29, MSUALG_4:def_18;
A33: for Y being set st Y in Q holds
[a,b] in Y
proof
let Y be set ; ::_thesis: ( Y in Q implies [a,b] in Y )
assume Y in Q ; ::_thesis: [a,b] in Y
then consider t being Element of Bool [| the Sorts of F2(), the Sorts of F2()|] such that
A34: Y = t . s and
A35: t in CC by A26, A28;
reconsider t1 = t as Element of CC by A35;
consider F1 being ManySortedFunction of F2(),(FF . t1) such that
A36: F1 = FofI1 . t1 and
F1 is_homomorphism F2(),FF . t1 and
A37: ex R being MSCongruence of F2() st
( t1 = R & F1 = MSNat_Hom (F2(),R) ) by A20;
(F1 . s) . a = (((proj (FF,t1)) ** H) . s) . a by A25, A36
.= (((proj (FF,t1)) . s) * (H . s)) . a by MSUALG_3:2
.= ((proj (FF,t1)) . s) . ((H . s) . a) by A30, FUNCT_2:15
.= ((proj (FF,t1)) . s) . ((H . s) . b) by A30, A31, A32, MSUALG_4:def_17
.= (((proj (FF,t1)) . s) * (H . s)) . b by A31, FUNCT_2:15
.= (((proj (FF,t1)) ** H) . s) . b by MSUALG_3:2
.= (F1 . s) . b by A25, A36 ;
hence [a,b] in Y by A30, A31, A34, A37, MSUALG_9:33; ::_thesis: verum
end;
[a,b] in [:( the Sorts of F2() . s),( the Sorts of F2() . s):] by A29;
then [a,b] in [| the Sorts of F2(), the Sorts of F2()|] . s by PBOOLE:def_16;
hence [a,b] in R0 . s by A27, A33, SETFAM_1:43; ::_thesis: verum
end;
assume A38: [a,b] in R0 . s ; ::_thesis: [a,b] in (MSCng H) . s
then A39: a in the Sorts of F2() . s by ZFMISC_1:87;
A40: b in the Sorts of F2() . s by A38, ZFMISC_1:87;
A41: for c being Element of CC holds (proj ((Carrier (FF,s)),c)) . ((H . s) . a) = (proj ((Carrier (FF,s)),c)) . ((H . s) . b)
proof
let c be Element of CC; ::_thesis: (proj ((Carrier (FF,s)),c)) . ((H . s) . a) = (proj ((Carrier (FF,s)),c)) . ((H . s) . b)
reconsider t1 = c as MSCongruence of F2() by A9;
consider F1 being ManySortedFunction of F2(),(FF . c) such that
A42: F1 = FofI1 . c and
F1 is_homomorphism F2(),FF . c and
A43: ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) ) by A20;
t1 is Element of Bool [| the Sorts of F2(), the Sorts of F2()|] by CLOSURE2:def_1;
then t1 . s in |:CC:| . s by A28;
then A44: [a,b] in t1 . s by A26, A27, A38, SETFAM_1:43;
thus (proj ((Carrier (FF,s)),c)) . ((H . s) . a) = ((proj (FF,c)) . s) . ((H . s) . a) by PRALG_3:def_2
.= (((proj (FF,c)) . s) * (H . s)) . a by A39, FUNCT_2:15
.= (((proj (FF,c)) ** H) . s) . a by MSUALG_3:2
.= (F1 . s) . a by A25, A42
.= (F1 . s) . b by A39, A40, A44, A43, MSUALG_9:33
.= (((proj (FF,c)) ** H) . s) . b by A25, A42
.= (((proj (FF,c)) . s) * (H . s)) . b by MSUALG_3:2
.= ((proj (FF,c)) . s) . ((H . s) . b) by A40, FUNCT_2:15
.= (proj ((Carrier (FF,s)),c)) . ((H . s) . b) by PRALG_3:def_2 ; ::_thesis: verum
end;
(H . s) . b in the Sorts of (product FF) . s by A40, FUNCT_2:5;
then A45: (H . s) . b in product (Carrier (FF,s)) by PRALG_2:def_10;
(H . s) . a in the Sorts of (product FF) . s by A39, FUNCT_2:5;
then (H . s) . a in product (Carrier (FF,s)) by PRALG_2:def_10;
then (H . s) . a = (H . s) . b by A45, A41, MSUALG_9:14;
then [a,b] in MSCng (H,s) by A39, A40, MSUALG_4:def_17;
hence [a,b] in (MSCng H) . s by A24, MSUALG_4:def_18; ::_thesis: verum
end;
hence (MSCng H) . i = R0 . i ; ::_thesis: verum
end;
then A46: MSCng H = R0 by PBOOLE:3;
QuotMSAlg (F2(),(MSCng H)), Image (MSHomQuot H) are_isomorphic by A24, MSUALG_4:4, MSUALG_9:16;
then consider XX being strict non-empty MSSubAlgebra of product FF such that
A47: A,XX are_isomorphic by A46;
for cc being set st cc in CC holds
ex A being MSAlgebra over F1() st
( A = FF . cc & P1[A] )
proof
let cc be set ; ::_thesis: ( cc in CC implies ex A being MSAlgebra over F1() st
( A = FF . cc & P1[A] ) )
assume A48: cc in CC ; ::_thesis: ex A being MSAlgebra over F1() st
( A = FF . cc & P1[A] )
then reconsider c = cc as Element of CC ;
take FF . c ; ::_thesis: ( FF . c = FF . cc & P1[FF . c] )
A49: ex C being Element of (CongrLatt F2()) st
( cc = C & ex R being MSCongruence of F2() st
( R = C & P1[ QuotMSAlg (F2(),R)] ) ) by A48;
ex R being MSCongruence of F2() st
( R = cc & FF . cc = QuotMSAlg (F2(),R) ) by A16, A48;
hence ( FF . c = FF . cc & P1[FF . c] ) by A49; ::_thesis: verum
end;
then P1[XX] by A2, A3;
hence P1[A] by A1, A47, MSUALG_3:17; ::_thesis: ( F is_epimorphism F2(),A & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) ) )
thus F is_epimorphism F2(),A by MSUALG_4:3; ::_thesis: for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
then A50: F is "onto" by MSUALG_3:def_8;
let B be non-empty MSAlgebra over F1(); ::_thesis: for G being ManySortedFunction of F2(),B st G is_homomorphism F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
let G be ManySortedFunction of F2(),B; ::_thesis: ( G is_homomorphism F2(),B & P1[B] implies ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) )
assume that
A51: G is_homomorphism F2(),B and
A52: P1[B] ; ::_thesis: ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
reconsider C = Image (MSHomQuot G) as strict non-empty MSSubAlgebra of B ;
A53: QuotMSAlg (F2(),(MSCng G)),C are_isomorphic by A51, MSUALG_4:4, MSUALG_9:16;
A54: MSCng G is Element of (CongrLatt F2()) by MSUALG_5:def_6;
P1[C] by A2, A52;
then P1[ QuotMSAlg (F2(),(MSCng G))] by A1, A53, MSUALG_3:17;
then MSCng G in CC by A54;
then R0 c= MSCng G by CLOSURE2:21, MSSUBFAM:43;
then consider H being ManySortedFunction of A,B such that
A55: H is_homomorphism A,B and
A56: G = H ** F by A51, MSUALG_9:36;
take H ; ::_thesis: ( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
thus H is_homomorphism A,B by A55; ::_thesis: ( H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
thus G = H ** F by A56; ::_thesis: for K being ManySortedFunction of A,B st K ** F = G holds
H = K
let K be ManySortedFunction of A,B; ::_thesis: ( K ** F = G implies H = K )
assume K ** F = G ; ::_thesis: H = K
hence H = K by A56, A50, EXTENS_1:12; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 2
ExFreeAlg2{ F1() -> non empty non void ManySortedSign , F2() -> V2() ManySortedSet of the carrier of F1(), P1[ set ] } :
ex A being strict non-empty MSAlgebra over F1() ex F being ManySortedFunction of F2(), the Sorts of A st
( P1[A] & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(), the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** F = G holds
H = K ) ) ) )
provided
A1: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A2: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] and
A3: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F]
proof
A4: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] by A2;
A5: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F] by A3;
set FM = FreeMSA F2();
A6: Reverse F2() is "1-1" by MSUALG_9:11;
A7: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] by A1;
consider A being strict non-empty MSAlgebra over F1(), F being ManySortedFunction of (FreeMSA F2()),A such that
A8: P1[A] and
A9: F is_epimorphism FreeMSA F2(),A and
A10: for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of (FreeMSA F2()),B st G is_homomorphism FreeMSA F2(),B & P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) ) from BIRKHOFF:sch_1(A7, A4, A5);
reconsider R = (F || (FreeGen F2())) ** ((Reverse F2()) "") as ManySortedFunction of F2(), the Sorts of A ;
take A ; ::_thesis: ex F being ManySortedFunction of F2(), the Sorts of A st
( P1[A] & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(), the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** F = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** F = G holds
H = K ) ) ) )
take R ; ::_thesis: ( P1[A] & ( for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(), the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) ) ) )
thus P1[A] by A8; ::_thesis: for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(), the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) )
let B be non-empty MSAlgebra over F1(); ::_thesis: for G being ManySortedFunction of F2(), the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) )
let G be ManySortedFunction of F2(), the Sorts of B; ::_thesis: ( P1[B] implies ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) ) )
assume A11: P1[B] ; ::_thesis: ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) )
consider GG being ManySortedFunction of (FreeMSA F2()),B such that
A12: GG is_homomorphism FreeMSA F2(),B and
A13: GG || (FreeGen F2()) = G ** (Reverse F2()) by MSAFREE:def_5;
consider H being ManySortedFunction of A,B such that
A14: H is_homomorphism A,B and
A15: H ** F = GG and
for K being ManySortedFunction of A,B st K ** F = GG holds
H = K by A10, A11, A12;
take H ; ::_thesis: ( H is_homomorphism A,B & H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) )
thus H is_homomorphism A,B by A14; ::_thesis: ( H ** R = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K ) )
A16: H ** (F || (FreeGen F2())) = GG || (FreeGen F2()) by A15, EXTENS_1:4;
A17: F is "onto" by A9, MSUALG_3:def_8;
rngs (Reverse F2()) = F2() by EXTENS_1:10;
then A18: Reverse F2() is "onto" by EXTENS_1:9;
R ** (Reverse F2()) = (F || (FreeGen F2())) ** (((Reverse F2()) "") ** (Reverse F2())) by PBOOLE:140
.= (F || (FreeGen F2())) ** (id (FreeGen F2())) by A18, A6, MSUALG_3:5
.= F || (FreeGen F2()) by MSUALG_3:3 ;
then A19: (H ** R) ** (Reverse F2()) = G ** (Reverse F2()) by A13, A16, PBOOLE:140;
hence H ** R = G by A18, EXTENS_1:12; ::_thesis: for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** R = G holds
H = K
let K be ManySortedFunction of A,B; ::_thesis: ( K is_homomorphism A,B & K ** R = G implies H = K )
assume A20: K is_homomorphism A,B ; ::_thesis: ( not K ** R = G or H = K )
assume K ** R = G ; ::_thesis: H = K
then K ** (((F || (FreeGen F2())) ** ((Reverse F2()) "")) ** (Reverse F2())) = (H ** ((F || (FreeGen F2())) ** ((Reverse F2()) ""))) ** (Reverse F2()) by A19, PBOOLE:140;
then K ** (((F || (FreeGen F2())) ** ((Reverse F2()) "")) ** (Reverse F2())) = H ** (((F || (FreeGen F2())) ** ((Reverse F2()) "")) ** (Reverse F2())) by PBOOLE:140;
then K ** ((F || (FreeGen F2())) ** (((Reverse F2()) "") ** (Reverse F2()))) = H ** (((F || (FreeGen F2())) ** ((Reverse F2()) "")) ** (Reverse F2())) by PBOOLE:140;
then K ** ((F || (FreeGen F2())) ** (((Reverse F2()) "") ** (Reverse F2()))) = H ** ((F || (FreeGen F2())) ** (((Reverse F2()) "") ** (Reverse F2()))) by PBOOLE:140;
then K ** ((F || (FreeGen F2())) ** (id (FreeGen F2()))) = H ** ((F || (FreeGen F2())) ** (((Reverse F2()) "") ** (Reverse F2()))) by A18, A6, MSUALG_3:5;
then K ** ((F || (FreeGen F2())) ** (id (FreeGen F2()))) = H ** ((F || (FreeGen F2())) ** (id (FreeGen F2()))) by A18, A6, MSUALG_3:5;
then K ** (F || (FreeGen F2())) = H ** ((F || (FreeGen F2())) ** (id (FreeGen F2()))) by MSUALG_3:3;
then K ** (F || (FreeGen F2())) = H ** (F || (FreeGen F2())) by MSUALG_3:3;
then (K ** F) || (FreeGen F2()) = H ** (F || (FreeGen F2())) by EXTENS_1:4;
then A21: (K ** F) || (FreeGen F2()) = (H ** F) || (FreeGen F2()) by EXTENS_1:4;
F is_homomorphism FreeMSA F2(),A by A9, MSUALG_3:def_8;
then K ** F is_homomorphism FreeMSA F2(),B by A20, MSUALG_3:10;
then K ** F = H ** F by A12, A15, A21, EXTENS_1:14;
hence H = K by A17, EXTENS_1:12; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 3
Exhash{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), F3() -> non-empty MSAlgebra over F1(), F4() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2(), F5() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F3(), P1[ set ] } :
ex H being ManySortedFunction of F2(),F3() st
( H is_homomorphism F2(),F3() & F5() -hash = H ** (F4() -hash) )
provided
A1: P1[F3()] and
A2: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F4() )
proof
consider H being ManySortedFunction of F2(),F3() such that
A3: H is_homomorphism F2(),F3() and
A4: F5() = H ** F4() by A1, A2;
take H ; ::_thesis: ( H is_homomorphism F2(),F3() & F5() -hash = H ** (F4() -hash) )
thus H is_homomorphism F2(),F3() by A3; ::_thesis: F5() -hash = H ** (F4() -hash)
F4() -hash is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F2() by Def1;
then A5: H ** (F4() -hash) is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F3() by A3, MSUALG_3:10;
reconsider SN = the carrier of F1() --> NAT as V2() ManySortedSet of the carrier of F1() ;
reconsider h1 = F5() as ManySortedFunction of SN, the Sorts of F3() ;
A6: h1 -hash is_homomorphism FreeMSA SN,F3() by Def1;
(h1 -hash) || (FreeGen SN) = F5() ** (Reverse SN) by Def1
.= H ** (F4() ** (Reverse SN)) by A4, PBOOLE:140
.= H ** ((F4() -hash) || (FreeGen ( the carrier of F1() --> NAT))) by Def1
.= (H ** (F4() -hash)) || (FreeGen ( the carrier of F1() --> NAT)) by EXTENS_1:4 ;
hence F5() -hash = H ** (F4() -hash) by A6, A5, EXTENS_1:14; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 4
EqTerms{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), F3() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2(), F4() -> SortSymbol of F1(), F5() -> Element of the Sorts of (TermAlg F1()) . F4(), F6() -> Element of the Sorts of (TermAlg F1()) . F4(), P1[ set ] } :
for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= F5() '=' F6()
provided
A1: ((F3() -hash) . F4()) . F5() = ((F3() -hash) . F4()) . F6() and
A2: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F3() )
proof
reconsider fi1 = F3() as ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2() ;
reconsider SN = the carrier of F1() --> NAT as V2() ManySortedSet of the carrier of F1() ;
let B be non-empty MSAlgebra over F1(); ::_thesis: ( P1[B] implies B |= F5() '=' F6() )
assume P1[B] ; ::_thesis: B |= F5() '=' F6()
then A3: P1[B] ;
let h be ManySortedFunction of (TermAlg F1()),B; :: according to EQUATION:def_5 ::_thesis: ( not h is_homomorphism TermAlg F1(),B or (h . F4()) . ((F5() '=' F6()) `1) = (h . F4()) . ((F5() '=' F6()) `2) )
assume A4: h is_homomorphism TermAlg F1(),B ; ::_thesis: (h . F4()) . ((F5() '=' F6()) `1) = (h . F4()) . ((F5() '=' F6()) `2)
reconsider h1 = h as ManySortedFunction of (FreeMSA SN),B ;
set alfa = (h1 || (FreeGen SN)) ** ((Reverse SN) "");
A5: ((h1 || (FreeGen SN)) ** ((Reverse SN) "")) -hash is_homomorphism FreeMSA SN,B by Def1;
reconsider alfa1 = (h1 || (FreeGen SN)) ** ((Reverse SN) "") as ManySortedFunction of the carrier of F1() --> NAT, the Sorts of B ;
A6: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** fi1 ) by A2;
consider H being ManySortedFunction of F2(),B such that
H is_homomorphism F2(),B and
A7: alfa1 -hash = H ** (fi1 -hash) from BIRKHOFF:sch_3(A3, A6);
A8: ((((h1 || (FreeGen SN)) ** ((Reverse SN) "")) -hash) . F4()) . F5() = ((H . F4()) * ((F3() -hash) . F4())) . F5() by A7, MSUALG_3:2
.= (H . F4()) . (((F3() -hash) . F4()) . F6()) by A1, FUNCT_2:15
.= ((H . F4()) * ((F3() -hash) . F4())) . F6() by FUNCT_2:15
.= ((((h1 || (FreeGen SN)) ** ((Reverse SN) "")) -hash) . F4()) . F6() by A7, MSUALG_3:2 ;
rngs (Reverse SN) = SN by EXTENS_1:10;
then A9: ( Reverse SN is "1-1" & Reverse SN is "onto" ) by EXTENS_1:9, MSUALG_9:11;
(((h1 || (FreeGen SN)) ** ((Reverse SN) "")) -hash) || (FreeGen SN) = ((h1 || (FreeGen SN)) ** ((Reverse SN) "")) ** (Reverse SN) by Def1
.= (h1 || (FreeGen SN)) ** (((Reverse SN) "") ** (Reverse SN)) by PBOOLE:140
.= (h1 || (FreeGen SN)) ** (id (FreeGen SN)) by A9, MSUALG_3:5
.= h1 || (FreeGen SN) by MSUALG_3:3 ;
then A10: ((h1 || (FreeGen SN)) ** ((Reverse SN) "")) -hash = h1 by A4, A5, EXTENS_1:14;
thus (h . F4()) . ([F5(),F6()] `1) = (h . F4()) . F5()
.= (h . F4()) . ([F5(),F6()] `2) by A10, A8 ; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 5
FreeIsGen{ F1() -> non empty non void ManySortedSign , F2() -> V2() ManySortedSet of the carrier of F1(), F3() -> strict non-empty MSAlgebra over F1(), F4() -> ManySortedFunction of F2(), the Sorts of F3(), P1[ set ] } :
F4() .:.: F2() is V2() GeneratorSet of F3()
provided
A1: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of F2(), the Sorts of C st P1[C] holds
ex H being ManySortedFunction of F3(),C st
( H is_homomorphism F3(),C & H ** F4() = G & ( for K being ManySortedFunction of F3(),C st K is_homomorphism F3(),C & K ** F4() = G holds
H = K ) ) and
A2: P1[F3()] and
A3: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B]
proof
set I = the carrier of F1();
A4: F4() .:.: F2() is V2()
proof
let i be set ; :: according to PBOOLE:def_13 ::_thesis: ( not i in the carrier of F1() or not (F4() .:.: F2()) . i is empty )
assume A5: i in the carrier of F1() ; ::_thesis: not (F4() .:.: F2()) . i is empty
then reconsider fi = F4() . i as Function of (F2() . i),( the Sorts of F3() . i) by PBOOLE:def_15;
A6: (F4() .:.: F2()) . i = fi .: (F2() . i) by A5, PBOOLE:def_20;
reconsider Xi = F2() . i as non empty set by A5;
A7: Xi meets Xi ;
dom fi = Xi by A5, FUNCT_2:def_1;
hence not (F4() .:.: F2()) . i is empty by A7, A6, RELAT_1:118; ::_thesis: verum
end;
F4() .:.: F2() is ManySortedSubset of the Sorts of F3()
proof
let i be set ; :: according to PBOOLE:def_2,PBOOLE:def_18 ::_thesis: ( not i in the carrier of F1() or (F4() .:.: F2()) . i c= the Sorts of F3() . i )
assume A8: i in the carrier of F1() ; ::_thesis: (F4() .:.: F2()) . i c= the Sorts of F3() . i
then reconsider fi = F4() . i as Function of (F2() . i),( the Sorts of F3() . i) by PBOOLE:def_15;
(F4() .:.: F2()) . i = fi .: (F2() . i) by A8, PBOOLE:def_20;
hence (F4() .:.: F2()) . i c= the Sorts of F3() . i ; ::_thesis: verum
end;
then reconsider Gen = F4() .:.: F2() as V2() MSSubset of F3() by A4;
set AA = GenMSAlg Gen;
A9: F2() is_transformable_to the Sorts of (GenMSAlg Gen)
proof
let i be set ; :: according to PZFMISC1:def_3 ::_thesis: ( not i in the carrier of F1() or not the Sorts of (GenMSAlg Gen) . i = {} or F2() . i = {} )
assume i in the carrier of F1() ; ::_thesis: ( not the Sorts of (GenMSAlg Gen) . i = {} or F2() . i = {} )
hence ( not the Sorts of (GenMSAlg Gen) . i = {} or F2() . i = {} ) ; ::_thesis: verum
end;
F2() is_transformable_to the Sorts of F3()
proof
let i be set ; :: according to PZFMISC1:def_3 ::_thesis: ( not i in the carrier of F1() or not the Sorts of F3() . i = {} or F2() . i = {} )
assume i in the carrier of F1() ; ::_thesis: ( not the Sorts of F3() . i = {} or F2() . i = {} )
hence ( not the Sorts of F3() . i = {} or F2() . i = {} ) ; ::_thesis: verum
end;
then A10: doms F4() = F2() by MSSUBFAM:17;
then rngs F4() = F4() .:.: F2() by EQUATION:13;
then rngs F4() is ManySortedSubset of the Sorts of (GenMSAlg Gen) by MSUALG_2:def_17;
then rngs F4() c= the Sorts of (GenMSAlg Gen) by PBOOLE:def_18;
then reconsider iN = F4() as ManySortedFunction of F2(), the Sorts of (GenMSAlg Gen) by A9, A10, EQUATION:4;
consider IN being ManySortedFunction of F3(),(GenMSAlg Gen) such that
A11: IN is_homomorphism F3(), GenMSAlg Gen and
A12: IN ** F4() = iN and
for K being ManySortedFunction of F3(),(GenMSAlg Gen) st K is_homomorphism F3(), GenMSAlg Gen & K ** F4() = iN holds
IN = K by A1, A2, A3;
the Sorts of (GenMSAlg Gen) is ManySortedSubset of the Sorts of F3() by MSUALG_2:def_9;
then reconsider h = id the Sorts of (GenMSAlg Gen) as ManySortedFunction of (GenMSAlg Gen),F3() by EXTENS_1:5;
consider HIN being ManySortedFunction of F3(),F3() such that
HIN is_homomorphism F3(),F3() and
HIN ** F4() = h ** iN and
A13: for K being ManySortedFunction of F3(),F3() st K is_homomorphism F3(),F3() & K ** F4() = h ** iN holds
HIN = K by A1, A2;
h is_monomorphism GenMSAlg Gen,F3() by MSUALG_3:22;
then A14: h is_homomorphism GenMSAlg Gen,F3() by MSUALG_3:def_9;
reconsider hIN = h ** IN as ManySortedFunction of F3(),F3() ;
h ** iN = (h ** IN) ** F4() by A12, PBOOLE:140;
then A15: HIN = hIN by A11, A13, A14, MSUALG_3:10;
A16: F3() is MSSubAlgebra of F3() by MSUALG_2:5;
F4() = h ** iN by MSUALG_3:4;
then (id the Sorts of F3()) ** F4() = h ** iN by MSUALG_3:4;
then HIN = id the Sorts of F3() by A13, MSUALG_3:9;
then A17: HIN is "onto" ;
the Sorts of (GenMSAlg Gen) = h .:.: the Sorts of (GenMSAlg Gen) by EQUATION:15
.= the Sorts of F3() by A15, A17, EQUATION:2, EQUATION:9 ;
then GenMSAlg Gen = F3() by A16, MSUALG_2:9;
hence F4() .:.: F2() is V2() GeneratorSet of F3() by MSAFREE:3; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 6
Hashisonto{ F1() -> non empty non void ManySortedSign , F2() -> strict non-empty MSAlgebra over F1(), F3() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2(), P1[ set ] } :
F3() -hash is_epimorphism FreeMSA ( the carrier of F1() --> NAT),F2()
provided
A1: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex H being ManySortedFunction of F2(),C st
( H is_homomorphism F2(),C & H ** F3() = G & ( for K being ManySortedFunction of F2(),C st K is_homomorphism F2(),C & K ** F3() = G holds
H = K ) ) and
A2: P1[F2()] and
A3: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B]
proof
A4: P1[F2()] by A2;
set V = the carrier of F1() --> NAT;
reconsider Gen = the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) as GeneratorSet of FreeMSA ( the carrier of F1() --> NAT) by MSAFREE2:6;
A5: F3() .:.: ( the carrier of F1() --> NAT) c= rngs F3() by EQUATION:12;
the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) is_transformable_to the Sorts of F2()
proof
let i be set ; :: according to PZFMISC1:def_3 ::_thesis: ( not i in the carrier of F1() or not the Sorts of F2() . i = {} or the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) . i = {} )
assume A6: i in the carrier of F1() ; ::_thesis: ( not the Sorts of F2() . i = {} or the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) . i = {} )
assume the Sorts of F2() . i = {} ; ::_thesis: the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) . i = {}
hence the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) . i = {} by A6; ::_thesis: verum
end;
then doms (F3() -hash) = the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) by MSSUBFAM:17;
then A7: (F3() -hash) .:.: the Sorts of (FreeMSA ( the carrier of F1() --> NAT)) = rngs (F3() -hash) by EQUATION:13;
rngs F3() c= rngs (F3() -hash) by Th1;
then A8: F3() .:.: ( the carrier of F1() --> NAT) c= (F3() -hash) .:.: Gen by A7, A5, PBOOLE:13;
A9: F3() -hash is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F2() by Def1;
A10: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] by A3;
A11: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex H being ManySortedFunction of F2(),C st
( H is_homomorphism F2(),C & H ** F3() = G & ( for K being ManySortedFunction of F2(),C st K is_homomorphism F2(),C & K ** F3() = G holds
H = K ) ) by A1;
F3() .:.: ( the carrier of F1() --> NAT) is V2() GeneratorSet of F2() from BIRKHOFF:sch_5(A11, A4, A10);
hence F3() -hash is_epimorphism FreeMSA ( the carrier of F1() --> NAT),F2() by A8, A9, EQUATION:23; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 7
FinGenAlgInVar{ F1() -> non empty non void ManySortedSign , F2() -> strict non-empty finitely-generated MSAlgebra over F1(), F3() -> non-empty MSAlgebra over F1(), F4() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F3(), P1[ set ], P2[ set ] } :
P1[F2()]
provided
A1: P2[F2()] and
A2: P1[F3()] and
A3: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P2[C] holds
ex h being ManySortedFunction of F3(),C st
( h is_homomorphism F3(),C & G = h ** F4() ) and
A4: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A5: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)]
proof
set I = the carrier of F1();
set sA = the Sorts of F2();
consider Gen being GeneratorSet of F2() such that
A6: Gen is V42() by MSAFREE2:def_10;
reconsider Gen = Gen as V42() ManySortedSubset of the Sorts of F2() by A6;
consider GEN being V2() V42() ManySortedSubset of the Sorts of F2() such that
A7: Gen c= GEN by MSUALG_9:7;
consider F being ManySortedFunction of the carrier of F1() --> NAT,GEN such that
A8: F is "onto" by MSUALG_9:12;
the carrier of F1() --> NAT is_transformable_to GEN
proof
let i be set ; :: according to PZFMISC1:def_3 ::_thesis: ( not i in the carrier of F1() or not GEN . i = {} or ( the carrier of F1() --> NAT) . i = {} )
assume i in the carrier of F1() ; ::_thesis: ( not GEN . i = {} or ( the carrier of F1() --> NAT) . i = {} )
hence ( not GEN . i = {} or ( the carrier of F1() --> NAT) . i = {} ) ; ::_thesis: verum
end;
then reconsider G = F as ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2() by EXTENS_1:5;
consider h being ManySortedFunction of F3(),F2() such that
A9: h is_homomorphism F3(),F2() and
A10: G = h ** F4() by A1, A3;
reconsider sI1 = the Sorts of (Image h) as MSSubset of (Image h) by PBOOLE:def_18;
A11: GEN is GeneratorSet of F2() by A7, MSSCYC_1:21;
reconsider sI = the Sorts of (Image h) as MSSubset of F2() by MSUALG_2:def_9;
GEN is ManySortedSubset of sI
proof
let i be set ; :: according to PBOOLE:def_2,PBOOLE:def_18 ::_thesis: ( not i in the carrier of F1() or GEN . i c= sI . i )
assume i in the carrier of F1() ; ::_thesis: GEN . i c= sI . i
then reconsider s = i as SortSymbol of F1() ;
let g be set ; :: according to TARSKI:def_3 ::_thesis: ( not g in GEN . i or g in sI . i )
assume A12: g in GEN . i ; ::_thesis: g in sI . i
A13: ( the carrier of F1() --> NAT) . s = NAT by FUNCOP_1:7;
then reconsider fi = F4() . s as Function of NAT,( the Sorts of F3() . s) ;
dom ((h . s) * fi) = NAT by FUNCT_2:def_1
.= dom fi by FUNCT_2:def_1 ;
then A14: rng fi c= dom (h . s) by FUNCT_1:15;
rng (F . s) = GEN . s by A8, MSUALG_3:def_3;
then consider x being set such that
A15: x in dom (F . s) and
A16: g = (F . s) . x by A12, FUNCT_1:def_3;
dom (F . s) = NAT by A13, FUNCT_2:def_1
.= dom fi by FUNCT_2:def_1 ;
then A17: fi . x in rng fi by A15, FUNCT_1:def_3;
g = ((h . s) * fi) . x by A10, A16, MSUALG_3:2
.= (h . s) . (fi . x) by A15, FUNCT_2:15 ;
then g in (h . s) .: ( the Sorts of F3() . s) by A17, A14, FUNCT_1:def_6;
then g in (h .:.: the Sorts of F3()) . s by PBOOLE:def_20;
hence g in sI . i by A9, MSUALG_3:def_12; ::_thesis: verum
end;
then A18: GenMSAlg GEN is MSSubAlgebra of GenMSAlg sI by EXTENS_1:17;
GenMSAlg sI = GenMSAlg sI1 by EXTENS_1:18;
then GenMSAlg GEN is MSSubAlgebra of Image h by A18, MSUALG_2:21;
then F2() is MSSubAlgebra of Image h by A11, MSAFREE:3;
then F2() = Image h by MSUALG_2:7;
then A19: h is_epimorphism F3(),F2() by A9, MSUALG_3:19;
P1[ QuotMSAlg (F3(),(MSCng h))] by A2, A5;
hence P1[F2()] by A4, A19, MSUALG_4:6; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 8
QuotEpi{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), F3() -> non-empty MSAlgebra over F1(), P1[ set ] } :
P1[F3()]
provided
A1: ex H being ManySortedFunction of F2(),F3() st H is_epimorphism F2(),F3() and
A2: P1[F2()] and
A3: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A4: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)]
proof
consider H being ManySortedFunction of F2(),F3() such that
A5: H is_epimorphism F2(),F3() by A1;
P1[ QuotMSAlg (F2(),(MSCng H))] by A2, A4;
hence P1[F3()] by A3, A5, MSUALG_4:6; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 9
AllFinGen{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), P1[ set ] } :
P1[F2()]
provided
A1: for B being strict non-empty finitely-generated MSSubAlgebra of F2() holds P1[B] and
A2: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A3: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] and
A4: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)] and
A5: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F]
proof
A6: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] by A2;
set T = the strict non-empty finitely-generated MSSubAlgebra of F2();
set CC = { C where C is Element of MSSub F2() : ex R being strict non-empty finitely-generated MSSubAlgebra of F2() st R = C } ;
the strict non-empty finitely-generated MSSubAlgebra of F2() in MSSub F2() by MSUALG_2:def_19;
then the strict non-empty finitely-generated MSSubAlgebra of F2() in { C where C is Element of MSSub F2() : ex R being strict non-empty finitely-generated MSSubAlgebra of F2() st R = C } ;
then reconsider CC = { C where C is Element of MSSub F2() : ex R being strict non-empty finitely-generated MSSubAlgebra of F2() st R = C } as non empty set ;
defpred S1[ set , set ] means $1 = $2;
A7: for c being set st c in CC holds
ex j being set st S1[c,j] ;
consider FF being ManySortedSet of CC such that
A8: for c being set st c in CC holds
S1[c,FF . c] from PBOOLE:sch_3(A7);
FF is MSAlgebra-Family of CC,F1()
proof
let c be set ; :: according to PRALG_2:def_5 ::_thesis: ( not c in CC or FF . c is MSAlgebra over F1() )
assume A9: c in CC ; ::_thesis: FF . c is MSAlgebra over F1()
then ex Q being Element of MSSub F2() st
( c = Q & ex R being strict non-empty finitely-generated MSSubAlgebra of F2() st R = Q ) ;
hence FF . c is MSAlgebra over F1() by A8, A9; ::_thesis: verum
end;
then reconsider FF = FF as MSAlgebra-Family of CC,F1() ;
consider prSOR being strict non-empty MSSubAlgebra of product FF such that
A10: ex BA being ManySortedFunction of prSOR,F2() st BA is_epimorphism prSOR,F2() by A8, EQUATION:27;
A11: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)] by A4;
for i being set st i in CC holds
ex A being MSAlgebra over F1() st
( A = FF . i & P1[A] )
proof
let i be set ; ::_thesis: ( i in CC implies ex A being MSAlgebra over F1() st
( A = FF . i & P1[A] ) )
assume A12: i in CC ; ::_thesis: ex A being MSAlgebra over F1() st
( A = FF . i & P1[A] )
then consider Q being Element of MSSub F2() such that
A13: i = Q and
A14: ex R being strict non-empty finitely-generated MSSubAlgebra of F2() st R = Q ;
consider R being strict non-empty finitely-generated MSSubAlgebra of F2() such that
A15: R = Q by A14;
take R ; ::_thesis: ( R = FF . i & P1[R] )
thus ( R = FF . i & P1[R] ) by A1, A8, A12, A13, A15; ::_thesis: verum
end;
then A16: P1[prSOR] by A3, A5;
thus P1[F2()] from BIRKHOFF:sch_8(A10, A16, A6, A11); ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 10
FreeInModIsInVar1{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), P1[ set ], P2[ set ] } :
P2[F2()]
provided
A1: for A being non-empty MSAlgebra over F1() holds
( P2[A] iff for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
A |= e ) and
A2: P1[F2()]
proof
for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
F2() |= e by A2;
hence P2[F2()] by A1; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 11
FreeInModIsInVar{ F1() -> non empty non void ManySortedSign , F2() -> strict non-empty MSAlgebra over F1(), F3() -> ManySortedFunction of the carrier of F1() --> NAT, the Sorts of F2(), P1[ set ], P2[ set ] } :
P1[F2()]
provided
A1: for A being non-empty MSAlgebra over F1() holds
( P2[A] iff for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
A |= e ) and
A2: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P2[C] holds
ex H being ManySortedFunction of F2(),C st
( H is_homomorphism F2(),C & H ** F3() = G & ( for K being ManySortedFunction of F2(),C st K is_homomorphism F2(),C & K ** F3() = G holds
H = K ) ) and
A3: P2[F2()] and
A4: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A5: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] and
A6: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F]
proof
A7: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F] by A6;
set V = the carrier of F1() --> NAT;
A8: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] by A5;
A9: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] by A4;
consider A being strict non-empty MSAlgebra over F1(), fi being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of A such that
A10: P1[A] and
A11: for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of B st P1[B] holds
ex H being ManySortedFunction of A,B st
( H is_homomorphism A,B & H ** fi = G & ( for K being ManySortedFunction of A,B st K is_homomorphism A,B & K ** fi = G holds
H = K ) ) from BIRKHOFF:sch_2(A9, A8, A7);
A12: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P2[C] holds
ex H being ManySortedFunction of F2(),C st
( H is_homomorphism F2(),C & H ** F3() = G & ( for K being ManySortedFunction of F2(),C st K is_homomorphism F2(),C & K ** F3() = G holds
H = K ) ) by A2;
A13: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P2[C] holds
ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F3() )
proof
let C be non-empty MSAlgebra over F1(); ::_thesis: for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P2[C] holds
ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F3() )
let G be ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C; ::_thesis: ( P2[C] implies ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F3() ) )
assume P2[C] ; ::_thesis: ex h being ManySortedFunction of F2(),C st
( h is_homomorphism F2(),C & G = h ** F3() )
then consider h being ManySortedFunction of F2(),C such that
A14: h is_homomorphism F2(),C and
A15: G = h ** F3() and
for K being ManySortedFunction of F2(),C st K is_homomorphism F2(),C & K ** F3() = G holds
h = K by A2;
take h ; ::_thesis: ( h is_homomorphism F2(),C & G = h ** F3() )
thus ( h is_homomorphism F2(),C & G = h ** F3() ) by A14, A15; ::_thesis: verum
end;
A16: P2[F2()] by A3;
A17: for A being non-empty MSAlgebra over F1() holds
( P2[A] iff for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
A |= e ) by A1;
A18: P2[A] from BIRKHOFF:sch_10(A17, A10);
consider H being ManySortedFunction of F2(),A such that
A19: H is_homomorphism F2(),A and
A20: fi -hash = H ** (F3() -hash) from BIRKHOFF:sch_3(A18, A13);
A21: F3() -hash is_homomorphism FreeMSA ( the carrier of F1() --> NAT),F2() by Def1;
now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_F1()_holds_
H_._i_is_one-to-one
let i be set ; ::_thesis: ( i in the carrier of F1() implies H . i is one-to-one )
assume i in the carrier of F1() ; ::_thesis: H . i is one-to-one
then reconsider s = i as SortSymbol of F1() ;
thus H . i is one-to-one ::_thesis: verum
proof
A22: for D being non-empty MSAlgebra over F1()
for E being strict non-empty MSSubAlgebra of D st P2[D] holds
P2[E]
proof
let D be non-empty MSAlgebra over F1(); ::_thesis: for E being strict non-empty MSSubAlgebra of D st P2[D] holds
P2[E]
let E be strict non-empty MSSubAlgebra of D; ::_thesis: ( P2[D] implies P2[E] )
assume A23: P2[D] ; ::_thesis: P2[E]
now__::_thesis:_for_s_being_SortSymbol_of_F1()
for_e_being_Element_of_(Equations_F1())_._s_st_(_for_B_being_non-empty_MSAlgebra_over_F1()_st_P1[B]_holds_
B_|=_e_)_holds_
E_|=_e
let s be SortSymbol of F1(); ::_thesis: for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
E |= e
let e be Element of (Equations F1()) . s; ::_thesis: ( ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) implies E |= e )
assume for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ; ::_thesis: E |= e
then D |= e by A1, A23;
hence E |= e by EQUATION:31; ::_thesis: verum
end;
hence P2[E] by A1; ::_thesis: verum
end;
F3() -hash is_epimorphism FreeMSA ( the carrier of F1() --> NAT),F2() from BIRKHOFF:sch_6(A12, A16, A22);
then A24: F3() -hash is "onto" by MSUALG_3:def_8;
A25: for C being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex H being ManySortedFunction of A,C st
( H is_homomorphism A,C & G = H ** fi )
proof
let C be non-empty MSAlgebra over F1(); ::_thesis: for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C st P1[C] holds
ex H being ManySortedFunction of A,C st
( H is_homomorphism A,C & G = H ** fi )
let G be ManySortedFunction of the carrier of F1() --> NAT, the Sorts of C; ::_thesis: ( P1[C] implies ex H being ManySortedFunction of A,C st
( H is_homomorphism A,C & G = H ** fi ) )
assume P1[C] ; ::_thesis: ex H being ManySortedFunction of A,C st
( H is_homomorphism A,C & G = H ** fi )
then consider H being ManySortedFunction of A,C such that
A26: H is_homomorphism A,C and
A27: H ** fi = G and
for K being ManySortedFunction of A,C st K is_homomorphism A,C & K ** fi = G holds
H = K by A11;
take H ; ::_thesis: ( H is_homomorphism A,C & G = H ** fi )
thus ( H is_homomorphism A,C & G = H ** fi ) by A26, A27; ::_thesis: verum
end;
let a, b be set ; :: according to FUNCT_1:def_4 ::_thesis: ( not a in dom (H . i) or not b in dom (H . i) or not (H . i) . a = (H . i) . b or a = b )
assume that
A28: a in dom (H . i) and
A29: b in dom (H . i) and
A30: (H . i) . a = (H . i) . b ; ::_thesis: a = b
A31: dom (H . s) = the Sorts of F2() . s by FUNCT_2:def_1
.= rng ((F3() -hash) . s) by A24, MSUALG_3:def_3 ;
then consider t1 being set such that
A32: t1 in dom ((F3() -hash) . s) and
A33: ((F3() -hash) . s) . t1 = a by A28, FUNCT_1:def_3;
consider t2 being set such that
A34: t2 in dom ((F3() -hash) . s) and
A35: ((F3() -hash) . s) . t2 = b by A29, A31, FUNCT_1:def_3;
reconsider t1 = t1, t2 = t2 as Element of the Sorts of (TermAlg F1()) . s by A32, A34;
set e = t1 '=' t2;
A36: ((fi -hash) . s) . t1 = ((H . s) * ((F3() -hash) . s)) . t1 by A20, MSUALG_3:2
.= (H . s) . a by A33, FUNCT_2:15
.= ((H . s) * ((F3() -hash) . s)) . t2 by A30, A35, FUNCT_2:15
.= ((fi -hash) . s) . t2 by A20, MSUALG_3:2 ;
for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= t1 '=' t2 from BIRKHOFF:sch_4(A36, A25);
then A37: F2() |= t1 '=' t2 by A1, A3;
thus a = ((F3() -hash) . s) . ((t1 '=' t2) `1) by A33
.= ((F3() -hash) . s) . ((t1 '=' t2) `2) by A21, A37, EQUATION:def_5
.= b by A35 ; ::_thesis: verum
end;
end;
then H is "1-1" by MSUALG_3:1;
then H is_monomorphism F2(),A by A19, MSUALG_3:def_9;
then A38: F2(), Image H are_isomorphic by MSUALG_9:16;
P1[ Image H] by A5, A10;
hence P1[F2()] by A4, A38, MSUALG_3:17; ::_thesis: verum
end;
scheme :: BIRKHOFF:sch 12
Birkhoff{ F1() -> non empty non void ManySortedSign , P1[ set ] } :
ex E being EqualSet of F1() st
for A being non-empty MSAlgebra over F1() holds
( P1[A] iff A |= E )
provided
A1: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] and
A2: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] and
A3: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)] and
A4: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F]
proof
A5: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st P1[A] holds
P1[B] by A2;
set XX = the carrier of F1() --> NAT;
set I = the carrier of F1();
defpred S1[ set , set ] means ex s being SortSymbol of F1() st
( $1 = s & $2 = { e where e is Element of (Equations F1()) . s : for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= e } );
A6: now__::_thesis:_for_w_being_set_st_w_in_the_carrier_of_F1()_holds_
ex_d_being_set_st_S1[w,d]
let w be set ; ::_thesis: ( w in the carrier of F1() implies ex d being set st S1[w,d] )
assume w in the carrier of F1() ; ::_thesis: ex d being set st S1[w,d]
then consider s being SortSymbol of F1() such that
A7: s = w ;
take d = { e where e is Element of (Equations F1()) . s : for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= e } ; ::_thesis: S1[w,d]
thus S1[w,d] by A7; ::_thesis: verum
end;
consider E being ManySortedSet of the carrier of F1() such that
A8: for i being set st i in the carrier of F1() holds
S1[i,E . i] from PBOOLE:sch_3(A6);
E is ManySortedSubset of Equations F1()
proof
let j be set ; :: according to PBOOLE:def_2,PBOOLE:def_18 ::_thesis: ( not j in the carrier of F1() or E . j c= (Equations F1()) . j )
assume j in the carrier of F1() ; ::_thesis: E . j c= (Equations F1()) . j
then consider s being SortSymbol of F1() such that
A9: j = s and
A10: E . j = { e where e is Element of (Equations F1()) . s : for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= e } by A8;
let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in E . j or q in (Equations F1()) . j )
assume q in E . j ; ::_thesis: q in (Equations F1()) . j
then ex z being Element of (Equations F1()) . s st
( q = z & ( for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= z ) ) by A10;
hence q in (Equations F1()) . j by A9; ::_thesis: verum
end;
then reconsider E = E as EqualSet of F1() ;
A11: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & P1[A] holds
P1[B] by A1;
defpred S2[ MSAlgebra over F1()] means $1 |= E;
A12: for D being non-empty MSAlgebra over F1() holds
( S2[D] iff for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for M being non-empty MSAlgebra over F1() st P1[M] holds
M |= e ) holds
D |= e )
proof
let D be non-empty MSAlgebra over F1(); ::_thesis: ( S2[D] iff for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for M being non-empty MSAlgebra over F1() st P1[M] holds
M |= e ) holds
D |= e )
thus ( S2[D] implies for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
D |= e ) ::_thesis: ( ( for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for M being non-empty MSAlgebra over F1() st P1[M] holds
M |= e ) holds
D |= e ) implies S2[D] )
proof
assume A13: S2[D] ; ::_thesis: for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
D |= e
let s be SortSymbol of F1(); ::_thesis: for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
D |= e
let e be Element of (Equations F1()) . s; ::_thesis: ( ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) implies D |= e )
assume A14: for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ; ::_thesis: D |= e
S1[s,E . s] by A8;
then e in E . s by A14;
hence D |= e by A13, EQUATION:def_6; ::_thesis: verum
end;
assume A15: for s being SortSymbol of F1()
for e being Element of (Equations F1()) . s st ( for B being non-empty MSAlgebra over F1() st P1[B] holds
B |= e ) holds
D |= e ; ::_thesis: S2[D]
let s be SortSymbol of F1(); :: according to EQUATION:def_6 ::_thesis: for b1 being Element of (Equations F1()) . s holds
( not b1 in E . s or D |= b1 )
let e be Element of (Equations F1()) . s; ::_thesis: ( not e in E . s or D |= e )
assume A16: e in E . s ; ::_thesis: D |= e
S1[s,E . s] by A8;
then ex f being Element of (Equations F1()) . s st
( e = f & ( for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= f ) ) by A16;
hence D |= e by A15; ::_thesis: verum
end;
A17: for A being non-empty MSAlgebra over F1()
for B being strict non-empty MSSubAlgebra of A st S2[A] holds
S2[B] by EQUATION:32;
A18: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & S2[A] ) ) holds
S2[ product F] by EQUATION:38;
A19: for A, B being non-empty MSAlgebra over F1() st A,B are_isomorphic & S2[A] holds
S2[B] by EQUATION:34;
consider K being strict non-empty MSAlgebra over F1(), F being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of K such that
A20: S2[K] and
A21: for B being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of B st S2[B] holds
ex H being ManySortedFunction of K,B st
( H is_homomorphism K,B & H ** F = G & ( for W being ManySortedFunction of K,B st W is_homomorphism K,B & W ** F = G holds
H = W ) ) from BIRKHOFF:sch_2(A19, A17, A18);
A22: for M being non-empty MSAlgebra over F1()
for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of M st S2[M] holds
ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & G = H ** F )
proof
let M be non-empty MSAlgebra over F1(); ::_thesis: for G being ManySortedFunction of the carrier of F1() --> NAT, the Sorts of M st S2[M] holds
ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & G = H ** F )
let G be ManySortedFunction of the carrier of F1() --> NAT, the Sorts of M; ::_thesis: ( S2[M] implies ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & G = H ** F ) )
assume S2[M] ; ::_thesis: ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & G = H ** F )
then ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & H ** F = G & ( for W being ManySortedFunction of K,M st W is_homomorphism K,M & W ** F = G holds
H = W ) ) by A21;
hence ex H being ManySortedFunction of K,M st
( H is_homomorphism K,M & H ** F = G ) ; ::_thesis: verum
end;
A23: for I being set
for F being MSAlgebra-Family of I,F1() st ( for i being set st i in I holds
ex A being MSAlgebra over F1() st
( A = F . i & P1[A] ) ) holds
P1[ product F] by A4;
take E ; ::_thesis: for A being non-empty MSAlgebra over F1() holds
( P1[A] iff A |= E )
let A be non-empty MSAlgebra over F1(); ::_thesis: ( P1[A] iff A |= E )
hereby ::_thesis: ( A |= E implies P1[A] )
assume A24: P1[A] ; ::_thesis: A |= E
thus A |= E ::_thesis: verum
proof
let s1 be SortSymbol of F1(); :: according to EQUATION:def_6 ::_thesis: for b1 being Element of (Equations F1()) . s1 holds
( not b1 in E . s1 or A |= b1 )
A25: S1[s1,E . s1] by A8;
let e be Element of (Equations F1()) . s1; ::_thesis: ( not e in E . s1 or A |= e )
assume e in E . s1 ; ::_thesis: A |= e
then consider x being Element of (Equations F1()) . s1 such that
A26: e = x and
A27: for A being non-empty MSAlgebra over F1() st P1[A] holds
A |= x by A25;
A28: A |= x by A24, A27;
let h be ManySortedFunction of (TermAlg F1()),A; :: according to EQUATION:def_5 ::_thesis: ( not h is_homomorphism TermAlg F1(),A or (h . s1) . (e `1) = (h . s1) . (e `2) )
assume h is_homomorphism TermAlg F1(),A ; ::_thesis: (h . s1) . (e `1) = (h . s1) . (e `2)
hence (h . s1) . (e `1) = (h . s1) . (e `2) by A26, A28, EQUATION:def_5; ::_thesis: verum
end;
end;
assume A29: A |= E ; ::_thesis: P1[A]
A30: for A being non-empty MSAlgebra over F1()
for R being MSCongruence of A st P1[A] holds
P1[ QuotMSAlg (A,R)] by A3;
A31: S2[K] by A20;
A32: P1[K] from BIRKHOFF:sch_11(A12, A21, A31, A11, A5, A23);
A33: for B being strict non-empty finitely-generated MSSubAlgebra of A holds P1[B]
proof
let B be strict non-empty finitely-generated MSSubAlgebra of A; ::_thesis: P1[B]
A34: S2[B] by A29, EQUATION:32;
thus P1[B] from BIRKHOFF:sch_7(A34, A32, A22, A11, A30); ::_thesis: verum
end;
thus P1[A] from BIRKHOFF:sch_9(A33, A11, A5, A30, A23); ::_thesis: verum
end;