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 n being Nat st 1 <= n <= len prg holds
  dom(d1) c= dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).n)
  proof
    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 n be Nat;
    assume that
A6: 1 <= n and
A7: n <= len prg;
    defpred P[Nat] means 1 <= $1 <= len prg implies dom(d1) c= dom(F.$1);
A8: P[0];
A9: for k being Nat st P[k] holds P[k+1]
    proof
      let k be Nat such that
A10:  P[k] and
A11:  1 <= k+1 and
A12:  k+1 <= len prg;
A13:  len F = len prg by Def14;
      per cases;
      suppose
A14:    k = 0;
        set v = loc/.(pos.1);
        set D = prg.1;
        1 <= len F by A11,A12,A13,XXREAL_0:2;
        then 1 in dom F by FINSEQ_3:25;
        then D in rng prg by A3,FUNCT_1:def 3;
        then
        reconsider d2 = D.d1 as TypeSCNominativeData of V,A
        by PARTFUN1:4,NOMIN_1:39,A4;
A15:    F.1 = local_overlapping(V,A,d1,d2,v) by A7,Def14;
        dom local_overlapping(V,A,d1,d2,v) = {v} \/ dom d1 by A1,A2,NOMIN_4:4;
        hence thesis by A14,A15,XBOOLE_1:7;
      end;
      suppose k > 0;
        then
A16:    0+1 <= k by NAT_1:13;
A17:    k <= k+1 by NAT_1:12;
        k+0 < k+1 by XREAL_1:8;
        then
A18:    k < len prg by A12,XXREAL_0:2;
        then F.k in dom(prg.(k+1)) by A5,A16;
        then dom(F.k) c= dom(F.(k+1)) by A1,A2,A16,A18,Th22;
        hence thesis by A17,A10,A12,A16,XXREAL_0:2;
      end;
    end;
    for k being Nat holds P[k] from NAT_1:sch 2(A8,A9);
    hence thesis by A6,A7;
  end;
