reserve R for Ring,
  V for RightMod of R,
  a,b for Scalar of R,
  x,y for set,
  p,q ,r for FinSequence,
  i,k for Nat,
  u,v,v1,v2,v3,w for Vector of V,
  F,G,H for FinSequence of V,
  A,B for Subset of V,
  f for Function of V, R,
  S,T for finite Subset of V;
reserve L,L1,L2,L3 for Linear_Combination of V;
reserve l for Linear_Combination of A;

theorem Th29:
  0.R <> 1_R implies (A <> {} & A is linearly-closed iff for l
  holds Sum l in A)
proof
  assume
A1: 0.R <> 1_R;
  thus A <> {} & A is linearly-closed implies for l holds Sum(l) in A
  proof
    defpred P[Nat] means for l st card(Carrier(l)) = $1 holds Sum (l) in A;
    assume that
A2: A <> {} and
A3: A is linearly-closed;
    now
      let l;
      assume card(Carrier(l)) = 0;
      then Carrier(l) = {};
      then l = ZeroLC(V) by Def4;
      then Sum(l) = 0.V by Lm3;
      hence Sum(l) in A by A2,A3,RMOD_2:1;
    end;
    then
A4: P[0];
    now
      let k be Nat;
      assume
A5:   for l st card Carrier l = k holds Sum(l) in A;
      let l;
      deffunc Q(Element of V) = l.$1;
      consider F such that
