reserve p for preProgram of SCM+FSA,
  ic for Instruction of SCM+FSA,
  i,j,k for Nat,
  fa,f for FinSeq-Location,
  a,b,da,db for Int-Location,
  la,lb for Nat;
reserve p1,p2,q for Instruction-Sequence of SCM+FSA;
reserve n for Nat;

theorem Th13:
  for i,k being Nat,t being FinPartState of SCM+FSA,
  p being Program of SCM+FSA, s1,s2 being State of SCM+FSA
  st k <= i & p c= p1 & p c= p2 & dom t c= Int-Locations \/ FinSeq-Locations &
  (for j holds IC Comput(p1,s1,j) in dom p &
  IC Comput(p2,s2,j) in dom p) &
  Comput(p1,s1,k).IC SCM+FSA = Comput(p2,s2,k).IC SCM+FSA &
  Comput(p1,s1,k) |(dom t \/ UsedI*Loc p \/ UsedILoc p) =
  Comput(p2,s2,k) |(dom t \/ UsedI*Loc p \/ UsedILoc p) holds
  Comput(p1,s1,i).IC SCM+FSA = Comput(p2,s2,i).IC SCM+FSA &
  Comput(p1,s1,i) |(dom t \/ UsedI*Loc p \/ UsedILoc p) =
  Comput(p2,s2,i) |(dom t \/ UsedI*Loc p \/ UsedILoc p)
proof
  let i,k;
  let t be FinPartState of SCM+FSA,p be Program of SCM+FSA,
  s1,s2 be State of SCM+FSA;
  set Dloc=dom t \/ UsedI*Loc p \/ UsedILoc p;
  assume that
A1: k <= i and
A2: p c= p1 and
A3: p c= p2 and
A4: dom t c= Int-Locations \/ FinSeq-Locations and
A5: for j holds IC Comput(p1,s1,j) in dom p & IC Comput(
p2,s2,j) in
  dom p and
A6: Comput(p1,s1,k).IC SCM+FSA = Comput(p2,s2,k).IC
SCM+FSA and
A7: Comput(p1,s1,k) |Dloc = Comput(p2,s2,k)|Dloc;
  consider m being Nat such that
A8: i=k+m by A1,NAT_1:10;
  reconsider m as Nat;
A9: i=k+m by A8;
A10: UsedILoc p c= Dloc by XBOOLE_1:7;
  Dloc=dom t \/ UsedILoc p \/ UsedI*Loc p by XBOOLE_1:4;
  then
A11: UsedI*Loc p c= Dloc by XBOOLE_1:7;
  defpred P[Nat] means
  Comput(p1, s1,k+$1).IC SCM+FSA = Comput(p2, s2,k+
$1).IC SCM+FSA &
  Comput(p1, s1,k+$1) |Dloc = Comput(p2, s2,k+$1)|
Dloc;
A12: P[ 0] by A6,A7;
A13: now
    let m be Nat;
    assume
A14: P[m];
    set sk1= Comput(p1, s1,k+m);
    set sk11= Comput(p1, s1,k+(m+1));
    set i1=CurInstr(p1,sk1);
    set sk2= Comput(p2, s2,k+m);
    set sk12= Comput(p2, s2,k+(m+1));
    set i2=CurInstr(p2,sk2);
A15: IC sk1 in dom p by A5;
A16:  p2/.IC sk2 = p2.IC sk2 by PBOOLE:143;
A17:  p1/.IC sk1 = p1.IC sk1 by PBOOLE:143;
    i1 =p.IC sk1 by A2,A15,A17,GRFUNC_1:2;
    then
A18: i1 in rng p by A15,FUNCT_1:def 3;
A19: i2 =(p2 |dom p).IC sk2 by A16,A5,FUNCT_1:49
      .= (p1 |dom p).IC sk1 by A2,A3,A14,GRFUNC_1:33
      .=i1 by A17,A5,FUNCT_1:49;
A20: sk11= Comput(p1, s1,k+m+1)
      .=Following(p1,sk1) by EXTPRO_1:3
      .= Exec(i1,sk1);
