
theorem
  for V being RealUnitarySpace, A,B being Subset of V holds Lin(A \/ B)
  = Lin(A) + Lin(B)
proof
  let V be RealUnitarySpace;
  let A,B be Subset of V;
  now
    deffunc G(object) = 0;
    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 Th1;
    deffunc F(object) = l.$1;
    set D = Carrier(l) \ A;
    set C = Carrier(l) /\ A;
    defpred C[object] means $1 in C;
    defpred D[object] means $1 in D;
    now
      let x be set;
      assume x in the carrier of V;
      then reconsider v = x as VECTOR of V;
      for f being Function of the carrier of V, REAL holds f.v in REAL;
      hence x in C implies l.x in REAL;
      assume not x in C;
      thus 0 in REAL by XREAL_0:def 1;
    end;
    then
A2: for x being object st x in the carrier of V holds (C[x] implies F(x) in
    REAL) & (not C[x] implies G(x) in REAL);
    consider f being Function of the carrier of V, REAL such that
A3: for x being object st x in the carrier of V holds (C[x] implies f.x
    = F(x)) & (not C[x] implies f.x = G(x)) from FUNCT_2:sch 5(A2);
    reconsider C as finite Subset of V;
    reconsider f as Element of Funcs(the carrier of V, REAL) by FUNCT_2:8;
    for u being VECTOR of V st not u in C holds f.u = 0 by A3;
    then reconsider f as Linear_Combination of V by RLVECT_2:def 3;
A4: Carrier(f) c= C
    proof
      let x be object;
      assume x in Carrier(f);
      then
A5:   ex u being VECTOR of V st x = u & f.u <> 0;
      assume not x in C;
      hence thesis by A3,A5;
    end;
    C c= A by XBOOLE_1:17;
    then Carrier(f) c= A by A4;
    then reconsider f as Linear_Combination of A by RLVECT_2:def 6;
    now
      let x be set;
      assume x in the carrier of V;
      then reconsider v = x as VECTOR of V;
      for g being Function of the carrier of V, REAL holds g.v in REAL;
      hence x in D implies l.x in REAL;
      assume not x in D;
      thus 0 in REAL by XREAL_0:def 1;
    end;
    then
A6: for x being object st x in the carrier of V holds (D[x] implies F(x) in
    REAL) & (not D[x] implies G(x) in REAL);
    consider g being Function of the carrier of V, REAL such that
A7: for x being object st x in the carrier of V holds (D[x] implies g.x
    = F(x)) & (not D[x] implies g.x = G(x)) from FUNCT_2:sch 5(A6);
    reconsider D as finite Subset of V;
    reconsider g as Element of Funcs(the carrier of V, REAL) by FUNCT_2:8;
    for u being VECTOR of V holds not u in D implies g.u = 0 by A7;
    then reconsider g as Linear_Combination of V by RLVECT_2:def 3;
A8: D c= B
    proof
      let x be object;
      assume x in D;
      then
A9:   x in Carrier(l) & not x in A by XBOOLE_0:def 5;
      Carrier(l) c= A \/ B by RLVECT_2:def 6;
      hence thesis by A9,XBOOLE_0:def 3;
    end;
    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;
      assume not x in D;
      hence thesis by A7,A10;
    end;
    then Carrier(g) c= B by A8;
    then reconsider g as Linear_Combination of B by RLVECT_2:def 6;
    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 RLVECT_2:def 10
            .= l.v + g.v by A3,A11
            .= l.v + 0 by A7,A12
            .= l.v;
        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 RLVECT_2:def 10
                .= 0 + g.v by A3,A13
                .= l.v by A7,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 RLVECT_2:def 10
                .= 0 + g.v by A3,A18
                .= 0 + 0 by A7,A17
                .= l.v by A16;
            end;
          end;
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    then
A19: v = Sum(f) + Sum(g) by A1,RLVECT_3:1;
    Sum(f) in Lin(A) & Sum(g) in Lin(B) by Th1;
    hence v in Lin(A) + Lin(B) by A19,RUSUB_2:1;
  end;
  then
A20: Lin(A \/ B) is Subspace of Lin(A) + Lin(B) by RUSUB_1:23;
  Lin(A) is Subspace of Lin(A \/ B) & Lin(B) is Subspace of Lin(A \/ B) by Th7,
XBOOLE_1:7;
  then Lin(A) + Lin(B) is Subspace of Lin(A \/ B) by Lm5;
  hence thesis by A20,RUSUB_1:20;
end;
