Article SCMRING3, MML version 4.99.1005

:: SCMRING3:funcreg 1
registration
  cluster INT.Ring -> infinite good;
end;

:: SCMRING3:exreg 1
registration
  cluster non empty infinite right_complementable strict unital associative right-distributive left-distributive right_unital well-unital distributive left_unital Abelian add-associative right_zeroed good doubleLoopStr;
end;

:: SCMRING3:th 1
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1 holds
   ObjectKind b2 = the carrier of b1;

:: SCMRING3:funcnot 1 => SCMRING3:func 1
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  let a4, a5 be Element of the carrier of a1;
  redefine func (a2,a3)-->(a4,a5) -> finite Element of sproduct the Object-Kind of SCM a1;
end;

:: SCMRING3:th 2
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1 holds
   not b2 in NAT;

:: SCMRING3:th 3
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1 holds
   b2 <> IC SCM b1;

:: SCMRING3:th 4
theorem
SCM-Data-Loc <> NAT;

:: SCMRING3:th 5
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the carrier of SCM b1
      st b2 <> IC SCM b1 & not b2 in NAT
   holds b2 is Data-Location of b1;

:: SCMRING3:th 7
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3, b4 being Element of product the Object-Kind of SCM b1
      st b3,b4 equal_outside NAT
   holds b3 . b2 = b4 . b2;

:: SCMRING3:th 8
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr holds
   InsCode halt SCM b1 = 0;

:: SCMRING3:th 9
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
InsCode (b2 := b3) = 1;

:: SCMRING3:th 10
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
InsCode AddTo(b2,b3) = 2;

:: SCMRING3:th 11
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
InsCode SubFrom(b2,b3) = 3;

:: SCMRING3:th 12
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
InsCode MultBy(b2,b3) = 4;

:: SCMRING3:th 13
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being Data-Location of b1 holds
   InsCode (b3 := b2) = 5;

:: SCMRING3:th 14
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   InsCode goto b2 = 6;

:: SCMRING3:th 15
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3 being Instruction-Location of SCM b1 holds
   InsCode (b2 =0_goto b3) = 7;

:: SCMRING3:th 16
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 0
   holds b2 = halt SCM b1;

:: SCMRING3:th 17
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 1
   holds ex b3, b4 being Data-Location of b1 st
      b2 = b3 := b4;

:: SCMRING3:th 18
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 2
   holds ex b3, b4 being Data-Location of b1 st
      b2 = AddTo(b3,b4);

:: SCMRING3:th 19
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 3
   holds ex b3, b4 being Data-Location of b1 st
      b2 = SubFrom(b3,b4);

:: SCMRING3:th 20
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 4
   holds ex b3, b4 being Data-Location of b1 st
      b2 = MultBy(b3,b4);

:: SCMRING3:th 21
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 5
   holds ex b3 being Data-Location of b1 st
      ex b4 being Element of the carrier of b1 st
         b2 = b3 := b4;

:: SCMRING3:th 22
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 6
   holds ex b3 being Instruction-Location of SCM b1 st
      b2 = goto b3;

:: SCMRING3:th 23
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1
      st InsCode b2 = 7
   holds ex b3 being Data-Location of b1 st
      ex b4 being Instruction-Location of SCM b1 st
         b2 = b3 =0_goto b4;

:: SCMRING3:th 24
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr holds
   AddressPart halt SCM b1 = {};

:: SCMRING3:th 32
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 0
   holds AddressParts b2 = {0};

:: SCMRING3:funcreg 2
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Element of InsCodes SCM a1;
  cluster AddressParts a2 -> non empty;
end;

:: SCMRING3:th 33
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 1
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 34
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 2
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 35
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 3
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 36
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 4
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 37
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 5
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 38
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 6
   holds proj1 product" AddressParts b2 = {1};

:: SCMRING3:th 39
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of InsCodes SCM b1
      st b2 = 7
   holds proj1 product" AddressParts b2 = {1,2};

:: SCMRING3:th 40
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode (b2 := b3)) . 1 = SCM-Data-Loc;

:: SCMRING3:th 41
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode (b2 := b3)) . 2 = SCM-Data-Loc;

:: SCMRING3:th 42
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode AddTo(b2,b3)) . 1 = SCM-Data-Loc;

:: SCMRING3:th 43
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode AddTo(b2,b3)) . 2 = SCM-Data-Loc;

:: SCMRING3:th 44
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode SubFrom(b2,b3)) . 1 = SCM-Data-Loc;

:: SCMRING3:th 45
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode SubFrom(b2,b3)) . 2 = SCM-Data-Loc;

