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;
then A5:
the Sorts of (product the MSAlgebra-Family of {} ,F1()) = {Xi}
;
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[ object , object ] 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)] );
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())
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
by A11;
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); 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
; ( 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 ) ) ) )
consider FF being ManySortedSet of CC such that
A13:
for c being object st c in CC holds
S1[c,FF . c]
from PBOOLE:sch 3(A12);
FF is MSAlgebra-Family of CC,F1()
then reconsider FF = FF as MSAlgebra-Family of CC,F1() ;
defpred S3[ Element of CC, object ] 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) ) );
A14:
for c being Element of CC ex j being object st S3[c,j]
proof
let c be
Element of
CC;
ex j being object st S3[c,j]
consider R being
MSCongruence of
F2()
such that A15:
R = c
and A16:
FF . c = QuotMSAlg (
F2(),
R)
by A13;
set j =
MSNat_Hom (
F2(),
R);
reconsider F1 =
MSNat_Hom (
F2(),
R) as
ManySortedFunction of
F2(),
(FF . c) by A16;
take
MSNat_Hom (
F2(),
R)
;
S3[c, MSNat_Hom (F2(),R)]
take
F1
;
( 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)
;
( 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 A16, MSUALG_3:def 8;
ex R being MSCongruence of F2() st
( c = R & F1 = MSNat_Hom (F2(),R) )
take
R
;
( c = R & F1 = MSNat_Hom (F2(),R) )
thus
(
c = R &
F1 = MSNat_Hom (
F2(),
R) )
by A15;
verum
end;
consider FofI1 being ManySortedSet of CC such that
A17:
for c being Element of CC holds S3[c,FofI1 . c]
from PBOOLE:sch 6(A14);
A18:
for c being Element of CC ex F1 being ManySortedFunction of F2(),(FF . c) st
( F1 = FofI1 . c & F1 is_homomorphism F2(),FF . c )
FofI1 is Function-yielding
then reconsider FofI1 = FofI1 as ManySortedFunction of CC ;
consider H being ManySortedFunction of F2(),(product FF) such that
A21:
H is_homomorphism F2(), product FF
and
A22:
for c being Element of CC holds (proj (FF,c)) ** H = FofI1 . c
by A18, PRALG_3:29;
now for i being object st i in the carrier of F1() holds
(MSCng H) . i = R0 . ilet i be
object ;
( i in the carrier of F1() implies (MSCng H) . i = R0 . i )assume
i in the
carrier of
F1()
;
(MSCng H) . i = R0 . ithen reconsider s =
i as
SortSymbol of
F1() ;
consider Q being
Subset-Family of
([| the Sorts of F2(), the Sorts of F2()|] . s) such that A23:
Q = |:CC:| . s
and A24:
(meet |:CC:|) . s = Intersect Q
by MSSUBFAM:def 1;
A25:
|: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
object ;
RELAT_1:def 2 ( ( 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 ( not [a,b] in R0 . s or [a,b] in (MSCng H) . s )
assume A26:
[a,b] in (MSCng H) . s
;
[a,b] in R0 . sthen A27:
a in the
Sorts of
F2()
. s
by ZFMISC_1:87;
A28:
b in the
Sorts of
F2()
. s
by A26, ZFMISC_1:87;
A29:
[a,b] in MSCng (
H,
s)
by A21, A26, MSUALG_4:def 18;
A30:
for
Y being
set st
Y in Q holds
[a,b] in Y
proof
let Y be
set ;
( Y in Q implies [a,b] in Y )
assume
Y in Q
;
[a,b] in Y
then consider t being
Element of
Bool [| the Sorts of F2(), the Sorts of F2()|] such that A31:
Y = t . s
and A32:
t in CC
by A23, A25;
reconsider t1 =
t as
Element of
CC by A32;
consider F1 being
ManySortedFunction of
F2(),
(FF . t1) such that A33:
F1 = FofI1 . t1
and
F1 is_homomorphism F2(),
FF . t1
and A34:
ex
R being
MSCongruence of
F2() st
(
t1 = R &
F1 = MSNat_Hom (
F2(),
R) )
by A17;
(F1 . s) . a =
(((proj (FF,t1)) ** H) . s) . a
by A22, A33
.=
(((proj (FF,t1)) . s) * (H . s)) . a
by MSUALG_3:2
.=
((proj (FF,t1)) . s) . ((H . s) . a)
by A27, FUNCT_2:15
.=
((proj (FF,t1)) . s) . ((H . s) . b)
by A27, A28, A29, MSUALG_4:def 17
.=
(((proj (FF,t1)) . s) * (H . s)) . b
by A28, FUNCT_2:15
.=
(((proj (FF,t1)) ** H) . s) . b
by MSUALG_3:2
.=
(F1 . s) . b
by A22, A33
;
hence
[a,b] in Y
by A27, A28, A31, A34, MSUALG_9:33;
verum
end;
[a,b] in [:( the Sorts of F2() . s),( the Sorts of F2() . s):]
by A26;
then
[a,b] in [| the Sorts of F2(), the Sorts of F2()|] . s
by PBOOLE:def 16;
hence
[a,b] in R0 . s
by A24, A30, SETFAM_1:43;
verum
end;
assume A35:
[a,b] in R0 . s
;
[a,b] in (MSCng H) . s
then A36:
a in the
Sorts of
F2()
. s
by ZFMISC_1:87;
A37:
b in the
Sorts of
F2()
. s
by A35, ZFMISC_1:87;
A38:
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;
(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 A39:
F1 = FofI1 . c
and
F1 is_homomorphism F2(),
FF . c
and A40:
ex
R being
MSCongruence of
F2() st
(
c = R &
F1 = MSNat_Hom (
F2(),
R) )
by A17;
t1 is
Element of
Bool [| the Sorts of F2(), the Sorts of F2()|]
by CLOSURE2:def 1;
then
t1 . s in |:CC:| . s
by A25;
then A41:
[a,b] in t1 . s
by A23, A24, A35, 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 A36, FUNCT_2:15
.=
(((proj (FF,c)) ** H) . s) . a
by MSUALG_3:2
.=
(F1 . s) . a
by A22, A39
.=
(F1 . s) . b
by A36, A37, A41, A40, MSUALG_9:33
.=
(((proj (FF,c)) ** H) . s) . b
by A22, A39
.=
(((proj (FF,c)) . s) * (H . s)) . b
by MSUALG_3:2
.=
((proj (FF,c)) . s) . ((H . s) . b)
by A37, FUNCT_2:15
.=
(proj ((Carrier (FF,s)),c)) . ((H . s) . b)
by PRALG_3:def 2
;
verum
end;
(H . s) . b in the
Sorts of
(product FF) . s
by A37, FUNCT_2:5;
then A42:
(H . s) . b in product (Carrier (FF,s))
by PRALG_2:def 10;
(H . s) . a in the
Sorts of
(product FF) . s
by A36, 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 A42, A38, MSUALG_9:14;
then
[a,b] in MSCng (
H,
s)
by A36, A37, MSUALG_4:def 17;
hence
[a,b] in (MSCng H) . s
by A21, MSUALG_4:def 18;
verum
end; hence
(MSCng H) . i = R0 . i
;
verum end;
then A43:
MSCng H = R0
;
QuotMSAlg (F2(),(MSCng H)), Image (MSHomQuot H) are_isomorphic
by A21, MSUALG_4:4, MSUALG_9:16;
then consider XX being strict non-empty MSSubAlgebra of product FF such that
A44:
A,XX are_isomorphic
by A43;
for cc being set st cc in CC holds
ex A being MSAlgebra over F1() st
( A = FF . cc & P1[A] )
then
P1[XX]
by A2, A3;
hence
P1[A]
by A1, A44, MSUALG_3:17; ( 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; 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 A47:
F is "onto"
by MSUALG_3:def 8;
let B be 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 ) )
let G be ManySortedFunction of F2(),B; ( 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
A48:
G is_homomorphism F2(),B
and
A49:
P1[B]
; 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 ;
A50:
QuotMSAlg (F2(),(MSCng G)),C are_isomorphic
by A48, MSUALG_4:4, MSUALG_9:16;
A51:
MSCng G is Element of (CongrLatt F2())
by MSUALG_5:def 6;
P1[C]
by A2, A49;
then
P1[ QuotMSAlg (F2(),(MSCng G))]
by A1, A50, MSUALG_3:17;
then
MSCng G in CC
by A51;
then
R0 c= MSCng G
by CLOSURE2:21, MSSUBFAM:43;
then consider H being ManySortedFunction of A,B such that
A52:
H is_homomorphism A,B
and
A53:
G = H ** F
by A48, MSUALG_9:36;
take
H
; ( 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 A52; ( H ** F = G & ( for K being ManySortedFunction of A,B st K ** F = G holds
H = K ) )
thus
G = H ** F
by A53; for K being ManySortedFunction of A,B st K ** F = G holds
H = K
let K be ManySortedFunction of A,B; ( K ** F = G implies H = K )
assume
K ** F = G
; H = K
hence
H = K
by A53, A47, EXTENS_1:12; verum