thus SCM is IC-good :: thesis: SCM is Exec-preserving
proof
let I be Instruction of SCM ; :: according to AMISTD_2:def 19 :: thesis: I is IC-good
per cases ( I = [0 ,{} ,{} ] or ex a, b being Data-Location st I = a := b or ex a, b being Data-Location st I = AddTo a,b or ex a, b being Data-Location st I = SubFrom a,b or ex a, b being Data-Location st I = MultBy a,b or ex a, b being Data-Location st I = Divide a,b or ex k being natural number st I = SCM-goto k or ex a being Data-Location ex k being natural number st I = a =0_goto k or ex a being Data-Location ex k being natural number st I = a >0_goto k ) by AMI_3:69;
suppose A1: ex k being natural number st I = SCM-goto k ; :: thesis: I is IC-good
let k be Nat; :: according to AMISTD_2:def 18 :: thesis: for b1 being set holds (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),(IncrIC b1,k))
let s1 be State of SCM ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
set s2 = IncrIC s1,k;
consider k1 being natural number such that
A2: I = SCM-goto k1 by A1;
reconsider i1 = k1 as Element of NAT by ORDINAL1:def 13;
IC (Exec I,s1) = k1 by A2, AMI_3:13;
hence (IC (Exec I,s1)) + k = IC (Exec (SCM-goto (i1 + k)),(IncrIC s1,k)) by AMI_3:13
.= IC (Exec (IncAddr I,k),(IncrIC s1,k)) by A2, Th57 ;
:: thesis: verum
end;
suppose ex a being Data-Location ex k being natural number st I = a =0_goto k ; :: thesis: I is IC-good
then consider a being Data-Location , k1 being natural number such that
A3: I = a =0_goto k1 ;
reconsider i1 = k1 as Element of NAT by ORDINAL1:def 13;
let k be natural number ; :: according to AMISTD_2:def 18 :: thesis: for b1 being set holds (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),(IncrIC b1,k))
let s1 be State of SCM ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
set s2 = IncrIC s1,k;
( a <> IC SCM & dom ((IC SCM ) .--> ((IC s1) + k)) = {(IC SCM )} ) by AMI_5:20, FUNCOP_1:19;
then not a in dom ((IC SCM ) .--> ((IC s1) + k)) by TARSKI:def 1;
then A5: s1 . a = (IncrIC s1,k) . a by FUNCT_4:12;
now
per cases ( s1 . a = 0 or s1 . a <> 0 ) ;
suppose A6: s1 . a = 0 ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
then IC (Exec I,s1) = k1 by A3, AMI_3:14;
hence (IC (Exec I,s1)) + k = IC (Exec (a =0_goto (i1 + k)),(IncrIC s1,k)) by A5, A6, AMI_3:14
.= IC (Exec (IncAddr I,k),(IncrIC s1,k)) by A3, Th58 ;
:: thesis: verum
end;
suppose A7: s1 . a <> 0 ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
dom ((IC SCM ) .--> ((IC s1) + k)) = {(IC SCM )} by FUNCOP_1:19;
then IC SCM in dom ((IC SCM ) .--> ((IC s1) + k)) by TARSKI:def 1;
then A8: IC (IncrIC s1,k) = ((IC SCM ) .--> ((IC s1) + k)) . (IC SCM ) by FUNCT_4:14
.= (IC s1) + k by FUNCOP_1:87 ;
A9: IC (Exec I,s1) = succ (IC s1) by A3, A7, AMI_3:14
.= (IC s1) + 1 ;
IC (Exec I,(IncrIC s1,k)) = succ (IC (IncrIC s1,k)) by A3, A5, A7, AMI_3:14
.= ((IC s1) + 1) + k by A8 ;
hence (IC (Exec I,s1)) + k = succ (IC (IncrIC s1,k)) by A3, A5, A7, A9, AMI_3:14
.= IC (Exec (a =0_goto (i1 + k)),(IncrIC s1,k)) by A5, A7, AMI_3:14
.= IC (Exec (IncAddr I,k),(IncrIC s1,k)) by A3, Th58 ;
:: thesis: verum
end;
end;
end;
hence (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k)) ; :: thesis: verum
end;
suppose ex a being Data-Location ex k being natural number st I = a >0_goto k ; :: thesis: I is IC-good
then consider a being Data-Location , k1 being natural number such that
A10: I = a >0_goto k1 ;
reconsider i1 = k1 as Element of NAT by ORDINAL1:def 13;
let k be natural number ; :: according to AMISTD_2:def 18 :: thesis: for b1 being set holds (IC (Exec I,b1)) + k = IC (Exec (IncAddr I,k),(IncrIC b1,k))
let s1 be State of SCM ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
set s2 = IncrIC s1,k;
( a <> IC SCM & dom ((IC SCM ) .--> ((IC s1) + k)) = {(IC SCM )} ) by AMI_5:20, FUNCOP_1:19;
then not a in dom ((IC SCM ) .--> ((IC s1) + k)) by TARSKI:def 1;
then A12: s1 . a = (IncrIC s1,k) . a by FUNCT_4:12;
now
per cases ( s1 . a > 0 or s1 . a <= 0 ) ;
suppose A13: s1 . a > 0 ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
then IC (Exec I,s1) = k1 by A10, AMI_3:15;
hence (IC (Exec I,s1)) + k = IC (Exec (a >0_goto (i1 + k)),(IncrIC s1,k)) by A12, A13, AMI_3:15
.= IC (Exec (IncAddr I,k),(IncrIC s1,k)) by A10, Th59 ;
:: thesis: verum
end;
suppose A14: s1 . a <= 0 ; :: thesis: (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k))
dom ((IC SCM ) .--> ((IC s1) + k)) = {(IC SCM )} by FUNCOP_1:19;
then IC SCM in dom ((IC SCM ) .--> ((IC s1) + k)) by TARSKI:def 1;
then A15: IC (IncrIC s1,k) = ((IC SCM ) .--> ((IC s1) + k)) . (IC SCM ) by FUNCT_4:14
.= (IC s1) + k by FUNCOP_1:87 ;
A16: IC (Exec I,s1) = succ (IC s1) by A10, A14, AMI_3:15
.= (IC s1) + 1 ;
IC (Exec I,(IncrIC s1,k)) = succ (IC (IncrIC s1,k)) by A10, A12, A14, AMI_3:15
.= ((IC s1) + 1) + k by A15 ;
hence (IC (Exec I,s1)) + k = succ (IC (IncrIC s1,k)) by A10, A12, A14, A16, AMI_3:15
.= IC (Exec (a >0_goto (i1 + k)),(IncrIC s1,k)) by A12, A14, AMI_3:15
.= IC (Exec (IncAddr I,k),(IncrIC s1,k)) by A10, Th59 ;
:: thesis: verum
end;
end;
end;
hence (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k)) ; :: thesis: verum
end;
end;
end;
let I be Instruction of SCM ; :: according to AMISTD_2:def 21 :: thesis: I is Exec-preserving
let s1, s2 be State of SCM ; :: according to AMISTD_2:def 20 :: thesis: ( not s1,s2 equal_outside NAT or Exec I,s1, Exec I,s2 equal_outside NAT )
assume A18: s1,s2 equal_outside NAT ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
A19: IC s1 = IC s2 by A18, COMPOS_1:24;
A20: dom (Exec I,s1) = the carrier of SCM by PARTFUN1:def 4;
then A21: dom (Exec I,s1) = dom (Exec I,s2) by PARTFUN1:def 4;
per cases ( I = [0 ,{} ,{} ] or ex a, b being Data-Location st I = a := b or ex a, b being Data-Location st I = AddTo a,b or ex a, b being Data-Location st I = SubFrom a,b or ex a, b being Data-Location st I = MultBy a,b or ex a, b being Data-Location st I = Divide a,b or ex k being natural number st I = SCM-goto k or ex a being Data-Location ex k being natural number st I = a =0_goto k or ex a being Data-Location ex k being natural number st I = a >0_goto k ) by AMI_3:69;
suppose I = [0 ,{} ,{} ] ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
end;
suppose ex a, b being Data-Location st I = a := b ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a, b being Data-Location such that
A22: I = a := b ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A23: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A24: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x = a or ( x is Data-Location & x <> a ) ) by A20, A23, A24, Th3;
suppose A25: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = succ (IC s1) by A22, AMI_3:8
.= (Exec I,s2) . x by A19, A22, A25, AMI_3:8 ;
:: thesis: verum
end;
suppose A26: x = a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = s1 . b by A22, AMI_3:8
.= s2 . b by A18, Th5
.= (Exec I,s2) . x by A22, A26, AMI_3:8 ;
:: thesis: verum
end;
suppose that A27: x is Data-Location and
A28: x <> a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = s1 . x by A22, A27, A28, AMI_3:8
.= s2 . x by A18, A27, Th5
.= (Exec I,s2) . x by A22, A27, A28, AMI_3:8 ; :: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a, b being Data-Location st I = AddTo a,b ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a, b being Data-Location such that
A29: I = AddTo a,b ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A30: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A31: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x = a or ( x is Data-Location & x <> a ) ) by A20, A30, A31, Th3;
suppose A32: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = succ (IC s1) by A29, AMI_3:9
.= (Exec I,s2) . x by A19, A29, A32, AMI_3:9 ;
:: thesis: verum
end;
suppose A33: x = a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = (s1 . a) + (s1 . b) by A29, AMI_3:9
.= (s1 . a) + (s2 . b) by A18, Th5
.= (s2 . a) + (s2 . b) by A18, Th5
.= (Exec I,s2) . x by A29, A33, AMI_3:9 ;
:: thesis: verum
end;
suppose that A34: x is Data-Location and
A35: x <> a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = s1 . x by A29, A34, A35, AMI_3:9
.= s2 . x by A18, A34, Th5
.= (Exec I,s2) . x by A29, A34, A35, AMI_3:9 ; :: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a, b being Data-Location st I = SubFrom a,b ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a, b being Data-Location such that
A36: I = SubFrom a,b ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A37: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A38: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x = a or ( x is Data-Location & x <> a ) ) by A20, A37, A38, Th3;
suppose A39: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = succ (IC s1) by A36, AMI_3:10
.= (Exec I,s2) . x by A19, A36, A39, AMI_3:10 ;
:: thesis: verum
end;
suppose A40: x = a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = (s1 . a) - (s1 . b) by A36, AMI_3:10
.= (s1 . a) - (s2 . b) by A18, Th5
.= (s2 . a) - (s2 . b) by A18, Th5
.= (Exec I,s2) . x by A36, A40, AMI_3:10 ;
:: thesis: verum
end;
suppose that A41: x is Data-Location and
A42: x <> a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = s1 . x by A36, A41, A42, AMI_3:10
.= s2 . x by A18, A41, Th5
.= (Exec I,s2) . x by A36, A41, A42, AMI_3:10 ; :: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a, b being Data-Location st I = MultBy a,b ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a, b being Data-Location such that
A43: I = MultBy a,b ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A44: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A45: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x = a or ( x is Data-Location & x <> a ) ) by A20, A44, A45, Th3;
suppose A46: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = succ (IC s1) by A43, AMI_3:11
.= (Exec I,s2) . x by A19, A43, A46, AMI_3:11 ;
:: thesis: verum
end;
suppose A47: x = a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = (s1 . a) * (s1 . b) by A43, AMI_3:11
.= (s1 . a) * (s2 . b) by A18, Th5
.= (s2 . a) * (s2 . b) by A18, Th5
.= (Exec I,s2) . x by A43, A47, AMI_3:11 ;
:: thesis: verum
end;
suppose that A48: x is Data-Location and
A49: x <> a ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = s1 . x by A43, A48, A49, AMI_3:11
.= s2 . x by A18, A48, Th5
.= (Exec I,s2) . x by A43, A48, A49, AMI_3:11 ; :: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a, b being Data-Location st I = Divide a,b ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a, b being Data-Location such that
A50: I = Divide a,b ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A51: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A52: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x is Data-Location ) by A20, A51, A52, Th3;
suppose A53: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = succ (IC s1) by A50, AMI_3:12
.= (Exec I,s2) . x by A19, A50, A53, AMI_3:12 ;
:: thesis: verum
end;
suppose A54: x is Data-Location ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
A55: ( s1 . a = s2 . a & s1 . b = s2 . b ) by A18, Th5;
now
let c be Data-Location ; :: thesis: (Exec I,s1) . b1 = (Exec I,s2) . b1
per cases ( c = b or ( c = a & c <> b ) or ( c <> a & c <> b ) ) ;
suppose A56: c = b ; :: thesis: (Exec I,s1) . b1 = (Exec I,s2) . b1
hence (Exec I,s1) . c = (s2 . a) mod (s2 . b) by A50, A55, AMI_3:12
.= (Exec I,s2) . c by A50, A56, AMI_3:12 ;
:: thesis: verum
end;
suppose A57: ( c = a & c <> b ) ; :: thesis: (Exec I,s1) . b1 = (Exec I,s2) . b1
hence (Exec I,s1) . c = (s2 . a) div (s2 . b) by A50, A55, AMI_3:12
.= (Exec I,s2) . c by A50, A57, AMI_3:12 ;
:: thesis: verum
end;
suppose A58: ( c <> a & c <> b ) ; :: thesis: (Exec I,s1) . b1 = (Exec I,s2) . b1
hence (Exec I,s1) . c = s1 . c by A50, AMI_3:12
.= s2 . c by A18, Th5
.= (Exec I,s2) . c by A50, A58, AMI_3:12 ;
:: thesis: verum
end;
end;
end;
hence (Exec I,s1) . x = (Exec I,s2) . x by A54; :: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex k being natural number st I = SCM-goto k ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider k1 being natural number such that
A59: I = SCM-goto k1 ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A60: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A61: not x in NAT by XBOOLE_0:def 5;
per cases ( x = IC SCM or x is Data-Location ) by A20, A60, A61, Th3;
suppose A62: x = IC SCM ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = k1 by A59, AMI_3:13
.= (Exec I,s2) . x by A59, A62, AMI_3:13 ;
:: thesis: verum
end;
suppose A63: x is Data-Location ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = s1 . x by A59, AMI_3:13
.= s2 . x by A18, A63, Th5
.= (Exec I,s2) . x by A59, A63, AMI_3:13 ;
:: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a being Data-Location ex k being natural number st I = a =0_goto k ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a being Data-Location , k1 being natural number such that
A64: I = a =0_goto k1 ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A65: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A66: not x in NAT by XBOOLE_0:def 5;
A67: s1 . a = s2 . a by A18, Th5;
per cases ( ( x = IC SCM & s1 . a = 0 ) or ( x = IC SCM & s1 . a <> 0 ) or x is Data-Location ) by A20, A65, A66, Th3;
suppose A68: ( x = IC SCM & s1 . a = 0 ) ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = k1 by A64, A68, AMI_3:14
.= (Exec I,s2) . x by A64, A67, A68, AMI_3:14 ; :: thesis: verum
end;
suppose A69: ( x = IC SCM & s1 . a <> 0 ) ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = succ (IC s1) by A64, A69, AMI_3:14
.= (Exec I,s2) . x by A19, A64, A67, A69, AMI_3:14 ; :: thesis: verum
end;
suppose A70: x is Data-Location ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = s1 . x by A64, AMI_3:14
.= s2 . x by A18, A70, Th5
.= (Exec I,s2) . x by A64, A70, AMI_3:14 ;
:: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
suppose ex a being Data-Location ex k being natural number st I = a >0_goto k ; :: thesis: Exec I,s1, Exec I,s2 equal_outside NAT
then consider a being Data-Location , k being natural number such that
A71: I = a >0_goto k ;
for x being set st x in (dom (Exec I,s1)) \ NAT holds
(Exec I,s1) . x = (Exec I,s2) . x
proof
let x be set ; :: thesis: ( x in (dom (Exec I,s1)) \ NAT implies (Exec I,s1) . x = (Exec I,s2) . x )
assume A72: x in (dom (Exec I,s1)) \ NAT ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
then A73: not x in NAT by XBOOLE_0:def 5;
A74: s1 . a = s2 . a by A18, Th5;
per cases ( ( x = IC SCM & s1 . a > 0 ) or ( x = IC SCM & s1 . a <= 0 ) or x is Data-Location ) by A20, A72, A73, Th3;
suppose A75: ( x = IC SCM & s1 . a > 0 ) ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = k by A71, A75, AMI_3:15
.= (Exec I,s2) . x by A71, A74, A75, AMI_3:15 ; :: thesis: verum
end;
suppose A76: ( x = IC SCM & s1 . a <= 0 ) ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
thus (Exec I,s1) . x = succ (IC s1) by A71, A76, AMI_3:15
.= (Exec I,s2) . x by A19, A71, A74, A76, AMI_3:15 ; :: thesis: verum
end;
suppose A77: x is Data-Location ; :: thesis: (Exec I,s1) . x = (Exec I,s2) . x
hence (Exec I,s1) . x = s1 . x by A71, AMI_3:15
.= s2 . x by A18, A77, Th5
.= (Exec I,s2) . x by A71, A77, AMI_3:15 ;
:: thesis: verum
end;
end;
end;
hence (Exec I,s1) | ((dom (Exec I,s1)) \ NAT ) = (Exec I,s2) | ((dom (Exec I,s2)) \ NAT ) by A21, FUNCT_1:165; :: according to FUNCT_7:def 2 :: thesis: verum
end;
end;