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;

theorem
  Half 0.G = 0.G & Half (x+y) = Half x + Half y & (Half x = Half y
  implies x = y) & Half Double x = x
proof
  Double 0.G = 0.G by RLVECT_1:def 4;
  hence Half 0.G = 0.G by Def6;
  Double (Half x + Half y) = Double Half x + Double Half y by Th10
    .= x + Double Half y by Def6
    .= x + y by Def6;
  hence Half (x+y) = Half x + Half y by Def6;
  thus Half x = Half y implies x = y
  proof
    assume Half x = Half y;
    hence x = Double Half y by Def6
      .= y by Def6;
  end;
  thus thesis by Def6;
end;
