reserve G for non empty addLoopStr;
reserve x for Element of G;
reserve M for non empty MidStr;
reserve p,q,r for Point of M;
reserve w for Function of [:the carrier of M,the carrier of M:], the carrier
  of G;
reserve S for non empty set;
reserve a,b,b9,c,c9,d for Element of S;
reserve w for Function of [:S,S:],the carrier of G;
reserve G for add-associative right_zeroed right_complementable non empty
  addLoopStr;
reserve x for Element of G;
reserve w for Function of [:S,S:],the carrier of G;

theorem Th8:
  for w being Function of [:the carrier of M,the carrier of M:],
  the carrier of G holds w is_atlas_of the carrier of M,G &
  w is associating implies p@q = q@p
proof
  let w be Function of [:the carrier of M,the carrier of M:],the carrier of G;
  assume that
A1: w is_atlas_of the carrier of M,G and
A2: w is associating;
  set r = p@q;
  w.(p,r) = w.(r,q) by A2;
  then w.(r,p) = w.(q,r) by A1,Th5;
  hence thesis by A2;
end;
