Article SCMPDS_6, MML version 4.99.1005

:: SCMPDS_6:th 1
theorem
for b1 being Element of product the Object-Kind of SCMPDS holds
   proj1 (b1 | NAT) = NAT;

:: SCMPDS_6:th 2
theorem
for b1 being Element of product the Object-Kind of SCMPDS
   st b1 is halting(NAT, {INT}, SCMPDS)
for b2 being Element of NAT
      st LifeSpan b1 <= b2
   holds CurInstr Computation(b1,b2) = halt SCMPDS;

:: SCMPDS_6:th 3
theorem
for b1 being Element of product the Object-Kind of SCMPDS
   st b1 is halting(NAT, {INT}, SCMPDS)
for b2 being Element of NAT
      st LifeSpan b1 <= b2
   holds IC Computation(b1,b2) = IC Computation(b1,LifeSpan b1);

:: SCMPDS_6:th 4
theorem
for b1, b2 being Element of product the Object-Kind of SCMPDS holds
   b1,b2 equal_outside NAT
iff
   IC b1 = IC b2 & b1 | SCM-Data-Loc = b2 | SCM-Data-Loc;

:: SCMPDS_6:th 5
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (Initialized b1) +* Initialized b2 = b1 +* Initialized b2;

:: SCMPDS_6:th 6
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b2 being Instruction-Location of SCMPDS holds
   b1 c= b1 +* Start-At b2;

:: SCMPDS_6:th 7
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being Instruction-Location of SCMPDS holds
   b1 | SCM-Data-Loc = (b1 +* Start-At b2) | SCM-Data-Loc;

:: SCMPDS_6:th 8
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Instruction-Location of SCMPDS holds
   b1 | SCM-Data-Loc = (b1 +* (b2 +* Start-At b3)) | SCM-Data-Loc;

:: SCMPDS_6:th 9
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   b1 | SCM-Data-Loc = (b1 +* Initialized b2) | SCM-Data-Loc;

:: SCMPDS_6:th 10
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being Instruction-Location of SCMPDS holds
   proj1 (b1 | NAT) misses proj1 Start-At b2;

:: SCMPDS_6:th 11
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b4 being Instruction-Location of SCMPDS holds
   b1 +* (b2 +* Start-At b4),b1 +* (b3 +* Start-At b4) equal_outside NAT;

:: SCMPDS_6:th 12
theorem
for b1, b2 being Element of product the Object-Kind of SCMPDS
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 | SCM-Data-Loc = b2 | SCM-Data-Loc
   holds b1 +* Initialized b3,b2 +* Initialized b4 equal_outside NAT;

:: SCMPDS_6:th 14
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being Instruction-Location of SCMPDS holds
(b1 +* Start-At b2) +* Start-At b3 = b1 +* Start-At b3;

:: SCMPDS_6:th 15
theorem
for b1 being Element of the Instructions of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card (b1 ';' b2) = (card b2) + 1;

:: SCMPDS_6:th 16
theorem
for b1 being Element of the Instructions of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (b1 ';' b2) . inspos 0 = b1;

:: SCMPDS_6:th 17
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   b1 c= Initialized stop b1;

:: SCMPDS_6:th 18
theorem
for b1 being Instruction-Location of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 in proj1 b2
   holds b1 in proj1 stop b2;

:: SCMPDS_6:th 19
theorem
for b1 being Instruction-Location of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 in proj1 b2
   holds (stop b2) . b1 = b2 . b1;

:: SCMPDS_6:th 20
theorem
for b1 being Instruction-Location of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 in proj1 b2
   holds (Initialized stop b2) . b1 = b2 . b1;

:: SCMPDS_6:th 21
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   IC (b1 +* Initialized b2) = inspos 0;

:: SCMPDS_6:th 22
theorem
for b1 being Element of the Instructions of SCMPDS
for b2 being Element of product the Object-Kind of SCMPDS
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   CurInstr (b2 +* Initialized stop (b1 ';' b3)) = b1;

:: SCMPDS_6:th 23
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being Element of NAT
      st IC b1 = inspos b2
   holds ICplusConst(b1,b3) = inspos (b2 + b3);

:: SCMPDS_6:th 24
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
Shift(stop b2,card b1) c= stop (b1 ';' b2);

