reserve n,k,b for Nat, i for Integer;

theorem
  for d,e being XFinSequence of INT, n being Integer st
  dom d = dom e & for i being Nat st i in dom d holds e.i = d.i mod n
  holds Sum d mod n = Sum e mod n
  proof
    let d,e be XFinSequence of INT, n be Integer such that
    A1: dom d = dom e & for i being Nat st i in dom d holds e.i = d.i mod n;
    defpred P[XFinSequence of INT] means for e being XFinSequence of INT st dom
    $1=dom e & for i being Nat st i in dom $1 holds
    e.i = $1.i mod n holds (Sum $1)
    mod n = (Sum e) mod n;
    A2: for p being XFinSequence of INT, l being Element of INT st P[p]
    holds P[p^<%l%>]
    proof
      let p be XFinSequence of INT, l be Element of INT;
      assume
      A3: P[p];
      thus P[p^<%l%>]
      proof
        reconsider dop=dom p as Element of NAT by ORDINAL1:def 12;
        defpred Q[set,Integer] means $2=p.$1 mod n;
        let e be XFinSequence of INT;
        assume that
        A4:   dom (p^<%l%>)=dom e and
        A5:   for i being Nat st i in dom (p^<%l%>) holds
        e.i = (p^<%l%>).i mod n;
        A6:   for k being Nat st k in Segm dop
        ex x being Element of INT st Q[k,x]
        proof
          let k be Nat;
          assume k in Segm dop;
          reconsider x=p.k mod n as Element of INT by INT_1:def 2;
          take x;
          thus thesis;
        end;
        consider p9 being XFinSequence of INT such that
        A7:   dom p9 = Segm dop & for k be Nat st k in Segm dop holds Q[k,p9.k]
        from STIRL2_1:sch 5(A6);
        A8:
        now
          let k be Nat;
          assume
          A9:     k in dom p9;
          then k < Segm dom p9 by NAT_1:44;
          then k < len p + 1 by A7,NAT_1:13;
          then k < len p + len <%l%> by AFINSQ_1:33;
          then k in Segm (len p + len <%l%>) by NAT_1:44;
          then k in dom (p^<%l%>) by AFINSQ_1:def 3;
          hence e.k = (p^<%l%>).k mod n by A5
          .= p.k mod n by A7,A9,AFINSQ_1:def 3
          .= p9.k by A7,A9;
        end;
        A10:
        now
          let k be Nat;
          assume k in dom <%l mod n%>; then
          A11:    k in Segm 1 by AFINSQ_1:33; then
          A12:    k = 0 by NAT_1:44,NAT_1:14;
          k in dom <%l%> by A11,AFINSQ_1:33;
          hence e.(len p9 + k) = (p^<%l%>).len p mod n by A5,A7,A12,AFINSQ_1:23
          .= <%l mod n%>.k by A12,AFINSQ_1:36;
        end;
        dom e=len p + len <%l%> by A4,AFINSQ_1:def 3
        .= dom p + 1 by AFINSQ_1:33
        .= len p9 + len <%l mod n%> by A7,AFINSQ_1:33;
        then
        A13:  e=p9^<%l mod n%> by A8,A10,AFINSQ_1:def 3;
        reconsider lmn=l mod n as Element of INT by INT_1:def 2;
        thus Sum (p^<%l%>) mod n = (Sum p + Sum <%l%>) mod n by AFINSQ_2:55
        .= (Sum p + l) mod n by AFINSQ_2:53
        .= ((Sum p) mod n + (l mod n)) mod n by NAT_D:66
        .= ((Sum p9) mod n + (l mod n)) mod n by A3,A7
        .= ((Sum p9) mod n + ((l mod n) mod n)) mod n by Th14
        .= (Sum p9 + (l mod n)) mod n by NAT_D:66
        .= (Sum p9 + Sum <%lmn%>) mod n by AFINSQ_2:53
        .= (Sum e) mod n by A13,AFINSQ_2:55;
      end;
    end;
    A14: P[<%>INT] by AFINSQ_1:15;
    for p being XFinSequence of INT holds P[p] from AFINSQ_2:sch 2(A14,A2);
    hence thesis by A1;
  end;
