reserve i, j, m, n for Nat,
  z, B0 for set,
  f, x0 for real-valued FinSequence;

theorem Th42:
  for x0 being Element of RealVectSpace(Seg n), B being Subset of
RealVectSpace(Seg n) st B=RN_Base n holds ex l being Linear_Combination of B st
  x0=Sum l
proof
  let x0 be Element of RealVectSpace(Seg n), B be Subset of RealVectSpace(Seg
  n);
  reconsider x1=x0 as Element of REAL n by FINSEQ_2:93;
A1: REAL(n) = the carrier of RealVectSpace(Seg n) by FINSEQ_2:93;
  assume
A2: B=RN_Base n;
A3: {x where x is Element of REAL n: ex i being Element of NAT st 1<=i & i<=
  n & x=Base_FinSeq(n,i)} c= B
  proof
    let y be object;
    assume y in {x where x is Element of REAL n: ex i being Element of NAT st
    1<=i & i<=n & x=Base_FinSeq(n,i)};
    then
    ex x being Element of REAL n st y=x & ex i being Element of NAT st 1<=
    i & i<=n & x=Base_FinSeq(n,i);
    hence y in B by A2;
  end;
  B c= {x where x is Element of REAL n: ex i being Element of NAT st 1<=i
  & i<=n & x=Base_FinSeq(n,i)}
  proof
    let y be object;
    assume y in B;
    then
    ex i2 being Element of NAT st y=Base_FinSeq(n,i2) & 1<= i2 & i2<=n by A2;
    hence y in {x where x is Element of REAL n: ex i being Element of NAT st 1
    <=i & i<=n & x=Base_FinSeq(n,i)};
  end;
  then
A4: B={x where x is Element of REAL n: ex i being Element of NAT st 1<=i &
  i<=n & x=Base_FinSeq(n,i)} by A3,XBOOLE_0:def 10;
A5: {x where x is Element of REAL n: ex i being Element of NAT st 1<=i & i<=
  n & x=Base_FinSeq(n,i) & |(x1,x)| <>0} c=B
  proof
    let x2 be object;
    assume x2 in {x where x is Element of REAL n: ex i being Element of NAT
    st 1<=i & i<=n & x=Base_FinSeq(n,i) & |(x1,x)| <>0};
    then
    ex x being Element of REAL n st x=x2 & ex i being Element of NAT st 1
    <=i & i<=n & x=Base_FinSeq(n,i) & |(x1,x)| <>0;
    hence x2 in B by A4;
  end;
  then reconsider
  B0={x where x is Element of REAL n: ex i being Element of NAT st
1<=i & i<=n & x=Base_FinSeq(n,i) & |(x1,x)| <>0} as Subset of RealVectSpace(Seg
  n) by XBOOLE_1:1;
A6: dom (ProjFinSeq x1)=Seg len (ProjFinSeq x1) by FINSEQ_1:def 3
    .=Seg n by Def12;
  defpred R[object,object] means
   $1 in B0 implies ex i being Element of NAT st $2=i
  & 1<=i & i<=n & $1=Base_FinSeq(n,i);
A7: for x being object st x in B0 ex y being object st y in Seg n & R[x,y]
  proof
    let x be object;
    assume x in B0;
    then consider x2 being Element of REAL n such that
A8: x=x2 and
A9: ex i being Element of NAT st 1<=i & i<=n & x2=Base_FinSeq(n,i) &
    |( x1,x2)| <>0;
    consider i0 being Element of NAT such that
A10: 1<=i0 and
A11: i0<=n and
A12: x2=Base_FinSeq(n,i0) and
    |(x1,x2)| <>0 by A9;
    i0 in Seg n by A10,A11,FINSEQ_1:1;
    hence ex y being object st y in Seg n & R[x,y] by A8,A10,A11,A12;
  end;
  consider f being Function of B0,Seg n such that
