reserve x,y,z, X,Y,Z for set,
  n for Element of NAT;
reserve A for set,
  D for non empty set,
  a,b,c,l,r for Element of D,
  o,o9 for BinOp of D,
  f,g,h for Function of A,D;
reserve G for non empty multMagma;
reserve A for non empty set,
  a for Element of A,
  p for FinSequence of A,
  m1,m2 for Multiset of A;
reserve p,q for FinSequence of A;
reserve fm for Element of finite-MultiSet_over A;
reserve a,b,c for Element of D;

theorem Th55:
  the carrier of bool G = bool the carrier of G & the multF of
  bool G = (the multF of G).:^2
proof
  bool G = multLoopStr(#bool carr(G), op(G).:^2,{the_unity_wrt op(G)}#) or
  bool G = multMagma(#bool the carrier of G, op(G).:^2#) by Def9;
  hence thesis;
end;
