reserve x,y,y1,y2 for set,
  p for FinSequence,
  i,k,l,n for Nat,
  V for RealLinearSpace,
  u,v,v1,v2,v3,w for VECTOR of V,
  a,b for Real,
  F,G,H1,H2 for FinSequence of V,
  A,B for Subset of V,
  f for Function of the carrier of V, REAL;

theorem Th6:
  for V being Abelian add-associative right_zeroed
  right_complementable non empty addLoopStr, F,G being FinSequence of the
carrier of V for f being Permutation of dom F st len F = len G & (for i st i in
  dom G holds G.i = F.(f.i)) holds Sum(F) = Sum(G)
proof
  let V be Abelian add-associative right_zeroed right_complementable non
  empty addLoopStr, F,G be FinSequence of the carrier of V;
  let f be Permutation of dom F;
  defpred P[Nat] means
for H1,H2 be FinSequence of the carrier of V
st len H1 = $1 & len H1 = len H2 for f being Permutation of dom H1 st (for i st
  i in dom H2 holds H2.i = H1.(f.i)) holds Sum(H1) = Sum(H2);
  now
    let k;
    assume
A1: for H1,H2 be FinSequence of the carrier of V st len H1 = k & len
H1 = len H2 for f being Permutation of dom H1 st (for i st i in dom H2 holds H2
    .i = H1.(f.i)) holds Sum(H1) = Sum(H2);
    let H1,H2 be FinSequence of the carrier of V;
    assume that
A2: len H1 = k + 1 and
A3: len H1 = len H2;
    reconsider p = H2 | (Seg k) as FinSequence of the carrier of V by
FINSEQ_1:18;
    let f be Permutation of dom H1;
A4: dom H1 = Seg(k + 1) by A2,FINSEQ_1:def 3;
    then
A5: rng f = Seg(k + 1) by FUNCT_2:def 3;
A6: now
      let n;
      assume n in dom f;
      then f.n in Seg(k + 1) by A5,FUNCT_1:def 3;
      hence f.n is Element of NAT;
    end;
A7: dom H2 = Seg(k + 1) by A2,A3,FINSEQ_1:def 3;
    then reconsider v = H2.(k + 1) as Element of V by FINSEQ_1:4,FUNCT_1:102;
A8: dom p = Seg len p by FINSEQ_1:def 3;
    Seg(k + 1) = {} implies Seg(k + 1) = {};
    then
A9: dom f = Seg(k + 1) by A4,FUNCT_2:def 1;
A10: k + 1 in Seg(k + 1) by FINSEQ_1:4;
    then
A11: f.(k + 1) in Seg(k + 1) by A9,A5,FUNCT_1:def 3;
    then reconsider n = f.(k + 1) as Element of NAT;
A12: n <= k + 1 by A11,FINSEQ_1:1;
    then consider m2 being Nat such that
A13: n + m2 = k + 1 by NAT_1:10;
    defpred P[Nat,object] means $2 = H1.(n + $1);
    1 <= n by A11,FINSEQ_1:1;
    then consider m1 being Nat such that
A14: 1 + m1 = n by NAT_1:10;
    reconsider m1,m2 as Element of NAT by ORDINAL1:def 12;
A15: for j be Nat st j in Seg m2 ex x being object st P[j,x];
    consider q2 being FinSequence such that
A16: dom q2 = Seg m2 and
A17: for k be Nat st k in Seg m2 holds P[k,q2.k] from FINSEQ_1:sch 1 (
    A15);
    rng q2 c= the carrier of V
    proof
      let x be object;
      assume x in rng q2;
      then consider y being object such that
A18:  y in dom q2 and
A19:  x = q2.y by FUNCT_1:def 3;
      reconsider y as Element of NAT by A18;
      1 <= y by A16,A18,FINSEQ_1:1;
      then
A20:  1 <= n + y by NAT_1:12;
      y <= m2 by A16,A18,FINSEQ_1:1;
      then n + y <= len H1 by A2,A13,XREAL_1:7;
      then n + y in dom H1 by A20,FINSEQ_3:25;
      then reconsider xx = H1.(n + y) as Element of V by FUNCT_1:102;
      xx in the carrier of V;
      hence thesis by A16,A17,A18,A19;
    end;
    then reconsider q2 as FinSequence of the carrier of V by FINSEQ_1:def 4;
    reconsider q1 = H1 | (Seg m1) as FinSequence of the carrier of V by
