thus
SCM+FSA is IC-good
:: thesis: SCM+FSA is Exec-preservingproof
let I be
Instruction of
SCM+FSA ;
:: according to AMISTD_2:def 18 :: thesis: I is IC-good
per cases
( I = [0 ,{} ] or ex a, b being Int-Location st I = a := b or ex a, b being Int-Location st I = AddTo a,b or ex a, b being Int-Location st I = SubFrom a,b or ex a, b being Int-Location st I = MultBy a,b or ex a, b being Int-Location st I = Divide a,b or ex i1 being Instruction-Location of SCM+FSA st I = goto i1 or ex i1 being Instruction-Location of SCM+FSA ex a being Int-Location st I = a =0_goto i1 or ex i1 being Instruction-Location of SCM+FSA ex a being Int-Location st I = a >0_goto i1 or ex a, b being Int-Location ex f being FinSeq-Location st I = b := f,a or ex a, b being Int-Location ex f being FinSeq-Location st I = f,a := b or ex a being Int-Location ex f being FinSeq-Location st I = a :=len f or ex a being Int-Location ex f being FinSeq-Location st I = f :=<0,...,0> a )
by SCMFSA_2:120;
suppose
ex
i1 being
Instruction-Location of
SCM+FSA st
I = goto i1
;
:: thesis: I is IC-goodthen consider i1 being
Instruction-Location of
SCM+FSA such that A6:
I = goto i1
;
let k be
natural number ;
:: according to AMISTD_2:def 17 :: thesis: for b1, b2 being Element of product the Object-Kind of SCM+FSA holds
( not b2 = b1 +* ((IC SCM+FSA ) .--> ((IC b1) + k)) or (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),b2) )let s1,
s2 be
State of
SCM+FSA ;
:: thesis: ( not s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k)) or (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2) )assume
s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k))
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)
IC (Exec I,s1) = i1
by A6, SCMFSA_2:95;
hence (IC (Exec I,s1)) + k =
IC (Exec (goto (il. SCM+FSA ,((locnum i1) + k))),s2)
by SCMFSA_2:95
.=
IC (Exec (IncAddr I,k),s2)
by A6, Th89
;
:: thesis: verum end; suppose
ex
i1 being
Instruction-Location of
SCM+FSA ex
a being
Int-Location st
I = a =0_goto i1
;
:: thesis: I is IC-goodthen consider a being
Int-Location ,
i1 being
Instruction-Location of
SCM+FSA such that A7:
I = a =0_goto i1
;
let k be
natural number ;
:: according to AMISTD_2:def 17 :: thesis: for b1, b2 being Element of product the Object-Kind of SCM+FSA holds
( not b2 = b1 +* ((IC SCM+FSA ) .--> ((IC b1) + k)) or (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),b2) )let s1,
s2 be
State of
SCM+FSA ;
:: thesis: ( not s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k)) or (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2) )assume A8:
s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k))
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)A9:
a <> IC SCM+FSA
by SCMFSA_2:81;
dom ((IC SCM+FSA ) .--> ((IC s1) + k)) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then
not
a in dom ((IC SCM+FSA ) .--> ((IC s1) + k))
by A9, TARSKI:def 1;
then A10:
s1 . a = s2 . a
by A8, FUNCT_4:12;
now per cases
( s1 . a = 0 or s1 . a <> 0 )
;
suppose A11:
s1 . a = 0
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)then
IC (Exec I,s1) = i1
by A7, SCMFSA_2:96;
hence (IC (Exec I,s1)) + k =
IC (Exec (a =0_goto (il. SCM+FSA ,((locnum i1) + k))),s2)
by A10, A11, SCMFSA_2:96
.=
IC (Exec (IncAddr I,k),s2)
by A7, Th90
;
:: thesis: verum end; suppose A12:
s1 . a <> 0
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)
dom ((IC SCM+FSA ) .--> ((IC s1) + k)) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then
IC SCM+FSA in dom ((IC SCM+FSA ) .--> ((IC s1) + k))
by TARSKI:def 1;
then A13:
IC s2 =
((IC SCM+FSA ) .--> ((IC s1) + k)) . (IC SCM+FSA )
by A8, FUNCT_4:14
.=
il. SCM+FSA ,
((locnum (IC s1)) + k)
by FUNCOP_1:87
;
A14:
IC (Exec I,s2) =
Next (IC s2)
by A7, A10, A12, SCMFSA_2:96
.=
NextLoc (IC s2)
by Th88
.=
il. SCM+FSA ,
(((locnum (IC s1)) + k) + 1)
by A13, AMISTD_1:def 13
.=
il. SCM+FSA ,
(((locnum (IC s1)) + 1) + k)
;
IC (Exec I,s1) =
Next (IC s1)
by A7, A12, SCMFSA_2:96
.=
NextLoc (IC s1)
by Th88
.=
il. SCM+FSA ,
((locnum (IC s1)) + 1)
;
hence (IC (Exec I,s1)) + k =
(Exec I,s2) . (IC SCM+FSA )
by A14, AMISTD_1:def 13
.=
Next (IC s2)
by A7, A10, A12, SCMFSA_2:96
.=
IC (Exec (a =0_goto (il. SCM+FSA ,((locnum i1) + k))),s2)
by A10, A12, SCMFSA_2:96
.=
IC (Exec (IncAddr I,k),s2)
by A7, Th90
;
:: thesis: verum end; end; end; hence
(IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)
;
:: thesis: verum end; suppose
ex
i1 being
Instruction-Location of
SCM+FSA ex
a being
Int-Location st
I = a >0_goto i1
;
:: thesis: I is IC-goodthen consider a being
Int-Location ,
i1 being
Instruction-Location of
SCM+FSA such that A15:
I = a >0_goto i1
;
let k be
natural number ;
:: according to AMISTD_2:def 17 :: thesis: for b1, b2 being Element of product the Object-Kind of SCM+FSA holds
( not b2 = b1 +* ((IC SCM+FSA ) .--> ((IC b1) + k)) or (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),b2) )let s1,
s2 be
State of
SCM+FSA ;
:: thesis: ( not s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k)) or (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2) )assume A16:
s2 = s1 +* ((IC SCM+FSA ) .--> ((IC s1) + k))
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)A17:
a <> IC SCM+FSA
by SCMFSA_2:81;
dom ((IC SCM+FSA ) .--> ((IC s1) + k)) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then
not
a in dom ((IC SCM+FSA ) .--> ((IC s1) + k))
by A17, TARSKI:def 1;
then A18:
s1 . a = s2 . a
by A16, FUNCT_4:12;
now per cases
( s1 . a > 0 or s1 . a <= 0 )
;
suppose A19:
s1 . a > 0
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)then
IC (Exec I,s1) = i1
by A15, SCMFSA_2:97;
hence (IC (Exec I,s1)) + k =
IC (Exec (a >0_goto (il. SCM+FSA ,((locnum i1) + k))),s2)
by A18, A19, SCMFSA_2:97
.=
IC (Exec (IncAddr I,k),s2)
by A15, Th91
;
:: thesis: verum end; suppose A20:
s1 . a <= 0
;
:: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)
dom ((IC SCM+FSA ) .--> ((IC s1) + k)) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then
IC SCM+FSA in dom ((IC SCM+FSA ) .--> ((IC s1) + k))
by TARSKI:def 1;
then A21:
IC s2 =
((IC SCM+FSA ) .--> ((IC s1) + k)) . (IC SCM+FSA )
by A16, FUNCT_4:14
.=
il. SCM+FSA ,
((locnum (IC s1)) + k)
by FUNCOP_1:87
;
A22:
IC (Exec I,s2) =
Next (IC s2)
by A15, A18, A20, SCMFSA_2:97
.=
NextLoc (IC s2)
by Th88
.=
il. SCM+FSA ,
(((locnum (IC s1)) + k) + 1)
by A21, AMISTD_1:def 13
.=
il. SCM+FSA ,
(((locnum (IC s1)) + 1) + k)
;
IC (Exec I,s1) =
Next (IC s1)
by A15, A20, SCMFSA_2:97
.=
NextLoc (IC s1)
by Th88
.=
il. SCM+FSA ,
((locnum (IC s1)) + 1)
;
hence (IC (Exec I,s1)) + k =
(Exec I,s2) . (IC SCM+FSA )
by A22, AMISTD_1:def 13
.=
Next (IC s2)
by A15, A18, A20, SCMFSA_2:97
.=
IC (Exec (a >0_goto (il. SCM+FSA ,((locnum i1) + k))),s2)
by A18, A20, SCMFSA_2:97
.=
IC (Exec (IncAddr I,k),s2)
by A15, Th91
;
:: thesis: verum end; end; end; hence
(IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),s2)
;
:: thesis: verum end; end;
end;
let I be Instruction of SCM+FSA ; :: according to AMISTD_2:def 20 :: thesis: I is Exec-preserving
let s1, s2 be State of SCM+FSA ; :: according to AMISTD_2:def 19 :: thesis: ( not s1,s2 equal_outside K52() or Exec I,s1, Exec I,s2 equal_outside K52() )
assume
s1,s2 equal_outside NAT
; :: thesis: Exec I,s1, Exec I,s2 equal_outside K52()
hence
Exec I,s1, Exec I,s2 equal_outside K52()
by SCMFSA6A:32; :: thesis: verum