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;
reserve G for add-associative right_zeroed right_complementable Abelian non
  empty addLoopStr;
reserve x for Element of G;
reserve w for Function of [:S,S:],the carrier of G;
reserve M for MidSp;
reserve p,q,r,s for Point of M;
reserve G for midpoint_operator add-associative right_zeroed
  right_complementable Abelian non empty addLoopStr;
reserve x,y for Element of G;
reserve x,y for Element of vectgroup(M);
reserve w for Function of [:S,S:],the carrier of G;
reserve a,b,c for Point of MidStr(#S,@(w)#);

theorem Th25:
  w is_atlas_of S,G implies Atlas(w) is associating
proof
  assume A1: w is_atlas_of S,G;
  for a,b,c holds a@b = c iff (Atlas(w)).(a,c) = (Atlas(w)).(c,b)
  proof
    let a,b,c;
    @(w).(a,b) = c iff w.(a,c) = w.(c,b) by A1,Th24;
    hence thesis by MIDSP_1:def 1;
  end;
  hence thesis;
end;