FINSEQ_1:18;
    defpred P[set,object] means
     (f.$1 in dom q1 implies $2 = f.$1) & (not f.$1 in
    dom q1 implies for l st l = f.$1 holds $2 = l - 1);
A21: k <= k + 1 by NAT_1:12;
    then
A22: Seg k c= Seg(k + 1) by FINSEQ_1:5;
A23: for i be Nat st i in Seg k ex y being object st P[i,y]
    proof
      let i be Nat;
      assume
A24:  i in Seg k;
      now
        f.i in Seg(k + 1) by A9,A5,A22,A24,FUNCT_1:def 3;
        then reconsider j = f.i as Element of NAT;
        assume
A25:    not f.i in dom q1;
        take y = j - 1;
        thus f.i in dom q1 implies y = f.i by A25;
        assume not f.i in dom q1;
        let t be Nat;
        assume t = f.i;
        hence y = t - 1;
      end;
      hence thesis;
    end;
    consider g being FinSequence such that
A26: dom g = Seg k and
A27: for i be Nat st i in Seg k holds P[i,g.i] from FINSEQ_1:sch 1(A23
    );
A28: dom p = Seg k by A2,A3,A21,FINSEQ_1:17;
    m1 <= n by A14,NAT_1:11;
    then
A29: m1 <= k + 1 by A12,XXREAL_0:2;
    then
A30: dom q1 = Seg m1 by A2,FINSEQ_1:17;
A31: now
      let i,l;
      assume that
A32:  l = f.i and
A33:  not f.i in dom q1 and
A34:  i in dom g;
A35:  l < 1 or m1 < l by A30,A32,A33,FINSEQ_1:1;
A36:  now
        assume m1 + 1 = l;
        then k + 1 = i by A10,A9,A14,A22,A26,A32,A34,FUNCT_1:def 4;
        then k + 1 <= k + 0 by A26,A34,FINSEQ_1:1;
        hence contradiction by XREAL_1:6;
      end;
      f.i in rng f by A9,A22,A26,A34,FUNCT_1:def 3;
      then m1 + 1 <= l by A4,A32,A35,FINSEQ_1:1,NAT_1:13;
      then m1 + 1 < l by A36,XXREAL_0:1;
      then m1 + 1 + 1 <= l by NAT_1:13;
      hence m1 + 2 <= l;
    end;
A37: len q1 = m1 by A2,A29,FINSEQ_1:17;
A38: now
      let j be Nat;
      assume
A39:  j in dom q2;
      len(q1 ^ <* v *>) = m1 + len<* v *> by A37,FINSEQ_1:22
        .= n by A14,FINSEQ_1:39;
      hence H1.(len(q1 ^ <* v *>) + j) = q2.j by A16,A17,A39;
    end;
    1 + k = 1 + (m1 + m2) by A14,A13;
    then
A40: m1 <= k by NAT_1:11;
A41: rng g c= dom p
    proof
      let y be object;
      assume y in rng g;
      then consider x being object such that
A42:  x in dom g and
A43:  g.x = y by FUNCT_1:def 3;
      reconsider x as Element of NAT by A42;
      now
        per cases;
        suppose
A44:      f.x in dom q1;
A45:      dom q1 c= dom p by A40,A30,A28,FINSEQ_1:5;
          f.x = g.x by A26,A27,A42,A44;
          hence thesis by A43,A44,A45;
        end;
        suppose
A46:      not f.x in dom q1;
          reconsider j = f.x as Element of NAT by A9,A22,A6,A26,A42;
A47:      f.x in Seg(k + 1) by A9,A5,A22,A26,A42,FUNCT_1:def 3;
          j < 1 or m1 < j by A30,A46,FINSEQ_1:1;
          then reconsider l = j - 1 as Element of NAT by A47,FINSEQ_1:1
,NAT_1:20;
          j <= k + 1 by A47,FINSEQ_1:1;
          then
A48:      l <= (k + 1) - 1 by XREAL_1:9;
          m1 + 2 <= j by A31,A42,A46;
          then
A49:      m1 + 2 - 1 <= l by XREAL_1:9;
          1 <= m1 + 1 by NAT_1:12;
          then
