 reserve x,y,X,Y for set;
reserve G for non empty multMagma,
  D for set,
  a,b,c,r,l for Element of G;
reserve M for non empty multLoopStr;
reserve H for non empty SubStr of G,
  N for non empty MonoidalSubStr of G;

theorem
  for G be non empty multLoopStr, D be non empty Subset of G st
    (for x,y being Element of D holds x*y in D) & 1.G in D
  ex H being strict non empty MonoidalSubStr of G st the carrier of H = D
proof let G be non empty multLoopStr, D be non empty Subset of G;
  assume that
A1: for x,y being Element of D holds x*y in D and
A2: 1.G in D;
  thus ex H being strict non empty MonoidalSubStr of G st the carrier of H = D
proof
  consider H being strict non empty SubStr of G such that
A3: the carrier of H = D by Lm5,A1;
  reconsider e = 1.G as Element of H by A2,A3;
  set N = multLoopStr(#the carrier of H, the multF of H, e#);
  op(N) c= op(G) & for M being multLoopStr st G = M holds 1.N = 1.M by Def23;
  then reconsider N as strict non empty MonoidalSubStr of G by Def25;
  take N;
  thus thesis by A3;
end;
end;
