reserve D for non empty set;
reserve f1,f2,f3,f4,f5,f6,f7,f8,f9,f10 for BinominativeFunction of D;
reserve p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11 for PartialPredicate of D;
reserve q1,q2,q3,q4,q5,q6,q7,q8,q9,q10 for total PartialPredicate of D;
reserve n,m,N for Nat;
reserve fD for PFuncs(D,D)-valued FinSequence;
reserve fB for PFuncs(D,BOOLEAN)-valued FinSequence;
reserve V,A for set;
reserve val for Function;
reserve loc for V-valued Function;
reserve d1 for NonatomicND of V,A;
reserve p for SCPartialNominativePredicate of V,A;
reserve d,v for object;
reserve size for non zero Nat;
reserve inp,pos for FinSequence;
reserve prg for non empty FPrg(ND(V,A))-valued FinSequence;

theorem
  V is non empty & A is_without_nonatomicND_wrt V &
  dom PrgLocalOverlapSeq(A,loc,d1,prg,pos) c= dom prg &
  d1 in dom(prg.1) & prg_doms_of loc,d1,prg,pos
  implies
  for m,n being Nat st 1 <= n <= m <= len prg holds
  loc/.(pos.n) in dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).m)
  proof
    set size = len prg;
    set F = PrgLocalOverlapSeq(A,loc,d1,prg,pos);
    assume that
A1: V is non empty and
A2: A is_without_nonatomicND_wrt V and
A3: dom F c= dom prg and
A4: d1 in dom(prg.1) and
A5: prg_doms_of loc,d1,prg,pos;
    let m,n be Nat such that
A6: 1 <= n and
A7: n <= m and
A8: m <= size;
A9: 1 <= m by A6,A7,XXREAL_0:2;
A10: n <= size by A7,A8,XXREAL_0:2;
A11: len F = size by Def14;
    reconsider i1 = n-1 as Element of NAT by A6,INT_1:5;
    set v = loc/.(pos.n);
    set D = prg.n;
A12: v in {v} by TARSKI:def 1;
    n in dom F by A6,A10,A11,FINSEQ_3:25;
    then
A13: D in rng prg by A3,FUNCT_1:def 3;
    per cases;
    suppose
A14:  i1 = 0;
      then reconsider d2 = D.d1 as TypeSCNominativeData of V,A
      by A4,A13,PARTFUN1:4,NOMIN_1:39;
A15:  F.1 = local_overlapping(V,A,d1,d2,v) by A8,A14,Def14;
A16:  dom local_overlapping(V,A,d1,d2,v) = {v} \/ dom(d1) by A1,A2,NOMIN_4:4;
A17:  dom(F.1) c= dom(F.m) by A1,A5,A2,A8,A9,Th24;
      v in {v} \/ dom(d1) by A12,XBOOLE_0:def 3;
      hence v in dom(F.m) by A15,A16,A17;
    end;
    suppose i1 > 0;
      then
A18:  0+1 <= i1 by NAT_1:13;
      n-1 < n-0 by XREAL_1:15;
      then
A19:  i1 < size by A10,XXREAL_0:2;
      then reconsider dd = F.i1 as NonatomicND of V,A by A18,A11,NOMIN_7:def 6;
      dd in dom(prg.(i1+1)) by A5,A18,A19;
      then reconsider d2 = D.dd as TypeSCNominativeData of V,A
      by PARTFUN1:4,NOMIN_1:39,A13;
A20:  F.n = local_overlapping(V,A,dd,d2,loc/.(pos.(i1+1)))
      by A11,A18,A19,Def14;
A21:  dom local_overlapping(V,A,dd,d2,v) = {v} \/ dom(dd) by A1,A2,NOMIN_4:4;
A22:  v in {v} \/ dom(dd) by A12,XBOOLE_0:def 3;
      dom(F.n) c= dom(F.m) by A1,A5,A2,A6,A7,A8,Th24;
      hence v in dom(F.m) by A22,A20,A21;
    end;
  end;