A50:      1 <= l by A49,XXREAL_0:2;
          g.x = j - 1 by A26,A27,A42,A46;
          hence thesis by A28,A43,A50,A48,FINSEQ_1:1;
        end;
      end;
      hence thesis;
    end;
    set q = q1 ^ q2;
A51: len q2 = m2 by A16,FINSEQ_1:def 3;
    then
A52: len q = m1 + m2 by A37,FINSEQ_1:22;
    then
A53: dom q = Seg k by A14,A13,FINSEQ_1:def 3;
    then reconsider g as Function of dom q, dom q by A28,A26,A41,FUNCT_2:2;
A54: len p = k by A2,A3,A21,FINSEQ_1:17;
A55: rng g = dom q
    proof
      thus rng g c= dom q;
      let y be object;
      assume
A56:  y in dom q;
      then reconsider j = y as Element of NAT;
      consider x being object such that
A57:  x in dom f and
A58:  f.x = y by A5,A22,A53,A56,FUNCT_1:def 3;
      reconsider x as Element of NAT by A9,A57;
      now
        per cases;
        suppose
A59:      x in dom g;
          now
            per cases;
            suppose
              f.x in dom q1;
              then g.x = f.x by A26,A27,A59;
              hence thesis by A58,A59,FUNCT_1:def 3;
            end;
            suppose
A60:          not f.x in dom q1;
              j <= k by A53,A56,FINSEQ_1:1;
              then 1 <= j + 1 & j + 1 <= k + 1 by NAT_1:12,XREAL_1:7;
              then j + 1 in rng f by A5,FINSEQ_1:1;
              then consider x1 being object such that
A61:          x1 in dom f and
A62:          f.x1 = j + 1 by FUNCT_1:def 3;
A63:          now
                assume not x1 in dom g;
                then x1 in Seg(k + 1) \ Seg k by A4,A26,A61,XBOOLE_0:def 5;
                then x1 in {k + 1} by FINSEQ_3:15;
                then
A64:            j + 1 = m1 +1 by A14,A62,TARSKI:def 1;
                1 <= j by A53,A56,FINSEQ_1:1;
                hence contradiction by A30,A58,A60,A64,FINSEQ_1:1;
              end;
              j < 1 or m1 < j by A30,A58,A60,FINSEQ_1:1;
              then not j + 1 <= m1 by A53,A56,FINSEQ_1:1,NAT_1:13;
              then not f.x1 in dom q1 by A30,A62,FINSEQ_1:1;
              then g.x1 = j + 1 - 1 by A26,A27,A62,A63
                .= y;
              hence thesis by A63,FUNCT_1:def 3;
            end;
          end;
          hence thesis;
        end;
        suppose
A65:      not x in dom g;
          j <= k by A53,A56,FINSEQ_1:1;
          then 1 <= j + 1 & j + 1 <= k + 1 by NAT_1:12,XREAL_1:7;
          then j + 1 in rng f by A5,FINSEQ_1:1;
          then consider x1 being object such that
A66:      x1 in dom f and
A67:      f.x1 = j + 1 by FUNCT_1:def 3;
          x in Seg(k + 1) \ Seg k by A4,A26,A57,A65,XBOOLE_0:def 5;
          then x in {k + 1} by FINSEQ_3:15;
          then
A68:      x = k + 1 by TARSKI:def 1;
A69:      now
            assume not x1 in dom g;
            then x1 in Seg(k + 1) \ Seg k by A4,A26,A66,XBOOLE_0:def 5;
            then x1 in {k + 1} by FINSEQ_3:15;
            then j + 1 = j + 0 by A58,A68,A67,TARSKI:def 1;
            hence contradiction;
          end;
          m1 <= j by A14,A58,A68,XREAL_1:29;
          then not j + 1 <= m1 by NAT_1:13;
          then not f.x1 in dom q1 by A30,A67,FINSEQ_1:1;
          then g.x1 = j + 1 - 1 by A26,A27,A67,A69
            .= y;
          hence thesis by A69,FUNCT_1:def 3;
        end;
      end;
      hence thesis;
    end;
    assume
A70: for i st i in dom H2 holds H2.i = H1.(f.i);
    then
A71: H2.(k + 1) = H1.(f.(k + 1)) by A7,FINSEQ_1:4;
A72: now
      let j be Nat;
      assume
A73:  j in dom(q1 ^ <* v *>);
A74:  now
        assume j in Seg m1;
        then
