reserve i, j, k for Nat,
  n for Nat,
  IL for non empty set,
  N for with_non-empty_elements set;
reserve R for non trivial Ring,
  a, b for Data-Location of R,
  loc for Nat,
  I for Instruction of SCM R,
  p for FinPartState of SCM R,
  s, s1, s2 for State of SCM R,
  P,P1,P2 for Instruction-Sequence of SCM R,
  q for FinPartState of SCM;

theorem Th12:
 for q being non halt-free finite
   (the InstructionsF of SCM R)-valued NAT-defined Function
 for p being non empty q-autonomic FinPartState of
  SCM R st p c= s1 & IncIC( p,k) c= s2
 for P1,P2 being Instruction-Sequence of SCM R
  st q c= P1 & Reloc(q,k) c= P2
  for i being Nat
   holds IC Comput(P1,s1,i) + k = IC Comput(P2,s2,i) &
  IncAddr(CurInstr(P1,Comput(P1,s1,i)), k) = CurInstr(P2,Comput(P2,s2,i)) &
  Comput(P1,s1,i)|dom (DataPart p) = Comput(P2,s2,i)|dom DataPart p &
  DataPart Comput(P1,s1 +* DataPart s2,i) = DataPart Comput(P2,s2,i)
proof
  let q be non halt-free finite
   (the InstructionsF of SCM R)-valued NAT-defined Function;
  let p be non empty q-autonomic FinPartState of SCM R such that
A1:  p c= s1 and
A2: IncIC( p,k) c= s2;
A3: IC SCM R in dom  p by AMISTD_5:6;
  let P1,P2 be Instruction-Sequence of SCM R
  such that
A4: q c= P1 & Reloc(q,k) c= P2;
 set s = s1 +* DataPart s2;
  defpred P[Nat] means
   IC Comput(P1,s1,$1) + k = IC Comput(P2,s2,$1) &
IncAddr(CurInstr(P1,Comput(P1,s1,$1)), k) =
CurInstr(P2,Comput(P2,s2,$1)) &
Comput(P1,s1,$1)|dom (DataPart p) = Comput(P2,s2,$1)|dom DataPart p &
 DataPart Comput(P1,s,$1) = DataPart Comput(P2,s2,$1);
A5: IC  p = IC s1 by A1,A3,GRFUNC_1:2;
  then IC  p = IC Comput(P1,s1,0);
  then
A6: IC  p in dom q by A1,A4,AMISTD_5:def 4;
A7:  p c= s by A1,A2,MEMSTR_0:61;
A8: for i being Nat st P[i] holds P[i+1 qua Element of NAT]
  proof
    set DPp = DataPart p;
    let i be Nat such that
A9: IC Comput(P1,s1,i) + k = IC Comput(P2,s2,i) and
A10:
IncAddr(CurInstr(P1,Comput(P1,s1,i)), k) =
CurInstr(P2,Comput(P2,s2,i))
and
A11: Comput(P1,s1,i)|dom DataPart p = Comput(P2,s2,i)|dom DataPart p and
A12: DataPart Comput(P1,s,i) = DataPart Comput(P2,s2,i);
    set Cs2i1 = Comput(P2,s2,i+1);
    set Cs3i = Comput(P1,s,i);
    set Cs2i = Comput(P2,s2,i);
A13: Cs2i1 = Following(P2,Cs2i) by EXTPRO_1:3
      .= Exec (CurInstr(P2,Cs2i), Cs2i);
A14: now
      let s be State of SCM R, d be Data-Location of R;
      d in Data-Locations SCM R by SCMRING2:23;
      hence d in dom DataPart s by MEMSTR_0:9;
    end;
A15: now
      let d be Data-Location of R;
A16:  d in dom DataPart Cs3i by A14;
      hence Cs3i.d = (DataPart Cs3i).d by FUNCT_1:47
        .= Cs2i.d by A12,A16,FUNCT_1:47;
    end;
    set Cs1i1 = Comput(P1,s1,i+1);
    set Cs1i = Comput(P1,s1,i);
    dom Cs1i1 = the carrier of SCM R by PARTFUN1:def 2;
    then
A17: dom Cs1i1 = {IC SCM R} \/ Data-Locations SCM R by XBOOLE_1:45;

