 reserve x,y,z for object,
   i,j,k,l,n,m for Nat,
   D,E for non empty set;
 reserve M for Matrix of D;
 reserve L for Matrix of E;
 reserve k,t,i,j,m,n for Nat,
   D for non empty set;
 reserve V for free Z_Module;
 reserve a for Element of INT.Ring,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve V for finite-rank free Z_Module,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve s for FinSequence,
   V1,V2,V3 for finite-rank free Z_Module,
   f,f1,f2 for Function of V1,V2,
   g for Function of V2,V3,
   b1 for OrdBasis of V1,
   b2 for OrdBasis of V2,
   b3 for OrdBasis of V3,
   v1,v2 for Vector of V2,
   v,w for Element of V1;
 reserve p2,F for FinSequence of V1,
   p1,d for FinSequence of INT.Ring,
   KL for Linear_Combination of V1;

theorem Th20:
  F is one-to-one & Carrier KL c= rng F implies Sum(KL (#) F) = Sum KL
  proof
    assume
    A1: F is one-to-one;
    assume
    A2: Carrier KL c= rng F;
    then reconsider A = Carrier KL as Subset of rng F;
    consider p1 be Permutation of dom F such that
    A3: (F-A`)^(F-A) = F * p1 by FINSEQ_3:115;
    reconsider G1 = F - A`, G2 = F - A as FinSequence of V1 by FINSEQ_3:86;
    A4: G1 is one-to-one by A1,FINSEQ_3:87;
    len (KL (#) F) = len F by VECTSP_6:def 5;
    then dom (KL (#) F) = dom F by FINSEQ_3:29;
    then reconsider p1 as Permutation of dom (KL (#) F);
    A5: rng G1 = rng F \ A` by FINSEQ_3:65
    .= rng F /\ Carrier KL by XBOOLE_1:48
    .= Carrier KL by A2,XBOOLE_1:28;
    for k st k in dom (KL (#) G2) holds (KL (#) G2)/.k = 0.V1
    proof
      let k such that
      A6: k in dom (KL (#) G2);
      len (KL (#) G2) = len G2 by VECTSP_6:def 5;
      then
      A7: dom (KL (#) G2) = dom G2 by FINSEQ_3:29;
      then G2.k in rng G2 by A6,FUNCT_1:def 3;
      then G2.k in rng F \ Carrier KL by FINSEQ_3:65;
      then not G2.k in Carrier KL by XBOOLE_0:def 5;
      then
      A8: not G2/.k in Carrier KL by A6,A7,PARTFUN1:def 6;
      reconsider k1 = k as Element of NAT by ORDINAL1:def 12;
      thus (KL (#) G2)/.k = (KL (#) G2).k by A6,PARTFUN1:def 6
      .= KL.(G2/.k1) * (G2/.k1) by A6,VECTSP_6:def 5
      .= 0.INT.Ring * (G2/.k) by A8
      .= 0.V1 by ZMODUL01:1;
    end;
    then
    A9: Sum(KL (#) G2) = 0.V1 by MATRLIN:11;
    KL (#) (G1^G2) = (KL (#) F) * p1 by A3,Th19;
    hence Sum(KL (#) F) = Sum(KL (#) (G1 ^ G2)) by RLVECT_2:7
    .= Sum((KL (#) G1) ^ (KL (#) G2)) by ZMODUL02:51
    .= Sum(KL (#) G1) + Sum(KL (#) G2) by RLVECT_1:41
    .= Sum KL by A4,A5,A9,VECTSP_6:def 6;
  end;