A75:    j in dom q1 by A2,A29,FINSEQ_1:17;
        then q1.j = H1.j by FUNCT_1:47;
        hence H1.j = (q1 ^ <* v *>).j by A75,FINSEQ_1:def 7;
      end;
A76:  now
        1 in Seg 1 & len<* v *> = 1 by FINSEQ_1:1,39;
        then 1 in dom <* v *> by FINSEQ_1:def 3;
        then
A77:    (q1 ^ <* v *>).(len q1 + 1) = <* v *>.1 by FINSEQ_1:def 7;
        assume j in {n};
        then j = n by TARSKI:def 1;
        hence (q1 ^ <* v *>).j = H1.j by A71,A14,A37,A77;
      end;
      len(q1 ^ <* v *>) = m1 + len <* v *> by A37,FINSEQ_1:22
        .= m1 + 1 by FINSEQ_1:40;
      then j in Seg(m1 + 1) by A73,FINSEQ_1:def 3;
      then j in Seg m1 \/ {n} by A14,FINSEQ_1:9;
      hence H1.j = (q1 ^ <* v *>).j by A74,A76,XBOOLE_0:def 3;
    end;
    g is one-to-one
    proof
      let y1,y2 be object;
      assume that
A78:  y1 in dom g and
A79:  y2 in dom g and
A80:  g.y1 = g.y2;
      reconsider j1 = y1, j2 = y2 as Element of NAT by A26,A78,A79;
A81:  f.y2 in Seg(k + 1) by A9,A5,A22,A26,A79,FUNCT_1:def 3;
A82:  f.y1 in Seg(k + 1) by A9,A5,A22,A26,A78,FUNCT_1:def 3;
      then reconsider a = f.y1, b = f.y2 as Element of NAT by A81;
      now
        per cases;
        suppose
          f.y1 in dom q1 & f.y2 in dom q1;
          then g.j1 = f.y1 & g.j2 = f.y2 by A26,A27,A78,A79;
          hence thesis by A9,A22,A26,A78,A79,A80,FUNCT_1:def 4;
        end;
        suppose
A83:      f.y1 in dom q1 & not f.y2 in dom q1;
          then
A84:      a <= m1 by A30,FINSEQ_1:1;
          g.j1 = a & g.j2 = b - 1 by A26,A27,A78,A79,A83;
          then
A85:      (b - 1) + 1 <= m1 + 1 by A80,A84,XREAL_1:6;
          1 <= b by A81,FINSEQ_1:1;
          then
A86:      b in Seg(m1 + 1) by A85,FINSEQ_1:1;
          not b in Seg m1 by A2,A29,A83,FINSEQ_1:17;
          then b in Seg(m1 + 1) \ Seg m1 by A86,XBOOLE_0:def 5;
          then b in {m1 + 1} by FINSEQ_3:15;
          then b = m1 + 1 by TARSKI:def 1;
          then y2 = k + 1 by A10,A9,A14,A22,A26,A79,FUNCT_1:def 4;
          hence thesis by A26,A79,FINSEQ_3:8;
        end;
        suppose
A87:      not f.y1 in dom q1 & f.y2 in dom q1;
          then
A88:      b <= m1 by A30,FINSEQ_1:1;
          g.j1 = a - 1 & g.j2 = b by A26,A27,A78,A79,A87;
          then
A89:      (a - 1) + 1 <= m1 + 1 by A80,A88,XREAL_1:6;
          1 <= a by A82,FINSEQ_1:1;
          then
A90:      a in Seg(m1 + 1) by A89,FINSEQ_1:1;
          not a in Seg m1 by A2,A29,A87,FINSEQ_1:17;
          then a in Seg(m1 + 1) \ Seg m1 by A90,XBOOLE_0:def 5;
          then a in {m1 + 1} by FINSEQ_3:15;
          then a = m1 + 1 by TARSKI:def 1;
          then y1 = k + 1 by A10,A9,A14,A22,A26,A78,FUNCT_1:def 4;
          hence thesis by A26,A78,FINSEQ_3:8;
        end;
        suppose
A91:      not f.y1 in dom q1 & not f.y2 in dom q1;
          then g.j2 = b - 1 by A26,A27,A79;
          then
