set v = the ManySortedMSSet of the Sorts of (Free (S,X)), the Sorts of (Free (S,X));
take A = VarMSAlgebra(# the Sorts of (Free (S,X)), the Charact of (Free (S,X)), the ManySortedMSSet of the Sorts of (Free (S,X)), the Sorts of (Free (S,X)) #); A is X,S -terms
thus
the Sorts of A is ManySortedSubset of the Sorts of (Free (S,X))
MSAFREE4:def 6 ( FreeGen X is ManySortedSubset of the Sorts of A & ( for b1 being Element of the carrier' of S
for b2 being set holds
( not b2 in Args (b1,(Free (S,X))) or not (Den (b1,(Free (S,X)))) . b2 in the Sorts of A . (the_result_sort_of b1) or ( b2 in Args (b1,A) & (Den (b1,A)) . b2 = (Den (b1,(Free (S,X)))) . b2 ) ) ) & ( for b1 being ManySortedFunction of FreeGen X, the Sorts of A
for b2 being ManySortedSubset of the Sorts of A holds
( not b2 = FreeGen X or ex b3 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b3 is_homomorphism A,A & b1 = b3 || b2 ) ) ) )
A1:
MSAlgebra(# the Sorts of A, the Charact of A #) = FreeMSA X
by MSAFREE3:31;
thus
( FreeGen X is ManySortedSubset of the Sorts of A & ( for o being OperSymbol of S
for p being FinSequence st p in Args (o,(Free (S,X))) & (Den (o,(Free (S,X)))) . p in the Sorts of A . (the_result_sort_of o) holds
( p in Args (o,A) & (Den (o,A)) . p = (Den (o,(Free (S,X)))) . p ) ) )
by MSAFREE3:31; for b1 being ManySortedFunction of FreeGen X, the Sorts of A
for b2 being ManySortedSubset of the Sorts of A holds
( not b2 = FreeGen X or ex b3 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b3 is_homomorphism A,A & b1 = b3 || b2 ) )
let f be ManySortedFunction of FreeGen X, the Sorts of A; for b1 being ManySortedSubset of the Sorts of A holds
( not b1 = FreeGen X or ex b2 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b2 is_homomorphism A,A & f = b2 || b1 ) )
let G be MSSubset of A; ( not G = FreeGen X or ex b1 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b1 is_homomorphism A,A & f = b1 || G ) )
assume A2:
G = FreeGen X
; ex b1 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b1 is_homomorphism A,A & f = b1 || G )
then reconsider F = G as V2() GeneratorSet of MSAlgebra(# the Sorts of A, the Charact of A #) by MSAFREE3:31;
reconsider H = F as V2() GeneratorSet of A by Th32;
H is free
by Th33, A1, A2, MSAFREE:16;
hence
ex b1 being ManySortedFunction of the Sorts of A, the Sorts of A st
( b1 is_homomorphism A,A & f = b1 || G )
by A2; verum