reserve M,N for non empty multMagma,
  f for Function of M, N;
reserve M for multMagma;
reserve N,K for multSubmagma of M;
reserve M,N for non empty multMagma,
  A for Subset of M,
  f,g for Function of M,N,
  X for stable Subset of M,
  Y for stable Subset of N;
reserve X for set;
reserve x,y,Y for set;
reserve n,m,p for Nat;
reserve v,v1,v2,w,w1,w2 for Element of free_magma X;
reserve X,Y,Z for non empty set;
reserve M for non empty multMagma;
reserve M,N for non empty multMagma,
      f for Function of M, N,
      H for non empty multSubmagma of N,
      R for compatible Equivalence_Relation of M;

theorem
  for M being non empty multMagma holds ex X being non empty set,
       r being Relators of free_magma X,
       g being Function of (free_magma X) ./. equ_rel r, M
    st g is bijective & g is multiplicative
proof
  let M be non empty multMagma;
  set X = the carrier of M;
  consider f be Function of free_magma X, M such that
  A1: f is multiplicative & f extends (id X)*(canon_image(X,1)") by Th39;
  consider r be Relators of free_magma X such that
  A2: equ_kernel f = equ_rel r by A1,Th5;
  reconsider R = equ_kernel f
  as compatible Equivalence_Relation of free_magma X by A1,Th4;
  the multF of M = (the multF of M)|[:the carrier of M,the carrier of M:]; then
  the multF of M = (the multF of M)||the carrier of M by REALSET1:def 2; then
  reconsider H = M as non empty multSubmagma of M by Def9;
  for y being object st y in the carrier of M
ex x being object st x in dom f & y = f.x
  proof
    let y be object;
    assume A3: y in the carrier of M;
     reconsider x = [y,1] as set;
    take x;
    [:free_magma(X,1),{1}:] c= the carrier of free_magma X by Lm1; then
    A4: [:X,{1}:] c= the carrier of free_magma X by Def13;
    1 in {1} by TARSKI:def 1; then
    x in [:X,{1}:] by A3,ZFMISC_1:def 2; then
    x in the carrier of free_magma X by A4;
    hence x in dom f by FUNCT_2:def 1;
    A5: dom ((id X)*(canon_image(X,1)")) c= dom f &
    f tolerates (id X)*(canon_image(X,1)") by A1;
    A6: canon_image(X,1).y = x by A3,Lm3;
    y in dom canon_image(X,1) by A3,Lm3; then
    x in rng canon_image(X,1) by A6,FUNCT_1:3; then
    A7: x in dom(canon_image(X,1)") by FUNCT_1:33;
    dom canon_image(X,1) c= dom(id X) by Lm3; then
    rng(canon_image(X,1)") c= dom(id X) by FUNCT_1:33; then
    A8: x in dom((id X)*(canon_image(X,1)")) by A7,RELAT_1:27;
    A9: y in dom canon_image(X,1) by A3,Lm3;
    thus y = (id X).y by A3,FUNCT_1:18
    .= (id X).((canon_image(X,1)").x) by A9,A6,FUNCT_1:34
    .= ((id X)*(canon_image(X,1)")).x by A8,FUNCT_1:12
    .= f.x by A8,A5,PARTFUN1:53;
  end; then
  the carrier of M c= rng f by FUNCT_1:9; then
  the carrier of H = rng f by XBOOLE_0:def 10; then
  consider g be Function of (free_magma X) ./. R, H such that
  A10: f = g * nat_hom R & g is bijective & g is multiplicative by A1,Th41;
  reconsider g as Function of (free_magma X) ./. equ_rel r, M by A2;
  take X,r,g;
  thus thesis by A10,A2;
end;