:: SCMPDS_6:th 25
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos card b1 in proj1 stop b1 &
    (stop b1) . inspos card b1 = halt SCMPDS;

:: SCMPDS_6:th 26
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Instruction-Location of SCMPDS holds
(IExec(b2,b1)) . b4 = ((IExec(b3,b1)) +* Start-At b5) . b4;

:: SCMPDS_6:th 27
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Instruction-Location of SCMPDS holds
(IExec(b2,b1)) . b3 = (b1 +* Start-At b4) . b3;

:: SCMPDS_6:th 28
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being No-StopCode parahalting Element of the Instructions of SCMPDS
for b3 being finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position holds
   (IExec(b2 ';' b3,b1)) . b4 = (IExec(b3,Exec(b2,Initialized b1))) . b4;

:: SCMPDS_6:th 29
theorem
for b1 being Int_position
for b2, b3 being integer set holds
(b1,b2)<>0_goto b3 <> halt SCMPDS;

:: SCMPDS_6:th 30
theorem
for b1 being Int_position
for b2, b3 being integer set holds
(b1,b2)<=0_goto b3 <> halt SCMPDS;

:: SCMPDS_6:th 31
theorem
for b1 being Int_position
for b2, b3 being integer set holds
(b1,b2)>=0_goto b3 <> halt SCMPDS;

:: SCMPDS_6:funcnot 1 => SCMPDS_6:func 1
definition
  let a1 be integer set;
  func Goto A1 -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    Load goto a1;
end;

:: SCMPDS_6:def 1
theorem
for b1 being integer set holds
   Goto b1 = Load goto b1;

:: SCMPDS_6:funcreg 1
registration
  let a1 be Element of NAT;
  cluster goto (a1 + 1) -> No-StopCode;
end;

:: SCMPDS_6:funcreg 2
registration
  let a1 be Element of NAT;
  cluster goto - (a1 + 1) -> No-StopCode;
end;