A13: for x being object st x in B0 holds R[x,f.x] from FUNCT_2:sch 1(A7);
  defpred Q[object,object] means
   ($1 in B0 implies (for i being Element of NAT st 1
<=i & i<=n & $1=Base_FinSeq(n,i) holds $2=|( x1, Base_FinSeq(n,i) )|))& (not $1
  in B0 implies $2=0);
A14: for x being object st x in the carrier of RealVectSpace(Seg n)
   ex y being object st y in REAL & Q[x,y]
  proof
    let x be object;
    assume x in the carrier of RealVectSpace(Seg n);
    per cases;
    suppose
A15:  x in B0;
      then consider x2 being Element of REAL n such that
A16:  x2=x and
      ex i being Element of NAT st 1<=i & i<=n & x2=Base_FinSeq(n,i) & |(
      x1,x2)| <>0;
      reconsider y0=|(x1,x2)| as Element of REAL;
      for i2 being Element of NAT st 1<=i2 & i2<=n & x=Base_FinSeq(n,i2)
      holds y0=|( x1, Base_FinSeq(n,i2) )| by A16;
      hence ex y being object st y in REAL & Q[x,y] by A15;
    end;
    suppose
      not x in B0;
      hence ex y being object st y in REAL & Q[x,y] by Lm3;
    end;
  end;
  consider l2 being Function of the carrier of RealVectSpace(Seg n),REAL such
  that
A17: for x being object st x in the carrier of RealVectSpace(Seg n) holds Q
  [x,l2.x] from FUNCT_2:sch 1(A14);
A18: l2 is Element of Funcs(the carrier of RealVectSpace(Seg n),REAL) by
FUNCT_2:8;
  for v being Element of RealVectSpace(Seg n) st not v in B0 holds l2.v =
  0 by A17;
  then reconsider
  l3=l2 as Linear_Combination of RealVectSpace(Seg n) by A2,A5,A18,
RLVECT_2:def 3;
  Carrier l3 c= B0
  proof
    let x be object;
    assume x in Carrier l3;
    then x in { v where v is Element of RealVectSpace(Seg n) : l3.v <> 0 } by
RLVECT_2:def 4;
    then ex v being Element of RealVectSpace(Seg n) st x=v & l3.v <> 0;
    hence x in B0 by A17;
  end;
  then reconsider l0=l3 as Linear_Combination of B0 by RLVECT_2:def 6;
A19: Carrier l0 c= B0 by RLVECT_2:def 6;
  then Carrier l0 c= B by A5;
  then reconsider l2=l0 as Linear_Combination of B by RLVECT_2:def 6;
A20: B0 c= Carrier l0
  proof
    let x be object;
    assume
A21: x in B0;
    then consider x6 being Element of REAL n such that
A22: x=x6 and
A23: ex i being Element of NAT st 1<=i & i<=n & x6=Base_FinSeq(n,i)&
    |( x1,x6)| <>0;
    reconsider x66=x6 as Element of RealVectSpace(Seg n) by FINSEQ_2:93;
    consider i8 being Element of NAT such that
    1<=i8 and
    i8<=n and
A24: x6=Base_FinSeq(n,i8) and
    |(x1,x6)| <>0 by A23;
    l0.x66=|( x1, Base_FinSeq(n,i8) )| by A17,A21,A22,A23,A24;
    then
    x in { v where v is Element of RealVectSpace(Seg n) : l0 . v <> 0} by A22
,A23,A24;
    hence x in Carrier l0 by RLVECT_2:def 4;
  end;
  for x1,x2 being object st x1 in dom f & x2 in dom f & f.x1=f.x2 holds x1= x2
  proof
    let x1,x2 be object;
    assume that
