reserve V,W for Z_Module;

theorem RF9:
  for K being Ring
  for R1,R2 be FinSequence of K st R1,R2 are_fiberwise_equipotent
  holds Sum R1 = Sum R2
proof
  let K be Ring;
  let R1,R2 be FinSequence of K;
  defpred P[Nat] means for f,g be FinSequence of K st f,g
  are_fiberwise_equipotent & len f = $1 holds Sum f = Sum g;
  assume
A1: R1,R2 are_fiberwise_equipotent;
A2: len R1 = len R1;
A3: for n being Nat st P[n] holds P[n+1]
  proof
    let n be Nat;
    assume
A4: P[n];
    let f,g be FinSequence of K;
    assume that
A5: f,g are_fiberwise_equipotent and
A6: len f = n+1;
    set a = f/.(n+1);
A7: rng f = rng g by A5,CLASSES1:75;
    0 qua Nat+1<=n+1 by NAT_1:13;
    then
Z:  n+1 in dom f by A6,FINSEQ_3:25; then
X:   a = f.(n+1) by PARTFUN1:def 6;
    then a in rng g by A7,FUNCT_1:def 3,Z;
    then consider m being Nat such that
A8: m in dom g and
A9: g.m = a by FINSEQ_2:10;
    set gg = g/^m, gm = g|m;
    m<=len g by A8,FINSEQ_3:25; then
A10: len gm = m by FINSEQ_1:59;
A11: 1<=m by A8,FINSEQ_3:25;
    then max(0,m-1) = m-1 by FINSEQ_2:4;
    then reconsider m1 = m-1 as Element of NAT by FINSEQ_2:5;
A12: m = m1+1; then
A13: Seg m1 c= Seg m by FINSEQ_1:5,NAT_1:11;
    m in Seg m by A11;
    then gm.m = a by A8,A9,RFINSEQ:6;
    then
A14: gm = (gm|m1)^<*a*> by A10,A12,RFINSEQ:7;
    set fn = f|n;
A15: g = (g|m)^(g/^m) by RFINSEQ:8;
A16: gm|m1 = gm|(Seg m1)
      .= (g|(Seg m))|(Seg m1)
      .= g|((Seg m)/\(Seg m1)) by RELAT_1:71
      .= g|(Seg m1) by A13,XBOOLE_1:28
      .= g|m1;
A17: f = fn ^ <*a*> by A6,RFINSEQ:7,X;
    now
      let x be object;
      card Coim(f,x) = card Coim(g,x) by A5; then
      card(fn"{x}) + card(<*a*>"{x}) =
        card(((g|m1)^<*a*>^(g/^m))"{x}) by A15,A14,A16,A17,FINSEQ_3:57
        .= card(((g|m1)^<*a*>)"{x}) + card((g/^m)"{x}) by FINSEQ_3:57
        .= card((g|m1)"{x})+ card(<*a*>"{x}) + card((g/^m)"{x}) by FINSEQ_3:57
        .= card((g|m1)"{x}) + card((g/^m)"{x})+ card(<*a*>"{x})
        .= card(((g|m1)^(g/^m))"{x})+ card(<*a*>"{x}) by FINSEQ_3:57;
      hence card Coim(fn,x) = card Coim((g|m1)^(g/^m),x);
    end; then
A18: fn, (g|m1)^(g/^m) are_fiberwise_equipotent;
    len fn = n by A6,FINSEQ_1:59,NAT_1:11;
    then Sum fn = Sum((g|m1)^gg) by A4,A18;
    hence Sum f = Sum((g|m1)^gg) + Sum <*a*> by A17,RLVECT_1:41
      .= Sum(g|m1) + Sum gg + Sum <*a*> by RLVECT_1:41
      .= Sum(g|m1) + (Sum gg + Sum <*a*>) by RLVECT_1:def 3
      .= Sum(g|m1) + (Sum <*a*> + Sum gg)
      .= Sum(g|m1) + Sum <*a*> + Sum gg by RLVECT_1:def 3
      .= Sum gm + Sum gg by A14,A16,RLVECT_1:41
      .= Sum g by A15,RLVECT_1:41;
  end;
A19: P[0]
  proof
    let f,g be FinSequence of K;
    assume f,g are_fiberwise_equipotent & len f = 0; then
A20: len g = 0 & f = <*>the carrier of INT.Ring by RFINSEQ:3;
     then g = <*>the carrier of INT.Ring;
    hence thesis by A20;
  end;
  for n being Nat holds P[n] from NAT_1:sch 2(A19,A3);
  hence thesis by A1,A2;
end;
