 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 A,B being non empty set st A c= B holds A*+^ is SubStr of B*+^
proof
  let A,B be non empty set;
  carr(A*+^) = A* by Def34;
  then
A1: dom op(A*+^) = [:A*,A*:] by FUNCT_2:def 1;
  carr(B*+^) = B* by Def34;
  then
A2: dom op(B*+^) = [:B*,B*:] by FUNCT_2:def 1;
  assume A c= B;
  then
A3: A* c= B* by FINSEQ_1:62;
A4: now
    let x be object;
    assume
A5: x in [:A*,A*:]; then
A6: x`1 in A* & x`2 in A* by MCART_1:10;
    then reconsider x1 = x`1, x2 = x`2 as Element of A*+^ by Def34;
    reconsider y1 = x`1, y2 = x`2 as Element of B*+^ by A3,A6,Def34;
    thus op(A*+^).x = x1[*]x2 by A5,MCART_1:21
      .= x1^x2 by Def34
      .= y1[*]y2 by Def34
      .= op(B*+^).x by A5,MCART_1:21;
  end;
  [:A*,A*:] c= [:B*,B*:] by A3,ZFMISC_1:96;
  hence op(A*+^) c= op(B*+^) by A1,A2,A4,GRFUNC_1:2;
end;
