reserve l, m, n for Nat;
reserve a,b for Int-Location,
  f for FinSeq-Location,
  s,s1,s2 for State of SCM+FSA;

theorem
  for s1,s2 being State of SCM+FSA holds ((for a being
Int-Location holds s1.a = s2.a) & for f being FinSeq-Location
 holds s1.f = s2.f) iff DataPart s1 = DataPart s2
proof
  let s1,s2 be State of SCM+FSA;
A1: now
    assume that
A2: for a being Int-Location holds s1.a = s2.a and
A3: for f being FinSeq-Location holds s1.f = s2.f;
    hereby
      let x be set;
      assume
A4:   x in Data-Locations SCM+FSA;
      per cases;
      suppose
        x in Int-Locations;
        then x is Int-Location by AMI_2:def 16;
        hence s1.x = s2.x by A2;
      end;
      suppose
        not x in Int-Locations;
        then x in FinSeq-Locations by A4,SCMFSA_2:100,XBOOLE_0:def 3;
        then x is FinSeq-Location by SCMFSA_2:def 5;
        hence s1.x = s2.x by A3;
      end;
    end;
  end;
A5: now
    assume
A6: for x being set st x in Data-Locations SCM+FSA holds
    s1.x = s2.x;
    hereby
      let a be Int-Location;
      a in Int-Locations by AMI_2:def 16;
      then a in Data-Locations SCM+FSA by SCMFSA_2:100,XBOOLE_0:def 3;
      hence s1.a = s2.a by A6;
    end;
    hereby
      let f be FinSeq-Location;
      f in FinSeq-Locations by SCMFSA_2:def 5;
      then f in Data-Locations SCM+FSA by SCMFSA_2:100,XBOOLE_0:def 3;
      hence s1.f = s2.f by A6;
    end;
  end;
  dom s2 = Data-Locations SCM+FSA \/ {IC SCM+FSA} by MEMSTR_0:13;
  then
A7: Data-Locations SCM+FSA c= dom s2 by XBOOLE_1:7;
  dom s1 = Data-Locations SCM+FSA \/ {IC SCM+FSA} by MEMSTR_0:13;
  then Data-Locations SCM+FSA c= dom s1 by XBOOLE_1:7;
  hence thesis by A7,A1,A5,FUNCT_1:95;
end;