:: SCMPDS_6:funcreg 3
registration
  let a1 be Element of NAT;
  cluster Goto (a1 + 1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:funcreg 4
registration
  let a1 be Element of NAT;
  cluster Goto - (a1 + 1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 33
theorem
for b1 being integer set holds
   inspos 0 in proj1 Goto b1 &
    (Goto b1) . inspos 0 = goto b1;

:: SCMPDS_6:prednot 1 => SCMPDS_6:pred 1
definition
  let a1 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Element of product the Object-Kind of SCMPDS;
  pred A1 is_closed_on A2 means
    for b1 being Element of NAT holds
       IC Computation(a2 +* Initialized stop a1,b1) in proj1 stop a1;
end;

:: SCMPDS_6:dfs 2
definiens
  let a1 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Element of product the Object-Kind of SCMPDS;
To prove
     a1 is_closed_on a2
it is sufficient to prove
  thus for b1 being Element of NAT holds
       IC Computation(a2 +* Initialized stop a1,b1) in proj1 stop a1;

:: SCMPDS_6:def 2
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b2 being Element of product the Object-Kind of SCMPDS holds
      b1 is_closed_on b2
   iff
      for b3 being Element of NAT holds
         IC Computation(b2 +* Initialized stop b1,b3) in proj1 stop b1;

:: SCMPDS_6:prednot 2 => SCMPDS_6:pred 2
definition
  let a1 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Element of product the Object-Kind of SCMPDS;
  pred A1 is_halting_on A2 means
    a2 +* Initialized stop a1 is halting(NAT, {INT}, SCMPDS);
end;

:: SCMPDS_6:dfs 3
definiens
  let a1 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Element of product the Object-Kind of SCMPDS;
To prove
     a1 is_halting_on a2
it is sufficient to prove
  thus a2 +* Initialized stop a1 is halting(NAT, {INT}, SCMPDS);

:: SCMPDS_6:def 3
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b2 being Element of product the Object-Kind of SCMPDS holds
      b1 is_halting_on b2
   iff
      b2 +* Initialized stop b1 is halting(NAT, {INT}, SCMPDS);

:: SCMPDS_6:th 34
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
      b1 is paraclosed
   iff
      for b2 being Element of product the Object-Kind of SCMPDS holds
         b1 is_closed_on b2;

:: SCMPDS_6:th 35
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
      b1 is parahalting
   iff
      for b2 being Element of product the Object-Kind of SCMPDS holds
         b1 is_halting_on b2;

:: SCMPDS_6:th 36
theorem
for b1, b2 being Element of product the Object-Kind of SCMPDS
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 | SCM-Data-Loc = b2 | SCM-Data-Loc & b3 is_closed_on b1
   holds b3 is_closed_on b2;

:: SCMPDS_6:th 37
theorem
for b1, b2 being Element of product the Object-Kind of SCMPDS
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b1 | SCM-Data-Loc = b2 | SCM-Data-Loc & b3 is_closed_on b1 & b3 is_halting_on b1
   holds b3 is_closed_on b2 & b3 is_halting_on b2;

:: SCMPDS_6:th 38
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   b2 is_closed_on b1
iff
   b2 is_closed_on b1 +* Initialized b3;

:: SCMPDS_6:th 39
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Element of product the Object-Kind of SCMPDS
      st b1 is_closed_on b3 & b1 is_halting_on b3
   holds (for b4 being Element of NAT
          st b4 <= LifeSpan (b3 +* Initialized stop b1)
       holds IC Computation(b3 +* Initialized stop b1,b4) = IC Computation(b3 +* Initialized stop (b1 ';' b2),b4)) &
    (Computation(b3 +* Initialized stop b1,LifeSpan (b3 +* Initialized stop b1))) | SCM-Data-Loc = (Computation(b3 +* Initialized stop (b1 ';' b2),LifeSpan (b3 +* Initialized stop b1))) | SCM-Data-Loc;

:: SCMPDS_6:th 40
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Element of NAT
      st b2 is_closed_on b1 &
         b2 is_halting_on b1 &
         b3 < LifeSpan (b1 +* Initialized stop b2)
   holds IC Computation(b1 +* Initialized stop b2,b3) in proj1 b2;

:: SCMPDS_6:th 41
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Element of product the Object-Kind of SCMPDS
for b4 being Element of NAT
      st b1 is_closed_on b3 &
         b1 is_halting_on b3 &
         b4 < LifeSpan (b3 +* Initialized stop b1)
   holds CurInstr Computation(b3 +* Initialized stop b1,b4) = CurInstr Computation(b3 +* Initialized stop (b1 ';' b2),b4);

:: SCMPDS_6:th 42
theorem
for b1 being finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b2 being Element of product the Object-Kind of SCMPDS
for b3 being Element of NAT
      st b1 is_closed_on b2 &
         b1 is_halting_on b2 &
         b3 < LifeSpan (b2 +* Initialized stop b1)
   holds CurInstr Computation(b2 +* Initialized stop b1,b3) <> halt SCMPDS;

:: SCMPDS_6:th 43
theorem
for b1 being finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b2 being Element of product the Object-Kind of SCMPDS
      st b1 is_closed_on b2 & b1 is_halting_on b2
   holds IC Computation(b2 +* Initialized stop b1,LifeSpan (b2 +* Initialized stop b1)) = inspos card b1;

:: SCMPDS_6:th 44
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Element of product the Object-Kind of SCMPDS
      st b1 is_closed_on b3 & b1 is_halting_on b3
   holds (b1 ';' Goto ((card b2) + 1)) ';' b2 is_halting_on b3 &
    (b1 ';' Goto ((card b2) + 1)) ';' b2 is_closed_on b3;

:: SCMPDS_6:th 45
theorem
for b1, b2 being Element of product the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
   st Initialized stop b3 c= b1 & b3 is_closed_on b1
for b4 being Element of NAT
   st Shift(stop b3,b4) c= b2 & IC b2 = inspos b4 & b1 | SCM-Data-Loc = b2 | SCM-Data-Loc
for b5 being Element of NAT holds
   (IC Computation(b1,b5)) + b4 = IC Computation(b2,b5) &
    CurInstr Computation(b1,b5) = CurInstr Computation(b2,b5) &
    (Computation(b1,b5)) | SCM-Data-Loc = (Computation(b2,b5)) | SCM-Data-Loc;

:: SCMPDS_6:th 46
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b2 is_closed_on b1 & b2 is_halting_on b1
   holds IC IExec((b2 ';' Goto ((card b3) + 1)) ';' b3,b1) = inspos (((card b2) + card b3) + 1);

:: SCMPDS_6:th 47
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
      st b2 is_closed_on b1 & b2 is_halting_on b1
   holds IExec((b2 ';' Goto ((card b3) + 1)) ';' b3,b1) = (IExec(b2,b1)) +* Start-At inspos (((card b2) + card b3) + 1);

:: SCMPDS_6:th 48
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS
      st b2 is_closed_on b1 & b2 is_halting_on b1
   holds IC IExec(b2,b1) = inspos card b2;

:: SCMPDS_6:funcnot 2 => SCMPDS_6:func 2
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if=0(A1,A2,A3,A4) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((((a1,a2)<>0_goto ((card a3) + 2)) ';' a3) ';' Goto ((card a4) + 1)) ';' a4;
end;

:: SCMPDS_6:def 4
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
if=0(b1,b2,b3,b4) = ((((b1,b2)<>0_goto ((card b3) + 2)) ';' b3) ';' Goto ((card b4) + 1)) ';' b4;

:: SCMPDS_6:funcnot 3 => SCMPDS_6:func 3
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if>0(A1,A2,A3,A4) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((((a1,a2)<=0_goto ((card a3) + 2)) ';' a3) ';' Goto ((card a4) + 1)) ';' a4;
end;

:: SCMPDS_6:def 5
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
if>0(b1,b2,b3,b4) = ((((b1,b2)<=0_goto ((card b3) + 2)) ';' b3) ';' Goto ((card b4) + 1)) ';' b4;

:: SCMPDS_6:funcnot 4 => SCMPDS_6:func 4
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if<0(A1,A2,A3,A4) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((((a1,a2)>=0_goto ((card a3) + 2)) ';' a3) ';' Goto ((card a4) + 1)) ';' a4;
end;

:: SCMPDS_6:def 6
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
if<0(b1,b2,b3,b4) = ((((b1,b2)>=0_goto ((card b3) + 2)) ';' b3) ';' Goto ((card b4) + 1)) ';' b4;

:: SCMPDS_6:funcnot 5 => SCMPDS_6:func 5
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if=0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((a1,a2)<>0_goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 7
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if=0(b1,b2,b3) = ((b1,b2)<>0_goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:funcnot 6 => SCMPDS_6:func 6
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if<>0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    (((a1,a2)<>0_goto 2) ';' goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 8
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if<>0(b1,b2,b3) = (((b1,b2)<>0_goto 2) ';' goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:funcnot 7 => SCMPDS_6:func 7
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if>0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((a1,a2)<=0_goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 9
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if>0(b1,b2,b3) = ((b1,b2)<=0_goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:funcnot 8 => SCMPDS_6:func 8
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if<=0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    (((a1,a2)<=0_goto 2) ';' goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 10
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if<=0(b1,b2,b3) = (((b1,b2)<=0_goto 2) ';' goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:funcnot 9 => SCMPDS_6:func 9
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if<0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    ((a1,a2)>=0_goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 11
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if<0(b1,b2,b3) = ((b1,b2)>=0_goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:funcnot 10 => SCMPDS_6:func 10
definition
  let a1 be Int_position;
  let a2 be integer set;
  let a3 be finite programmed initial Element of sproduct the Object-Kind of SCMPDS;
  func if>=0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCMPDS equals
    (((a1,a2)>=0_goto 2) ';' goto ((card a3) + 1)) ';' a3;
end;

:: SCMPDS_6:def 12
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   if>=0(b1,b2,b3) = (((b1,b2)>=0_goto 2) ';' goto ((card b3) + 1)) ';' b3;

:: SCMPDS_6:th 49
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
card if=0(b1,b2,b3,b4) = ((card b3) + card b4) + 2;

:: SCMPDS_6:th 50
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
inspos 0 in proj1 if=0(b1,b2,b3,b4) & inspos 1 in proj1 if=0(b1,b2,b3,b4);

:: SCMPDS_6:th 51
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
(if=0(b1,b2,b3,b4)) . inspos 0 = (b1,b2)<>0_goto ((card b3) + 2);

:: SCMPDS_6:th 52
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) = 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds if=0(b4,b5,b2,b3) is_closed_on b1 & if=0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 53
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) <> 0 &
         b3 is_closed_on b1 &
         b3 is_halting_on b1
   holds if=0(b4,b5,b2,b3) is_closed_on b1 & if=0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 54
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) = 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds IExec(if=0(b4,b5,b2,b3),b1) = (IExec(b2,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 55
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) <> 0 &
         b3 is_closed_on b1 &
         b3 is_halting_on b1
   holds IExec(if=0(b4,b5,b2,b3),b1) = (IExec(b3,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:funcreg 5
registration
  let a1, a2 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if=0(a3,a4,a1,a2) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 6
registration
  let a1, a2 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if=0(a3,a4,a1,a2) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 56
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set holds
   IC IExec(if=0(b4,b5,b2,b3),b1) = inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 57
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st b1 . DataLoc(b1 . b4,b6) = 0
   holds (IExec(if=0(b4,b6,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5;

:: SCMPDS_6:th 58
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st b1 . DataLoc(b1 . b4,b6) <> 0
   holds (IExec(if=0(b4,b6,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5;

:: SCMPDS_6:th 59
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if=0(b1,b2,b3) = (card b3) + 1;

:: SCMPDS_6:th 60
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if=0(b1,b2,b3);

:: SCMPDS_6:th 61
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if=0(b1,b2,b3)) . inspos 0 = (b1,b2)<>0_goto ((card b3) + 1);

:: SCMPDS_6:th 62
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) = 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds if=0(b3,b4,b2) is_closed_on b1 & if=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 63
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <> 0
   holds if=0(b3,b4,b2) is_closed_on b1 & if=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 64
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) = 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds IExec(if=0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:th 65
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <> 0
   holds IExec(if=0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:funcreg 7
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if=0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 8
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if=0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 66
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if=0(b3,b4,b2),b1) = inspos ((card b2) + 1);

:: SCMPDS_6:th 67
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) = 0
   holds (IExec(if=0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 68
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) <> 0
   holds (IExec(if=0(b3,b5,b2),b1)) . b4 = b1 . b4;

:: SCMPDS_6:th 69
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if<>0(b1,b2,b3) = (card b3) + 2;

:: SCMPDS_6:th 70
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if<>0(b1,b2,b3) & inspos 1 in proj1 if<>0(b1,b2,b3);

:: SCMPDS_6:th 71
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if<>0(b1,b2,b3)) . inspos 0 = (b1,b2)<>0_goto 2 &
    (if<>0(b1,b2,b3)) . inspos 1 = goto ((card b3) + 1);

:: SCMPDS_6:th 72
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <> 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds if<>0(b3,b4,b2) is_closed_on b1 & if<>0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 73
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) = 0
   holds if<>0(b3,b4,b2) is_closed_on b1 & if<>0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 74
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <> 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds IExec(if<>0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:th 75
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) = 0
   holds IExec(if<>0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:funcreg 9
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<>0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 10
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<>0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 76
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if<>0(b3,b4,b2),b1) = inspos ((card b2) + 2);

:: SCMPDS_6:th 77
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) <> 0
   holds (IExec(if<>0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 78
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) = 0
   holds (IExec(if<>0(b3,b5,b2),b1)) . b4 = b1 . b4;

:: SCMPDS_6:th 79
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
card if>0(b1,b2,b3,b4) = ((card b3) + card b4) + 2;

:: SCMPDS_6:th 80
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
inspos 0 in proj1 if>0(b1,b2,b3,b4) & inspos 1 in proj1 if>0(b1,b2,b3,b4);

:: SCMPDS_6:th 81
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
(if>0(b1,b2,b3,b4)) . inspos 0 = (b1,b2)<=0_goto ((card b3) + 2);

:: SCMPDS_6:th 82
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st 0 < b1 . DataLoc(b1 . b4,b5) &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds if>0(b4,b5,b2,b3) is_closed_on b1 & if>0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 83
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) <= 0 & b3 is_closed_on b1 & b3 is_halting_on b1
   holds if>0(b4,b5,b2,b3) is_closed_on b1 & if>0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 84
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st 0 < b1 . DataLoc(b1 . b4,b5) &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds IExec(if>0(b4,b5,b2,b3),b1) = (IExec(b2,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 85
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) <= 0 & b3 is_closed_on b1 & b3 is_halting_on b1
   holds IExec(if>0(b4,b5,b2,b3),b1) = (IExec(b3,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:funcreg 11
registration
  let a1, a2 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if>0(a3,a4,a1,a2) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 12
registration
  let a1, a2 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if>0(a3,a4,a1,a2) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 86
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set holds
   IC IExec(if>0(b4,b5,b2,b3),b1) = inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 87
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st 0 < b1 . DataLoc(b1 . b4,b6)
   holds (IExec(if>0(b4,b6,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5;

:: SCMPDS_6:th 88
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st b1 . DataLoc(b1 . b4,b6) <= 0
   holds (IExec(if>0(b4,b6,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5;

:: SCMPDS_6:th 89
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if>0(b1,b2,b3) = (card b3) + 1;

:: SCMPDS_6:th 90
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if>0(b1,b2,b3);

:: SCMPDS_6:th 91
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if>0(b1,b2,b3)) . inspos 0 = (b1,b2)<=0_goto ((card b3) + 1);

:: SCMPDS_6:th 92
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b4) &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds if>0(b3,b4,b2) is_closed_on b1 & if>0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 93
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <= 0
   holds if>0(b3,b4,b2) is_closed_on b1 & if>0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 94
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b4) &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds IExec(if>0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:th 95
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <= 0
   holds IExec(if>0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:funcreg 13
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if>0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 14
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if>0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 96
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if>0(b3,b4,b2),b1) = inspos ((card b2) + 1);

:: SCMPDS_6:th 97
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b5)
   holds (IExec(if>0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 98
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) <= 0
   holds (IExec(if>0(b3,b5,b2),b1)) . b4 = b1 . b4;

:: SCMPDS_6:th 99
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if<=0(b1,b2,b3) = (card b3) + 2;

:: SCMPDS_6:th 100
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if<=0(b1,b2,b3) & inspos 1 in proj1 if<=0(b1,b2,b3);

:: SCMPDS_6:th 101
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if<=0(b1,b2,b3)) . inspos 0 = (b1,b2)<=0_goto 2 &
    (if<=0(b1,b2,b3)) . inspos 1 = goto ((card b3) + 1);

:: SCMPDS_6:th 102
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <= 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds if<=0(b3,b4,b2) is_closed_on b1 & if<=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 103
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b4)
   holds if<=0(b3,b4,b2) is_closed_on b1 & if<=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 104
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) <= 0 & b2 is_closed_on b1 & b2 is_halting_on b1
   holds IExec(if<=0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:th 105
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b4)
   holds IExec(if<=0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:funcreg 15
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<=0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 16
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<=0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 106
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if<=0(b3,b4,b2),b1) = inspos ((card b2) + 2);

:: SCMPDS_6:th 107
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) <= 0
   holds (IExec(if<=0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 108
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st 0 < b1 . DataLoc(b1 . b3,b5)
   holds (IExec(if<=0(b3,b5,b2),b1)) . b4 = b1 . b4;

:: SCMPDS_6:th 109
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
card if<0(b1,b2,b3,b4) = ((card b3) + card b4) + 2;

:: SCMPDS_6:th 110
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
inspos 0 in proj1 if<0(b1,b2,b3,b4) & inspos 1 in proj1 if<0(b1,b2,b3,b4);

:: SCMPDS_6:th 111
theorem
for b1 being Int_position
for b2 being integer set
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
(if<0(b1,b2,b3,b4)) . inspos 0 = (b1,b2)>=0_goto ((card b3) + 2);

:: SCMPDS_6:th 112
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) < 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds if<0(b4,b5,b2,b3) is_closed_on b1 & if<0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 113
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st 0 <= b1 . DataLoc(b1 . b4,b5) & b3 is_closed_on b1 & b3 is_halting_on b1
   holds if<0(b4,b5,b2,b3) is_closed_on b1 & if<0(b4,b5,b2,b3) is_halting_on b1;

:: SCMPDS_6:th 114
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b4,b5) < 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds IExec(if<0(b4,b5,b2,b3),b1) = (IExec(b2,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 115
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set
      st 0 <= b1 . DataLoc(b1 . b4,b5) & b3 is_closed_on b1 & b3 is_halting_on b1
   holds IExec(if<0(b4,b5,b2,b3),b1) = (IExec(b3,b1)) +* Start-At inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:funcreg 17
registration
  let a1, a2 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if<0(a3,a4,a1,a2) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 18
registration
  let a1, a2 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a3 be Int_position;
  let a4 be integer set;
  cluster if<0(a3,a4,a1,a2) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 116
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2, b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4 being Int_position
for b5 being integer set holds
   IC IExec(if<0(b4,b5,b2,b3),b1) = inspos (((card b2) + card b3) + 2);

:: SCMPDS_6:th 117
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st b1 . DataLoc(b1 . b4,b6) < 0
   holds (IExec(if<0(b4,b6,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5;

:: SCMPDS_6:th 118
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b4, b5 being Int_position
for b6 being integer set
      st 0 <= b1 . DataLoc(b1 . b4,b6)
   holds (IExec(if<0(b4,b6,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5;

:: SCMPDS_6:th 119
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if<0(b1,b2,b3) = (card b3) + 1;

:: SCMPDS_6:th 120
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if<0(b1,b2,b3);

:: SCMPDS_6:th 121
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if<0(b1,b2,b3)) . inspos 0 = (b1,b2)>=0_goto ((card b3) + 1);

:: SCMPDS_6:th 122
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) < 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds if<0(b3,b4,b2) is_closed_on b1 & if<0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 123
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b4)
   holds if<0(b3,b4,b2) is_closed_on b1 & if<0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 124
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) < 0 &
         b2 is_closed_on b1 &
         b2 is_halting_on b1
   holds IExec(if<0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:th 125
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b4)
   holds IExec(if<0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 1);

:: SCMPDS_6:funcreg 19
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 20
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if<0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 126
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if<0(b3,b4,b2),b1) = inspos ((card b2) + 1);

:: SCMPDS_6:th 127
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) < 0
   holds (IExec(if<0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 128
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b5)
   holds (IExec(if<0(b3,b5,b2),b1)) . b4 = b1 . b4;

:: SCMPDS_6:th 129
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   card if>=0(b1,b2,b3) = (card b3) + 2;

:: SCMPDS_6:th 130
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   inspos 0 in proj1 if>=0(b1,b2,b3) & inspos 1 in proj1 if>=0(b1,b2,b3);

:: SCMPDS_6:th 131
theorem
for b1 being Int_position
for b2 being integer set
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS holds
   (if>=0(b1,b2,b3)) . inspos 0 = (b1,b2)>=0_goto 2 &
    (if>=0(b1,b2,b3)) . inspos 1 = goto ((card b3) + 1);

:: SCMPDS_6:th 132
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b4) & b2 is_closed_on b1 & b2 is_halting_on b1
   holds if>=0(b3,b4,b2) is_closed_on b1 & if>=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 133
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) < 0
   holds if>=0(b3,b4,b2) is_closed_on b1 & if>=0(b3,b4,b2) is_halting_on b1;

:: SCMPDS_6:th 134
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b4) & b2 is_closed_on b1 & b2 is_halting_on b1
   holds IExec(if>=0(b3,b4,b2),b1) = (IExec(b2,b1)) +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:th 135
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set
      st b1 . DataLoc(b1 . b3,b4) < 0
   holds IExec(if>=0(b3,b4,b2),b1) = b1 +* Start-At inspos ((card b2) + 2);

:: SCMPDS_6:funcreg 21
registration
  let a1 be finite programmed initial parahalting shiftable Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if>=0(a2,a3,a1) -> finite programmed initial parahalting shiftable;
end;

:: SCMPDS_6:funcreg 22
registration
  let a1 be finite programmed initial No-StopCode Element of sproduct the Object-Kind of SCMPDS;
  let a2 be Int_position;
  let a3 be integer set;
  cluster if>=0(a2,a3,a1) -> finite programmed initial No-StopCode;
end;

:: SCMPDS_6:th 136
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3 being Int_position
for b4 being integer set holds
   IC IExec(if>=0(b3,b4,b2),b1) = inspos ((card b2) + 2);

:: SCMPDS_6:th 137
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial parahalting shiftable No-StopCode Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st 0 <= b1 . DataLoc(b1 . b3,b5)
   holds (IExec(if>=0(b3,b5,b2),b1)) . b4 = (IExec(b2,b1)) . b4;

:: SCMPDS_6:th 138
theorem
for b1 being Element of product the Object-Kind of SCMPDS
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCMPDS
for b3, b4 being Int_position
for b5 being integer set
      st b1 . DataLoc(b1 . b3,b5) < 0
   holds (IExec(if>=0(b3,b5,b2),b1)) . b4 = b1 . b4;