A21: sk12= Comput(p2, s2,k+m+1)
      .=Following(p2,sk2) by EXTPRO_1:3
      .= Exec(i2,sk2);
A22: dom sk11 = the carrier of SCM+FSA by PARTFUN1:def 2
      .= dom sk12 by PARTFUN1:def 2;
    InsCode i1 = 0 or ... or InsCode i1 = 12 by SCMFSA_2:16;
    then per cases;
    suppose InsCode i1 = 0;
      then
A23:  i1=halt SCM+FSA by SCMFSA_2:95;
      then sk11=sk1 by A20,EXTPRO_1:def 3;
      hence P[m+1] by A14,A19,A21,A23,EXTPRO_1:def 3;
    end;
    suppose InsCode i1 = 1;
      then consider da,db such that
A24:  i1 = da:=db by SCMFSA_2:30;
A25:  sk11.IC SCM+FSA= IC sk1 + 1 by A20,A24,SCMFSA_2:63
        .= sk12.IC SCM+FSA by A14,A19,A21,A24,SCMFSA_2:63;
      now
        let x be set;
        assume
A26:    x in Dloc;
        per cases by A4,A26,Th12;
        suppose
A27:      x is Int-Location;
          per cases;
          suppose
A28:          x = da;
              then
A29:          sk12.x=sk2.db by A19,A21,A24,SCMFSA_2:63;
A30:          db in UsedILoc p by A18,A24,Th6;
              then sk1.db=(sk2 | Dloc).db by A10,A14,FUNCT_1:49
                .=sk2.db by A10,A30,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A24,A28,A29,SCMFSA_2:63;
          end;
          suppose
A31:          x<> da;
              then
A32:          sk12.x=sk2.x by A19,A21,A24,A27,SCMFSA_2:63;
              sk1.x=(sk2 | Dloc).x by A14,A26,FUNCT_1:49
                .=sk2.x by A26,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A24,A27,A31,A32,SCMFSA_2:63;
          end;
        end;
        suppose
A33:      x is FinSeq-Location;
          then
A34:      sk12.x=sk2.x by A19,A21,A24,SCMFSA_2:63;
          sk1.x=(sk2 | Dloc).x by A14,A26,FUNCT_1:49
            .=sk2.x by A26,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A24,A33,A34,SCMFSA_2:63;
        end;
      end;
      hence P[m+1] by A22,A25,FUNCT_1:96;
    end;
    suppose InsCode i1 = 2;
      then consider da,db such that
A35:  i1 = AddTo(da,db) by SCMFSA_2:31;
A36:  sk11.IC SCM+FSA= IC sk1 + 1 by A20,A35,SCMFSA_2:64
        .= sk12.IC SCM+FSA by A14,A19,A21,A35,SCMFSA_2:64;
      now
        let x be set;
        assume
A37:    x in Dloc;
        per cases by A4,A37,Th12;
        suppose
A38:      x is Int-Location;
          per cases;
          suppose
A39:          x = da;
              then
A40:          sk12.x=sk2.da+sk2.db by A19,A21,A35,SCMFSA_2:64;
A41:          da in UsedILoc p by A18,A35,Th6;
              then
A42:          sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
                .=sk2.da by A10,A41,FUNCT_1:49;
A43:          db in UsedILoc p by A18,A35,Th6;
              then sk1.db=(sk2 | Dloc).db by A10,A14,FUNCT_1:49
                .=sk2.db by A10,A43,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A35,A39,A40,A42,SCMFSA_2:64;
            end;
         suppose
A44:          x<> da;
              then
A45:          sk12.x=sk2.x by A19,A21,A35,A38,SCMFSA_2:64;
              sk1.x=(sk2 | Dloc).x by A14,A37,FUNCT_1:49
                .=sk2.x by A37,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A35,A38,A44,A45,SCMFSA_2:64;
            end;
        end;
        suppose
A46:      x is FinSeq-Location;
          then
A47:      sk12.x=sk2.x by A19,A21,A35,SCMFSA_2:64;
          sk1.x=(sk2 | Dloc).x by A14,A37,FUNCT_1:49
            .=sk2.x by A37,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A35,A46,A47,SCMFSA_2:64;
        end;
      end;
      hence P[m+1] by A22,A36,FUNCT_1:96;
    end;
    suppose InsCode i1 = 3;
      then consider da,db such that
