 reserve x,y for object, X,Y,Z for set;
 reserve GF for commutative
     Abelian add-associative right_zeroed right_complementable
     associative well-unital distributive non empty doubleLoopStr;
 reserve a,b for Element of GF;
 reserve V for scalar-distributive vector-distributive
   scalar-associative scalar-unital add-associative right_zeroed
     right_complementable Abelian non empty ModuleStr over GF;
 reserve v,v1,v2,u for Vector of V;
 reserve A,B,C for Subset of V;
 reserve T for finite Subset of V;
 reserve l for Linear_Combination of A;
 reserve f,g for Function of V, GF;
 reserve GF for commutative non degenerated almost_left_invertible
     Abelian add-associative right_zeroed right_complementable
     associative well-unital distributive non empty doubleLoopStr;
 reserve a,b for Element of GF;
 reserve V for scalar-distributive vector-distributive
   scalar-associative scalar-unital add-associative right_zeroed
     right_complementable Abelian non empty ModuleStr over GF;
 reserve v,v1,v2,u for Vector of V;
 reserve A,B,C for Subset of V;
 reserve T for finite Subset of V;
 reserve l for Linear_Combination of A;
 reserve f,g for Function of V, GF;
reserve l0 for Linear_Combination of {}(the carrier of V);

theorem
  for GF be Ring,
      V be LeftMod of GF,
      A,B be Subset of V holds
  Lin(A \/ B) = Lin(A) + Lin(B)
proof
  let GF be Ring,
      V be LeftMod of GF,
      A,B be Subset of V;
  now
    deffunc F(object) = 0.GF;
    let v be Vector of V;
    assume v in Lin(A \/ B);
    then consider l being Linear_Combination of A \/ B such that
A1: v = Sum(l) by Th7;
    deffunc G(object) = l.$1;
    set D = Carrier(l) \ A;
    set C = Carrier(l) /\ A;
    defpred P[object] means $1 in C;
A2: now
      let x be object;
      assume x in the carrier of V;
      then reconsider v = x as Vector of V;
      for f being Function of V, GF holds
      f.v in the carrier of GF;
      hence P[x] implies G(x) in the carrier of GF;
      assume not P[x];
      thus F(x) in the carrier of GF;
    end;
    reconsider C as finite Subset of V;
    defpred C[object] means $1 in D;
    reconsider D as finite Subset of V;
A3: D c= B
    proof
      let x be object;
      assume x in D;
      then
A4:   x in Carrier(l) & not x in A by XBOOLE_0:def 5;
      Carrier(l) c= A \/ B by VECTSP_6:def 4;
      hence thesis by A4,XBOOLE_0:def 3;
    end;
    consider f being Function of V, GF such that
A5: for x being object st x in the carrier of V
holds (P[x] implies f.x = G(x)) &
    (not P[x] implies f.x = F(x)) from FUNCT_2:sch 5 (A2);
    reconsider f as Element of Funcs(the carrier of V, the carrier of GF) by
FUNCT_2:8;
    for u being Vector of V holds not u in C implies f.u = 0.GF by A5;
    then reconsider f as Linear_Combination of V by VECTSP_6:def 1;
A6: Carrier(f) c= C
    proof
      let x be object;
      assume x in Carrier(f);
      then
A7:   ex u being Vector of V st x = u & f.u <> 0.GF;
      assume not x in C;
      hence thesis by A5,A7;
    end;
    C c= A by XBOOLE_1:17;
    then Carrier(f) c= A by A6;
    then reconsider f as Linear_Combination of A by VECTSP_6:def 4;
    deffunc G(object) = l.$1;
A8: now
      let x be object;
      assume x in the carrier of V;
      then reconsider v = x as Vector of V;
      for g being Function of V, GF holds
      g.v in the carrier of GF;
      hence C[x] implies G(x) in the carrier of GF;
      assume not C[x];
      thus F(x) in the carrier of GF;
    end;
    consider g being Function of the carrier of V, the carrier of GF such that
A9: for x being object st x in the carrier of V
   holds (C[x] implies g.x = G(x)) &
    (not C[x] implies g.x = F(x)) from FUNCT_2:sch 5 (A8);
    reconsider g as Element of Funcs(the carrier of V, the carrier of GF) by
FUNCT_2:8;
    for u being Vector of V holds not u in D implies g.u = 0.GF by A9;
    then reconsider g as Linear_Combination of V by VECTSP_6:def 1;
    Carrier(g) c= D
    proof
      let x be object;
      assume x in Carrier(g);
      then
A10:  ex u being Vector of V st x = u & g.u <> 0.GF;
      assume not x in D;
      hence thesis by A9,A10;
    end;
    then Carrier(g) c= B by A3;
    then reconsider g as Linear_Combination of B by VECTSP_6:def 4;
    l = f + g
    proof
      let v be Vector of V;
      now
        per cases;
        suppose
A11:      v in C;
A12:      now
            assume v in D;
            then not v in A by XBOOLE_0:def 5;
            hence contradiction by A11,XBOOLE_0:def 4;
          end;
          thus (f + g).v = f.v + g.v by VECTSP_6:22
            .= l.v + g.v by A5,A11
            .= l.v + 0.GF by A9,A12
            .= l.v by RLVECT_1:4;
        end;
        suppose
A13:      not v in C;
          now
            per cases;
            suppose
A14:          v in Carrier(l);
A15:          now
                assume not v in D;
                then not v in Carrier(l) or v in A by XBOOLE_0:def 5;
                hence contradiction by A13,A14,XBOOLE_0:def 4;
              end;
              thus (f + g). v = f.v + g.v by VECTSP_6:22
                .= g.v + 0.GF by A5,A13
                .= g.v by RLVECT_1:4
                .= l.v by A9,A15;
            end;
            suppose
A16:          not v in Carrier(l);
              then
A17:          not v in D by XBOOLE_0:def 5;
A18:          not v in C by A16,XBOOLE_0:def 4;
              thus (f + g).v = f.v + g.v by VECTSP_6:22
                .= 0.GF + g.v by A5,A18
                .= 0.GF + 0.GF by A9,A17
                .= 0.GF by RLVECT_1:4
                .= l.v by A16;
            end;
          end;
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    then
A19: v = Sum(f) + Sum(g) by A1,VECTSP_6:44;
    Sum(f) in Lin(A) & Sum(g) in Lin(B) by Th7;
    hence v in Lin(A) + Lin(B) by A19,VECTSP_5:1;
  end;
  then
A20: Lin(A \/ B) is Subspace of Lin(A) + Lin(B) by VECTSP_4:28;
  Lin(A) is Subspace of Lin(A \/ B) & Lin(B) is Subspace of Lin(A \/ B) by Th13
,XBOOLE_1:7;
  then Lin(A) + Lin(B) is Subspace of Lin(A \/ B) by VECTSP_5:34;
  hence thesis by A20,VECTSP_4:25;
end;