A18: (IC Cs1i + k) + 1 = (IC Cs1i + 1) + k;
A19: now
      reconsider loc = IC Cs1i1 as Element of NAT;
      assume
A20:  IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1);
A21:  loc in dom q by A1,A4,AMISTD_5:def 4;
      loc + k in dom Reloc(q, k) by A21,COMPOS_1:46;
      then
A22:  Reloc(q, k).(loc + k) = P2.(loc + k)
           by A4,GRFUNC_1:2;
A23:  P2/.IC Comput(P2,s2,i+1)
    = P2.IC Comput(P2,s2,i+1) by PBOOLE:143;
      CurInstr(P1,Cs1i1) = P1.loc by PBOOLE:143
        .= (q).loc by A21,A4,GRFUNC_1:2;
      hence
      IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       =
      CurInstr(P2,Comput(P2,s2,i+1))
       by A20,A21,A22,A23,COMPOS_1:35;
    end;
    dom Cs2i = the carrier of SCM R by PARTFUN1:def 2;
    then
A24: dom Cs2i = {IC SCM R} \/ Data-Locations SCM R by XBOOLE_1:45;
    dom DPp = dom p /\ Data-Locations SCM R by RELAT_1:61;
    then
A25: dom DPp c= {IC SCM R} \/ Data-Locations SCM R by XBOOLE_1:10,17;
    set Cs3i1 = Comput(P1,s,i+1);
A26: dom DataPart Cs2i = Data-Locations SCM R by MEMSTR_0:9;
A27: dom DataPart Cs3i1 = Data-Locations SCM R by MEMSTR_0:9;
    then
A28: dom DataPart Cs3i1 c= dom DataPart Cs2i1 by MEMSTR_0:9;
A29: dom DataPart Cs2i1 = Data-Locations SCM R by MEMSTR_0:9;
A30: now
      let x be set;
      assume that
A31:  x in dom (DataPart Cs3i1) and
A32:  Cs3i1.x = Cs2i1.x;
      thus (DataPart Cs3i1).x = Cs2i1.x by A31,A32,FUNCT_1:47
        .= (DataPart Cs2i1).x by A27,A29,A31,FUNCT_1:47;
    end;
A33: dom DataPart Cs3i = Data-Locations SCM R by MEMSTR_0:9;
A34: now
      let x be set;
      assume that
A35:  x in dom DataPart Cs3i1 and
A36:  Cs3i1.x = Cs3i.x & Cs2i1.x = Cs2i.x;
      (DataPart Cs3i).x = Cs3i.x by A33,A27,A35,FUNCT_1:47;
      hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A12,A26,A27,A30,A35,A36,
FUNCT_1:47;
    end;
    dom Cs1i = the carrier of SCM R by PARTFUN1:def 2;
    then
A37: dom Cs1i = {IC SCM R} \/ Data-Locations SCM R by XBOOLE_1:45;
    dom Cs2i1 = the carrier of SCM R by PARTFUN1:def 2;
    then
A38: dom Cs2i1 = {IC SCM R} \/ Data-Locations SCM R by XBOOLE_1:45;
    set I = CurInstr(P1,Cs1i);
A39: Cs1i1 = Following(P1,Cs1i) by EXTPRO_1:3
      .= Exec (CurInstr(P1,Cs1i), Cs1i);
A40: dom (Cs1i|dom DPp) = dom Cs1i /\ dom DPp by RELAT_1:61
      .= dom DPp by A37,A25,XBOOLE_1:28;
A41: dom (Cs1i1|dom DPp) = dom Cs1i1 /\ dom DPp by RELAT_1:61
      .= dom DPp by A17,A25,XBOOLE_1:28;
A42: dom (Cs2i1|dom DataPart p) = dom Cs2i1 /\ dom DPp by RELAT_1:61
      .= dom DPp by A38,A25,XBOOLE_1:28;
    then
A43: dom (Cs1i1|dom DPp)c=dom (Cs2i1|dom DPp) by A41;
A44: dom (Cs2i|dom DataPart p) = dom Cs2i /\ dom DPp by RELAT_1:61
      .= dom DPp by A24,A25,XBOOLE_1:28;
A45: now
      let x be set, d be Data-Location of R such that
