reserve D for non empty set;
reserve m,n,N for Nat;
reserve size for non zero Nat;
reserve f1,f2,f3,f4,f5,f6 for BinominativeFunction of D;
reserve p1,p2,p3,p4,p5,p6,p7 for PartialPredicate of D;
reserve d,v for object;
reserve V,A for set;
reserve z for Element of V;
reserve val for Function;
reserve loc for V-valued Function;
reserve d1 for NonatomicND of V,A;
reserve T for TypeSCNominativeData of V,A;

theorem Th14:
  for val being size-element FinSequence holds
  loc,val are_different_wrt size & loc,val,size are_correct_wrt d1
  implies
  for m,n being Nat st 1 <= m <= size & 1 <= n <= size holds
  LocalOverlapSeq(A,loc,val,d1,size).m.(val.n) = d1.(val.n)
  proof
    let val be size-element FinSequence;
    assume that
A1: loc,val are_different_wrt size and
A2: loc,val,size are_correct_wrt d1;
    let m,n such that
A3: 1 <= m and
A4: m <= size and
A5: 1 <= n and
A6: n <= size;
    set F = LocalOverlapSeq(A,loc,val,d1,size);
A7: Seg size = dom val by FINSEQ_1:89;
A8: len F = size by Def4;
A9: 0+1 <= size by NAT_1:13;
    defpred P[Nat] means
    1 <= $1 <= size implies F.$1.(val.n) = d1.(val.n);
A10: P[0];
A11: for k being Nat st P[k] holds P[k+1]
    proof
      let k be Nat such that
A12:  P[k] and
A13:  1 <= k+1 and
A14:  k+1 <= size;
      set D1 = denaming(V,A,val.1);
A15:  dom D1 = {d where d is NonatomicND of V,A: val.1 in dom d}
      by NOMIN_1:def 18;
A16:  rng val c= dom d1 by A2,Def1;
      1 in Seg size by A9,FINSEQ_1:1;
      then val.1 in rng val by A7,FUNCT_1:def 3;
      then d1 in dom D1 by A16,A15;
      then reconsider T1 = D1.d1 as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39;
A17:  F.1 = local_overlapping(V,A,d1,T1,loc/.1) by Def4;
      n in Seg size by A5,A6,FINSEQ_1:1;
      then
A18:  val.n in rng val by A7,FUNCT_1:def 3;
      per cases;
      suppose
A19:    k = 0;
        val.n <> loc/.1 by A1,A5,A6,A9;
        hence F.(k+1).(val.n) = d1.(val.n) by A2,A16,A17,A18,A19,NOMIN_5:3;
      end;
      suppose k > 0;
       then
A20:   0+1 <= k by NAT_1:13;
A21:   k < size by A14,NAT_1:13;
       set D = denaming(V,A,val.(k+1));
       reconsider d2 = F.k as NonatomicND of V,A by A20,A8,A21,Def6;
A22:   dom D = {d where d is NonatomicND of V,A: val.(k+1) in dom d}
       by NOMIN_1:def 18;
       val.(k+1) in dom d2 by A2,A13,A14,A20,A21,Th10;
       then d2 in dom D by A22;
       then reconsider T = D.d2 as TypeSCNominativeData of V,A
       by PARTFUN1:4,NOMIN_1:39;
A23:   F.(k+1) = local_overlapping(V,A,d2,T,loc/.(k+1)) by A20,A8,A21,Def4;
A24:   loc/.(k+1) <> val.n by A1,A5,A6,A13,A14;
       val.n in dom d2 by A2,A5,A6,A20,A21,Th10;
       hence F.(k+1).(val.n) = d1.(val.n)
       by A2,A24,A23,A12,A20,A14,NAT_1:13,NOMIN_5:3;
     end;
   end;
   for k being Nat holds P[k] from NAT_1:sch 2(A10,A11);
   hence thesis by A3,A4;
 end;
