reserve x,y,z for object, X for set, I for non empty set, i,j for Element of I,
    M0 for multMagma-yielding Function,
    M for non empty multMagma-yielding Function,
    M1, M2, M3 for non empty multMagma,
    G for Group-like multMagma-Family of I,
    H for Group-like associative multMagma-Family of I;
reserve p, q for FinSequence of FreeAtoms(H), g,h for Element of H.i,
  k for Nat;
reserve s,t for Element of FreeProduct(H);

theorem Th55:
  rng commute <*<:(the carrier of G.i)-->i,id the carrier of(G.i):>*> =
    1-tuples_on [: {i},the carrier of G.i :]
proof
  set C = the carrier of G.i;
  A1: dom commute <*<:C-->i,id C :>*> = C by Th53;
  now
    let p be object;
    hereby
      assume p in 1-tuples_on [: {i},C :];
      then p is Tuple of 1,[: {i},C :] by FINSEQ_2:131;
      then consider z being Element of [: {i},C :] such that
        A2: p = <*z*> by FINSEQ_2:97;
      consider x,g being object such that
        A3: x in {i} & g in C & z = [x,g] by ZFMISC_1:def 2;
      reconsider g as Element of G.i by A3;
      x = i by A3, TARSKI:def 1;
      then (commute <*<:C-->i,id C :>*>).g = p by A2, A3, Th54;
      hence p in rng(curry' uncurry <*<:C-->i,id C :>*>) by A1, FUNCT_1:3;
    end;
    assume p in rng(curry' uncurry <*<:C-->i,id C :>*>);
    then consider g being object such that
      A4: g in dom(curry' uncurry <*<:C-->i,id C :>*>) and
      A5: (commute <*<:C-->i,id C :>*>).g = p by FUNCT_1:def 3;
    reconsider g as Element of G.i by A1, A4;
    A6: p = <*[i,g]*> by A5, Th54;
    i in {i} & g in C by TARSKI:def 1;
    then [i,g] in [: {i},C :] by ZFMISC_1:def 2;
    hence p in 1-tuples_on [: {i},C :] by A6, FINSEQ_2:98;
  end;
  hence thesis by TARSKI:2;
end;
