let s1, s2 be State of SCM+FSA; :: thesis: ( s1 . (intloc 0) = s2 . (intloc 0) & ( for a being read-write Int-Location holds s1 . a = s2 . a ) & ( for f being FinSeq-Location holds s1 . f = s2 . f ) implies DataPart s1 = DataPart s2 )
set D = Data-Locations ;
assume A1: s1 . (intloc 0) = s2 . (intloc 0) ; :: thesis: ( ex a being read-write Int-Location st not s1 . a = s2 . a or ex f being FinSeq-Location st not s1 . f = s2 . f or DataPart s1 = DataPart s2 )
assume A2: for a being read-write Int-Location holds s1 . a = s2 . a ; :: thesis: ( ex f being FinSeq-Location st not s1 . f = s2 . f or DataPart s1 = DataPart s2 )
A3: dom (DataPart s1) = (dom s1) /\ (Data-Locations ) by RELAT_1:61
.= ((Data-Locations ) \/ {(IC )}) /\ (Data-Locations ) by MEMSTR_0:13
.= (dom s2) /\ (Data-Locations ) by MEMSTR_0:13
.= dom (DataPart s2) by RELAT_1:61 ;
assume A4: for f being FinSeq-Location holds s1 . f = s2 . f ; :: thesis: DataPart s1 = DataPart s2
now
let x be set ; :: thesis: ( x in dom (DataPart s1) implies (DataPart s1) . b1 = (DataPart s2) . b1 )
assume A5: x in dom (DataPart s1) ; :: thesis: (DataPart s1) . b1 = (DataPart s2) . b1
then A6: x in (dom s1) /\ (Data-Locations ) by RELAT_1:61;
then A7: x in dom s1 by XBOOLE_0:def 4;
per cases ( x is Int-Location or x is FinSeq-Location or x = IC ) by A7, SCMFSA6A:5;
end;
end;
then DataPart s1 c= DataPart s2 by A3, GRFUNC_1:2;
hence DataPart s1 = DataPart s2 by A3, GRFUNC_1:3; :: thesis: verum