A48:  i1 = SubFrom(da,db) by SCMFSA_2:32;
A49:  sk11.IC SCM+FSA= IC sk1 + 1 by A20,A48,SCMFSA_2:65
        .= sk12.IC SCM+FSA by A14,A19,A21,A48,SCMFSA_2:65;
      now
        let x be set;
        assume
A50:    x in Dloc;
        per cases by A4,A50,Th12;
        suppose
A51:      x is Int-Location;
          per cases;
           suppose
A52:          x = da;
              then
A53:          sk12.x=sk2.da-sk2.db by A19,A21,A48,SCMFSA_2:65;
A54:          da in UsedILoc p by A18,A48,Th6;
              then
A55:          sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
                .=sk2.da by A10,A54,FUNCT_1:49;
A56:          db in UsedILoc p by A18,A48,Th6;
              then sk1.db=(sk2 | Dloc).db by A10,A14,FUNCT_1:49
                .=sk2.db by A10,A56,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A48,A52,A53,A55,SCMFSA_2:65;
            end;
           suppose
A57:          x<> da;
              then
A58:          sk12.x=sk2.x by A19,A21,A48,A51,SCMFSA_2:65;
              sk1.x=(sk2 | Dloc).x by A14,A50,FUNCT_1:49
                .=sk2.x by A50,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A48,A51,A57,A58,SCMFSA_2:65;
            end;
        end;
        suppose
A59:      x is FinSeq-Location;
          then
A60:      sk12.x=sk2.x by A19,A21,A48,SCMFSA_2:65;
          sk1.x=(sk2 | Dloc).x by A14,A50,FUNCT_1:49
            .=sk2.x by A50,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A48,A59,A60,SCMFSA_2:65;
        end;
      end;
      hence P[m+1] by A22,A49,FUNCT_1:96;
    end;
    suppose InsCode i1 = 4;
      then consider da,db such that
A61:  i1 = MultBy(da,db) by SCMFSA_2:33;
A62:  sk11.IC SCM+FSA= IC sk1 + 1 by A20,A61,SCMFSA_2:66
        .= sk12.IC SCM+FSA by A14,A19,A21,A61,SCMFSA_2:66;
      now
        let x be set;
        assume
A63:    x in Dloc;
        per cases by A4,A63,Th12;
        suppose
A64:      x is Int-Location;
            per cases;
            suppose
A65:          x = da;
              then
A66:          sk12.x=sk2.da*sk2.db by A19,A21,A61,SCMFSA_2:66;
A67:          da in UsedILoc p by A18,A61,Th6;
              then
A68:          sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
                .=sk2.da by A10,A67,FUNCT_1:49;
A69:          db in UsedILoc p by A18,A61,Th6;
              then sk1.db=(sk2 | Dloc).db by A10,A14,FUNCT_1:49
                .=sk2.db by A10,A69,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A61,A65,A66,A68,SCMFSA_2:66;
            end;
            suppose
A70:          x<> da;
              then
A71:          sk12.x=sk2.x by A19,A21,A61,A64,SCMFSA_2:66;
              sk1.x=(sk2 | Dloc).x by A14,A63,FUNCT_1:49
                .=sk2.x by A63,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A61,A64,A70,A71,SCMFSA_2:66;
            end;
        end;
        suppose
A72:      x is FinSeq-Location;
          then
A73:      sk12.x=sk2.x by A19,A21,A61,SCMFSA_2:66;
          sk1.x=(sk2 | Dloc).x by A14,A63,FUNCT_1:49
            .=sk2.x by A63,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A61,A72,A73,SCMFSA_2:66;
        end;
      end;
      hence P[m+1] by A22,A62,FUNCT_1:96;
    end;
    suppose InsCode i1 = 5;
      then consider da,db such that
A74:  i1 = Divide(da,db) by SCMFSA_2:34;
A75:  sk11.IC SCM+FSA= IC sk1 + 1 by A20,A74,SCMFSA_2:67
        .= sk12.IC SCM+FSA by A14,A19,A21,A74,SCMFSA_2:67;
      now
        let x be set;
        assume