A46:  d = x and
A47:  d in dom DPp and
A48:  Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d;
A49:  (Cs1i|dom DPp).d = Cs1i.d & (Cs2i|dom DPp).d = Cs2i.d by A40,A44,A47,
FUNCT_1:47;
      thus (Cs1i1|dom DPp).x = Cs1i1.d by A41,A46,A47,FUNCT_1:47
        .= (Cs2i1|dom DPp).x by A11,A42,A46,A47,A48,A49,FUNCT_1:47;
    end;
A50: now
      let x be set, d be Data-Location of R such that
A51:  d = x & d in dom DPp and
A52:  Cs1i1.d = Cs2i1.d;
      thus (Cs1i1|dom DPp).x = Cs2i1.d by A41,A51,A52,FUNCT_1:47
        .= (Cs2i1|dom DPp).x by A42,A51,FUNCT_1:47;
    end;
A53: Cs3i1 = Following(P1,Cs3i) by EXTPRO_1:3
      .= Exec (CurInstr(P1,Cs1i), Cs3i)
       by A1,A7,A4,AMISTD_5:7;
    InsCode I = 0 or ... or InsCode I = 7 by SCMRING3:39;
    then per cases;
    suppose
      InsCode I = 0;
      then
A54:  I = halt SCM R by SCMRING3:12;
      hence IC Comput(P1,s1,i+1) + k
       = IC Cs1i + k by A39,EXTPRO_1:def 3
        .= IC Comput(P2,s2,i+1)
         by A9,A10,A13,A54,EXTPRO_1:def 3;
      hence
      IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1)) by A19;
A55:  Cs2i1 = Cs2i by A10,A13,A54,EXTPRO_1:def 3;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A11,A39,A54,EXTPRO_1:def 3;
      thus thesis by A12,A53,A54,A55,EXTPRO_1:def 3;
    end;
    suppose
      InsCode I = 1;
      then consider da, db being Data-Location of R such that
A56:  I = da := db by SCMRING3:13;
A57:  IncAddr(I, k) = da := db by A56,COMPOS_0:4;
A58:  Exec(I, Cs1i).IC SCM R = IC Cs1i + 1 by A56,SCMRING2:11;
      hence
      IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1)
      by A9,A10,A39,A13,A18,A57,SCMRING2:11;
      thus IncAddr(CurInstr(P1,Comput(P1,s1,i+1)),k)
       = CurInstr(P2,Comput(P2,s2,i+1))
       by A9,A10,A19,A39,A13,A18,A57,A58,SCMRING2:11;
A59:  Cs3i.db = Cs2i.db by A15;
      now
        DPp c= p by RELAT_1:59;
        then
A60:    dom DPp c= dom p by GRFUNC_1:2;
        let x be object;
        assume
A61:    x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A61,SCMRING2:23;
        per cases;
        suppose
A62:      da = d;
          then Cs1i1.d = Cs1i.db & Cs2i1.d = Cs2i.db by A10,A39,A13,A56,A57,
SCMRING2:11;
          hence
          (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A1,A7,A41,A50,A56,A59,A61
,A60,A62,Th7,A4;
        end;
        suppose
          da <> d;
          then Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d by A10,A39,A13,A56,A57,
SCMRING2:11;
          hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A61;
        end;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A63:    x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        per cases;
        suppose
          da = d;
          then Cs2i1.d = Cs2i.db & Cs3i1.d=Cs3i.db by A10,A13,A53,A56,A57,
SCMRING2:11;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A15,A30,A63;
        end;
        suppose
          da <> d;
          then Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d by A10,A13,A53,A56,A57,
SCMRING2:11;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A63;
        end;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 2;
      then consider da, db being Data-Location of R such that
A64:  I = AddTo(da, db) by SCMRING3:14;
A65:  IncAddr(I, k) = AddTo(da, db) by A64,COMPOS_0:4;
A66:  Exec(I, Cs1i).IC SCM R = IC Cs1i + 1 by A64,SCMRING2:12;
      hence
      IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1)
      by A9,A10,A39,A13,A18,A65,SCMRING2:12;
      thus IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1))
       by A9,A10,A19,A39,A13,A18,A65,A66,SCMRING2:12;
A67:  Cs3i.da = Cs2i.da & Cs3i.db = Cs2i.db by A15;
      now
        DPp c= p by RELAT_1:59;
        then
