:: SCMPDS_7 semantic presentation :: Showing IDV graph ... (Click the Palm Trees again to close it)
set A = the Instruction-Locations of SCMPDS ;
set D = SCM-Data-Loc ;
theorem Th1: :: SCMPDS_7:1 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:2 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:3 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th4: :: SCMPDS_7:4 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th5: :: SCMPDS_7:5 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th6: :: SCMPDS_7:6 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th7: :: SCMPDS_7:7 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th8: :: SCMPDS_7:8 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:9 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th10: :: SCMPDS_7:10 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:11 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th12: :: SCMPDS_7:12 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:13 :: Showing IDV graph ... (Click the Palm Tree again to close it)
canceled;
theorem Th14: :: SCMPDS_7:14 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th15: :: SCMPDS_7:15 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th16: :: SCMPDS_7:16 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th17: :: SCMPDS_7:17 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th18: :: SCMPDS_7:18 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th19: :: SCMPDS_7:19 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:20 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:21 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:22 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th23: :: SCMPDS_7:23 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th24: :: SCMPDS_7:24 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th25: :: SCMPDS_7:25 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th26: :: SCMPDS_7:26 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:27 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th28: :: SCMPDS_7:28 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th29: :: SCMPDS_7:29 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:30 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th31: :: SCMPDS_7:31 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:32 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th33: :: SCMPDS_7:33 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th34: :: SCMPDS_7:34 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th35: :: SCMPDS_7:35 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th36: :: SCMPDS_7:36 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th37: :: SCMPDS_7:37 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th38: :: SCMPDS_7:38 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th39: :: SCMPDS_7:39 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th40: :: SCMPDS_7:40 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th41: :: SCMPDS_7:41 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th42: :: SCMPDS_7:42 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th43: :: SCMPDS_7:43 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th44: :: SCMPDS_7:44 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:45 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th46: :: SCMPDS_7:46 :: Showing IDV graph ... (Click the Palm Tree again to close it)
Lm1:
for I being No-StopCode Program-block
for J being shiftable Program-block
for s, s1, s2 being State of SCMPDS st I is_closed_on s & I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s & s2 = s +* (Initialized (stop (I ';' J))) & s1 = s +* (Initialized (stop I)) holds
( IC ((Computation s2) . (LifeSpan s1)) = inspos (card I) & ((Computation s2) . (LifeSpan s1)) | SCM-Data-Loc = (((Computation s1) . (LifeSpan s1)) +* (Initialized (stop J))) | SCM-Data-Loc & Shift (stop J),(card I) c= (Computation s2) . (LifeSpan s1) & LifeSpan s2 = (LifeSpan s1) + (LifeSpan ((Result s1) +* (Initialized (stop J)))) )
theorem :: SCMPDS_7:47 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th48: :: SCMPDS_7:48 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th49: :: SCMPDS_7:49 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th50: :: SCMPDS_7:50 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem defines for-up SCMPDS_7:def 1 :
theorem Th51: :: SCMPDS_7:51 :: Showing IDV graph ... (Click the Palm Tree again to close it)
Lm2:
for a being Int_position
for i being Integer
for n being Nat
for I being Program-block holds card (stop (for-up a,i,n,I)) = (card I) + 4
theorem Th52: :: SCMPDS_7:52 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th53: :: SCMPDS_7:53 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
a being
Int_position for
i being
Integer for
n being
Nat for
I being
Program-block holds
(
(for-up a,i,n,I) . (inspos 0) = a,
i >=0_goto ((card I) + 3) &
(for-up a,i,n,I) . (inspos ((card I) + 1)) = AddTo a,
i,
n &
(for-up a,i,n,I) . (inspos ((card I) + 2)) = goto (- ((card I) + 2)) )
Lm3:
for a being Int_position
for i being Integer
for n being Nat
for I being Program-block holds for-up a,i,n,I = (a,i >=0_goto ((card I) + 3)) ';' ((I ';' (AddTo a,i,n)) ';' (goto (- ((card I) + 2))))
by Th15;
theorem Th54: :: SCMPDS_7:54 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th55: :: SCMPDS_7:55 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:56 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:57 :: Showing IDV graph ... (Click the Palm Tree again to close it)
Lm4:
for I being Program-block
for a being Int_position
for i being Integer
for n being Nat holds Shift I,1 c= for-up a,i,n,I
theorem Th58: :: SCMPDS_7:58 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
I being
shiftable No-StopCode Program-block for
a being
Int_position for
i being
Integer for
n being
Nat for
X being
set st
s . (DataLoc (s . a),i) < 0 & not
DataLoc (s . a),
i in X &
n > 0 &
card I > 0 &
a <> DataLoc (s . a),
i & ( for
t being
State of
SCMPDS st ( for
x being
Int_position st
x in X holds
t . x = s . x ) &
t . a = s . a holds
(
(IExec I,t) . a = t . a &
(IExec I,t) . (DataLoc (s . a),i) = t . (DataLoc (s . a),i) &
I is_closed_on t &
I is_halting_on t & ( for
y being
Int_position st
y in X holds
(IExec I,t) . y = t . y ) ) ) holds
(
for-up a,
i,
n,
I is_closed_on s &
for-up a,
i,
n,
I is_halting_on s )
theorem :: SCMPDS_7:59 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
I being
shiftable No-StopCode Program-block for
a being
Int_position for
i being
Integer for
n being
Nat for
X being
set st
s . (DataLoc (s . a),i) < 0 & not
DataLoc (s . a),
i in X &
n > 0 &
card I > 0 &
a <> DataLoc (s . a),
i & ( for
t being
State of
SCMPDS st ( for
x being
Int_position st
x in X holds
t . x = s . x ) &
t . a = s . a holds
(
(IExec I,t) . a = t . a &
(IExec I,t) . (DataLoc (s . a),i) = t . (DataLoc (s . a),i) &
I is_closed_on t &
I is_halting_on t & ( for
y being
Int_position st
y in X holds
(IExec I,t) . y = t . y ) ) ) holds
IExec (for-up a,i,n,I),
s = IExec (for-up a,i,n,I),
(IExec (I ';' (AddTo a,i,n)),s)
:: deftheorem defines for-down SCMPDS_7:def 2 :
theorem Th60: :: SCMPDS_7:60 :: Showing IDV graph ... (Click the Palm Tree again to close it)
Lm5:
for a being Int_position
for i being Integer
for n being Nat
for I being Program-block holds card (stop (for-down a,i,n,I)) = (card I) + 4
theorem Th61: :: SCMPDS_7:61 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th62: :: SCMPDS_7:62 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
a being
Int_position for
i being
Integer for
n being
Nat for
I being
Program-block holds
(
(for-down a,i,n,I) . (inspos 0) = a,
i <=0_goto ((card I) + 3) &
(for-down a,i,n,I) . (inspos ((card I) + 1)) = AddTo a,
i,
(- n) &
(for-down a,i,n,I) . (inspos ((card I) + 2)) = goto (- ((card I) + 2)) )
Lm6:
for a being Int_position
for i being Integer
for n being Nat
for I being Program-block holds for-down a,i,n,I = (a,i <=0_goto ((card I) + 3)) ';' ((I ';' (AddTo a,i,(- n))) ';' (goto (- ((card I) + 2))))
by Th15;
theorem Th63: :: SCMPDS_7:63 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th64: :: SCMPDS_7:64 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:65 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th66: :: SCMPDS_7:66 :: Showing IDV graph ... (Click the Palm Tree again to close it)
Lm7:
for I being Program-block
for a being Int_position
for i being Integer
for n being Nat holds Shift I,1 c= for-down a,i,n,I
theorem Th67: :: SCMPDS_7:67 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
I being
shiftable No-StopCode Program-block for
a being
Int_position for
i being
Integer for
n being
Nat for
X being
set st
s . (DataLoc (s . a),i) > 0 & not
DataLoc (s . a),
i in X &
n > 0 &
card I > 0 &
a <> DataLoc (s . a),
i & ( for
t being
State of
SCMPDS st ( for
x being
Int_position st
x in X holds
t . x = s . x ) &
t . a = s . a holds
(
(IExec I,t) . a = t . a &
(IExec I,t) . (DataLoc (s . a),i) = t . (DataLoc (s . a),i) &
I is_closed_on t &
I is_halting_on t & ( for
y being
Int_position st
y in X holds
(IExec I,t) . y = t . y ) ) ) holds
(
for-down a,
i,
n,
I is_closed_on s &
for-down a,
i,
n,
I is_halting_on s )
theorem Th68: :: SCMPDS_7:68 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
I being
shiftable No-StopCode Program-block for
a being
Int_position for
i being
Integer for
n being
Nat for
X being
set st
s . (DataLoc (s . a),i) > 0 & not
DataLoc (s . a),
i in X &
n > 0 &
card I > 0 &
a <> DataLoc (s . a),
i & ( for
t being
State of
SCMPDS st ( for
x being
Int_position st
x in X holds
t . x = s . x ) &
t . a = s . a holds
(
(IExec I,t) . a = t . a &
(IExec I,t) . (DataLoc (s . a),i) = t . (DataLoc (s . a),i) &
I is_closed_on t &
I is_halting_on t & ( for
y being
Int_position st
y in X holds
(IExec I,t) . y = t . y ) ) ) holds
IExec (for-down a,i,n,I),
s = IExec (for-down a,i,n,I),
(IExec (I ';' (AddTo a,i,(- n))),s)
definition
let n be
Nat;
func sum n -> Program-block equals :: SCMPDS_7:def 3
(((GBP := 0) ';' (GBP ,2 := n)) ';' (GBP ,3 := 0)) ';' (for-down GBP ,2,1,(Load (AddTo GBP ,3,1)));
coherence
(((GBP := 0) ';' (GBP ,2 := n)) ';' (GBP ,3 := 0)) ';' (for-down GBP ,2,1,(Load (AddTo GBP ,3,1))) is Program-block
;
end;
:: deftheorem defines sum SCMPDS_7:def 3 :
theorem Th69: :: SCMPDS_7:69 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS st
s . GBP = 0 holds
(
for-down GBP ,2,1,
(Load (AddTo GBP ,3,1)) is_closed_on s &
for-down GBP ,2,1,
(Load (AddTo GBP ,3,1)) is_halting_on s )
theorem Th70: :: SCMPDS_7:70 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SCMPDS_7:71 :: Showing IDV graph ... (Click the Palm Tree again to close it)
definition
let sp,
control,
result,
pp,
pData be
Nat;
func sum sp,
control,
result,
pp,
pData -> Program-block equals :: SCMPDS_7:def 4
(((intpos sp),result := 0) ';' ((intpos pp) := pData)) ';' (for-down (intpos sp),control,1,((AddTo (intpos sp),result,(intpos pData),0) ';' (AddTo (intpos pp),0,1)));
coherence
(((intpos sp),result := 0) ';' ((intpos pp) := pData)) ';' (for-down (intpos sp),control,1,((AddTo (intpos sp),result,(intpos pData),0) ';' (AddTo (intpos pp),0,1))) is Program-block
;
end;
:: deftheorem defines sum SCMPDS_7:def 4 :
for
sp,
control,
result,
pp,
pData being
Nat holds
sum sp,
control,
result,
pp,
pData = (((intpos sp),result := 0) ';' ((intpos pp) := pData)) ';' (for-down (intpos sp),control,1,((AddTo (intpos sp),result,(intpos pData),0) ';' (AddTo (intpos pp),0,1)));
theorem Th72: :: SCMPDS_7:72 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
sp,
cv,
result,
pp,
pD being
Nat st
s . (intpos sp) > sp &
cv < result &
s . (intpos pp) = pD &
(s . (intpos sp)) + result < pp &
pp < pD &
pD < s . (intpos pD) holds
(
for-down (intpos sp),
cv,1,
((AddTo (intpos sp),result,(intpos pD),0) ';' (AddTo (intpos pp),0,1)) is_closed_on s &
for-down (intpos sp),
cv,1,
((AddTo (intpos sp),result,(intpos pD),0) ';' (AddTo (intpos pp),0,1)) is_halting_on s )
theorem Th73: :: SCMPDS_7:73 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
sp,
cv,
result,
pp,
pD being
Nat for
f being
FinSequence of
NAT st
s . (intpos sp) > sp &
cv < result &
s . (intpos pp) = pD &
(s . (intpos sp)) + result < pp &
pp < pD &
pD < s . (intpos pD) &
s . (DataLoc (s . (intpos sp)),result) = 0 &
len f = s . (DataLoc (s . (intpos sp)),cv) & ( for
k being
Nat st
k < len f holds
f . (k + 1) = s . (DataLoc (s . (intpos pD)),k) ) holds
(IExec (for-down (intpos sp),cv,1,((AddTo (intpos sp),result,(intpos pD),0) ';' (AddTo (intpos pp),0,1))),s) . (DataLoc (s . (intpos sp)),result) = Sum f
theorem :: SCMPDS_7:74 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCMPDS for
sp,
cv,
result,
pp,
pD being
Nat for
f being
FinSequence of
NAT st
s . (intpos sp) > sp &
cv < result &
(s . (intpos sp)) + result < pp &
pp < pD &
pD < s . (intpos pD) &
len f = s . (DataLoc (s . (intpos sp)),cv) & ( for
k being
Nat st
k < len f holds
f . (k + 1) = s . (DataLoc (s . (intpos pD)),k) ) holds
(IExec (sum sp,cv,result,pp,pD),s) . (DataLoc (s . (intpos sp)),result) = Sum f