A76:    x in Dloc;
        per cases by A4,A76,Th12;
        suppose
A77:      x is Int-Location;
A78:      da in UsedILoc p by A18,A74,Th6;
          then
A79:      sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
            .=sk2.da by A10,A78,FUNCT_1:49;
A80:      db in UsedILoc p by A18,A74,Th6;
          then
A81:      sk1.db=(sk2 | Dloc).db by A10,A14,FUNCT_1:49
            .=sk2.db by A10,A80,FUNCT_1:49;
A82:      sk1.x=(sk2 | Dloc).x by A14,A76,FUNCT_1:49
            .=sk2.x by A76,FUNCT_1:49;
          now
            per cases;
            suppose
A83:          da <> db;
                per cases;
                suppose
A84:              x = da;
                  then sk11.x=sk1.da div sk1.db by A20,A74,A83,SCMFSA_2:67;
                  hence sk11.x=sk12.x by A19,A21,A74,A79,A81,A83,A84,
SCMFSA_2:67;
                end;
                suppose
A85:              x = db;
                  then sk11.x=sk1.da mod sk1.db by A20,A74,SCMFSA_2:67;
                  hence sk11.x=sk12.x by A19,A21,A74,A79,A81,A85,SCMFSA_2:67;
                end;
                suppose
A86:              x <> da & x <> db;
                  then sk11.x=sk1.x by A20,A74,A77,SCMFSA_2:67;
                  hence sk11.x=sk12.x by A19,A21,A74,A77,A82,A86,SCMFSA_2:67;
                end;
            end;
            suppose
A87:          da = db;
              now
                per cases;
                case
A88:              x = da;
                  then sk11.x=sk1.da mod sk1.da by A20,A74,A87,SCMFSA_2:68;
                  hence sk11.x=sk12.x by A19,A21,A74,A79,A87,A88,SCMFSA_2:68;
                end;
                case
A89:              x <> da;
                  then sk11.x=sk1.x by A20,A74,A77,A87,SCMFSA_2:68;
                  hence sk11.x=sk12.x by A19,A21,A74,A77,A82,A87,A89,
SCMFSA_2:68;
                end;
              end;
              hence sk11.x=sk12.x;
            end;
          end;
          hence sk11.x=sk12.x;
        end;
        suppose
A90:      x is FinSeq-Location;
          then
A91:      sk12.x=sk2.x by A19,A21,A74,SCMFSA_2:67;
          sk1.x=(sk2 | Dloc).x by A14,A76,FUNCT_1:49
            .=sk2.x by A76,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A74,A90,A91,SCMFSA_2:67;
        end;
      end;
      hence P[m+1] by A22,A75,FUNCT_1:96;
    end;
    suppose InsCode i1 = 6;
      then consider lb such that
A92:  i1 = goto lb by SCMFSA_2:35;
A93:  sk11.IC SCM+FSA=lb by A20,A92,SCMFSA_2:69
        .= sk12.IC SCM+FSA by A19,A21,A92,SCMFSA_2:69;
      now
        let x be set;
        assume
A94:    x in Dloc;
        then
A95:    sk1.x=(sk2 | Dloc).x by A14,FUNCT_1:49
          .=sk2.x by A94,FUNCT_1:49;
        per cases by A4,A94,Th12;
        suppose
A96:      x is Int-Location;
          then sk11.x=sk1.x by A20,A92,SCMFSA_2:69;
          hence sk11.x=sk12.x by A19,A21,A92,A95,A96,SCMFSA_2:69;
        end;
        suppose
A97:      x is FinSeq-Location;
          then sk11.x=sk1.x by A20,A92,SCMFSA_2:69;
          hence sk11.x=sk12.x by A19,A21,A92,A95,A97,SCMFSA_2:69;
        end;
      end;
      hence P[m+1] by A22,A93,FUNCT_1:96;
    end;
    suppose InsCode i1 = 7;
      then consider lb,da such that