A68:    dom DPp c= dom p by GRFUNC_1:2;
        let x be object such that
A69:    x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A69,SCMRING2:23;
        per cases;
        suppose
A70:      da = d;
          then Cs1i1.d = Cs1i.da + Cs1i.db & Cs2i1.d = Cs2i.da + Cs2i.db by A10
,A39,A13,A64,A65,SCMRING2:12;
          hence
          (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A1,A7,A41,A50,A64,A67,A69
,A68,A70,Th8,A4;
        end;
        suppose
          da <> d;
          then Cs1i1.d=Cs1i.d & Cs2i1.d = Cs2i.d by A10,A39,A13,A64,A65,
SCMRING2:12;
          hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A69;
        end;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A71:    x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        per cases;
        suppose
          da = d;
          then Cs2i1.d = Cs2i.da + Cs2i.db & Cs3i1.d = Cs3i.da + Cs3i.db by A10
,A13,A53,A64,A65,SCMRING2:12;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A30,A67,A71;
        end;
        suppose
          da <> d;
          then Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d by A10,A13,A53,A64,A65,
SCMRING2:12;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A71;
        end;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 3;
      then consider da, db being Data-Location of R such that
A72:  I = SubFrom(da, db) by SCMRING3:15;
A73:  IncAddr(I, k) = SubFrom(da, db) by A72,COMPOS_0:4;
A74:  Exec(I, Cs1i).IC SCM R = IC Cs1i + 1 by A72,SCMRING2:13;
      hence
      IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1)
      by A9,A10,A39,A13,A18,A73,SCMRING2:13;
      thus IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1))
      by A9,A10,A19,A39,A13,A18,A73,A74,SCMRING2:13;
A75:  Cs3i.da = Cs2i.da & Cs3i.db = Cs2i.db by A15;
      now
        DPp c= p by RELAT_1:59;
        then
A76:    dom DPp c= dom p by GRFUNC_1:2;
        let x be object such that
A77:    x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A77,SCMRING2:23;
        per cases;
        suppose
A78:      da = d;
          then Cs1i1.d = Cs1i.da - Cs1i.db & Cs2i1.d = Cs2i.da - Cs2i.db by A10
,A39,A13,A72,A73,SCMRING2:13;
          hence
          (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A1,A7,A41,A50,A72,A75,A77
,A76,A78,Th9,A4;
        end;
        suppose
          da <> d;
          then Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d by A10,A39,A13,A72,A73,
SCMRING2:13;
          hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A77;
        end;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A79:    x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        per cases;
        suppose
          da = d;
          then Cs2i1.d = Cs2i.da - Cs2i.db & Cs3i1.d = Cs3i.da - Cs3i.db by A10
,A13,A53,A72,A73,SCMRING2:13;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A30,A75,A79;
        end;
        suppose
          da <> d;
          then Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d by A10,A13,A53,A72,A73,
SCMRING2:13;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A79;
        end;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 4;
      then consider da, db being Data-Location of R such that
A80:  I = MultBy(da, db) by SCMRING3:16;
A81:  IncAddr(I, k) = MultBy(da, db) by A80,COMPOS_0:4;
A82:  Exec(I, Cs1i).IC SCM R = IC Cs1i + 1 by A80,SCMRING2:14;
      hence
      IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1)
      by A9,A10,A39,A13,A18,A81,SCMRING2:14;
      thus IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1))
      by A9,A10,A19,A39,A13,A18,A81,A82,SCMRING2:14;
A83:  Cs3i.da = Cs2i.da & Cs3i.db = Cs2i.db by A15;
      now
        DPp c= p by RELAT_1:59;
        then
A84:    dom DPp c= dom p by GRFUNC_1:2;
        let x be object such that
A85:    x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A85,SCMRING2:23;
        per cases;
        suppose
A86:      da = d;
          then Cs1i1.d = Cs1i.da * Cs1i.db & Cs2i1.d = Cs2i.da * Cs2i.db by A10