A25: x1 in dom f and
A26: x2 in dom f and
A27: f.x1=f.x2;
A28: ex i2 being Element of NAT st f.x2=i2 & 1<=i2 & i2<=n & x2=
    Base_FinSeq(n,i2) by A13,A26;
    ex i1 being Element of NAT st f.x1=i1 & 1<=i1 & i1<=n & x1=
    Base_FinSeq(n,i1) by A13,A25;
    hence x1=x2 by A27,A28;
  end;
  then
A29: f is one-to-one by FUNCT_1:def 4;
A30: Seg n={} implies B0={}
  proof
    assume
A31: Seg n={};
    now
      set y = the Element of B0;
      assume B0 <> {};
      then y in B0;
      then ex x being Element of REAL n st x=y & ex i being Element of NAT st
      1<=i & i<=n & x=Base_FinSeq(n,i) & |(x1,x)| <>0;
      hence contradiction by A31;
    end;
    hence B0={};
  end;
aaa: rng f is included_in_Seg by FINSEQ_1:def 13;
     then
bbb: rng (Sgm (rng f)) = rng f by FINSEQ_1:def 14;
A32: for i3 being Element of NAT st i3 in dom (ProjFinSeq x1) & not i3 in
  rng (Sgm (rng f)) holds (ProjFinSeq x1).i3= 0*n
  proof
    let i3 be Element of NAT;
    assume that
A33: i3 in dom (ProjFinSeq x1) and
A34: not i3 in rng (Sgm (rng f));
A35: i3 in Seg len (ProjFinSeq x1) by A33,FINSEQ_1:def 3;
    then
A36: 1<=i3 by FINSEQ_1:1;
    len (ProjFinSeq x1)=n by Def12;
    then
A37: i3<=n by A35,FINSEQ_1:1;
A38: not i3 in rng f by A34,bbb;
A39: now
      assume |( x1,Base_FinSeq(n,i3) )| <> 0;
      then
A40:  Base_FinSeq(n,i3) in B0 by A36,A37;
      then consider i5 being Element of NAT such that
A41:  f.(Base_FinSeq(n,i3))=i5 and
      1<=i5 and
      i5<=n and
A42:  Base_FinSeq(n,i3)=Base_FinSeq(n,i5) by A13;
A43:  Base_FinSeq(n,i3) in dom f by A30,A40,FUNCT_2:def 1;
      i3=i5 by A36,A37,A42,Th24;
      hence contradiction by A38,A41,A43,FUNCT_1:def 3;
    end;
    (ProjFinSeq x1).i3 =(|( x1,Base_FinSeq(n,i3) )|)*(Base_FinSeq(n,i3) )
    by A36,A37,Def12;
    hence (ProjFinSeq x1).i3= 0*n by A39,EUCLID_4:3;
  end;
A44: dom ((Sgm (rng f))qua Function) = Seg len (Sgm (rng f)) by FINSEQ_1:def 3;
A45: rng (((ProjFinSeq x1)qua Function)*((Sgm (rng f))qua Function)) c= REAL n;
A46: rng (Sgm (rng f))= rng f by bbb;
  dom (((ProjFinSeq x1)qua Function)*((Sgm (rng f))qua Function)) = ((Sgm
  (rng f))qua Function)"(dom (ProjFinSeq x1)) by RELAT_1:147
    .= dom (Sgm (rng f)) by A46,A6,Th1;
  then ((ProjFinSeq x1)qua Function)*((Sgm (rng f))qua Function) is
  FinSequence by A44,FINSEQ_1:def 2;
  then reconsider
  F2=((ProjFinSeq x1)qua Function)* ((Sgm rng f)qua Function) as
  FinSequence of the carrier of RealVectSpace(Seg n) by A1,A45,FINSEQ_1:def 4;
  dom F2= ((Sgm (rng f))qua Function)"(Seg n) by A6,RELAT_1:147
    .= dom (Sgm (rng f)) by A46,Th1;
  then
A47: dom F2=Seg len (Sgm (rng f)) by FINSEQ_1:def 3;
  then