A98:  i1 = da=0_goto lb by SCMFSA_2:36;
A99:  da in UsedILoc p by A18,A98,Th7;
      then
A100:  sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
        .=sk2.da by A10,A99,FUNCT_1:49;
A101: now
        per cases;
        suppose
A102:     sk1.da=0;
          hence sk11.IC SCM+FSA=lb by A20,A98,SCMFSA_2:70
            .= sk12.IC SCM+FSA by A19,A21,A98,A100,A102,SCMFSA_2:70;
        end;
        suppose
A103:     sk1.da<>0;
          hence sk11.IC SCM+FSA= IC sk2 + 1 by A14,A20,A98,SCMFSA_2:70
            .= sk12.IC SCM+FSA by A19,A21,A98,A100,A103,SCMFSA_2:70;
        end;
      end;
      now
        let x be set;
        assume
A104:   x in Dloc;
        then
A105:   sk1.x=(sk2 | Dloc).x by A14,FUNCT_1:49
          .=sk2.x by A104,FUNCT_1:49;
        per cases by A4,A104,Th12;
        suppose
A106:     x is Int-Location;
          then sk11.x=sk1.x by A20,A98,SCMFSA_2:70;
          hence sk11.x=sk12.x by A19,A21,A98,A105,A106,SCMFSA_2:70;
        end;
        suppose
A107:     x is FinSeq-Location;
          then sk11.x=sk1.x by A20,A98,SCMFSA_2:70;
          hence sk11.x=sk12.x by A19,A21,A98,A105,A107,SCMFSA_2:70;
        end;
      end;
      hence P[m+1] by A22,A101,FUNCT_1:96;
    end;
    suppose InsCode i1 = 8;
      then consider lb,da such that
A108: i1 = da>0_goto lb by SCMFSA_2:37;
A109: da in UsedILoc p by A18,A108,Th7;
      then
A110: sk1.da=(sk2 | Dloc).da by A10,A14,FUNCT_1:49
        .=sk2.da by A10,A109,FUNCT_1:49;
A111: now
        per cases;
        suppose
A112:     sk1.da > 0;
          hence sk11.IC SCM+FSA=lb by A20,A108,SCMFSA_2:71
            .= sk12.IC SCM+FSA by A19,A21,A108,A110,A112,SCMFSA_2:71;
        end;
        suppose
A113:     sk1.da <= 0;
          hence sk11.IC SCM+FSA=IC sk2 + 1 by A14,A20,A108,SCMFSA_2:71
            .= sk12.IC SCM+FSA by A19,A21,A108,A110,A113,SCMFSA_2:71;
        end;
      end;
      now
        let x be set;
        assume
A114:   x in Dloc;
        then
A115:   sk1.x=(sk2 | Dloc).x by A14,FUNCT_1:49
          .=sk2.x by A114,FUNCT_1:49;
        per cases by A4,A114,Th12;
        suppose
A116:     x is Int-Location;
          then sk11.x=sk1.x by A20,A108,SCMFSA_2:71;
          hence sk11.x=sk12.x by A19,A21,A108,A115,A116,SCMFSA_2:71;
        end;
        suppose
A117:     x is FinSeq-Location;
          then sk11.x=sk1.x by A20,A108,SCMFSA_2:71;
          hence sk11.x=sk12.x by A19,A21,A108,A115,A117,SCMFSA_2:71;
        end;
      end;
      hence P[m+1] by A22,A111,FUNCT_1:96;
    end;
    suppose InsCode i1 = 9;
      then consider a,b,fa such that
A118: i1 = b:=(fa,a) by SCMFSA_2:38;
A119: sk11.IC SCM+FSA= IC sk2 + 1 by A14,A20,A118,SCMFSA_2:72
        .= sk12.IC SCM+FSA by A19,A21,A118,SCMFSA_2:72;
      now
        let x be set;
        assume
A120:   x in Dloc;
        per cases by A4,A120,Th12;
        suppose
A121:     x is Int-Location;
          per cases;
          suppose
A122:         x = b;
A123:         ex k1 being Nat st ( k1=|.sk1.a.|)&( Exec(b:=(fa
              ,a), sk1).b=(sk1.fa)/.k1) by SCMFSA_2:72;
