:: SCMPDS_8 semantic presentation
set c1 = the Instruction-Locations of SCMPDS ;
set c2 = SCM-Data-Loc ;
theorem Th1: :: SCMPDS_8:1
:: deftheorem Def1 defines Dstate SCMPDS_8:def 1 :
theorem Th2: :: SCMPDS_8:2
theorem Th3: :: SCMPDS_8:3
theorem Th4: :: SCMPDS_8:4
theorem Th5: :: SCMPDS_8:5
:: deftheorem Def2 defines while<0 SCMPDS_8:def 2 :
theorem Th6: :: SCMPDS_8:6
Lemma8:
for b1 being Int_position
for b2 being Integer
for b3 being Program-block holds card (stop (while<0 b1,b2,b3)) = (card b3) + 3
theorem Th7: :: SCMPDS_8:7
theorem Th8: :: SCMPDS_8:8
Lemma11:
for b1 being Int_position
for b2 being Integer
for b3 being Program-block holds while<0 b1,b2,b3 = (b1,b2 >=0_goto ((card b3) + 2)) ';' (b3 ';' (goto (- ((card b3) + 1))))
by SCMPDS_4:51;
theorem Th9: :: SCMPDS_8:9
theorem Th10: :: SCMPDS_8:10
theorem Th11: :: SCMPDS_8:11
theorem Th12: :: SCMPDS_8:12
Lemma14:
for b1 being Program-block
for b2 being Int_position
for b3 being Integer holds Shift b1,1 c= while<0 b2,b3,b1
theorem Th13: :: SCMPDS_8:13
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set for b
6 being
Function of
product the
Object-Kind of
SCMPDS ,
NAT holds
(
card b
2 > 0 & ( for b
7 being
State of
SCMPDS holds
( b
6 . (Dstate b7) = 0 implies b
7 . (DataLoc (b1 . b3),b4) >= 0 ) ) & ( for b
7 being
State of
SCMPDS holds
( ( for b
8 being
Int_position holds
( b
8 in b
5 implies b
7 . b
8 = b
1 . b
8 ) ) & b
7 . b
3 = b
1 . b
3 & b
7 . (DataLoc (b1 . b3),b4) < 0 implies (
(IExec b2,b7) . b
3 = b
7 . b
3 & b
6 . (Dstate (IExec b2,b7)) < b
6 . (Dstate b7) & b
2 is_closed_on b
7 & b
2 is_halting_on b
7 & ( for b
8 being
Int_position holds
( b
8 in b
5 implies
(IExec b2,b7) . b
8 = b
7 . b
8 ) ) ) ) ) implies (
while<0 b
3,b
4,b
2 is_closed_on b
1 &
while<0 b
3,b
4,b
2 is_halting_on b
1 ) )
theorem Th14: :: SCMPDS_8:14
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set for b
6 being
Function of
product the
Object-Kind of
SCMPDS ,
NAT holds
(
card b
2 > 0 & b
1 . (DataLoc (b1 . b3),b4) < 0 & ( for b
7 being
State of
SCMPDS holds
( b
6 . (Dstate b7) = 0 implies b
7 . (DataLoc (b1 . b3),b4) >= 0 ) ) & ( for b
7 being
State of
SCMPDS holds
( ( for b
8 being
Int_position holds
( b
8 in b
5 implies b
7 . b
8 = b
1 . b
8 ) ) & b
7 . b
3 = b
1 . b
3 & b
7 . (DataLoc (b1 . b3),b4) < 0 implies (
(IExec b2,b7) . b
3 = b
7 . b
3 & b
2 is_closed_on b
7 & b
2 is_halting_on b
7 & b
6 . (Dstate (IExec b2,b7)) < b
6 . (Dstate b7) & ( for b
8 being
Int_position holds
( b
8 in b
5 implies
(IExec b2,b7) . b
8 = b
7 . b
8 ) ) ) ) ) implies
IExec (while<0 b3,b4,b2),b
1 = IExec (while<0 b3,b4,b2),
(IExec b2,b1) )
theorem Th15: :: SCMPDS_8:15
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set holds
(
card b
2 > 0 & ( for b
6 being
State of
SCMPDS holds
( ( for b
7 being
Int_position holds
( b
7 in b
5 implies b
6 . b
7 = b
1 . b
7 ) ) & b
6 . b
3 = b
1 . b
3 & b
6 . (DataLoc (b1 . b3),b4) < 0 implies (
(IExec b2,b6) . b
3 = b
6 . b
3 &
(IExec b2,b6) . (DataLoc (b1 . b3),b4) > b
6 . (DataLoc (b1 . b3),b4) & b
2 is_closed_on b
6 & b
2 is_halting_on b
6 & ( for b
7 being
Int_position holds
( b
7 in b
5 implies
(IExec b2,b6) . b
7 = b
6 . b
7 ) ) ) ) ) implies (
while<0 b
3,b
4,b
2 is_closed_on b
1 &
while<0 b
3,b
4,b
2 is_halting_on b
1 ) )
theorem Th16: :: SCMPDS_8:16
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set holds
( b
1 . (DataLoc (b1 . b3),b4) < 0 &
card b
2 > 0 & ( for b
6 being
State of
SCMPDS holds
( ( for b
7 being
Int_position holds
( b
7 in b
5 implies b
6 . b
7 = b
1 . b
7 ) ) & b
6 . b
3 = b
1 . b
3 & b
6 . (DataLoc (b1 . b3),b4) < 0 implies (
(IExec b2,b6) . b
3 = b
6 . b
3 &
(IExec b2,b6) . (DataLoc (b1 . b3),b4) > b
6 . (DataLoc (b1 . b3),b4) & b
2 is_closed_on b
6 & b
2 is_halting_on b
6 & ( for b
7 being
Int_position holds
( b
7 in b
5 implies
(IExec b2,b6) . b
7 = b
6 . b
7 ) ) ) ) ) implies
IExec (while<0 b3,b4,b2),b
1 = IExec (while<0 b3,b4,b2),
(IExec b2,b1) )
:: deftheorem Def3 defines while>0 SCMPDS_8:def 3 :
theorem Th17: :: SCMPDS_8:17
Lemma17:
for b1 being Int_position
for b2 being Integer
for b3 being Program-block holds card (stop (while>0 b1,b2,b3)) = (card b3) + 3
theorem Th18: :: SCMPDS_8:18
theorem Th19: :: SCMPDS_8:19
Lemma20:
for b1 being Int_position
for b2 being Integer
for b3 being Program-block holds while>0 b1,b2,b3 = (b1,b2 <=0_goto ((card b3) + 2)) ';' (b3 ';' (goto (- ((card b3) + 1))))
by SCMPDS_4:51;
theorem Th20: :: SCMPDS_8:20
theorem Th21: :: SCMPDS_8:21
theorem Th22: :: SCMPDS_8:22
theorem Th23: :: SCMPDS_8:23
Lemma23:
for b1 being Program-block
for b2 being Int_position
for b3 being Integer holds Shift b1,1 c= while>0 b2,b3,b1
theorem Th24: :: SCMPDS_8:24
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4, b
5 being
Integerfor b
6, b
7 being
set for b
8 being
Function of
product the
Object-Kind of
SCMPDS ,
NAT holds
(
card b
2 > 0 & ( for b
9 being
State of
SCMPDS holds
( b
8 . (Dstate b9) = 0 implies b
9 . (DataLoc (b1 . b3),b4) <= 0 ) ) & ( for b
9 being
Int_position holds
( b
9 in b
6 implies b
1 . b
9 >= b
5 + (b1 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
9 being
State of
SCMPDS holds
( ( for b
10 being
Int_position holds
( b
10 in b
6 implies b
9 . b
10 >= b
5 + (b9 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
10 being
Int_position holds
( b
10 in b
7 implies b
9 . b
10 = b
1 . b
10 ) ) & b
9 . b
3 = b
1 . b
3 & b
9 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b9) . b
3 = b
9 . b
3 & b
2 is_closed_on b
9 & b
2 is_halting_on b
9 & b
8 . (Dstate (IExec b2,b9)) < b
8 . (Dstate b9) & ( for b
10 being
Int_position holds
( b
10 in b
6 implies
(IExec b2,b9) . b
10 >= b
5 + ((IExec b2,b9) . (DataLoc (b1 . b3),b4)) ) ) & ( for b
10 being
Int_position holds
( b
10 in b
7 implies
(IExec b2,b9) . b
10 = b
9 . b
10 ) ) ) ) ) implies (
while>0 b
3,b
4,b
2 is_closed_on b
1 &
while>0 b
3,b
4,b
2 is_halting_on b
1 ) )
theorem Th25: :: SCMPDS_8:25
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4, b
5 being
Integerfor b
6, b
7 being
set for b
8 being
Function of
product the
Object-Kind of
SCMPDS ,
NAT holds
( b
1 . (DataLoc (b1 . b3),b4) > 0 &
card b
2 > 0 & ( for b
9 being
State of
SCMPDS holds
( b
8 . (Dstate b9) = 0 implies b
9 . (DataLoc (b1 . b3),b4) <= 0 ) ) & ( for b
9 being
Int_position holds
( b
9 in b
6 implies b
1 . b
9 >= b
5 + (b1 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
9 being
State of
SCMPDS holds
( ( for b
10 being
Int_position holds
( b
10 in b
6 implies b
9 . b
10 >= b
5 + (b9 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
10 being
Int_position holds
( b
10 in b
7 implies b
9 . b
10 = b
1 . b
10 ) ) & b
9 . b
3 = b
1 . b
3 & b
9 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b9) . b
3 = b
9 . b
3 & b
2 is_closed_on b
9 & b
2 is_halting_on b
9 & b
8 . (Dstate (IExec b2,b9)) < b
8 . (Dstate b9) & ( for b
10 being
Int_position holds
( b
10 in b
6 implies
(IExec b2,b9) . b
10 >= b
5 + ((IExec b2,b9) . (DataLoc (b1 . b3),b4)) ) ) & ( for b
10 being
Int_position holds
( b
10 in b
7 implies
(IExec b2,b9) . b
10 = b
9 . b
10 ) ) ) ) ) implies
IExec (while>0 b3,b4,b2),b
1 = IExec (while>0 b3,b4,b2),
(IExec b2,b1) )
theorem Th26: :: SCMPDS_8:26
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set for b
6 being
Function of
product the
Object-Kind of
SCMPDS ,
NAT holds
(
card b
2 > 0 & ( for b
7 being
State of
SCMPDS holds
( b
6 . (Dstate b7) = 0 implies b
7 . (DataLoc (b1 . b3),b4) <= 0 ) ) & ( for b
7 being
State of
SCMPDS holds
( ( for b
8 being
Int_position holds
( b
8 in b
5 implies b
7 . b
8 = b
1 . b
8 ) ) & b
7 . b
3 = b
1 . b
3 & b
7 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b7) . b
3 = b
7 . b
3 & b
2 is_closed_on b
7 & b
2 is_halting_on b
7 & b
6 . (Dstate (IExec b2,b7)) < b
6 . (Dstate b7) & ( for b
8 being
Int_position holds
( b
8 in b
5 implies
(IExec b2,b7) . b
8 = b
7 . b
8 ) ) ) ) ) implies (
while>0 b
3,b
4,b
2 is_closed_on b
1 &
while>0 b
3,b
4,b
2 is_halting_on b
1 & ( b
1 . (DataLoc (b1 . b3),b4) > 0 implies
IExec (while>0 b3,b4,b2),b
1 = IExec (while>0 b3,b4,b2),
(IExec b2,b1) ) ) )
theorem Th27: :: SCMPDS_8:27
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4, b
5 being
Integerfor b
6, b
7 being
set holds
(
card b
2 > 0 & ( for b
8 being
Int_position holds
( b
8 in b
6 implies b
1 . b
8 >= b
5 + (b1 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
8 being
State of
SCMPDS holds
( ( for b
9 being
Int_position holds
( b
9 in b
6 implies b
8 . b
9 >= b
5 + (b8 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
9 being
Int_position holds
( b
9 in b
7 implies b
8 . b
9 = b
1 . b
9 ) ) & b
8 . b
3 = b
1 . b
3 & b
8 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b8) . b
3 = b
8 . b
3 & b
2 is_closed_on b
8 & b
2 is_halting_on b
8 &
(IExec b2,b8) . (DataLoc (b1 . b3),b4) < b
8 . (DataLoc (b1 . b3),b4) & ( for b
9 being
Int_position holds
( b
9 in b
6 implies
(IExec b2,b8) . b
9 >= b
5 + ((IExec b2,b8) . (DataLoc (b1 . b3),b4)) ) ) & ( for b
9 being
Int_position holds
( b
9 in b
7 implies
(IExec b2,b8) . b
9 = b
8 . b
9 ) ) ) ) ) implies (
while>0 b
3,b
4,b
2 is_closed_on b
1 &
while>0 b
3,b
4,b
2 is_halting_on b
1 & ( b
1 . (DataLoc (b1 . b3),b4) > 0 implies
IExec (while>0 b3,b4,b2),b
1 = IExec (while>0 b3,b4,b2),
(IExec b2,b1) ) ) )
theorem Th28: :: SCMPDS_8:28
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4 being
Integerfor b
5 being
set holds
(
card b
2 > 0 & ( for b
6 being
State of
SCMPDS holds
( ( for b
7 being
Int_position holds
( b
7 in b
5 implies b
6 . b
7 = b
1 . b
7 ) ) & b
6 . b
3 = b
1 . b
3 & b
6 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b6) . b
3 = b
6 . b
3 & b
2 is_closed_on b
6 & b
2 is_halting_on b
6 &
(IExec b2,b6) . (DataLoc (b1 . b3),b4) < b
6 . (DataLoc (b1 . b3),b4) & ( for b
7 being
Int_position holds
( b
7 in b
5 implies
(IExec b2,b6) . b
7 = b
6 . b
7 ) ) ) ) ) implies (
while>0 b
3,b
4,b
2 is_closed_on b
1 &
while>0 b
3,b
4,b
2 is_halting_on b
1 & ( b
1 . (DataLoc (b1 . b3),b4) > 0 implies
IExec (while>0 b3,b4,b2),b
1 = IExec (while>0 b3,b4,b2),
(IExec b2,b1) ) ) )
theorem Th29: :: SCMPDS_8:29
for b
1 being
State of
SCMPDS for b
2 being
shiftable No-StopCode Program-blockfor b
3 being
Int_position for b
4, b
5 being
Integerfor b
6 being
set holds
(
card b
2 > 0 & ( for b
7 being
Int_position holds
( b
7 in b
6 implies b
1 . b
7 >= b
5 + (b1 . (DataLoc (b1 . b3),b4)) ) ) & ( for b
7 being
State of
SCMPDS holds
( ( for b
8 being
Int_position holds
( b
8 in b
6 implies b
7 . b
8 >= b
5 + (b7 . (DataLoc (b1 . b3),b4)) ) ) & b
7 . b
3 = b
1 . b
3 & b
7 . (DataLoc (b1 . b3),b4) > 0 implies (
(IExec b2,b7) . b
3 = b
7 . b
3 & b
2 is_closed_on b
7 & b
2 is_halting_on b
7 &
(IExec b2,b7) . (DataLoc (b1 . b3),b4) < b
7 . (DataLoc (b1 . b3),b4) & ( for b
8 being
Int_position holds
( b
8 in b
6 implies
(IExec b2,b7) . b
8 >= b
5 + ((IExec b2,b7) . (DataLoc (b1 . b3),b4)) ) ) ) ) ) implies (
while>0 b
3,b
4,b
2 is_closed_on b
1 &
while>0 b
3,b
4,b
2 is_halting_on b
1 & ( b
1 . (DataLoc (b1 . b3),b4) > 0 implies
IExec (while>0 b3,b4,b2),b
1 = IExec (while>0 b3,b4,b2),
(IExec b2,b1) ) ) )