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

theorem Th19:
  for i being Instruction of SCM+FSA, a being Int-Location, s
  being State of SCM+FSA st i does not destroy  a holds Exec(i,s).a = s.a
proof
  let i be Instruction of SCM+FSA;
  let a be Int-Location;
  let s be State of SCM+FSA;
  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;
    hence thesis by EXTPRO_1:def 3;
  end;
  suppose
    InsCode i = 1;
    then consider da,db being Int-Location such that
A2: i = da := db by SCMFSA_2:30;
    da <> a by A1,A2;
    hence thesis by A2,SCMFSA_2:63;
  end;
  suppose
    InsCode i = 2;
    then consider da, db being Int-Location such that
A3: i = AddTo(da,db) by SCMFSA_2:31;
    da <> a by A1,A3;
    hence thesis by A3,SCMFSA_2:64;
  end;
  suppose
    InsCode i = 3;
    then consider da, db being Int-Location such that
A4: i = SubFrom(da, db) by SCMFSA_2:32;
    da <> a by A1,A4;
    hence thesis by A4,SCMFSA_2:65;
  end;
  suppose
    InsCode i = 4;
    then consider da, db being Int-Location such that
A5: i = MultBy(da,db) by SCMFSA_2:33;
    da <> a by A1,A5;
    hence thesis by A5,SCMFSA_2:66;
  end;
  suppose
    InsCode i = 5;
    then consider da, db being Int-Location such that
A6: i = Divide(da, db) by SCMFSA_2:34;
    da <> a & db <> a by A1,A6;
    hence thesis by A6,SCMFSA_2:67;
  end;
  suppose
    InsCode i = 6;
    then ex loc being Nat st i = goto loc by SCMFSA_2:35;
    hence thesis by SCMFSA_2:69;
  end;
  suppose
    InsCode i = 7;
    then
    ex loc being Nat, da being Int-Location st
    i = da=0_goto loc by SCMFSA_2:36;
    hence thesis by SCMFSA_2:70;
  end;
  suppose
    InsCode i = 8;
    then
    ex loc being Nat, da being Int-Location st
    i = da>0_goto loc by SCMFSA_2:37;
    hence thesis by SCMFSA_2:71;
  end;
  suppose
    InsCode i = 9;
    then consider db, da being Int-Location, g being FinSeq-Location such that
A7: i = da := (g,db) by SCMFSA_2:38;
    da <> a by A1,A7;
    hence thesis by A7,SCMFSA_2:72;
  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 SCMFSA_2:73;
  end;
  suppose
    InsCode i = 11;
    then consider da being Int-Location, g being FinSeq-Location such that
A8: i = da :=len g by SCMFSA_2:40;
    da <> a by A1,A8;
    hence thesis by A8,SCMFSA_2:74;
  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 SCMFSA_2:75;
  end;
end;
