reserve m for Nat;
reserve P for Instruction-Sequence of SCM+FSA;

theorem Th1:
  for i being Instruction of SCM+FSA, a being Int-Location, n
  being Element of NAT holds i does not destroy a implies IncAddr(i,n)
  does not destroy a
proof
  let i be Instruction of SCM+FSA;
  let a be Int-Location;
  let n be Element of NAT;
  assume
A1: i does not destroy a;
  InsCode i = 0 or ... or InsCode i = 12 by SCMFSA_2:16;
  then per cases;
  suppose
    InsCode i = 0;
    then i = halt SCM+FSA by SCMFSA_2:95;
    then IncAddr(i,n) = halt SCM+FSA by COMPOS_0:4;
    hence thesis by SCMFSA7B:5;
  end;
  suppose
    InsCode i = 1;
    then ex da, db being Int-Location st i = da := db by SCMFSA_2:30;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 2;
    then ex da, db being Int-Location st i = AddTo(da,db) by SCMFSA_2:31;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 3;
    then ex da, db being Int-Location st i = SubFrom(da, db) by SCMFSA_2:32;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 4;
    then ex da, db being Int-Location st i = MultBy(da,db) by SCMFSA_2:33;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 5;
    then ex da, db being Int-Location st i = Divide(da, db) by SCMFSA_2:34;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 6;
    then consider loc being Nat such that
A2: i = goto loc by SCMFSA_2:35;
    IncAddr(i,n) = goto (loc + n) by A2,SCMFSA_4:1;
    hence thesis by SCMFSA7B:11;
  end;
  suppose
    InsCode i = 7;
    then consider
    loc being Nat, da being Int-Location
    such that
A3: i = da =0_goto loc by SCMFSA_2:36;
    IncAddr(i,n) = da =0_goto (loc + n) by A3,SCMFSA_4:2;
    hence thesis by SCMFSA7B:12;
  end;
  suppose
    InsCode i = 8;
    then consider
    loc being Nat, da being Int-Location
    such that
A4: i = da >0_goto loc by SCMFSA_2:37;
    IncAddr(i,n) = da >0_goto (loc + n) by A4,SCMFSA_4:3;
    hence thesis by SCMFSA7B:13;
  end;
  suppose
    InsCode i = 9;
    then
    ex db, da being Int-Location, g being FinSeq-Location st i = da := (g,
    db) by SCMFSA_2:38;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 10;
    then ex db, da being Int-Location, g being FinSeq-Location st i = (g,db):=
    da by SCMFSA_2:39;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 11;
    then
    ex da being Int-Location, g being FinSeq-Location st i = da :=len g by
SCMFSA_2:40;
    hence thesis by A1,COMPOS_0:4;
  end;
  suppose
    InsCode i = 12;
    then
    ex da being Int-Location, g being FinSeq-Location st i = g :=<0,...,0>
    da by SCMFSA_2:41;
    hence thesis by A1,COMPOS_0:4;
  end;
end;