:: SCMRING3:th 46
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode MultBy(b2,b3)) . 1 = SCM-Data-Loc;

:: SCMRING3:th 47
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1 holds
(product" AddressParts InsCode MultBy(b2,b3)) . 2 = SCM-Data-Loc;

:: SCMRING3:th 48
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being Data-Location of b1 holds
   (product" AddressParts InsCode (b3 := b2)) . 1 = SCM-Data-Loc;

:: SCMRING3:th 49
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being Data-Location of b1 holds
   (product" AddressParts InsCode (b3 := b2)) . 2 = the carrier of b1;

:: SCMRING3:th 50
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   (product" AddressParts InsCode goto b2) . 1 = NAT;

:: SCMRING3:th 51
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3 being Instruction-Location of SCM b1 holds
   (product" AddressParts InsCode (b2 =0_goto b3)) . 1 = NAT;

:: SCMRING3:th 52
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3 being Instruction-Location of SCM b1 holds
   (product" AddressParts InsCode (b2 =0_goto b3)) . 2 = SCM-Data-Loc;

:: SCMRING3:th 53
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   NIC(halt SCM b1,b2) = {b2};

:: SCMRING3:funcreg 3
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster JUMP halt SCM a1 -> empty;
end;

:: SCMRING3:th 54
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of SCM b1 holds
   NIC(b2 := b3,b4) = {Next b4};

:: SCMRING3:funcreg 4
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster JUMP (a2 := a3) -> empty;
end;

:: SCMRING3:th 55
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of SCM b1 holds
   NIC(AddTo(b2,b3),b4) = {Next b4};

:: SCMRING3:funcreg 5
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster JUMP AddTo(a2,a3) -> empty;
end;

:: SCMRING3:th 56
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of SCM b1 holds
   NIC(SubFrom(b2,b3),b4) = {Next b4};

:: SCMRING3:funcreg 6
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster JUMP SubFrom(a2,a3) -> empty;
end;

:: SCMRING3:th 57
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of SCM b1 holds
   NIC(MultBy(b2,b3),b4) = {Next b4};

:: SCMRING3:funcreg 7
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster JUMP MultBy(a2,a3) -> empty;
end;

:: SCMRING3:th 58
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being Data-Location of b1
for b4 being Instruction-Location of SCM b1 holds
   NIC(b3 := b2,b4) = {Next b4};

:: SCMRING3:funcreg 8
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Element of the carrier of a1;
  cluster JUMP (a2 := a3) -> empty;
end;

:: SCMRING3:th 59
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2, b3 being Instruction-Location of SCM b1 holds
NIC(goto b2,b3) = {b2};

:: SCMRING3:th 60
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   JUMP goto b2 = {b2};

:: SCMRING3:funcreg 9
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Instruction-Location of SCM a1;
  cluster JUMP goto a2 -> non empty trivial;
end;

:: SCMRING3:th 61
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3, b4 being Instruction-Location of SCM b1 holds
b3 in NIC(b2 =0_goto b3,b4) &
 NIC(b2 =0_goto b3,b4) c= {b3,Next b4};

:: SCMRING3:th 62
theorem
for b1 being non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3, b4 being Instruction-Location of SCM b1 holds
NIC(b2 =0_goto b4,b3) = {b4,Next b3};

:: SCMRING3:th 63
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3 being Instruction-Location of SCM b1 holds
   JUMP (b2 =0_goto b3) = {b3};

:: SCMRING3:funcreg 10
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Instruction-Location of SCM a1;
  cluster JUMP (a2 =0_goto a3) -> non empty trivial;
end;

:: SCMRING3:th 64
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   SUCC b2 = {b2,Next b2};

:: SCMRING3:th 65
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being IL-Function of NAT,SCM b1
      st for b3 being Element of NAT holds
           b2 . b3 = il. b3
   holds b2 is bijective(NAT, NAT) &
    (for b3 being Element of NAT holds
       b2 . (b3 + 1) in SUCC (b2 . b3) &
        (for b4 being Element of NAT
              st b2 . b4 in SUCC (b2 . b3)
           holds b3 <= b4));

:: SCMRING3:funcreg 11
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster SCM a1 -> strict standard;
end;

:: SCMRING3:th 66
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being natural set holds
   il.(SCM b1,b2) = il. b2;

:: SCMRING3:th 67
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being natural set holds
   Next il.(SCM b1,b2) = il.(SCM b1,b2 + 1);

:: SCMRING3:th 68
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1 holds
   Next b2 = NextLoc b2;

:: SCMRING3:funcnot 2 => SCMRING3:func 2
definition
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Element of NAT;
  func dl.(A1,A2) -> Data-Location of a1 equals
    dl. a2;
end;

:: SCMRING3:def 1
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of NAT holds
   dl.(b1,b2) = dl. b2;

:: SCMRING3:funcreg 12
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster (halt SCM a1) `1 -> jump-only;
end;

:: SCMRING3:funcreg 13
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster halt SCM a1 -> jump-only;
end;

:: SCMRING3:funcreg 14
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Instruction-Location of SCM a1;
  cluster (goto a2) `1 -> jump-only;
end;

:: SCMRING3:funcreg 15
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Instruction-Location of SCM a1;
  cluster goto a2 -> jump-only;
end;

:: SCMRING3:funcreg 16
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Instruction-Location of SCM a1;
  cluster (a2 =0_goto a3) `1 -> jump-only;
end;

:: SCMRING3:funcreg 17
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Instruction-Location of SCM a1;
  cluster a2 =0_goto a3 -> jump-only;
end;

:: SCMRING3:funcreg 18
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster (a2 := a3) `1 -> non jump-only;
end;

:: SCMRING3:funcreg 19
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster a2 := a3 -> non jump-only;
end;

:: SCMRING3:funcreg 20
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster (AddTo(a2,a3)) `1 -> non jump-only;
end;

:: SCMRING3:funcreg 21
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster AddTo(a2,a3) -> non jump-only;
end;

:: SCMRING3:funcreg 22
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster (SubFrom(a2,a3)) `1 -> non jump-only;
end;

:: SCMRING3:funcreg 23
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster SubFrom(a2,a3) -> non jump-only;
end;

:: SCMRING3:funcreg 24
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster (MultBy(a2,a3)) `1 -> non jump-only;
end;

:: SCMRING3:funcreg 25
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster MultBy(a2,a3) -> non jump-only;
end;

:: SCMRING3:funcreg 26
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Element of the carrier of a1;
  cluster (a2 := a3) `1 -> non jump-only;
end;

:: SCMRING3:funcreg 27
registration
  let a1 be non empty non trivial right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Element of the carrier of a1;
  cluster a2 := a3 -> non jump-only;
end;

:: SCMRING3:funcreg 28
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster a2 := a3 -> sequential;
end;

:: SCMRING3:funcreg 29
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster AddTo(a2,a3) -> sequential;
end;

:: SCMRING3:funcreg 30
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster SubFrom(a2,a3) -> sequential;
end;

:: SCMRING3:funcreg 31
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2, a3 be Data-Location of a1;
  cluster MultBy(a2,a3) -> sequential;
end;

:: SCMRING3:funcreg 32
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Element of the carrier of a1;
  cluster a2 := a3 -> sequential;
end;

:: SCMRING3:funcreg 33
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Instruction-Location of SCM a1;
  cluster goto a2 -> non sequential;
end;

:: SCMRING3:funcreg 34
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Instruction-Location of SCM a1;
  cluster a2 =0_goto a3 -> non sequential;
end;

:: SCMRING3:funcreg 35
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Instruction-Location of SCM a1;
  cluster goto a2 -> non ins-loc-free;
end;

:: SCMRING3:funcreg 36
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Data-Location of a1;
  let a3 be Instruction-Location of SCM a1;
  cluster a2 =0_goto a3 -> non ins-loc-free;
end;

:: SCMRING3:funcreg 37
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster SCM a1 -> strict homogeneous with_explicit_jumps without_implicit_jumps;
end;

:: SCMRING3:funcreg 38
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster SCM a1 -> strict regular;
end;

:: SCMRING3:th 69
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Instruction-Location of SCM b1
for b3 being natural set holds
   IncAddr(goto b2,b3) = goto il.(SCM b1,(locnum b2) + b3);

:: SCMRING3:th 70
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Data-Location of b1
for b3 being Instruction-Location of SCM b1
for b4 being natural set holds
   IncAddr(b2 =0_goto b3,b4) = b2 =0_goto il.(SCM b1,(locnum b3) + b4);

:: SCMRING3:funcreg 39
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  cluster SCM a1 -> strict IC-good Exec-preserving;
end;

:: SCMRING3:funcreg 40
registration
  let a1 be non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr;
  let a2 be Element of the Instructions of SCM a1;
  cluster a2 `1 -> natural;
end;

:: SCMRING3:th 71
theorem
for b1 being non empty right_complementable associative well-unital distributive Abelian add-associative right_zeroed good doubleLoopStr
for b2 being Element of the Instructions of SCM b1 holds
   InsCode b2 <= 7;