let size be non zero Nat; for V, A being set
for loc being b1 -valued Function
for d1 being NonatomicND of V,A
for val being size -element FinSequence st loc,val are_different_wrt size & loc,val,size are_correct_wrt d1 holds
for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
let V, A be set ; for loc being V -valued Function
for d1 being NonatomicND of V,A
for val being size -element FinSequence st loc,val are_different_wrt size & loc,val,size are_correct_wrt d1 holds
for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
let loc be V -valued Function; for d1 being NonatomicND of V,A
for val being size -element FinSequence st loc,val are_different_wrt size & loc,val,size are_correct_wrt d1 holds
for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
let d1 be NonatomicND of V,A; for val being size -element FinSequence st loc,val are_different_wrt size & loc,val,size are_correct_wrt d1 holds
for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
let val be size -element FinSequence; ( loc,val are_different_wrt size & loc,val,size are_correct_wrt d1 implies for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n) )
assume that
A1:
loc,val are_different_wrt size
and
A2:
loc,val,size are_correct_wrt d1
; for m, n being Nat st 1 <= m & m <= size & 1 <= n & n <= size holds
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
let m, n be Nat; ( 1 <= m & m <= size & 1 <= n & n <= size implies ((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n) )
assume that
A3:
1 <= m
and
A4:
m <= size
and
A5:
1 <= n
and
A6:
n <= size
; ((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
set F = LocalOverlapSeq (A,loc,val,d1,size);
A7:
Seg size = dom val
by FINSEQ_1:89;
A8:
len (LocalOverlapSeq (A,loc,val,d1,size)) = size
by Def4;
A9:
0 + 1 <= size
by NAT_1:13;
defpred S1[ Nat] means ( 1 <= $1 & $1 <= size implies ((LocalOverlapSeq (A,loc,val,d1,size)) . $1) . (val . n) = d1 . (val . n) );
A10:
S1[ 0 ]
;
A11:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume that A12:
S1[
k]
and A13:
1
<= k + 1
and A14:
k + 1
<= size
;
((LocalOverlapSeq (A,loc,val,d1,size)) . (k + 1)) . (val . n) = d1 . (val . n)
set D1 =
denaming (
V,
A,
(val . 1));
A15:
dom (denaming (V,A,(val . 1))) = { 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 (denaming (V,A,(val . 1)))
by A16, A15;
then reconsider T1 =
(denaming (V,A,(val . 1))) . d1 as
TypeSCNominativeData of
V,
A by PARTFUN1:4, NOMIN_1:39;
A17:
(LocalOverlapSeq (A,loc,val,d1,size)) . 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
( k = 0 or k > 0 )
;
suppose A19:
k = 0
;
((LocalOverlapSeq (A,loc,val,d1,size)) . (k + 1)) . (val . n) = d1 . (val . n)
val . n <> loc /. 1
by A1, A5, A6, A9;
hence
((LocalOverlapSeq (A,loc,val,d1,size)) . (k + 1)) . (val . n) = d1 . (val . n)
by A2, A16, A17, A18, A19, NOMIN_5:3;
verum end; suppose
k > 0
;
((LocalOverlapSeq (A,loc,val,d1,size)) . (k + 1)) . (val . n) = d1 . (val . n)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 =
(LocalOverlapSeq (A,loc,val,d1,size)) . k as
NonatomicND of
V,
A by A20, A8, A21, Def6;
A22:
dom (denaming (V,A,(val . (k + 1)))) = { 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 (denaming (V,A,(val . (k + 1))))
by A22;
then reconsider T =
(denaming (V,A,(val . (k + 1)))) . d2 as
TypeSCNominativeData of
V,
A by PARTFUN1:4, NOMIN_1:39;
A23:
(LocalOverlapSeq (A,loc,val,d1,size)) . (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
((LocalOverlapSeq (A,loc,val,d1,size)) . (k + 1)) . (val . n) = d1 . (val . n)
by A2, A24, A23, A12, A20, A14, NAT_1:13, NOMIN_5:3;
verum end; end;
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(A10, A11);
hence
((LocalOverlapSeq (A,loc,val,d1,size)) . m) . (val . n) = d1 . (val . n)
by A3, A4; verum