A92:      g.y2 = b + (- 1);
          g.j1 = a - 1 by A26,A27,A78,A91;
          then g.j1 = a + (- 1);
          then a = b by A80,A92,XCMPLX_1:2;
          hence thesis by A9,A22,A26,A78,A79,FUNCT_1:def 4;
        end;
      end;
      hence thesis;
    end;
    then reconsider g as Permutation of dom q by A55,FUNCT_2:57;
    len(q1 ^ <* v *>) + len q2 = len q1 + len<* v *> + m2 by A51,FINSEQ_1:22
      .= k + 1 by A14,A13,A37,FINSEQ_1:40;
    then dom H1 = Seg(len(q1 ^ <* v *>) + len q2) by A2,FINSEQ_1:def 3;
    then
A93: H1 = q1 ^ <* v *> ^ q2 by A72,A38,FINSEQ_1:def 7;
    now
      let i;
      assume
A94:  i in dom p;
      then f.i in rng f by A9,A22,A28,FUNCT_1:def 3;
      then reconsider j = f.i as Element of NAT by A5;
      now
        per cases;
        suppose
A95:      f.i in dom q1;
          then
A96:      f.i = g.i & H1.(j) = q1.(j) by A28,A27,A94,FUNCT_1:47;
          H2.i = p.i & H2.i = H1.(f.i) by A70,A7,A22,A28,A94,FUNCT_1:47;
          hence p.i = q.(g.i) by A95,A96,FINSEQ_1:def 7;
        end;
        suppose
A97:      not f.i in dom q1;
          then m1 + 2 <= j by A28,A26,A31,A94;
          then
A98:      m1 + 2 - 1 <= j - 1 by XREAL_1:9;
          m1 < m1 + 1 by XREAL_1:29;
          then
A99:      m1 < j - 1 by A98,XXREAL_0:2;
          then m1 < j by XREAL_1:146,XXREAL_0:2;
          then reconsider j1 = j - 1 as Element of NAT by NAT_1:20;
A100:     not j1 in dom q1 by A30,A99,FINSEQ_1:1;
A101:     g.i = j - 1 by A28,A27,A94,A97;
          then j - 1 in dom q by A28,A26,A55,A94,FUNCT_1:def 3;
          then consider a being Nat such that
A102:     a in dom q2 and
A103:     j1 = len q1 + a by A100,FINSEQ_1:25;
A104:     len<* v *> = 1 by FINSEQ_1:39;
A105:     H2.i = p.i & H2.i = H1.(f.i) by A70,A7,A22,A28,A94,FUNCT_1:47;
A106:     H1 = q1 ^ (<* v *> ^ q2) by A93,FINSEQ_1:32;
          j in dom H1 by A4,A9,A5,A22,A28,A94,FUNCT_1:def 3;
          then consider b being Nat such that
A107:     b in dom(<* v *> ^ q2) and
A108:     j = len q1 + b by A97,A106,FINSEQ_1:25;
A109:     H1.j = (<* v *> ^ q2).b by A106,A107,A108,FINSEQ_1:def 7;
A110:     b = 1 + a by A103,A108;
          q.(j - 1) = q2.a by A102,A103,FINSEQ_1:def 7;
          hence p.i = q.(g.i) by A101,A105,A102,A109,A110,A104,FINSEQ_1:def 7;
        end;
      end;
      hence p.i = q.(g.i);
    end;
    then Sum(p) = Sum(q) by A1,A14,A13,A54,A52;
    then Sum(H2) = Sum(q) + Sum<* v *> by A2,A3,A54,A8,RLVECT_1:38,44
      .= Sum(q1) + Sum(q2) + Sum<* v *> by RLVECT_1:41
      .= Sum(q1) + (Sum<* v *> + Sum(q2)) by RLVECT_1:def 3
      .= Sum(q1) + Sum(<* v *> ^ q2) by RLVECT_1:41
      .= Sum(q1 ^ (<* v *> ^ q2)) by RLVECT_1:41
      .= Sum(H1) by A93,FINSEQ_1:32;
    hence Sum(H1) = Sum(H2);
  end;
  then
A111: for k st P[k] holds P[k+1];
A112: P[0]
  proof
    let H1,H2 be FinSequence of the carrier of V;
    assume that
A113: len H1 = 0 and
A114: len H1 = len H2;
    Sum(H1) = 0.V by A113,RLVECT_1:75;
    hence thesis by A113,A114,RLVECT_1:75;
  end;
  for k holds P[k] from NAT_1:sch 2(A112,A111);
  hence thesis;
end;
