reserve x,y for object,X,Y for set,
  D for non empty set,
  i,j,k,l,m,n,m9,n9 for Nat,
  i0,j0,n0,m0 for non zero Nat,
  K for Field,
  a,b for Element of K,
  p for FinSequence of K,
  M for Matrix of n,K;
reserve A for (Matrix of D),
  A9 for Matrix of n9,m9,D,
  M9 for Matrix of n9, m9,K,
  nt,nt1,nt2 for Element of n-tuples_on NAT,
  mt,mt1 for Element of m -tuples_on NAT,
  M for Matrix of K;
reserve P,P1,P2,Q,Q1,Q2 for without_zero finite Subset of NAT;
reserve v,v1,v2,u,w for Vector of n-VectSp_over K,
  t,t1,t2 for Element of n -tuples_on the carrier of K,

  L for Linear_Combination of n-VectSp_over K,
  M,M1 for Matrix of m,n,K;

theorem Th107:
  M is without_repeated_line & Carrier L c= lines M & i in Seg n
  implies (Sum L).i = Sum Col(FinS2MX(L (#) MX2FinS M),i)
proof
  assume that
A1: M is without_repeated_line and
A2: Carrier L c= lines M and
A3: i in Seg n;
  set MX=MX2FinS M;
  set V=n-VectSp_over K;
  set LM=L (#) MX;
A4: len LM=len M by VECTSP_6:def 5;
  set FLM = FinS2MX LM;
  set C=Col(FLM,i);
  len LM=len C by MATRIX_0:def 8;
  then consider g be sequence of  the carrier of K such that
A5: Sum C = g.(len M) and
A6: g.0 = 0.K and
A7: for j be Nat,a st j < len M & a = C.(j+1) holds g.(j+1)
  = g.j+a by A4,RLVECT_1:def 12;
  Sum L = Sum LM by A1,A2,VECTSP_9:3;
  then consider f be sequence of  the carrier of V such that
A8: Sum L = f.(len M) and
A9: f.0 = 0.V and
A10: for j be Nat,v st j < len M & v = LM.(j+1) holds f.(j+1)
  = f.j+v by A4,RLVECT_1:def 12;
  defpred P[Nat] means $1 <= len M implies for v be Element of V st v=f.$1
  holds v.i=g.$1;
A11: len M=m by MATRIX_0:def 2;
A12: for k st P[k] holds P[k+1]
  proof
    reconsider N=n as Element of NAT by ORDINAL1:def 12;
    let k such that
A13: P[k];
    set k1=k+1;
    reconsider kk=k as Element of NAT by ORDINAL1:def 12;
    assume
A14: k1 <= len M;
    then
A15: k<len M by NAT_1:13;
A16: width FLM=n by A4,A14,Th1;
    1<=k1 by NAT_1:14;
    then
A17: k1 in Seg len M by A14;
    then
A18: k1 in dom FLM by A4,FINSEQ_1:def 3;
A19: MX.k1=Line(M,k1) by A11,A17,MATRIX_0:52;
    then MX.k1 in lines M by A11,A17,Th103;
    then reconsider MXK1=MX.k1 as Element of V;
    k1 in dom MX by A17,FINSEQ_1:def 3;
    then MX/.k1=MX.k1 by PARTFUN1:def 6;
    then
A20: LM.k1 = L.MXK1 * MXK1 by A18,VECTSP_6:def 5;
    then reconsider LMK1=LM.k1 as Element of V;
    let v;
    assume v=f.k1;
    then
A21: v=LMK1 +f.kk by A10,A15;
    reconsider lmk1=LMK1,mxk1=MXK1,fk=f.kk as Element of N-tuples_on the
    carrier of K by Th102;
    LMK1 = L.MXK1 * mxk1 by A20,Th102
      .= Line(FLM,k1) by A17,A19,Th106;
    then
A22: LMK1.i = FLM*(k1,i) by A3,A16,MATRIX_0:def 7;
    dom lmk1=Seg n by FINSEQ_2:124;
    then
A23: lmk1.i in rng lmk1 by A3,FUNCT_1:def 3;
    rng lmk1 c= the carrier of K by FINSEQ_1:def 4;
    then reconsider lmk1i=lmk1.i as Element of K by A23;
    C.k1 = FLM*(k1,i) by A18,MATRIX_0:def 8;
    then
A24: g.k1=lmk1i + g.kk by A7,A22,A15;
A25: LMK1 +f.kk=lmk1 +fk by Th102;
    fk.i = g.kk by A13,A14,NAT_1:13;
    hence v.i=g.k1 by A3,A24,A21,A25,FVSUM_1:18;
  end;
A26: P[0]
  proof
    assume 0 <= len M;
A27: 0.V=n|->0.K by Th102;
    let v;
    assume v=f.0;
    hence v.i=g.0 by A3,A9,A6,A27,FINSEQ_2:57;
  end;
  for k holds P[k] from NAT_1:sch 2(A26,A12);
  hence thesis by A8,A5;
end;
