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)) #); :: thesis: A is X,S -terms
thus the Sorts of A is ManySortedSubset of the Sorts of (Free (S,X)) :: according to MSAFREE4:def 6 :: thesis: ( 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 ) ) ) )
proof
thus the Sorts of A c= the Sorts of (Free (S,X)) ; :: according to PBOOLE:def 18 :: thesis: verum
end;
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; :: thesis: 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; :: thesis: 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; :: thesis: ( 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 ; :: thesis: 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; :: thesis: verum