reserve R for Ring,
  V for RightMod of R,
  W,W1,W2,W3 for Submodule of V,
  u,u1, u2,v,v1,v2 for Vector of V,
  x,y,y1,y2 for object;
reserve C1 for Coset of W1;
reserve C2 for Coset of W2;

theorem
  V = W1 + W2 & (ex v st for v1,v2,u1,u2 st v = v1 + v2 & v = u1 + u2 &
  v1 in W1 & u1 in W1 & v2 in W2 & u2 in W2 holds v1 = u1 & v2 = u2) implies V
  is_the_direct_sum_of W1,W2
proof
  assume
A1: V = W1 + W2;
  the carrier of (0).V = {0.V} & (0).V is Submodule of W1 /\ W2 by RMOD_2:39
,def 3;
  then
A2: {0.V} c= the carrier of W1 /\ W2 by RMOD_2:def 2;
  given v such that
A3: for v1,v2,u1,u2 st v = v1 + v2 & v = u1 + u2 & v1 in W1 & u1 in W1 &
  v2 in W2 & u2 in W2 holds v1 = u1 & v2 = u2;
  assume not thesis;
  then W1 /\ W2 <> (0).V by A1;
  then the carrier of W1 /\ W2 <> {0.V} by RMOD_2:def 3;
  then {0.V} c< the carrier of W1 /\ W2 by A2;
  then consider x being object such that
A4: x in the carrier of W1 /\ W2 and
A5: not x in {0.V} by XBOOLE_0:6;
A6: x in W1 /\ W2 by A4;
  then x in V by RMOD_2:9;
  then reconsider u = x as Vector of V;
  consider v1,v2 such that
A7: v1 in W1 and
A8: v2 in W2 and
A9: v = v1 + v2 by A1,Lm14;
A10: v = v1 + v2 + 0.V by A9,RLVECT_1:def 4
    .= (v1 + v2) + (u - u) by VECTSP_1:19
    .= ((v1 + v2) + u) - u by RLVECT_1:def 3
    .= ((v1 + u) + v2) - u by RLVECT_1:def 3
    .= (v1 + u) + (v2 - u) by RLVECT_1:def 3;
  x in W2 by A6,Th3;
  then
A11: v2 - u in W2 by A8,RMOD_2:23;
  x in W1 by A6,Th3;
  then v1 + u in W1 by A7,RMOD_2:20;
  then v2 + (- u) = v2 by A3,A7,A8,A9,A10,A11
    .= v2 + 0.V by RLVECT_1:def 4;
  then - u = 0.V by RLVECT_1:8;
  then
A12: u = - 0.V by RLVECT_1:17;
  x <> 0.V by A5,TARSKI:def 1;
  hence thesis by A12,RLVECT_1:12;
end;
