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;

theorem Th14:
  w is_atlas_of S,G implies for a,b,b9,c,c9 holds w.(a,b) = w.(b,c
  ) & w.(a,b9) = w.(b9,c9) implies w.(c,c9) = Double w.(b,b9)
proof
  assume
A1: w is_atlas_of S,G;
  let a,b,b9,c,c9;
  assume
A2: w.(a,b) = w.(b,c) & w.(a,b9) = w.(b9,c9);
  thus w.(c,c9) = w.(c,b9) + w.(b9,c9) by A1
    .= w.(c,a) + w.(a,b9) + w.(b9,c9) by A1
    .= w.(c,b) + w.(b,a) + w.(a,b9) + w.(b9,c9) by A1
    .= Double w.(b,a) + w.(a,b9) + w.(a,b9) by A1,A2,Th5
    .= Double w.(b,a) + Double w.(a,b9) by RLVECT_1:def 3
    .= Double (w.(b,a) + w.(a,b9)) by Th10
    .= Double w.(b,b9) by A1;
end;
