Article AMI_5, MML version 4.99.1005

:: AMI_5:th 18
theorem
for b1 being Data-Location holds
   ex b2 being Element of NAT st
      b1 = dl. b2;

:: AMI_5:th 20
theorem
for b1 being Data-Location holds
   b1 <> IC SCM;

:: AMI_5:th 22
theorem
for b1 being Instruction-Location of SCM
for b2 being Data-Location holds
   b1 <> b2;

:: AMI_5:th 23
theorem
the carrier of SCM = ({IC SCM} \/ SCM-Data-Loc) \/ NAT;

:: AMI_5:th 24
theorem
for b1 being Element of product the Object-Kind of SCM
for b2 being Data-Location
for b3 being Instruction-Location of SCM holds
   b2 in proj1 b1 & b3 in proj1 b1;

:: AMI_5:th 26
theorem
for b1, b2 being Element of product the Object-Kind of SCM
      st IC b1 = IC b2 &
         (for b3 being Data-Location holds
            b1 . b3 = b2 . b3) &
         (for b3 being Instruction-Location of SCM holds
            b1 . b3 = b2 . b3)
   holds b1 = b2;

:: AMI_5:th 27
theorem
for b1 being Element of product the Object-Kind of SCM holds
   SCM-Data-Loc c= proj1 b1;

:: AMI_5:th 28
theorem
for b1 being Element of product the Object-Kind of SCM holds
   NAT c= proj1 b1;

:: AMI_5:th 29
theorem
for b1 being Element of product the Object-Kind of SCM holds
   proj1 (b1 | SCM-Data-Loc) = SCM-Data-Loc;

:: AMI_5:th 30
theorem
for b1 being Element of product the Object-Kind of SCM holds
   proj1 (b1 | NAT) = NAT;

:: AMI_5:th 31
theorem
SCM-Data-Loc is infinite;

:: AMI_5:th 32
theorem
NAT is infinite;

:: AMI_5:funcreg 1
registration
  cluster SCM-Data-Loc -> infinite;
end;

