reserve x,y,y1,y2 for object;
reserve R for Ring;
reserve a for Scalar of R;
reserve V,X,Y for RightMod of R;
reserve u,u1,u2,v,v1,v2 for Vector of V;
reserve V1,V2,V3 for Subset of V;
reserve W,W1,W2 for Submodule of V;
reserve w,w1,w2 for Vector of W;

theorem Th34:
  V1 <> {} & V1 is linearly-closed implies ex W being strict
  Submodule of V st V1 = the carrier of W
proof
  assume that
A1: V1 <> {} and
A2: V1 is linearly-closed;
  reconsider D = V1 as non empty set by A1;
  reconsider d = 0.V as Element of D by A2,Th1;
  set VV = the carrier of V;
  set C = (comp V) | D;
  dom(comp V) = VV by FUNCT_2:def 1;
  then
A3: dom C = D by RELAT_1:62;
A4: rng C c= D
  proof
    let x be object;
    assume x in rng C;
    then consider y being object such that
A5: y in dom C and
A6: C.y = x by FUNCT_1:def 3;
    reconsider y as Vector of V by A3,A5;
    x = (comp V).y by A5,A6,FUNCT_1:47
      .= - y by VECTSP_1:def 13;
    hence thesis by A2,A3,A5,Th2;
  end;
  set M = (the rmult of V) |([:D,the carrier of R:] qua set);
  dom(the rmult of V) = [:VV,the carrier of R:] by FUNCT_2:def 1;
  then
A7: dom M = [:D,the carrier of R:] by RELAT_1:62,ZFMISC_1:96;
A8: rng M c= D
  proof
    let x be object;
    assume x in rng M;
    then consider y being object such that
A9: y in dom M and
A10: M.y = x by FUNCT_1:def 3;
    consider y2,y1 being object such that
A11: [y2,y1] = y by A7,A9,RELAT_1:def 1;
    reconsider y1 as Scalar of R by A7,A9,A11,ZFMISC_1:87;
A12: y2 in V1 by A7,A9,A11,ZFMISC_1:87;
    then reconsider y2 as Vector of V;
    x = y2 * y1 by A9,A10,A11,FUNCT_1:47;
    hence thesis by A2,A12;
  end;
  reconsider C as UnOp of D by A3,A4,FUNCT_2:def 1,RELSET_1:4;
  set A = (the addF of V)||D;
  dom(the addF of V) = [:VV,VV:] by FUNCT_2:def 1;
  then
A13: dom A = [:D,D:] by RELAT_1:62,ZFMISC_1:96;
A14: rng A c= D
  proof
    let x be object;
    assume x in rng A;
    then consider y being object such that
A15: y in dom A and
A16: A.y = x by FUNCT_1:def 3;
    consider y1,y2 being object such that
A17: [y1,y2] = y by A13,A15,RELAT_1:def 1;
A18: y1 in D & y2 in D by A13,A15,A17,ZFMISC_1:87;
    then reconsider y1,y2 as Vector of V;
    x = y1 + y2 by A15,A16,A17,FUNCT_1:47;
    hence thesis by A2,A18;
  end;
  reconsider M as Function of [:D,the carrier of R:], D by A7,A8,FUNCT_2:def 1
,RELSET_1:4;
  reconsider A as BinOp of D by A13,A14,FUNCT_2:def 1,RELSET_1:4;
  set W = RightModStr (# D,A,d,M #);
A19: for a,b be Element of W for x,y be Vector of V st x = a & b = y holds a
  + b = x + y
  proof
    let a,b be Element of W;
    let x,y be Vector of V such that
A20: x = a & b = y;
    thus a + b = A.[a,b] .= x + y by A13,A20,FUNCT_1:47;
  end;
A21: W is Abelian add-associative right_zeroed right_complementable
  proof
    thus W is Abelian
    proof
      let a,b be Element of W;
      reconsider x = a, y = b as Vector of V by TARSKI:def 3;
      thus a + b = y + x by A19
        .= b + a by A19;
    end;
    hereby
      let a,b,c be Element of W;
      reconsider x = a, y = b, z = c as Vector of V by TARSKI:def 3;
A22:  b + c = y + z by A19;
      a + b = x + y by A19;
      hence a + b + c = x + y + z by A19
        .= x + (y + z) by RLVECT_1:def 3
        .= a + (b + c) by A19,A22;
    end;
    hereby
      let a be Element of W;
      reconsider x = a as Vector of V by TARSKI:def 3;
      thus a + 0.W = x + 0.V by A19
        .= a by RLVECT_1:def 4;
    end;
    let a be Element of W;
    reconsider x = a as Vector of V by TARSKI:def 3;
    reconsider b9 = (comp V).x as Vector of V;
    C.x in D by FUNCT_2:5;
    then reconsider b = ((comp V)|D).x as Element of W;
    take b;
    thus a + b = x + b9 by A19,FUNCT_1:49
      .= x + -x by VECTSP_1:def 13
      .= 0.W by RLVECT_1:5;
  end;
  W is RightMod-like
  proof
    let a,b be Scalar of R;
    let v,w be Vector of W;
    reconsider x = v, y = w as Vector of V by TARSKI:def 3;
A23: now
      let a be Scalar of R;
      let x be Element of W;
      let y be Vector of V;
      assume
A24:  y = x;
      [x,a] in dom M by A7;
      hence x * a = y * a by A24,FUNCT_1:47;
    end;
    then
A25: v * a = x * a;
A26: w * a = y * a by A23;
    v + w = x + y by A19;
    hence (v + w) * a = (x + y) * a by A23
      .= x * a + y * a by VECTSP_2:def 9
      .= v * a + w * a by A19,A25,A26;
A27: v * b = x * b by A23;
    thus v * (a + b) = x * (a + b) by A23
      .= x * a + x * b by VECTSP_2:def 9
      .= v * a + v * b by A19,A27,A25;
    thus v * (b * a) = x * (b * a) by A23
      .= x * b * a by VECTSP_2:def 9
      .= v * b * a by A23,A27;
    thus v * 1_R = x * 1_R by A23
      .= v by VECTSP_2:def 9;
  end;
  then reconsider W as RightMod of R by A21;
  0.W = 0.V;
  then reconsider W as strict Submodule of V by Def2;
  take W;
  thus thesis;
end;