,A39,A13,A80,A81,SCMRING2:14;
          hence
          (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A1,A7,A41,A50,A80,A83,A85
,A84,A86,Th10,A4;
        end;
        suppose
          da <> d;
          then Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d by A10,A39,A13,A80,A81,
SCMRING2:14;
          hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A85;
        end;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A87:    x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        per cases;
        suppose
          da = d;
          then Cs2i1.d = Cs2i.da * Cs2i.db & Cs3i1.d = Cs3i.da * Cs3i.db by A10
,A13,A53,A80,A81,SCMRING2:14;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A30,A83,A87;
        end;
        suppose
          da <> d;
          then Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d by A10,A13,A53,A80,A81,
SCMRING2:14;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A87;
        end;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 5;
      then consider
      da being Data-Location of R, r being Element of R such that
A88:  I = da:=r by SCMRING3:17;
A89:  IncAddr(I, k) = da := r by A88,COMPOS_0:4;
A90:  Exec(I, Cs1i).IC SCM R = IC Cs1i + 1 by A88,SCMRING2:17;
      hence
      IC Comput(P1,s1,i+1) + k = IC Comput(P2
,s2,i+1)
      by A9,A10,A39,A13,A18,A89,SCMRING2:17;
      thus IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1))
      by A9,A10,A19,A39,A13,A18,A89,A90,SCMRING2:17;
      now
        let x be object;
        assume
A91:    x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A91,SCMRING2:23;
        per cases;
        suppose
A92:      da = d;
          thus (Cs1i1|dom DPp).x = Cs1i1.d by A41,A91,FUNCT_1:49
            .= r by A39,A88,A92,SCMRING2:17
            .= Cs2i1.d by A10,A13,A89,A92,SCMRING2:17
            .= (Cs2i1|dom DPp).x by A41,A91,FUNCT_1:49;
        end;
        suppose
          da <> d;
          then Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d by A10,A39,A13,A88,A89,
SCMRING2:17;
          hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A91;
        end;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A93:    x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        per cases;
        suppose
          da = d;
          then Cs2i1.d = r & Cs3i1.d = r
           by A10,A13,A53,A88,A89,SCMRING2:17;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A30,A93;
        end;
        suppose
          da <> d;
          then Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d by A10,A13,A53,A88,A89,
SCMRING2:17;
          hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A93;
        end;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 6;
      then consider loc being Nat such that
A94:  I = goto(loc,R) by SCMRING3:18;
A95:  CurInstr(P2,Cs2i) = goto (loc + k,R)
by A10,A94,SCMRING3:37;
      thus IC Comput(P1,s1,i+1) + k = loc + k
       by A39,A94,SCMRING2:15
        .= IC Comput(P2,s2,i+1) by A13,A95,SCMRING2:15;
      hence
      IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k)
       = CurInstr(P2,Comput(P2,s2,i+1)) by A19;
      now
        let x be object such that
A96:   x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A96,SCMRING2:23;
        Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d
            by A39,A13,A94,A95,SCMRING2:15;
        hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A96;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A97:   x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d
           by A13,A53,A94,A95,SCMRING2:15;
        hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A97;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
    suppose
      InsCode I = 7;
      then consider
      da being Data-Location of R, loc being Nat
      such that
A98: I = da=0_goto loc by SCMRING3:19;
A99: now
        per cases;
        case
          Cs1i.da = 0.R;
          hence IC Comput(P1,s1,i+1) + k = loc + k by A39,A98,SCMRING2:16;
        end;
        case
          Cs1i.da <> 0.R;
          hence
          IC Comput(P1,s1,i+1) + k = (IC Cs2i) + 1
          by A9,A39,A18,A98,SCMRING2:16;
        end;
      end;
A100: CurInstr(P2,Cs2i)
 = da=0_goto (loc + k) by A10,A98,SCMRING3:38;
A101: now
        per cases;
        case
          Cs2i.da = 0.R;
          hence IC Comput(P2,s2,i+1) = loc + k
          by A13,A100,SCMRING2:16;
        end;
        case
          Cs2i.da <> 0.R;
          hence IC Comput(P2,s2,i+1) = IC Cs2i + 1 by A13,A100,SCMRING2:16;
        end;
      end;
A102: Cs3i.da = Cs2i.da by A15;
      now
        per cases;
        suppose
          loc <> IC Cs1i + 1;
          hence IC Comput(P1,s1,i+1) + k = IC Comput(
P2,s2,i+1)
          by A1,A7,A98,A102,A99,A101,Th11,A4;
        end;
        suppose
          loc = IC Cs1i + 1;
          hence
          IC Comput(P1,s1,i+1) + k = IC Comput(P2,s2,i+1)
          by A9,A99,A101;
        end;
      end;
      hence IC Comput(P1,s1,i+1) + k = IC Comput(P2,s2,i+1) &
      IncAddr(CurInstr(P1,Comput(P1,s1,i+1)), k) =
      CurInstr(P2,Comput(P2,s2,i+1))
       by A19;
      now
        let x be object such that