:: AMI_5:funcreg 2
registration
  let a1 be Element of the Instructions of SCM;
  cluster a1 `1 -> natural;
end;

:: AMI_5:funcnot 1 => AMI_5:func 1
definition
  let a1 be Element of the Instructions of SCM;
  func @ A1 -> Element of SCM-Instr equals
    a1;
end;

:: AMI_5:def 2
theorem
for b1 being Element of the Instructions of SCM holds
   @ b1 = b1;

:: AMI_5:funcnot 2 => AMI_5:func 2
definition
  let a1 be Element of NAT;
  func A1 @ -> Instruction-Location of SCM equals
    a1;
end;

:: AMI_5:def 3
theorem
for b1 being Element of NAT holds
   b1 @ = b1;

:: AMI_5:funcnot 3 => AMI_5:func 3
definition
  let a1 be Element of SCM-Data-Loc;
  func A1 @ -> Data-Location equals
    a1;
end;

:: AMI_5:def 4
theorem
for b1 being Element of SCM-Data-Loc holds
   b1 @ = b1;

:: AMI_5:th 36
theorem
for b1 being Element of the Instructions of SCM holds
   InsCode b1 <= 8;

:: AMI_5:th 37
theorem
InsCode halt SCM = {};

:: AMI_5:th 46
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = {}
   holds b1 = halt SCM;

:: AMI_5:th 47
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 1
   holds ex b2, b3 being Data-Location st
      b1 = b2 := b3;

:: AMI_5:th 48
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 2
   holds ex b2, b3 being Data-Location st
      b1 = AddTo(b2,b3);

:: AMI_5:th 49
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 3
   holds ex b2, b3 being Data-Location st
      b1 = SubFrom(b2,b3);

:: AMI_5:th 50
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 4
   holds ex b2, b3 being Data-Location st
      b1 = MultBy(b2,b3);

:: AMI_5:th 51
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 5
   holds ex b2, b3 being Data-Location st
      b1 = Divide(b2,b3);

:: AMI_5:th 52
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 6
   holds ex b2 being Instruction-Location of SCM st
      b1 = goto b2;

:: AMI_5:th 53
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 7
   holds ex b2 being Instruction-Location of SCM st
      ex b3 being Data-Location st
         b1 = b3 =0_goto b2;

:: AMI_5:th 54
theorem
for b1 being Element of the Instructions of SCM
      st InsCode b1 = 8
   holds ex b2 being Instruction-Location of SCM st
      ex b3 being Data-Location st
         b1 = b3 >0_goto b2;

:: AMI_5:th 55
theorem
for b1 being Instruction-Location of SCM holds
   (@ goto b1) jump_address = b1;

:: AMI_5:th 56
theorem
for b1 being Instruction-Location of SCM
for b2 being Data-Location holds
   (@ (b2 =0_goto b1)) cjump_address = b1 & (@ (b2 =0_goto b1)) cond_address = b2;

:: AMI_5:th 57
theorem
for b1 being Instruction-Location of SCM
for b2 being Data-Location holds
   (@ (b2 >0_goto b1)) cjump_address = b1 & (@ (b2 >0_goto b1)) cond_address = b2;

:: AMI_5:th 58
theorem
for b1, b2 being Element of product the Object-Kind of SCM
   st b1 | (SCM-Data-Loc \/ {IC SCM}) = b2 | (SCM-Data-Loc \/ {IC SCM})
for b3 being Element of the Instructions of SCM holds
   (Exec(b3,b1)) | (SCM-Data-Loc \/ {IC SCM}) = (Exec(b3,b2)) | (SCM-Data-Loc \/ {IC SCM});

:: AMI_5:th 59
theorem
for b1 being Element of the Instructions of SCM
for b2 being Element of product the Object-Kind of SCM holds
   (Exec(b1,b2)) | NAT = b2 | NAT;

:: AMI_5:th 69
theorem
for b1 being finite Element of sproduct the Object-Kind of SCM holds
   proj1 DataPart b1 c= SCM-Data-Loc;

:: AMI_5:th 77
theorem
for b1 being Element of the Instructions of SCM
for b2 being Element of product the Object-Kind of SCM
for b3 being finite programmed Element of sproduct the Object-Kind of SCM holds
   Exec(b1,b2 +* b3) = (Exec(b1,b2)) +* b3;

:: AMI_5:th 80
theorem
for b1 being Element of product the Object-Kind of SCM
for b2 being Instruction-Location of SCM
for b3 being Data-Location holds
   b1 . b3 = (b1 +* Start-At b2) . b3;

:: AMI_5:th 83
theorem
for b1 being finite autonomic Element of sproduct the Object-Kind of SCM
      st DataPart b1 <> {}
   holds IC SCM in proj1 b1;

:: AMI_5:exreg 1
registration
  cluster Relation-like Function-like finite autonomic non programmed Element of sproduct the Object-Kind of SCM;
end;

:: AMI_5:th 84
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM holds
   IC SCM in proj1 b1;

:: AMI_5:th 85
theorem
for b1 being finite autonomic Element of sproduct the Object-Kind of SCM
      st IC SCM in proj1 b1
   holds IC b1 in proj1 b1;

:: AMI_5:th 86
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2 being Element of product the Object-Kind of SCM
   st b1 c= b2
for b3 being Element of NAT holds
   IC Computation(b2,b3) in proj1 ProgramPart b1;

:: AMI_5:th 87
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5 being Element of the Instructions of SCM
      st b5 = CurInstr Computation(b2,b4)
   holds IC Computation(b2,b4) = IC Computation(b3,b4) & b5 = CurInstr Computation(b3,b4);

:: AMI_5:th 88
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = b5 := b6 & b5 in proj1 b1
   holds (Computation(b2,b4)) . b6 = (Computation(b3,b4)) . b6;

:: AMI_5:th 89
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = AddTo(b5,b6) & b5 in proj1 b1
   holds ((Computation(b2,b4)) . b5) + ((Computation(b2,b4)) . b6) = ((Computation(b3,b4)) . b5) + ((Computation(b3,b4)) . b6);

:: AMI_5:th 90
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = SubFrom(b5,b6) & b5 in proj1 b1
   holds ((Computation(b2,b4)) . b5) - ((Computation(b2,b4)) . b6) = ((Computation(b3,b4)) . b5) - ((Computation(b3,b4)) . b6);

:: AMI_5:th 91
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = MultBy(b5,b6) & b5 in proj1 b1
   holds ((Computation(b2,b4)) . b5) * ((Computation(b2,b4)) . b6) = ((Computation(b3,b4)) . b5) * ((Computation(b3,b4)) . b6);

:: AMI_5:th 92
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = Divide(b5,b6) & b5 in proj1 b1 & b5 <> b6
   holds ((Computation(b2,b4)) . b5) div ((Computation(b2,b4)) . b6) = ((Computation(b3,b4)) . b5) div ((Computation(b3,b4)) . b6);

:: AMI_5:th 93
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5, b6 being Data-Location
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = Divide(b5,b6) & b6 in proj1 b1 & b5 <> b6
   holds ((Computation(b2,b4)) . b5) mod ((Computation(b2,b4)) . b6) = ((Computation(b3,b4)) . b5) mod ((Computation(b3,b4)) . b6);

:: AMI_5:th 94
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5 being Data-Location
for b6 being Instruction-Location of SCM
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = b5 =0_goto b6 & b6 <> succ IC Computation(b2,b4)
   holds    (Computation(b2,b4)) . b5 = {}
   iff
      (Computation(b3,b4)) . b5 = {};

:: AMI_5:th 95
theorem
for b1 being finite autonomic non programmed Element of sproduct the Object-Kind of SCM
for b2, b3 being Element of product the Object-Kind of SCM
   st b1 c= b2 & b1 c= b3
for b4 being Element of NAT
for b5 being Data-Location
for b6 being Instruction-Location of SCM
for b7 being Element of the Instructions of SCM
      st b7 = CurInstr Computation(b2,b4) & b7 = b5 >0_goto b6 & b6 <> succ IC Computation(b2,b4)
   holds    {} < (Computation(b2,b4)) . b5
   iff
      {} < (Computation(b3,b4)) . b5;

:: AMI_5:th 96
theorem
for b1 being finite Element of sproduct the Object-Kind of SCM holds
   DataPart b1 = b1 | SCM-Data-Loc;

:: AMI_5:th 97
theorem
for b1 being finite Element of sproduct the Object-Kind of SCM holds
      b1 is data-only(NAT, {INT}, SCM)
   iff
      proj1 b1 c= SCM-Data-Loc;