A48: Seg len F2=Seg len (Sgm (rng f)) by FINSEQ_1:def 3;
  reconsider F3=F2 as FinSequence of REAL n by FINSEQ_2:93;
A49: x0= Sum (ProjFinSeq x1) by Th30
    .= Sum F3 by aaa,A46,A6,A32,Th23,FINSEQ_3:92
    .= Sum F2 by Th41;
A50: rng (((f qua Function)")*((Sgm (rng f))qua Function)) c= rng (((f qua
  Function)")qua Function) by RELAT_1:26;
A51: dom ((Sgm rng f)qua Function) = Seg len (Sgm rng f) by FINSEQ_1:def 3;
A52: len F2=len (Sgm (rng f)) by A47,FINSEQ_1:def 3;
A53: dom f=B0 by A30,FUNCT_2:def 1;
  then rng ((f qua Function)") = B0 by A29,FUNCT_1:33;
  then
A54: rng ((f qua Function)" *((Sgm (rng f))qua Function)) c= the carrier of
  RealVectSpace(Seg n) by A50,XBOOLE_1:1;
  dom ((((f qua Function)") qua Function)*((Sgm (rng f))qua Function)) =
  ((Sgm (rng f))qua Function)"(dom ((f qua Function)")) by RELAT_1:147
    .= ((Sgm (rng f))qua Function)"(rng f) by A29,FUNCT_1:33
    .= dom (Sgm rng f) by A46,Th1;
  then (((f qua Function)")qua Function)* ((Sgm (rng f))qua Function) is
  FinSequence by A51,FINSEQ_1:def 2;
  then reconsider
  F0=(f qua Function)" *((Sgm (rng f))qua Function) as FinSequence
  of the carrier of RealVectSpace(Seg n) by A54,FINSEQ_1:def 4;
  dom F0= ((Sgm (rng f))qua Function)"(dom ((f qua Function)")) by RELAT_1:147
    .= ((Sgm (rng f))qua Function)"(rng f) by A29,FUNCT_1:33
    .= dom ((Sgm (rng f))qua Function) by A46,Th1;
  then
A55: dom F0=Seg len (Sgm (rng f)) by FINSEQ_1:def 3;
  dom ((f qua Function)")=rng f by A29,FUNCT_1:33;
  then rng F0=rng ((f qua Function)") by A46,RELAT_1:28
    .=dom f by A29,FUNCT_1:33;
  then
A56: rng F0 =Carrier l0 by A53,A19,A20,XBOOLE_0:def 10;
A57: for i being Nat st i in dom F2 holds F2 . i = (l0 .(F0 /. i)) * (F0 /. i)
  proof
    let i be Nat;
A58: Sgm (rng f) is one-to-one by aaa,FINSEQ_3:92;
    assume i in dom F2; then
A59: i in Seg len F2 by FINSEQ_1:def 3;
    then
A60: i in dom (Sgm (rng f)) by A52,FINSEQ_1:def 3;
    then (Sgm (rng f)).i in rng (Sgm (rng f)) by FUNCT_1:def 3;
    then reconsider i2=(Sgm (rng f)).i as Element of NAT;
    reconsider r=Base_FinSeq(n,i2) as Element of RealVectSpace(
    Seg n) by FINSEQ_2:93;
    i2 in rng (Sgm (rng f)) by A60,FUNCT_1:def 3;
    then consider x2 being object such that
A61: x2 in dom f and
A62: f.x2=i2 by A46,FUNCT_1:def 3;
    dom f=B0 by A30,FUNCT_2:def 1;
    then reconsider r2=x2 as Element of RealVectSpace(Seg n) by A61;
A63: ex i22 being Element of NAT st f.r2=i22 & 1<=i22 & i22 <=n & r2=
    Base_FinSeq(n,i22) by A13,A61;
    then consider i4 being Element of NAT such that
A64: f.r=i4 and
    1<=i4 and
    i4<=n and
A65: r=Base_FinSeq(n,i4) by A62;
A66: dom f=B0 by A30,FUNCT_2:def 1;
    F0.i= ((f qua Function)").((((Sgm (rng f))qua Function)).i) by A60,
FUNCT_1:13
      .= Base_FinSeq(n,i2) by A29,A61,A62,A63,FUNCT_1:32;
    then Base_FinSeq(n,i2) in rng F0 by A55,A48,A59,FUNCT_1:def 3;
    then Base_FinSeq(n,i2) in { v where v is Element of RealVectSpace(Seg n)
    : l0 . v <> 0 } by A56,RLVECT_2:def 4;
    then
A67: ex v0 being Element of RealVectSpace(Seg n) st Base_FinSeq(n,i2)=v0
    & l0.v0 <>0;
    then Base_FinSeq(n,i2) in B0 by A17;
    then
A68: ((f qua Function)").( (f.(Base_FinSeq(n,i2)))) =Base_FinSeq(n,i2) by A29
,A66,FUNCT_1:34;
    then
A69: ((f qua Function)"*(Sgm (rng f))).i=Base_FinSeq(n,i2) by A60,A62,A63,
FUNCT_1:13;
A70: i2 in rng f by A46,A60,FUNCT_1:def 3;
    then
A71: 1<=i2 by FINSEQ_1:1;
A72: i2<=n by A70,FINSEQ_1:1;
    then i4=i2 by A71,A65,Th24;
    then
A73: ((Sgm (rng f)) qua Function)". (f.(Base_FinSeq(n,i2)))=i by A60,A64,A58,
FUNCT_1:32;
A74: f.(Base_FinSeq(n,i2)) in rng (Sgm (rng f)) by A46,A61,A62,A63,
FUNCT_1:def 3;
    then
A75: ((f qua Function)").((Sgm (rng f)). (((Sgm (rng f)) qua Function)".
    (f.(Base_FinSeq(n,i2))))) =Base_FinSeq(n,i2) by A58,A68,FUNCT_1:35;
    dom (((Sgm (rng f)) qua Function)")=rng (Sgm (rng f)) by A58,FUNCT_1:33;
    then ((Sgm (rng f)) qua Function)". (f.(Base_FinSeq(n,i2))) in rng (((Sgm
    (rng f)) qua Function)") by A74,FUNCT_1:def 3;
    then
A76: ((Sgm (rng f)) qua Function)". (f.(Base_FinSeq(n,i2))) in dom (Sgm (
    rng f)) by A58,FUNCT_1:33;
    l0 . (F0 /. i)=l0.((((f qua Function)")*(Sgm (rng f))).i) by A55,A52,A59,
PARTFUN1:def 6
      .=l0.(Base_FinSeq(n,i2)) by A73,A76,A75,FUNCT_1:13
      .=|( x1,Base_FinSeq(n,i2) )| by A17,A71,A72,A67;
    then (l0 . (F0 /. i)) * (F0 /. i) =( |( x1,Base_FinSeq(n,i2) )| )*(
    Base_FinSeq(n,i2)) by A55,A52,A59,A69,PARTFUN1:def 6
      .=(ProjFinSeq x1).((Sgm (rng f)).i) by A71,A72,Def12
      .=(((ProjFinSeq x1) qua Function) *((Sgm (rng f))qua Function)).i by A60,
FUNCT_1:13;
    hence F2 . i = (l0 . (F0 /. i)) * (F0 /. i);
  end;
A77: ((Sgm (rng f))qua Function) is one-to-one by aaa,FINSEQ_3:92;
  len F2 = len F0 by A55,A48,FINSEQ_1:def 3;
  then x1=Sum (l0 (#) F0) by A49,A57,RLVECT_2:def 7;
  then x1=Sum l2 by A29,A77,A56,RLVECT_2:def 8;
  hence ex l being Linear_Combination of B st x0=Sum l;
end;
