let k be Element of NAT ; :: thesis: for p being autonomic FinPartState of SCM
for s1, s2 being State of SCM st IC SCM in dom p & p c= s1 & Relocated p,k c= s2 holds
for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
let p be autonomic FinPartState of SCM ; :: thesis: for s1, s2 being State of SCM st IC SCM in dom p & p c= s1 & Relocated p,k c= s2 holds
for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
let s1, s2 be State of SCM ; :: thesis: ( IC SCM in dom p & p c= s1 & Relocated p,k c= s2 implies for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) ) )
assume that
A1:
IC SCM in dom p
and
A2:
p c= s1
and
A3:
Relocated p,k c= s2
; :: thesis: for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
set s3 = s1 +* (DataPart s2);
A5:
IC SCM in dom (Relocated p,k)
by Th25;
A6:
DataPart p = DataPart (Relocated p,k)
by Th21;
A7:
DataPart p c= p
by RELAT_1:88;
A8:
DataPart (Relocated p,k) c= Relocated p,k
by RELAT_1:88;
A9:
not p is programmed
by A1, AMI_1:109;
A10:
p c= s1 +* (DataPart s2)
by A2, A3, Th30;
defpred S1[ Element of NAT ] means ( (IC (Computation s1,$1)) + k = IC (Computation s2,$1) & IncAddr (CurInstr (Computation s1,$1)),k = CurInstr (Computation s2,$1) & (Computation s1,$1) | (dom (DataPart p)) = (Computation s2,$1) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),$1) = DataPart (Computation s2,$1) );
now thus (IC (Computation s1,0 )) + k =
(IC s1) + k
by AMI_1:13
.=
(IC p) + k
by A1, A2, AMI_1:97
.=
IC (Relocated p,k)
by Th26
.=
IC s2
by A3, A5, AMI_1:97
.=
IC (Computation s2,0 )
by AMI_1:13
;
:: thesis: ( IncAddr (CurInstr (Computation s1,0 )),k = CurInstr (Computation s2,0 ) & (Computation s1,0 ) | (dom (DataPart p)) = (Computation s2,0 ) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 ) )reconsider loc =
IC p as
Element of
NAT ;
A11:
IC p = IC s1
by A1, A2, AMI_1:97;
then
IC p = IC (Computation s1,0 )
by AMI_1:13;
then A12:
loc in dom (ProgramPart p)
by A2, A9, AMI_5:86;
ProgramPart p c= p
by RELAT_1:88;
then A13:
dom (ProgramPart p) c= dom p
by GRFUNC_1:8;
then A14:
p . (IC p) = s1 . (IC s1)
by A2, A11, A12, GRFUNC_1:8;
A15:
IncAddr (CurInstr (Computation s1,0 )),
k =
IncAddr (CurInstr s1),
k
by AMI_1:13
.=
IncAddr (s1 . (IC s1)),
k
;
A16:
IC SCM in dom (Relocated p,k)
by Th25;
A17:
(IC p) + k in dom (Relocated p,k)
by A12, A13, Th24;
CurInstr (Computation s2,0 ) =
CurInstr s2
by AMI_1:13
.=
s2 . (IC (Relocated p,k))
by A3, A16, AMI_1:97
.=
s2 . ((IC p) + k)
by Th26
.=
(Relocated p,k) . ((IC p) + k)
by A3, A17, GRFUNC_1:8
;
hence
IncAddr (CurInstr (Computation s1,0 )),
k = CurInstr (Computation s2,0 )
by A12, A14, A15, Th27;
:: thesis: ( (Computation s1,0 ) | (dom (DataPart p)) = (Computation s2,0 ) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 ) )thus (Computation s1,0 ) | (dom (DataPart p)) =
s1 | (dom (DataPart p))
by AMI_1:13
.=
DataPart p
by A2, A7, GRFUNC_1:64, XBOOLE_1:1
.=
s2 | (dom (DataPart p))
by A3, A6, A8, GRFUNC_1:64, XBOOLE_1:1
.=
(Computation s2,0 ) | (dom (DataPart (Relocated p,k)))
by A6, AMI_1:13
;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 )A18:
dom (DataPart s2) = SCM-Data-Loc
by AMI_3:72, SCMNORM:14;
thus DataPart (Computation (s1 +* (DataPart s2)),0 ) =
DataPart (s1 +* (DataPart s2))
by AMI_1:13
.=
DataPart s2
by A18, AMI_3:72, FUNCT_4:24
.=
DataPart (Computation s2,0 )
by AMI_1:13
;
:: thesis: verum end;
then A19:
S1[ 0 ]
;
now let i be
Element of
NAT ;
:: thesis: ( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) implies ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) ) )assume that A20:
(IC (Computation s1,i)) + k = IC (Computation s2,i)
and A21:
IncAddr (CurInstr (Computation s1,i)),
k = CurInstr (Computation s2,i)
and A22:
(Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k)))
and A23:
DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i)
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )set Cs1i =
Computation s1,
i;
set Cs2i =
Computation s2,
i;
set Cs3i =
Computation (s1 +* (DataPart s2)),
i;
set Cs1i1 =
Computation s1,
(i + 1);
set Cs2i1 =
Computation s2,
(i + 1);
set Cs3i1 =
Computation (s1 +* (DataPart s2)),
(i + 1);
set DPp =
DataPart p;
A24:
dom (DataPart p) = dom (DataPart (Relocated p,k))
by Th21;
A25:
dom (Computation s1,(i + 1)) = ({(IC SCM )} \/ SCM-Data-Loc ) \/ NAT
by AMI_1:79, AMI_5:23;
A26:
dom (Computation s2,(i + 1)) = ({(IC SCM )} \/ SCM-Data-Loc ) \/ NAT
by AMI_1:79, AMI_5:23;
A27:
dom (Computation s1,i) = ({(IC SCM )} \/ SCM-Data-Loc ) \/ NAT
by AMI_1:79, AMI_5:23;
A28:
dom (Computation s2,i) = ({(IC SCM )} \/ SCM-Data-Loc ) \/ NAT
by AMI_1:79, AMI_5:23;
dom (DataPart p) = (dom p) /\ SCM-Data-Loc
by AMI_3:72, FUNCT_1:68;
then A29:
dom (DataPart p) c= {(IC SCM )} \/ SCM-Data-Loc
by XBOOLE_1:10, XBOOLE_1:17;
A30:
dom ((Computation s1,(i + 1)) | (dom (DataPart p))) =
(dom (Computation s1,(i + 1))) /\ (dom (DataPart p))
by FUNCT_1:68
.=
dom (DataPart p)
by A25, A29, XBOOLE_1:10, XBOOLE_1:28
;
A31:
dom ((Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))) =
(dom (Computation s2,(i + 1))) /\ (dom (DataPart p))
by A24, FUNCT_1:68
.=
dom (DataPart p)
by A26, A29, XBOOLE_1:10, XBOOLE_1:28
;
A32:
dom ((Computation s1,i) | (dom (DataPart p))) =
(dom (Computation s1,i)) /\ (dom (DataPart p))
by FUNCT_1:68
.=
dom (DataPart p)
by A27, A29, XBOOLE_1:10, XBOOLE_1:28
;
A33:
dom ((Computation s2,i) | (dom (DataPart (Relocated p,k)))) =
(dom (Computation s2,i)) /\ (dom (DataPart p))
by A24, FUNCT_1:68
.=
dom (DataPart p)
by A28, A29, XBOOLE_1:10, XBOOLE_1:28
;
A34:
dom (DataPart (Computation (s1 +* (DataPart s2)),i)) = SCM-Data-Loc
by AMI_3:72, SCMNORM:14;
A35:
dom (DataPart (Computation s2,i)) = SCM-Data-Loc
by AMI_3:72, SCMNORM:14;
A36:
dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) = SCM-Data-Loc
by AMI_3:72, SCMNORM:14;
A37:
dom (DataPart (Computation s2,(i + 1))) = SCM-Data-Loc
by AMI_3:72, SCMNORM:14;
A41:
now let x be
set ;
:: thesis: for d being Data-Location st d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s1,i) . d & (Computation s2,(i + 1)) . d = (Computation s2,i) . d holds
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . xlet d be
Data-Location ;
:: thesis: ( d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s1,i) . d & (Computation s2,(i + 1)) . d = (Computation s2,i) . d implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume that A42:
(
d = x &
d in dom (DataPart p) )
and A43:
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
(
((Computation s1,i) | (dom (DataPart p))) . d = (Computation s1,i) . d &
((Computation s2,i) | (dom (DataPart p))) . d = (Computation s2,i) . d )
by A24, A32, A33, A42, FUNCT_1:70;
hence ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . d
by A22, A24, A30, A42, A43, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A24, A31, A42, FUNCT_1:70
;
:: thesis: verum end; A44:
now let x be
set ;
:: thesis: for d being Data-Location st d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d holds
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . xlet d be
Data-Location ;
:: thesis: ( d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume that A45:
(
d = x &
d in dom (DataPart p) )
and A46:
(Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . xthus ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . d
by A30, A45, A46, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A24, A31, A45, FUNCT_1:70
;
:: thesis: verum end; A47:
now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) & (Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation s2,(i + 1)) . x implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A48:
(
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation s2,(i + 1)) . x )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xhence (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x =
(Computation s2,(i + 1)) . x
by FUNCT_1:70
.=
(DataPart (Computation s2,(i + 1))) . x
by A36, A37, A48, FUNCT_1:70
;
:: thesis: verum end; A49:
now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) & (Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x & (Computation s2,(i + 1)) . x = (Computation s2,i) . x implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A50:
(
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen
(
(DataPart (Computation (s1 +* (DataPart s2)),i)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(DataPart (Computation s2,i)) . x = (Computation s2,i) . x )
by A34, A35, A36, FUNCT_1:70;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A23, A47, A50;
:: thesis: verum end; A51:
now assume A52:
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1))reconsider loc =
IC (Computation s1,(i + 1)) as
Instruction-Location of
SCM ;
reconsider kk =
loc as
Element of
NAT by ORDINAL1:def 13;
A53:
loc in dom (ProgramPart p)
by A2, A9, AMI_5:86;
ProgramPart p c= p
by RELAT_1:88;
then A54:
dom (ProgramPart p) c= dom p
by GRFUNC_1:8;
A55:
CurInstr (Computation s1,(i + 1)) =
s1 . loc
by AMI_1:54
.=
p . loc
by A2, A53, A54, GRFUNC_1:8
;
loc + k in dom (Relocated p,k)
by A53, A54, Th24;
then (Relocated p,k) . (loc + k) =
s2 . (loc + k)
by A3, GRFUNC_1:8
.=
(Computation s2,(i + 1)) . (kk + k)
by AMI_1:54
;
hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A52, A53, A55, Th27;
:: thesis: verum end; A56:
Computation s1,
(i + 1) =
Following (Computation s1,i)
by AMI_1:14
.=
Exec (CurInstr (Computation s1,i)),
(Computation s1,i)
;
A57:
Computation s2,
(i + 1) =
Following (Computation s2,i)
by AMI_1:14
.=
Exec (CurInstr (Computation s2,i)),
(Computation s2,i)
;
A58:
Computation (s1 +* (DataPart s2)),
(i + 1) =
Following (Computation (s1 +* (DataPart s2)),i)
by AMI_1:14
.=
Exec (CurInstr (Computation s1,i)),
(Computation (s1 +* (DataPart s2)),i)
by A2, A9, A10, AMI_5:87
;
reconsider j =
IC (Computation s1,i) as
Element of
NAT by ORDINAL1:def 13;
A60:
Next ((IC (Computation s1,i)) + k) =
il. ((j + k) + 1)
by NAT_1:39
.=
(il. (j + 1)) + k
.=
(Next (IC (Computation s1,i))) + k
by NAT_1:39
;
set I =
CurInstr (Computation s1,i);
per cases
( InsCode (CurInstr (Computation s1,i)) = 0 or InsCode (CurInstr (Computation s1,i)) = 1 or InsCode (CurInstr (Computation s1,i)) = 2 or InsCode (CurInstr (Computation s1,i)) = 3 or InsCode (CurInstr (Computation s1,i)) = 4 or InsCode (CurInstr (Computation s1,i)) = 5 or InsCode (CurInstr (Computation s1,i)) = 6 or InsCode (CurInstr (Computation s1,i)) = 7 or InsCode (CurInstr (Computation s1,i)) = 8 )
by AMI_5:36, NAT_1:33;
suppose
InsCode (CurInstr (Computation s1,i)) = 0
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then A61:
CurInstr (Computation s1,i) = halt SCM
by AMI_5:46;
then A62:
CurInstr (Computation s2,i) = halt SCM
by A21, Def3, AMI_5:37;
thus (IC (Computation s1,(i + 1))) + k =
(IC (Computation s1,i)) + k
by A56, A61, AMI_1:def 8
.=
IC (Computation s2,(i + 1))
by A20, A57, A62, AMI_1:def 8
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A51;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )A63:
(
Computation s2,
(i + 1) = Computation s2,
i &
Computation s1,
(i + 1) = Computation s1,
i )
by A56, A57, A61, A62, AMI_1:def 8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A22;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))thus
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A23, A58, A61, A63, AMI_1:def 8;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 1
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider da,
db being
Data-Location such that A64:
CurInstr (Computation s1,i) = da := db
by AMI_5:47;
A65:
IncAddr (CurInstr (Computation s1,i)),
k = da := db
by A64, Th5;
A66:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A64, AMI_3:8;
A67:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A39;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A65, A66, AMI_3:8;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A65, A66, AMI_3:8;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A68:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A68;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
DataPart p c= p
by RELAT_1:88;
then A69:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
per cases
( da = d or da <> d )
;
suppose A70:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A71:
(Computation s1,(i + 1)) . d = (Computation s1,i) . db
by A56, A64, AMI_3:8;
(Computation s2,(i + 1)) . d = (Computation s2,i) . db
by A21, A57, A65, A70, AMI_3:8;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A2, A9, A10, A30, A44, A64, A67, A68, A69, A70, A71, AMI_5:88;
:: thesis: verum end; suppose
da <> d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A64, A65, AMI_3:8;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A68;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A72:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then
(
(Computation s2,(i + 1)) . d = (Computation s2,i) . db &
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . db )
by A21, A57, A58, A64, A65, AMI_3:8;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A39, A47, A72;
:: thesis: verum end; suppose A73:
da <> d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A74:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A64, AMI_3:8;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A65, A73, AMI_3:8;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A72, A74;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 2
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider da,
db being
Data-Location such that A75:
CurInstr (Computation s1,i) = AddTo da,
db
by AMI_5:48;
A76:
IncAddr (CurInstr (Computation s1,i)),
k = AddTo da,
db
by A75, Th6;
A77:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A75, AMI_3:9;
A78:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
A79:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A39;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A76, A77, AMI_3:9;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A76, A77, AMI_3:9;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A80:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A80;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
DataPart p c= p
by RELAT_1:88;
then A81:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
per cases
( da = d or da <> d )
;
suppose A82:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A83:
(Computation s1,(i + 1)) . d = ((Computation s1,i) . da) + ((Computation s1,i) . db)
by A56, A75, AMI_3:9;
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) + ((Computation s2,i) . db)
by A21, A57, A76, A82, AMI_3:9;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A2, A9, A10, A30, A44, A75, A78, A79, A80, A81, A82, A83, AMI_5:89;
:: thesis: verum end; suppose
da <> d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A75, A76, AMI_3:9;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A80;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A84:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A85:
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A86:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) + ((Computation s2,i) . db)
by A21, A57, A76, AMI_3:9;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) + ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A75, A85, AMI_3:9;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A78, A79, A84, A86;
:: thesis: verum end; suppose A87:
da <> d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A88:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A75, AMI_3:9;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A76, A87, AMI_3:9;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A84, A88;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 3
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider da,
db being
Data-Location such that A89:
CurInstr (Computation s1,i) = SubFrom da,
db
by AMI_5:49;
A90:
IncAddr (CurInstr (Computation s1,i)),
k = SubFrom da,
db
by A89, Th7;
A91:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A89, AMI_3:10;
A92:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
A93:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A39;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A90, A91, AMI_3:10;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A90, A91, AMI_3:10;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A94:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A94;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
DataPart p c= p
by RELAT_1:88;
then A95:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
per cases
( da = d or da <> d )
;
suppose A96:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A97:
(Computation s1,(i + 1)) . d = ((Computation s1,i) . da) - ((Computation s1,i) . db)
by A56, A89, AMI_3:10;
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) - ((Computation s2,i) . db)
by A21, A57, A90, A96, AMI_3:10;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A2, A9, A10, A30, A44, A89, A92, A93, A94, A95, A96, A97, AMI_5:90;
:: thesis: verum end; suppose
da <> d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A89, A90, AMI_3:10;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A94;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A98:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A99:
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A100:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) - ((Computation s2,i) . db)
by A21, A57, A90, AMI_3:10;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) - ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A89, A99, AMI_3:10;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A92, A93, A98, A100;
:: thesis: verum end; suppose A101:
da <> d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A102:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A89, AMI_3:10;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A90, A101, AMI_3:10;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A98, A102;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 4
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider da,
db being
Data-Location such that A103:
CurInstr (Computation s1,i) = MultBy da,
db
by AMI_5:50;
A104:
IncAddr (CurInstr (Computation s1,i)),
k = MultBy da,
db
by A103, Th8;
A105:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A103, AMI_3:11;
A106:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
A107:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A39;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A104, A105, AMI_3:11;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A104, A105, AMI_3:11;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A108:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A108;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
DataPart p c= p
by RELAT_1:88;
then A109:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
per cases
( da = d or da <> d )
;
suppose A110:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A111:
(Computation s1,(i + 1)) . d = ((Computation s1,i) . da) * ((Computation s1,i) . db)
by A56, A103, AMI_3:11;
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) * ((Computation s2,i) . db)
by A21, A57, A104, A110, AMI_3:11;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A2, A9, A10, A30, A44, A103, A106, A107, A108, A109, A110, A111, AMI_5:91;
:: thesis: verum end; suppose
da <> d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A103, A104, AMI_3:11;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A108;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A112:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A113:
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A114:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) * ((Computation s2,i) . db)
by A21, A57, A104, AMI_3:11;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) * ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A103, A113, AMI_3:11;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A106, A107, A112, A114;
:: thesis: verum end; suppose A115:
da <> d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A116:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A103, AMI_3:11;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A104, A115, AMI_3:11;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A112, A116;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 5
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider da,
db being
Data-Location such that A117:
CurInstr (Computation s1,i) = Divide da,
db
by AMI_5:51;
A118:
IncAddr (CurInstr (Computation s1,i)),
k = Divide da,
db
by A117, Th9;
A119:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
A120:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A39;
now per cases
( da <> db or da = db )
;
suppose A121:
da <> db
;
:: thesis: ( (IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1)) & IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )A122:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A117, AMI_3:12;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A118, AMI_3:12;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A118, A122, AMI_3:12;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A123:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A123;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
DataPart p c= p
by RELAT_1:88;
then A124:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
per cases
( da = d or db = d or ( da <> d & db <> d ) )
;
suppose A125:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A126:
(Computation s1,(i + 1)) . d = ((Computation s1,i) . da) div ((Computation s1,i) . db)
by A56, A117, A121, AMI_3:12;
A127:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) div ((Computation s2,i) . db)
by A21, A57, A118, A121, A125, AMI_3:12;
((Computation (s1 +* (DataPart s2)),i) . da) div ((Computation (s1 +* (DataPart s2)),i) . db) = ((Computation s1,i) . da) div ((Computation s1,i) . db)
by A2, A9, A10, A30, A117, A121, A123, A124, A125, AMI_5:92;
hence ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . d
by A119, A120, A123, A126, A127, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A24, A30, A31, A123, FUNCT_1:70
;
:: thesis: verum end; suppose A128:
db = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A129:
(Computation s1,(i + 1)) . d = ((Computation s1,i) . da) mod ((Computation s1,i) . db)
by A56, A117, AMI_3:12;
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A21, A57, A118, A128, AMI_3:12;
then
(Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d
by A2, A9, A10, A30, A117, A119, A120, A121, A123, A124, A128, A129, AMI_5:93;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A44, A123;
:: thesis: verum end; suppose
(
da <> d &
db <> d )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A117, A118, AMI_3:12;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A123;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A130:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or db = d or ( da <> d & db <> d ) )
;
suppose A131:
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A132:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) div ((Computation s2,i) . db)
by A21, A57, A118, A121, AMI_3:12;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) div ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A117, A121, A131, AMI_3:12;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A119, A120, A130, A132;
:: thesis: verum end; suppose A133:
db = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A134:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A21, A57, A118, AMI_3:12;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) mod ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A117, A133, AMI_3:12;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A119, A120, A130, A134;
:: thesis: verum end; suppose A135:
(
da <> d &
db <> d )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A136:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A117, AMI_3:12;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A118, A135, AMI_3:12;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A130, A136;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose A137:
da = db
;
:: thesis: ( (IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1)) & IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )A138:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM ) = Next (IC (Computation s1,i))
by A117, AMI_3:12;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A20, A21, A56, A57, A60, A118, AMI_3:12;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A20, A21, A51, A56, A57, A60, A118, A138, AMI_3:12;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A139:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A139;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A140:
da = d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A141:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A21, A57, A118, A137, AMI_3:12;
A142:
(
((Computation s1,i) | (dom (DataPart p))) . d = (Computation s1,i) . d &
((Computation s2,i) | (dom (DataPart p))) . d = (Computation s2,i) . d )
by A24, A30, A32, A33, A139, FUNCT_1:70;
(
((Computation s1,(i + 1)) | (dom (DataPart p))) . d = (Computation s1,(i + 1)) . d &
((Computation s2,(i + 1)) | (dom (DataPart p))) . d = (Computation s2,(i + 1)) . d )
by A24, A30, A31, A139, FUNCT_1:70;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A22, A24, A56, A117, A137, A140, A141, A142, AMI_3:12;
:: thesis: verum end; suppose
da <> d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A21, A56, A57, A117, A118, A137, AMI_3:12;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A139;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A143:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A144:
da = d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A145:
(Computation s2,(i + 1)) . d = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A21, A57, A118, A137, AMI_3:12;
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = ((Computation (s1 +* (DataPart s2)),i) . da) mod ((Computation (s1 +* (DataPart s2)),i) . db)
by A58, A117, A137, A144, AMI_3:12;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A47, A119, A120, A143, A145;
:: thesis: verum end; suppose A146:
da <> d
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A147:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A58, A117, A137, AMI_3:12;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A21, A57, A118, A137, A146, AMI_3:12;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A143, A147;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; end; end; hence
(
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1)) &
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1)) &
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) &
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )
;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 6
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider loc being
Instruction-Location of
SCM such that A148:
CurInstr (Computation s1,i) = goto loc
by AMI_5:52;
A149:
CurInstr (Computation s2,i) = goto (loc + k)
by A21, A148, Th10;
thus (IC (Computation s1,(i + 1))) + k =
loc + k
by A56, A148, AMI_3:13
.=
IC (Computation s2,(i + 1))
by A57, A149, AMI_3:13
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A51;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A150:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A150;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A56, A57, A148, A149, AMI_3:13;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A150;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A151:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A57, A58, A148, A149, AMI_3:13;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A151;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 7
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider loc being
Instruction-Location of
SCM ,
da being
Data-Location such that A152:
CurInstr (Computation s1,i) = da =0_goto loc
by AMI_5:53;
A153:
CurInstr (Computation s2,i) = da =0_goto (loc + k)
by A21, A152, Th11;
A154:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A51, A157;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A158:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A158;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A56, A57, A152, A153, AMI_3:14;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A158;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A159:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A57, A58, A152, A153, AMI_3:14;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A159;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 8
;
:: thesis: ( (IC (Computation s1,(b1 + 1))) + k = IC (Computation s2,(b1 + 1)) & IncAddr (CurInstr (Computation s1,(b1 + 1))),k = CurInstr (Computation s2,(b1 + 1)) & (Computation s1,(b1 + 1)) | (dom (DataPart p)) = (Computation s2,(b1 + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(b1 + 1)) = DataPart (Computation s2,(b1 + 1)) )then consider loc being
Instruction-Location of
SCM ,
da being
Data-Location such that A160:
CurInstr (Computation s1,i) = da >0_goto loc
by AMI_5:54;
A161:
CurInstr (Computation s2,i) = da >0_goto (loc + k)
by A21, A160, Th12;
A162:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A39;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A51, A165;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A166:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= SCM-Data-Loc
by AMI_3:72, RELAT_1:87;
then
x in SCM-Data-Loc
by A30, A166;
then reconsider d =
x as
Data-Location by AMI_3:def 2;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A56, A57, A160, A161, AMI_3:15;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A30, A41, A166;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A24, A30, A31, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A24, A30, A31, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A167:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen reconsider d =
x as
Data-Location by A36, AMI_3:def 2;
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A57, A58, A160, A161, AMI_3:15;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A49, A167;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A36, A37, GRFUNC_1:9;
:: thesis: verum end; end; end;
then A168:
for i being Element of NAT st S1[i] holds
S1[i + 1]
;
thus
for i being Element of NAT holds S1[i]
from NAT_1:sch 1(A19, A168); :: thesis: verum