reserve S for non void non empty ManySortedSign,
  U0 for MSAlgebra over S;
reserve S for non void non empty ManySortedSign,
  X for ManySortedSet of the carrier of S,
  o for OperSymbol of S,
  b for Element of ([:the carrier' of S,{the
  carrier of S}:] \/ Union (coprod X))*;
reserve x for set;

theorem Th13:
  for S be non void non empty ManySortedSign, X be non-empty
ManySortedSet of the carrier of S, s be SortSymbol of S holds FreeGen(s,X) = {
root-tree t where t is Symbol of DTConMSA(X): t in Terminals DTConMSA(X) & t`2
  = s}
proof
  let S be non void non empty ManySortedSign, X be non-empty ManySortedSet of
  the carrier of S, s be SortSymbol of S;
  set D = DTConMSA(X), A = {root-tree t where t is Symbol of D : t in
  Terminals D & t`2 = s};
  thus FreeGen(s,X) c= A
  proof
    let x be object;
    assume x in FreeGen(s,X);
    then consider a be set such that
A1: a in X.s and
A2: x = root-tree [a,s] by Def15;
A3: [a,s] in Terminals D by A1,Th7;
    then reconsider t = [a,s] as Symbol of D;
    t`2 = s;
    hence thesis by A2,A3;
  end;
  let x be object;
  assume x in A;
  then consider t be Symbol of D such that
A4: x = root-tree t and
A5: t in Terminals D and
A6: t`2 = s;
  consider s1 be SortSymbol of S, a be set such that
A7: a in X.s1 and
A8: t = [a,s1] by A5,Th7;
  s = s1 by A6,A8;
  hence thesis by A4,A7,A8,Def15;
end;
