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 Th24:
  V is non empty & A is_without_nonatomicND_wrt V &
  prg_doms_of loc,d1,prg,pos
  implies
  for m,n being Nat st 1 <= n <= m <= len prg holds
  dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).n) c=
  dom(PrgLocalOverlapSeq(A,loc,d1,prg,pos).m)
  proof
    set F = PrgLocalOverlapSeq(A,loc,d1,prg,pos);
    assume that
A1: V is non empty & A is_without_nonatomicND_wrt V and
A2: prg_doms_of loc,d1,prg,pos;
    let m,n be Nat;
    assume that
A3: 1 <= n and
A4: n <= m and
A5: m <= len prg;
    per cases by A4,XXREAL_0:1;
    suppose n = m;
      hence thesis;
    end;
    suppose
A6:   n < m;
      defpred P[Nat] means n < $1 <= len prg implies dom(F.n) c= dom(F.$1);
A7:   P[0];
A8:   for k being Nat st P[k] holds P[k+1]
      proof
        let k be Nat such that
A9:     P[k] and
A10:    n < k+1 and
A11:    k+1 <= len prg;
A12:    n <= k by A10,NAT_1:13;
        then
A13:    1 <= k by A3,XXREAL_0:2;
        k+0 < k+1 by XREAL_1:8;
        then
A14:    k < len prg by A11,XXREAL_0:2;
        then F.k in dom(prg.(k+1)) by A2,A13;
        then dom(F.(k)) c= dom(F.(k+1)) by A1,A13,A14,Th22;
        hence dom(F.n) c= dom(F.(k+1)) by A9,A12,A11,NAT_1:13,XXREAL_0:1;
      end;
      for k being Nat holds P[k] from NAT_1:sch 2(A7,A8);
      hence thesis by A5,A6;
    end;
  end;
