let IL be non empty set ; :: thesis: for N being with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite realistic AMI-Struct of IL,N
for p being FinPartState of S st IC S in dom p holds
p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)

let N be with_non-empty_elements set ; :: thesis: for S being non empty stored-program IC-Ins-separated definite realistic AMI-Struct of IL,N
for p being FinPartState of S st IC S in dom p holds
p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)

let S be non empty stored-program IC-Ins-separated definite realistic AMI-Struct of IL,N; :: thesis: for p being FinPartState of S st IC S in dom p holds
p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)

let p be FinPartState of S; :: thesis: ( IC S in dom p implies p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p) )
assume A1: IC S in dom p ; :: thesis: p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)
then A2: {(IC S)} is Subset of (dom p) by SUBSET_1:63;
A3: dom p c= the carrier of S by Th80;
A4: IL c= the carrier of S by Def3;
A5: ({(IC S)} \/ IL) \/ (the carrier of S \ ({(IC S)} \/ IL)) = the carrier of S \/ ({(IC S)} \/ IL) by XBOOLE_1:39
.= the carrier of S by A4, XBOOLE_1:8, XBOOLE_1:12 ;
A6: dom (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) = (dom ((Start-At (IC p)) +* (ProgramPart p))) \/ (dom (DataPart p)) by FUNCT_4:def 1
.= ((dom (Start-At (IC p))) \/ (dom (ProgramPart p))) \/ (dom (DataPart p)) by FUNCT_4:def 1
.= ({(IC S)} \/ (dom (p | IL))) \/ (dom (DataPart p)) by FUNCOP_1:19
.= (((dom p) /\ {(IC S)}) \/ (dom (p | IL))) \/ (dom (p | (the carrier of S \ ({(IC S)} \/ IL)))) by A2, XBOOLE_1:28
.= (((dom p) /\ {(IC S)}) \/ ((dom p) /\ IL)) \/ (dom (p | (the carrier of S \ ({(IC S)} \/ IL)))) by RELAT_1:90
.= (((dom p) /\ {(IC S)}) \/ ((dom p) /\ IL)) \/ ((dom p) /\ (the carrier of S \ ({(IC S)} \/ IL))) by RELAT_1:90
.= ((dom p) /\ ({(IC S)} \/ IL)) \/ ((dom p) /\ (the carrier of S \ ({(IC S)} \/ IL))) by XBOOLE_1:23
.= (dom p) /\ the carrier of S by A5, XBOOLE_1:23
.= dom p by Th80, XBOOLE_1:28 ;
now
let x be set ; :: thesis: ( x in dom p implies p . b1 = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . b1 )
assume A7: x in dom p ; :: thesis: p . b1 = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . b1
then A8: ( x in {(IC S)} \/ IL or x in the carrier of S \ ({(IC S)} \/ IL) ) by A3, A5, XBOOLE_0:def 3;
per cases ( x in {(IC S)} or x in the carrier of S \ ({(IC S)} \/ IL) or x in IL ) by A8, XBOOLE_0:def 3;
suppose A9: x in {(IC S)} ; :: thesis: p . b1 = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . b1
end;
suppose x in the carrier of S \ ({(IC S)} \/ IL) ; :: thesis: p . b1 = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . b1
then x in (dom p) /\ (the carrier of S \ ({(IC S)} \/ IL)) by A7, XBOOLE_0:def 4;
then A14: x in dom (p | (the carrier of S \ ({(IC S)} \/ IL))) by RELAT_1:90;
then x in (dom ((Start-At (IC p)) +* (ProgramPart p))) \/ (dom (p | (the carrier of S \ ({(IC S)} \/ IL)))) by XBOOLE_0:def 3;
then (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . x = (p | (the carrier of S \ ({(IC S)} \/ IL))) . x by A14, FUNCT_4:def 1
.= p . x by A14, FUNCT_1:70 ;
hence p . x = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . x ; :: thesis: verum
end;
suppose x in IL ; :: thesis: p . b1 = (((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p)) . b1
end;
end;
end;
hence p = ((Start-At (IC p)) +* (ProgramPart p)) +* (DataPart p) by A6, FUNCT_1:9; :: thesis: verum