A6:   F is one-to-one and
A7:   rng F = Carrier(l) and
A8:   Sum(l) = Sum(l (#) F) by Def7;
      reconsider G = F | Seg k as FinSequence of V by FINSEQ_1:18;
      assume
A9:   card Carrier l = k + 1;
      then
A10:  len F = k + 1 by A6,A7,FINSEQ_4:62;
      then
A11:  len(l (#) F) = k + 1 by Def6;
A12:  k + 1 in Seg(k + 1) by FINSEQ_1:4;
      then
A13:  k + 1 in dom F by A10,FINSEQ_1:def 3;
      k + 1 in dom F by A10,A12,FINSEQ_1:def 3;
      then reconsider v = F.(k + 1) as Vector of V by FINSEQ_2:11;
      consider f being Function of V, R such that
A14:  f.v = 0.R and
A15:  for u being Element of V st u <> v holds f.u = Q(u) from
      FUNCT_2:sch 6;
      reconsider f as Element of Funcs(the carrier of V, the carrier of R) by
FUNCT_2:8;
A16:  v in Carrier(l) by A7,A13,FUNCT_1:def 3;
      now
        let u;
        assume
A17:    not u in Carrier(l);
        hence f.u = l.u by A16,A15
          .= 0.R by A17;
      end;
      then reconsider f as Linear_Combination of V by Def2;
A18:  A \ {v} c= A by XBOOLE_1:36;
A19:  Carrier(l) c= A by Def5;
      then
A20:  v * l.v in A by A3,A16;
A21:  Carrier(f) = Carrier(l) \ {v}
      proof
        thus Carrier(f) c= Carrier(l) \ {v}
        proof
          let x be object;
          assume x in Carrier(f);
          then consider u such that
A22:      u = x and
A23:      f.u <> 0.R;
          f.u = l.u by A14,A15,A23;
          then
A24:      x in Carrier(l) by A22,A23;
          not x in {v} by A14,A22,A23,TARSKI:def 1;
          hence thesis by A24,XBOOLE_0:def 5;
        end;
        let x be object;
        assume
A25:    x in Carrier(l) \ {v};
        then x in Carrier(l) by XBOOLE_0:def 5;
        then consider u such that
A26:    x = u and
A27:    l.u <> 0.R;
        not x in {v} by A25,XBOOLE_0:def 5;
        then x <> v by TARSKI:def 1;
        then l.u = f.u by A15,A26;
        hence thesis by A26,A27;
      end;
      then Carrier(f) c= A \ {v} by A19,XBOOLE_1:33;
      then Carrier(f) c= A by A18;
      then reconsider f as Linear_Combination of A by Def5;
A28:  len G = k by A10,FINSEQ_3:53;
      then
A29:  len (f (#) G) = k by Def6;
A30:  rng G = Carrier(f)
      proof
        thus rng G c= Carrier f
        proof
          let x be object;
          assume x in rng G;
          then consider y being object such that
A31:      y in dom G and
A32:      G.y = x by FUNCT_1:def 3;
          reconsider y as Nat by A31,FINSEQ_3:23;
A33:      dom G c= dom F & G.y = F.y by A31,FUNCT_1:47,RELAT_1:60;
          now
            assume x = v;
            then
A34:        k + 1 = y by A6,A13,A31,A32,A33;
            y <= k by A28,A31,FINSEQ_3:25;
            hence contradiction by A34,XREAL_1:29;
          end;
          then
A35:      not x in {v} by TARSKI:def 1;
          x in rng F by A31,A32,A33,FUNCT_1:def 3;
          hence thesis by A7,A21,A35,XBOOLE_0:def 5;
        end;
        let x be object;
        assume
A36:    x in Carrier(f);
        then x in rng F by A7,A21,XBOOLE_0:def 5;
        then consider y being object such that
A37:    y in dom F and
A38:    F.y = x by FUNCT_1:def 3;
        reconsider y as Element of NAT by A37,FINSEQ_3:23;
        now
          assume not y in Seg k;
          then y in dom F \ Seg k by A37,XBOOLE_0:def 5;
          then y in Seg(k + 1) \ Seg k by A10,FINSEQ_1:def 3;
          then y in {k + 1} by FINSEQ_3:15;
          then y = k + 1 by TARSKI:def 1;
          then not v in {v} by A21,A36,A38,XBOOLE_0:def 5;
          hence contradiction by TARSKI:def 1;
        end;
        then y in dom F /\ Seg k by A37,XBOOLE_0:def 4;
        then
A39:    y in dom G by RELAT_1:61;
        then G.y = F.y by FUNCT_1:47;
        hence thesis by A38,A39,FUNCT_1:def 3;
      end;
      Seg(k + 1) /\ Seg k = Seg k by FINSEQ_1:7,NAT_1:12
        .= dom(f (#) G) by A29,FINSEQ_1:def 3;
      then
A40:  dom(f (#) G) = dom(l (#) F) /\ Seg k by A11,FINSEQ_1:def 3;
      now
        let x be object;
A41:    rng F c= the carrier of V by FINSEQ_1:def 4;
        assume
A42:    x in dom(f (#) G);
        then reconsider n = x as Nat by FINSEQ_3:23;
        n in dom(l (#) F) by A40,A42,XBOOLE_0:def 4;
        then
A43:    n in dom F by A10,A11,FINSEQ_3:29;
        then F.n in rng F by FUNCT_1:def 3;
        then reconsider w = F.n as Vector of V by A41;
A44:    n in dom G by A28,A29,A42,FINSEQ_3:29;
        then
A45:    G.n in rng G by FUNCT_1:def 3;
        rng G c= the carrier of V by FINSEQ_1:def 4;
        then reconsider u = G.n as Vector of V by A45;
        not u in {v} by A21,A30,A45,XBOOLE_0:def 5;
        then
A46:    u <> v by TARSKI:def 1;
A47:    (f (#) G).n = u * f.u by A44,Th23
          .= u * l.u by A15,A46;
        w = u by A44,FUNCT_1:47;
        hence (f (#) G).x = (l (#) F).x by A47,A43,Th23;
      end;
      then f (#) G = (l (#) F) | Seg k by A40,FUNCT_1:46;
      then
A48:  f (#) G = (l (#) F) | dom (f (#) G) by A29,FINSEQ_1:def 3;
      v in rng F by A13,FUNCT_1:def 3;
      then {v} c= Carrier(l) by A7,ZFMISC_1:31;
      then card(Carrier(f)) = k + 1 - card{v} by A9,A21,CARD_2:44
        .= k + 1 - 1 by CARD_1:30
        .= k by XCMPLX_1:26;
      then
A49:  Sum(f) in A by A5;
      G is one-to-one by A6,FUNCT_1:52;
      then
A50:  Sum(f (#) G) = Sum(f) by A30,Def7;
      (l (#) F).(len F) = v * l.v by A10,A13,Th23;
      then Sum(l (#) F) = Sum (f (#) G) + v * l.v by A10,A11,A29,A48,
RLVECT_1:38;
      hence Sum(l) in A by A3,A8,A20,A50,A49;
    end;
    then
A51: for k be Nat st P[k] holds P[k+1];
    let l;
A52: card Carrier l = card Carrier l;
    for k be Nat holds P[k] from NAT_1:sch 2(A4,A51);
    hence thesis by A52;
  end;
  assume
A53: for l holds Sum(l) in A;
  hence A <> {};
  ZeroLC(V) is Linear_Combination of A & Sum(ZeroLC(V)) = 0.V by Lm3,Th20;
  then
A54: 0.V in A by A53;
A55: for a,v st v in A holds v * a in A
  proof
    let a,v;
    assume
A56: v in A;
    now
      per cases;
      suppose
        a = 0.R;
        hence thesis by A54,VECTSP_2:32;
      end;
      suppose
A57:    a <> 0.R;
        deffunc F(Element of V)=0.R;
        consider f such that
A58:    f.v = a and
A59:    for u being Element of V st u <> v holds f.u = F(u) from
        FUNCT_2:sch 6;
        reconsider f as Element of Funcs(the carrier of V, the carrier of R)
        by FUNCT_2:8;
        now
          let u;
          assume not u in {v};
          then u <> v by TARSKI:def 1;
          hence f.u = 0.R by A59;
        end;
        then reconsider f as Linear_Combination of V by Def2;
A60:    Carrier(f) = {v}
        proof
          thus Carrier(f) c= {v}
          proof
            let x be object;
            assume x in Carrier(f);
            then consider u such that
A61:        x = u and
A62:        f.u <> 0.R;
            u = v by A59,A62;
            hence thesis by A61,TARSKI:def 1;
          end;
          let x be object;
          assume x in {v};
          then x = v by TARSKI:def 1;
          hence thesis by A57,A58;
        end;
        {v} c= A by A56,ZFMISC_1:31;
        then reconsider f as Linear_Combination of A by A60,Def5;
        consider F such that
A63:    F is one-to-one & rng F = Carrier(f) and
A64:    Sum(f (#) F) = Sum(f) by Def7;
        F = <* v *> by A60,A63,FINSEQ_3:97;
        then f (#) F = <* v * f.v *> by Th25;
        then Sum(f) = v * a by A58,A64,RLVECT_1:44;
        hence thesis by A53;
      end;
    end;
    hence thesis;
  end;
  thus for v,u st v in A & u in A holds v + u in A
  proof
    let v,u;
    assume that
A65: v in A and
A66: u in A;
    now
      per cases;
      suppose
        u = v;
        then v + u = v * 1_R + v by VECTSP_2:def 9
          .= v * 1_R + v * 1_R by VECTSP_2:def 9
          .= v * (1_R + 1_R) by VECTSP_2:def 9;
        hence thesis by A55,A65;
      end;
      suppose
A67:    v <> u;
        deffunc F(Element of V)=0.R;
        consider f such that
A68:    f.v = 1_R & f.u = 1_R and
A69:    for w being Element of V st w <> v & w <> u holds f.w = F(w)
        from FUNCT_2:sch 7(A67);
        reconsider f as Element of Funcs(the carrier of V, the carrier of R)
        by FUNCT_2:8;
        now
          let w;
          assume not w in {v,u};
          then w <> v & w <> u by TARSKI:def 2;
          hence f.w = 0.R by A69;
        end;
        then reconsider f as Linear_Combination of V by Def2;
A70:    Carrier(f) = {v,u}
        proof
          thus Carrier(f) c= {v,u}
          proof
            let x be object;
            assume x in Carrier(f);
            then ex w st x = w & f.w <> 0.R;
            then x = v or x = u by A69;
            hence thesis by TARSKI:def 2;
          end;
          let x be object;
          assume x in {v,u};
          then x = v or x = u by TARSKI:def 2;
          hence thesis by A1,A68;
        end;
        then
A71:    Carrier(f) c= A by A65,A66,ZFMISC_1:32;
A72:    u * 1_R = u & v * 1_R = v by VECTSP_2:def 9;
        reconsider f as Linear_Combination of A by A71,Def5;
        consider F such that
A73:    F is one-to-one & rng F = Carrier(f) and
A74:    Sum(f (#) F) = Sum(f) by Def7;
        F = <* v,u *> or F = <* u,v *> by A67,A70,A73,FINSEQ_3:99;
        then f (#) F = <* v * 1_R, u * 1_R *> or f (#) F = <* u * 1_R, v *
        1_R *> by A68,Th26;
        then Sum(f) = v + u by A74,A72,RLVECT_1:45;
        hence thesis by A53;
      end;
    end;
    hence thesis;
  end;
  thus thesis by A55;
end;
