let S be non empty non void ManySortedSign ; for U1 being non-empty MSAlgebra over S
for X being non-empty ManySortedSet of the carrier of S
for h1, h2 being ManySortedFunction of (FreeMSA X),U1 st h1 is_homomorphism FreeMSA X,U1 & h2 is_homomorphism FreeMSA X,U1 & h1 || (FreeGen X) = h2 || (FreeGen X) holds
h1 = h2
let U1 be non-empty MSAlgebra over S; for X being non-empty ManySortedSet of the carrier of S
for h1, h2 being ManySortedFunction of (FreeMSA X),U1 st h1 is_homomorphism FreeMSA X,U1 & h2 is_homomorphism FreeMSA X,U1 & h1 || (FreeGen X) = h2 || (FreeGen X) holds
h1 = h2
let X be non-empty ManySortedSet of the carrier of S; for h1, h2 being ManySortedFunction of (FreeMSA X),U1 st h1 is_homomorphism FreeMSA X,U1 & h2 is_homomorphism FreeMSA X,U1 & h1 || (FreeGen X) = h2 || (FreeGen X) holds
h1 = h2
let h1, h2 be ManySortedFunction of (FreeMSA X),U1; ( h1 is_homomorphism FreeMSA X,U1 & h2 is_homomorphism FreeMSA X,U1 & h1 || (FreeGen X) = h2 || (FreeGen X) implies h1 = h2 )
assume that
A1:
h1 is_homomorphism FreeMSA X,U1
and
A2:
h2 is_homomorphism FreeMSA X,U1
and
A3:
h1 || (FreeGen X) = h2 || (FreeGen X)
; h1 = h2
A4:
h2 is_homomorphism FreeMSA X,U1
by A2;
defpred S1[ SortSymbol of S, set , set ] means (h1 . $1) . $3 = $2;
A5:
for s being SortSymbol of S
for x, y being set st y in FreeGen (s,X) holds
( (h2 . s) . y = x iff S1[s,x,y] )
proof
set FG =
FreeGen X;
let s be
SortSymbol of
S;
for x, y being set st y in FreeGen (s,X) holds
( (h2 . s) . y = x iff S1[s,x,y] )let x,
y be
set ;
( y in FreeGen (s,X) implies ( (h2 . s) . y = x iff S1[s,x,y] ) )
assume
y in FreeGen (
s,
X)
;
( (h2 . s) . y = x iff S1[s,x,y] )
then A6:
y in (FreeGen X) . s
by MSAFREE:def 16;
A7:
(
(h1 || (FreeGen X)) . s = (h1 . s) | ((FreeGen X) . s) &
(h2 || (FreeGen X)) . s = (h2 . s) | ((FreeGen X) . s) )
by MSAFREE:def 1;
((h1 . s) | ((FreeGen X) . s)) . y = (h1 . s) . y
by A6, FUNCT_1:49;
hence
(
(h2 . s) . y = x iff
S1[
s,
x,
y] )
by A3, A7, A6, FUNCT_1:49;
verum
end;
A8:
for s being SortSymbol of S
for x, y being set st y in FreeGen (s,X) holds
( (h1 . s) . y = x iff S1[s,x,y] )
;
A9:
h1 is_homomorphism FreeMSA X,U1
by A1;
thus
h1 = h2
from MSAFREE1:sch 3(A9, A8, A4, A5); verum