A124:         ex k2 being Nat st ( k2=|.sk2.a.|)&( Exec(b:=(fa
              ,a), sk2).b=(sk2.fa)/.k2) by SCMFSA_2:72;
A125:         a in UsedILoc p by A18,A118,Th8;
              then
A126:         sk1.a=(sk2 | Dloc).a by A10,A14,FUNCT_1:49
                .=sk2.a by A10,A125,FUNCT_1:49;
A127:         fa in UsedI*Loc p by A18,A118,Th9;
              then sk1.fa=(sk2 | Dloc).fa by A11,A14,FUNCT_1:49
                .=sk2.fa by A11,A127,FUNCT_1:49;
              hence sk11.x=sk12.x by A19,A20,A21,A118,A122,A123,A124,A126;
            end;
           suppose
A128:         x<> b;
              then
A129:         sk12.x=sk2.x by A19,A21,A118,A121,SCMFSA_2:72;
              sk1.x=(sk2 | Dloc).x by A14,A120,FUNCT_1:49
                .=sk2.x by A120,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A118,A121,A128,A129,SCMFSA_2:72;
            end;
        end;
        suppose
A130:     x is FinSeq-Location;
          then
A131:     sk12.x=sk2.x by A19,A21,A118,SCMFSA_2:72;
          sk1.x=(sk2 | Dloc).x by A14,A120,FUNCT_1:49
            .=sk2.x by A120,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A118,A130,A131,SCMFSA_2:72;
        end;
      end;
      hence P[m+1] by A22,A119,FUNCT_1:96;
    end;
    suppose InsCode i1 = 10;
      then consider a,b,fa such that
A132: i1 = (fa,a):=b by SCMFSA_2:39;
A133: sk11.IC SCM+FSA= IC sk2 + 1 by A14,A20,A132,SCMFSA_2:73
        .= sk12.IC SCM+FSA by A19,A21,A132,SCMFSA_2:73;
      now
        let x be set;
        assume
A134:   x in Dloc;
        per cases by A4,A134,Th12;
        suppose
A135:     x is FinSeq-Location;
            per cases;
            suppose
A136:         x = fa;
A137:         ex k1 being Nat st ( k1=|.sk1.a.|)&( Exec((fa,a)
              :=b,sk1).fa=sk1.fa+*(k1,sk1.b)) by SCMFSA_2:73;
A138:         ex k2 being Nat st ( k2=|.sk2.a.|)&( Exec((fa,a)
              :=b,sk2).fa=sk2.fa+*(k2,sk2.b)) by SCMFSA_2:73;
A139:         a in UsedILoc p by A18,A132,Th8;
              then
A140:         sk1.a=(sk2 | Dloc).a by A10,A14,FUNCT_1:49
                .=sk2.a by A10,A139,FUNCT_1:49;
A141:         b in UsedILoc p by A18,A132,Th8;
              then
A142:         sk1.b=(sk2 | Dloc).b by A10,A14,FUNCT_1:49
                .=sk2.b by A10,A141,FUNCT_1:49;
A143:         fa in UsedI*Loc p by A18,A132,Th9;
              then sk1.fa=(sk2 | Dloc).fa by A11,A14,FUNCT_1:49
                .=sk2.fa by A11,A143,FUNCT_1:49;
              hence sk11.x=sk12.x by A19,A20,A21,A132,A136,A137,A138,A140,A142;
            end;
            suppose
A144:         x<> fa;
              then
A145:         sk12.x=sk2.x by A19,A21,A132,A135,SCMFSA_2:73;
              sk1.x=(sk2 | Dloc).x by A14,A134,FUNCT_1:49
                .=sk2.x by A134,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A132,A135,A144,A145,SCMFSA_2:73;
            end;
        end;
        suppose
A146:     x is Int-Location;
          then
A147:     sk12.x=sk2.x by A19,A21,A132,SCMFSA_2:73;
          sk1.x=(sk2 | Dloc).x by A14,A134,FUNCT_1:49
            .=sk2.x by A134,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A132,A146,A147,SCMFSA_2:73;
        end;
      end;
      hence P[m+1] by A22,A133,FUNCT_1:96;
    end;
    suppose InsCode i1 = 11;
      then consider a,fa such that
