let s be State of SCM+FSA ; ( IC s = 0 & s . (intloc 0 ) = 1 implies for a being Int-Location
for k being Integer st Load (aSeq a,k) c= s & a <> intloc 0 holds
( ( for i being Element of NAT st i <= len (aSeq a,k) holds
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) ) & (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k ) )
assume A1:
( IC s = 0 & s . (intloc 0 ) = 1 )
; for a being Int-Location
for k being Integer st Load (aSeq a,k) c= s & a <> intloc 0 holds
( ( for i being Element of NAT st i <= len (aSeq a,k) holds
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) ) & (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k )
let a be Int-Location ; for k being Integer st Load (aSeq a,k) c= s & a <> intloc 0 holds
( ( for i being Element of NAT st i <= len (aSeq a,k) holds
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) ) & (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k )
let k be Integer; ( Load (aSeq a,k) c= s & a <> intloc 0 implies ( ( for i being Element of NAT st i <= len (aSeq a,k) holds
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) ) & (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k ) )
assume that
A2:
Load (aSeq a,k) c= s
and
A3:
a <> intloc 0
; ( ( for i being Element of NAT st i <= len (aSeq a,k) holds
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) ) & (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k )
A4:
dom (Load (aSeq a,k)) = { (m -' 1) where m is Element of NAT : m in dom (aSeq a,k) }
by Def1;
A5:
now let c be
Element of
NAT ;
( c in dom (aSeq a,k) implies (aSeq a,k) . c = s . ((0 + c) -' 1) )assume A6:
c in dom (aSeq a,k)
;
(aSeq a,k) . c = s . ((0 + c) -' 1)then
c in Seg (len (aSeq a,k))
by FINSEQ_1:def 3;
then
1
<= c
by FINSEQ_1:3;
then A7:
c -' 1
= c - 1
by XREAL_1:235;
A8:
c -' 1
in dom (Load (aSeq a,k))
by A4, A6;
then (Load (aSeq a,k)) . (c -' 1) =
(aSeq a,k) /. ((c -' 1) + 1)
by Def1
.=
(aSeq a,k) . c
by A6, A7, PARTFUN1:def 8
;
hence
(aSeq a,k) . c = s . ((0 + c) -' 1)
by A2, A8, GRFUNC_1:8;
verum end;
hereby (Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k
let i be
Element of
NAT ;
( i <= len (aSeq a,k) implies ( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) ) )assume A9:
i <= len (aSeq a,k)
;
( IC (Comput (ProgramPart s),s,i) = i & ( for b being Int-Location st b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s),s,i) . f = s . f ) )then
IC (Comput (ProgramPart s),s,i) = 0 + i
by A1, A3, A5, Th36;
hence
(
IC (Comput (ProgramPart s),s,i) = i & ( for
b being
Int-Location st
b <> a holds
(Comput (ProgramPart s),s,i) . b = s . b ) & ( for
f being
FinSeq-Location holds
(Comput (ProgramPart s),s,i) . f = s . f ) )
by A1, A3, A5, A9, Th36;
verum
end;
thus
(Comput (ProgramPart s),s,(len (aSeq a,k))) . a = k
by A1, A3, A5, Th36; verum