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 Th21:
  V is non empty & A is_without_nonatomicND_wrt V implies
  for n being Nat st 1 <= n & n < len prg &
  PrgLocalOverlapSeq(A,loc,d1,prg,pos).n in dom(prg.(n+1)) holds
  dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).(n+1)) =
  { loc/.(pos.(n+1)) } \/ dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).n)
  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;
    let n be Nat;
    assume that
A3: 1 <= n and
A4: n < size and
A5: F.n in dom(prg.(n+1));
A6: len F = size by Def14;
    reconsider Fn = F.n as NonatomicND of V,A by A3,A4,A6,NOMIN_7:def 6;
    set v = loc/.(pos.(n+1));
    set d2 = prg.(n+1).(F.n);
    n+1 <= size by A4,NAT_1:13;
    then d2 is TypeSCNominativeData of V,A by A5,NAT_1:11,Th20;
    then dom local_overlapping(V,A,Fn,d2,v) = {v} \/ dom Fn
    by A1,A2,NOMIN_4:4;
    hence thesis by A3,A4,A6,Def14;
  end;