A148: i1 = a:=len fa by SCMFSA_2:40;
A149: sk11.IC SCM+FSA= IC sk2 + 1 by A14,A20,A148,SCMFSA_2:74
        .= sk12.IC SCM+FSA by A19,A21,A148,SCMFSA_2:74;
      now
        let x be set;
        assume
A150:   x in Dloc;
        per cases by A4,A150,Th12;
        suppose
A151:     x is Int-Location;
            per cases;
           suppose
A152:         x = a;
              then
A153:         sk12.x= len(sk2.fa) by A19,A21,A148,SCMFSA_2:74;
A154:         fa in UsedI*Loc p by A18,A148,Th11;
              then sk1.fa=(sk2 | Dloc).fa by A11,A14,FUNCT_1:49
                .=sk2.fa by A11,A154,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A148,A152,A153,SCMFSA_2:74;
            end;
           suppose
A155:         x<> a;
              then
A156:         sk12.x=sk2.x by A19,A21,A148,A151,SCMFSA_2:74;
              sk1.x=(sk2 | Dloc).x by A14,A150,FUNCT_1:49
                .=sk2.x by A150,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A148,A151,A155,A156,SCMFSA_2:74;
            end;
        end;
        suppose
A157:     x is FinSeq-Location;
          then
A158:     sk12.x=sk2.x by A19,A21,A148,SCMFSA_2:74;
          sk1.x=(sk2 | Dloc).x by A14,A150,FUNCT_1:49
            .=sk2.x by A150,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A148,A157,A158,SCMFSA_2:74;
        end;
      end;
      hence P[m+1] by A22,A149,FUNCT_1:96;
    end;
    suppose InsCode i1 = 12;
      then consider a,fa such that
A159: i1 = fa:=<0,...,0>a by SCMFSA_2:41;
A160: sk11.IC SCM+FSA=IC sk2 + 1 by A14,A20,A159,SCMFSA_2:75
        .= sk12.IC SCM+FSA by A19,A21,A159,SCMFSA_2:75;
      now
        let x be set;
        assume
A161:   x in Dloc;
        per cases by A4,A161,Th12;
        suppose
A162:     x is FinSeq-Location;
            per cases;
          suppose
A163:         x = fa;
A164:         ex k1 being Nat st ( k1 = |.sk1.a.|)&( Exec(fa
              :=<0,...,0>a, sk1).fa = k1 |-> 0) by SCMFSA_2:75;
A165:         ex k2 being Nat st ( k2 = |.sk2.a.|)&( Exec(fa
              :=<0,...,0>a, sk2).fa = k2 |-> 0) by SCMFSA_2:75;
A166:         a in UsedILoc p by A18,A159,Th10;
              then sk1.a=(sk2 | Dloc).a by A10,A14,FUNCT_1:49
                .=sk2.a by A10,A166,FUNCT_1:49;
              hence sk11.x=sk12.x by A19,A20,A21,A159,A163,A164,A165;
            end;
          suppose
A167:         x<> fa;
              then
A168:         sk12.x=sk2.x by A19,A21,A159,A162,SCMFSA_2:75;
              sk1.x=(sk2 | Dloc).x by A14,A161,FUNCT_1:49
                .=sk2.x by A161,FUNCT_1:49;
              hence sk11.x=sk12.x by A20,A159,A162,A167,A168,SCMFSA_2:75;
            end;
        end;
        suppose
A169:     x is Int-Location;
          then
A170:     sk12.x=sk2.x by A19,A21,A159,SCMFSA_2:75;
          sk1.x=(sk2 | Dloc).x by A14,A161,FUNCT_1:49
            .=sk2.x by A161,FUNCT_1:49;
          hence sk11.x=sk12.x by A20,A159,A169,A170,SCMFSA_2:75;
        end;
      end;
      hence P[m+1] by A22,A160,FUNCT_1:96;
    end;
  end;
  for m being Nat holds P[m] from NAT_1:sch 2(A12,A13);
  hence thesis by A9;
end;
