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);

theorem Th21:
  vect(M) is_atlas_of the carrier of M, vectgroup(M)
proof
  set w = vect(M);
A1: ex q st w.(p,q) = x
  proof
    reconsider xx = x as Vector of M by Th15;
    consider q such that
A2: xx = vect(p,q) by MIDSP_1:35;
    take q;
    thus thesis by A2,Def8;
  end;
A3: w.(p,q) = w.(p,r) implies q = r
  proof
    assume w.(p,q) = w.(p,r);
    then vect(p,q) = w.(p,r) by Def8
      .= vect(p,r) by Def8;
    hence thesis by MIDSP_1:39;
  end;
  w.(p,q) + w.(q,r) = w.(p,r)
  proof
    w.(p,q) = vect(p,q) & w.(q,r) = vect(q,r) by Def8;
    hence w.(p,q) + w.(q,r) = vect(p,q) + vect(q,r) by Th15
      .= vect(p,r) by MIDSP_1:40
      .= w.(p,r) by Def8;
  end;
  hence thesis by A1,A3;
end;
