let N be non empty with_non-empty_elements set ; for S being non empty stored-program IC-Ins-separated definite realistic Exec-preserving steady-programmed AMI-Struct of N
for s being State of S
for i being Instruction of S
for p being NAT -defined FinPartState of holds Exec (i,(s +* p)) = (Exec (i,s)) +* p
let S be non empty stored-program IC-Ins-separated definite realistic Exec-preserving steady-programmed AMI-Struct of N; for s being State of S
for i being Instruction of S
for p being NAT -defined FinPartState of holds Exec (i,(s +* p)) = (Exec (i,s)) +* p
let s be State of S; for i being Instruction of S
for p being NAT -defined FinPartState of holds Exec (i,(s +* p)) = (Exec (i,s)) +* p
let i be Instruction of S; for p being NAT -defined FinPartState of holds Exec (i,(s +* p)) = (Exec (i,s)) +* p
let p be NAT -defined FinPartState of ; Exec (i,(s +* p)) = (Exec (i,s)) +* p
set C = the carrier of S;
set I = NAT ;
set D = the carrier of S \ ({(IC S)} \/ NAT);
A1:
dom p c= NAT
by RELAT_1:def 18;
A2:
dom s = the carrier of S
by PARTFUN1:def 4;
A3:
dom (s +* p) = the carrier of S
by PARTFUN1:def 4;
A4:
dom (Exec (i,s)) = the carrier of S
by PARTFUN1:def 4;
A5:
dom (Exec (i,(s +* p))) = the carrier of S
by PARTFUN1:def 4;
the carrier of S \ ({(IC S)} \/ NAT) = ( the carrier of S \ NAT) \ {(IC S)}
by XBOOLE_1:41;
then A6:
( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)} = ( the carrier of S \ NAT) \/ {(IC S)}
by XBOOLE_1:39;
A7:
{(IC S)} c= the carrier of S
;
{(IC S)} c= the carrier of S \ NAT
then A10:
the carrier of S \ NAT = ( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)}
by A6, XBOOLE_1:12;
NAT c= the carrier of S \ {(IC S)}
by Lm8;
then A11:
the carrier of S = ({(IC S)} \/ ( the carrier of S \ ({(IC S)} \/ NAT))) \/ NAT
by Lm7;
( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)} misses NAT
then A15:
( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)} misses dom p
by A1, XBOOLE_1:63;
then
s | ((dom s) \ NAT) = (s +* p) | ((dom (s +* p)) \ NAT)
by A2, A3, A10, FUNCT_4:76;
then
s,s +* p equal_outside NAT
by FUNCT_7:def 2;
then A16:
Exec (i,s), Exec (i,(s +* p)) equal_outside NAT
by AMISTD_2:def 20;
A17: ((Exec (i,s)) +* p) | (( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)}) =
(Exec (i,s)) | (( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)})
by A15, FUNCT_4:76
.=
(Exec (i,(s +* p))) | (( the carrier of S \ ({(IC S)} \/ NAT)) \/ {(IC S)})
by A4, A5, A10, A16, FUNCT_7:def 2
;
A18: ProgramPart (Exec (i,(s +* p))) =
ProgramPart (s +* p)
by L117
.=
(ProgramPart s) +* (ProgramPart p)
by FUNCT_4:75
.=
(ProgramPart (Exec (i,s))) +* (ProgramPart p)
by L117
.=
ProgramPart ((Exec (i,s)) +* p)
by FUNCT_4:75
;
thus Exec (i,(s +* p)) =
(Exec (i,(s +* p))) | (({(IC S)} \/ ( the carrier of S \ ({(IC S)} \/ NAT))) \/ NAT)
by A5, A11, RELAT_1:98
.=
(((Exec (i,s)) +* p) | ({(IC S)} \/ ( the carrier of S \ ({(IC S)} \/ NAT)))) +* (((Exec (i,s)) +* p) | NAT)
by A17, A18, FUNCT_4:83
.=
((Exec (i,s)) +* p) | (({(IC S)} \/ ( the carrier of S \ ({(IC S)} \/ NAT))) \/ NAT)
by FUNCT_4:83
.=
((Exec (i,s)) +* p) | (dom ((Exec (i,s)) +* p))
by A11, PARTFUN1:def 4
.=
(Exec (i,s)) +* p
by RELAT_1:98
; verum