reserve I for Element of Segm 8,
  S for non empty 1-sorted,
  t for Element of S,
  x for set,
  k for Element of NAT;
 reserve R for Ring, T for InsType of SCM-Instr R;
reserve R for Ring,
  r for Element of R,
  a, b, c, d1, d2 for Data-Location of R,
  i1 for Nat;

theorem Th7:
  for I being set holds I is Instruction of SCM R iff I = [0,{},{}] or
(ex a,b st I = a:=b) or (ex a,b st I = AddTo(a,b)) or (ex a,b st I = SubFrom(a,
b)) or (ex a,b st I = MultBy(a,b)) or (ex i1 st I = goto(i1,R)) or
 (ex a,i1 st I =
  a=0_goto i1) or ex a,r st I = a:=r
proof
  let J be set;
A1: the InstructionsF of SCM R = SCM-Instr R by Def1;
  thus J is Instruction of SCM R implies J = [0,{},{}] or
   (ex a,b st J = a:=b) or
  (ex a,b st J = AddTo(a,b)) or (ex a,b st J = SubFrom(a,b)) or (ex a,b st J =
MultBy(a,b)) or (ex i1 st J = goto(i1,R)) or
 (ex a,i1 st J = a=0_goto i1) or ex a,
  r st J = a:=r
  proof
    assume J is Instruction of SCM R;
    then
    J in { [0,{},{}] } \/ { [I,{},<*a,b*>]
    where I is Element of Segm 8, a, b is
Element of Data-Locations SCM: I in { 1,2,3,4 } } \/ the set of all
 [6,<*i*>,{}]
where i is Nat \/ the set of all  [7,<*i*>,<*a*>]
where i is Nat, a is
Element of Data-Locations SCM or
 J in the set of all  [5,{},<*a,r*>] where a is
    Element of Data-Locations SCM, r is Element of R
    by A1,AMI_3:27,XBOOLE_0:def 3;
    then
    J in { [0,{},{}] } \/ { [I,{},<*a,b*>]
    where I is Element of Segm 8, a, b is
Element of Data-Locations SCM: I in { 1,2,3,4 } } \/ the set of all
 [6,<*i*>,{}]
where i is Nat or J in the set of all  [7,<*i*>,<*a*>]
where i is Nat, a
is Element of Data-Locations SCM or J in the set of all  [5,{},<*a,r*>]
where a
    is Element of Data-Locations SCM, r is Element of R
by XBOOLE_0:def 3;
    then
A2: J in { [0,{},{}] } \/ { [I,{},<*a,b*>]
where I is Element of Segm 8, a, b is
    Element of Data-Locations SCM: I in { 1,2,3,4 } } or J in the set of all
 [6,<*i*>,{}]
    where i is Nat or J in the set of all  [7,<*i*>,<*a*>]
where i is Nat, a is Element of Data-Locations SCM
 or J in the set of all  [5,{},<*a,r*>]
where a is Element of Data-Locations SCM, r is Element of R by XBOOLE_0:def 3;
    per cases by A2,XBOOLE_0:def 3;
    suppose
      J in { [0,{},{}] };
      hence thesis by TARSKI:def 1;
    end;
    suppose
      J in the set of all  [6,<*i*>,{}] where i is Nat;
      then consider i being Nat such that
A3:   J = [6,<*i*>,{}] and
      not contradiction;
      J = goto(i,R) by A3;
      hence thesis;
    end;
    suppose
      J in the set of all  [7,<*i*>,<*a*>] where i is Nat, a is Element of
      Data-Locations SCM;
      then consider
      i being Nat, a being Element of Data-Locations SCM such
      that
A4:   J = [7,<*i*>,<*a*>] and
      not contradiction;
      reconsider A = a as Data-Location of R by Th1,AMI_3:27;
      J = A=0_goto i by A4;
      hence thesis;
    end;
    suppose
      J in the set of all
 [5,{},<*a,r*>] where a is Element of Data-Locations SCM, r is
      Element of R;
      then consider
      a being Element of Data-Locations SCM, r being Element of R such that
A5:   J = [5,{},<*a,r*>] and
      not contradiction;
      reconsider A = a as Data-Location of R by Th1,AMI_3:27;
      J = A:=r by A5;
      hence thesis;
    end;
    suppose
      J in { [I,{},<*a,b*>] where I is Element of Segm 8, a, b is
      Element of Data-Locations SCM: I in { 1,2,3,4 } };
      then consider
      I being Element of Segm 8, a, b being Element of Data-Locations SCM
      such that
A6:   J = [I,{},<*a,b*>] & I in { 1,2,3,4 };
      reconsider A = a, B = b as Data-Location of R by Th1,AMI_3:27;
      J = A:=B or J = AddTo(A,B) or J = SubFrom(A,B) or J = MultBy(A,B)
      by A6,ENUMSET1:def 2;
      hence thesis;
    end;
  end;
  thus thesis by A1,SCMRINGI:6;
end;
