:: SFMASTR2 semantic presentation :: Showing IDV graph ... (Click the Palm Trees again to close it)
set D = Int-Locations \/ FinSeq-Locations ;
set SAt = Start-At (insloc 0);
set IL = the Instruction-Locations of SCM+FSA ;
theorem Th1: :: SFMASTR2:1 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SFMASTR2:2 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th3: :: SFMASTR2:3 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th4: :: SFMASTR2:4 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th5: :: SFMASTR2:5 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th6: :: SFMASTR2:6 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th7: :: SFMASTR2:7 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem defines times SFMASTR2:def 1 :
theorem Th8: :: SFMASTR2:8 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SFMASTR2:9 :: Showing IDV graph ... (Click the Palm Tree again to close it)
definition
let s be
State of
SCM+FSA ;
let I be
Macro-Instruction;
let a be
Int-Location ;
set aux = 1
-stRWNotIn ({a} \/ (UsedIntLoc I));
func StepTimes a,
I,
s -> Function of
NAT ,
product the
Object-Kind of
SCM+FSA equals :: SFMASTR2:def 2
StepWhile>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),
(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0))),
(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialize s));
correctness
coherence
StepWhile>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0))),(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialize s)) is Function of NAT , product the Object-Kind of SCM+FSA ;
;
end;
:: deftheorem defines StepTimes SFMASTR2:def 2 :
theorem Th10: :: SFMASTR2:10 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th11: :: SFMASTR2:11 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th12: :: SFMASTR2:12 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCM+FSA for
a being
Int-Location for
J being
good Macro-Instruction for
k being
Nat st
((StepTimes a,J,s) . k) . (intloc 0) = 1 &
J is_closed_on (StepTimes a,J,s) . k &
J is_halting_on (StepTimes a,J,s) . k holds
(
((StepTimes a,J,s) . (k + 1)) . (intloc 0) = 1 & (
((StepTimes a,J,s) . k) . (1 -stRWNotIn ({a} \/ (UsedIntLoc J))) > 0 implies
((StepTimes a,J,s) . (k + 1)) . (1 -stRWNotIn ({a} \/ (UsedIntLoc J))) = (((StepTimes a,J,s) . k) . (1 -stRWNotIn ({a} \/ (UsedIntLoc J)))) - 1 ) )
theorem Th13: :: SFMASTR2:13 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SFMASTR2:14 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem Def3 defines ProperTimesBody SFMASTR2:def 3 :
theorem Th15: :: SFMASTR2:15 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th16: :: SFMASTR2:16 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th17: :: SFMASTR2:17 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th18: :: SFMASTR2:18 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th19: :: SFMASTR2:19 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th20: :: SFMASTR2:20 :: Showing IDV graph ... (Click the Palm Tree again to close it)
for
s being
State of
SCM+FSA for
a being
Int-Location for
J being
good Macro-Instruction for
k being
Nat st
((StepTimes a,J,s) . k) . (intloc 0) = 1 &
J is_halting_on Initialize ((StepTimes a,J,s) . k) &
J is_closed_on Initialize ((StepTimes a,J,s) . k) &
((StepTimes a,J,s) . k) . (1 -stRWNotIn ({a} \/ (UsedIntLoc J))) > 0 holds
((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
theorem Th21: :: SFMASTR2:21 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SFMASTR2:22 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th23: :: SFMASTR2:23 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th24: :: SFMASTR2:24 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem defines triv-times SFMASTR2:def 4 :
theorem :: SFMASTR2:25 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: SFMASTR2:26 :: Showing IDV graph ... (Click the Palm Tree again to close it)
definition
let N,
result be
Int-Location ;
set next = 1
-stRWNotIn {N,result};
set Nsave = 1
-stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))));
func Fib-macro N,
result -> Macro-Instruction equals :: SFMASTR2:def 5
(((((1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))));
correctness
coherence
(((((1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result})))))) is Macro-Instruction;
;
end;
:: deftheorem defines Fib-macro SFMASTR2:def 5 :
for
N,
result being
Int-Location holds
Fib-macro N,
result = (((((1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (1 -stNotUsed (times N,((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))));
theorem :: SFMASTR2:27 :: Showing IDV graph ... (Click the Palm Tree again to close it)