A103:   x in dom (Cs1i1|dom DPp);
        dom DPp c= Data-Locations SCM R by RELAT_1:58;
        then reconsider d = x as Data-Location of R by A41,A103,SCMRING2:23;
        Cs1i1.d = Cs1i.d & Cs2i1.d = Cs2i.d
        by A39,A13,A98,A100,SCMRING2:16;
        hence (Cs1i1|dom DPp).x = (Cs2i1|dom DPp).x by A41,A45,A103;
      end;
      then (Cs1i1|dom DPp) c= (Cs2i1|dom DPp) by A43,GRFUNC_1:2;
      hence Comput(P1,s1,i+1)|dom (DataPart p)
       = Comput(P2,s2,i+1)|dom DataPart p by A41,A42,GRFUNC_1:3;
      now
        let x be object;
        assume
A104:   x in dom DataPart Cs3i1;
        then reconsider d = x as Data-Location of R by A27,SCMRING2:23;
        Cs3i1.d = Cs3i.d & Cs2i1.d = Cs2i.d
        by A13,A53,A98,A100,SCMRING2:16;
        hence (DataPart Cs3i1).x = (DataPart Cs2i1).x by A34,A104;
      end;
      then DataPart Cs3i1 c= DataPart Comput(P2,s2,i+1) by A28,GRFUNC_1:2;
      hence thesis by A27,A29,GRFUNC_1:3;
    end;
  end;
A105: DataPart  p c=  p by RELAT_1:59;
A106: DataPart IncIC(p,k) = DataPart p by MEMSTR_0:51;
A107: DataPart p c= IncIC( p,k) by A106,MEMSTR_0:12;
A108: Comput(P1,s1,0)|dom (DataPart p) = s1 | dom (DataPart p)
    .= DataPart p by A1,A105,GRFUNC_1:23,XBOOLE_1:1
    .= s2 | dom (DataPart p) by A107,A2,GRFUNC_1:23,XBOOLE_1:1
    .= Comput(P2,s2,0)|dom DataPart p;
A109: DataPart Comput(P1,s,0) = DataPart(s1 +* DataPart s2)
    .= DataPart s2 by PBOOLE:142
    .= DataPart Comput(P2,s2,0);
A110: IC SCM R in dom IncIC( p,k) by MEMSTR_0:52;
A111: IC Comput(P1,s1,0) + k = IC s1 + k
      .= IC  p + k by A1,A3,GRFUNC_1:2
    .= IC p + k
      .= IC IncIC( p,k) by MEMSTR_0:53
    .= IC s2 by A2,A110,GRFUNC_1:2
    .= IC Comput(P2,s2,0);
A112: IC SCM R in dom IncIC( p,k) by MEMSTR_0:52;
A113: (IC  p) + k in dom Reloc(q,k) by A6,COMPOS_1:46;
A114:  P2/.IC s2 = P2.IC s2 by PBOOLE:143;
A115: CurInstr(P2,Comput(P2,s2,0))
     = P2.IC s2 by A114
    .= P2.(IC IncIC( p,k)) by A2,A112,GRFUNC_1:2
    .= P2.((IC p) + k) by MEMSTR_0:53
      .= P2.((IC  p) +k)
    .= (Reloc(q,k)).((IC  p) + k) by A113,A4,GRFUNC_1:2;
A116: (q).IC  p
    = P1.IC s1 by A5,A6,A4,GRFUNC_1:2;
A117:  CurInstr(P1,s1) = (q).IC  p by A116,PBOOLE:143;
A118: IncAddr(CurInstr(P1,Comput(P1,s1,0)), k)
      = IncAddr(CurInstr(P1,s1), k)
     .= CurInstr(P2,Comput(P2,s2,0)) by A115,A6,A117,COMPOS_1:35;
A119: P[0] by A111,A118,A108,A109;
  for n holds P[n] from NAT_1:sch 2(A119,A8);
  hence thesis;
end;
