:: SFMASTR1 semantic presentation
:: Showing IDV graph ... (Click the Palm Trees again to close it)
:: deftheorem Def1 defines good SFMASTR1:def 1 :
theorem Th1: :: SFMASTR1:1
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
set D = Int-Locations \/ FinSeq-Locations ;
theorem Th2: :: SFMASTR1:2
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th3: :: SFMASTR1:3
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th4: :: SFMASTR1:4
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th5: :: SFMASTR1:5
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
Lm1:
for I being good Macro-Instruction
for J being Macro-Instruction
for s being State of SCM+FSA st s . (intloc 0) = 1 & I is_halting_on s & J is_halting_on IExec I,s & I is_closed_on s & J is_closed_on IExec I,s & Initialized (I ';' J) c= s holds
( IC ((Computation s) . ((LifeSpan (s +* I)) + 1)) = insloc (card I) & ((Computation s) . ((LifeSpan (s +* I)) + 1)) | (Int-Locations \/ FinSeq-Locations ) = (((Computation (s +* I)) . (LifeSpan (s +* I))) +* (Initialized J)) | (Int-Locations \/ FinSeq-Locations ) & ProgramPart (Relocated J,(card I)) c= (Computation s) . ((LifeSpan (s +* I)) + 1) & ((Computation s) . ((LifeSpan (s +* I)) + 1)) . (intloc 0) = 1 & s is halting & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is good implies (Result s) . (intloc 0) = 1 ) )
theorem Th6: :: SFMASTR1:6
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th7: :: SFMASTR1:7
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th8: :: SFMASTR1:8
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th9: :: SFMASTR1:9
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem :: SFMASTR1:10
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th11: :: SFMASTR1:11
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th12: :: SFMASTR1:12
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th13: :: SFMASTR1:13
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem :: SFMASTR1:14
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th15: :: SFMASTR1:15
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th16: :: SFMASTR1:16
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem :: SFMASTR1:17
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
definition
let d be
Int-Location ;
:: original: {redefine func {d} -> Subset of
Int-Locations ;
coherence
{d} is Subset of Int-Locations
let e be
Int-Location ;
:: original: {redefine func {d,e} -> Subset of
Int-Locations ;
coherence
{d,e} is Subset of Int-Locations
let f be
Int-Location ;
:: original: {redefine func {d,e,f} -> Subset of
Int-Locations ;
coherence
{d,e,f} is Subset of Int-Locations
let g be
Int-Location ;
:: original: {redefine func {d,e,f,g} -> Subset of
Int-Locations ;
coherence
{d,e,f,g} is Subset of Int-Locations
end;
Lm3:
for X being set st not X is finite holds
not X is empty
:: deftheorem Def2 defines RWNotIn-seq SFMASTR1:def 2 :
theorem Th18: :: SFMASTR1:18
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th19: :: SFMASTR1:19
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th20: :: SFMASTR1:20
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
:: deftheorem defines -thRWNotIn SFMASTR1:def 3 :
theorem Th21: :: SFMASTR1:21
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
theorem Th22: :: SFMASTR1:22
:: Showing IDV graph ... (Click the Palm Tree again to close it) 
:: deftheorem defines -thNotUsed SFMASTR1:def 4 :
theorem Th23: :: SFMASTR1:23
:: 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 aux = 1
-stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})));
set Nsave = 2
-ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})));
func Fib_macro N,
result -> Macro-Instruction equals :: SFMASTR1:def 5
((((((2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' ((1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))))) ';' (Times (1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))),((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))));
correctness
coherence
((((((2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' ((1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))))) ';' (Times (1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))),((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result}))))) is Macro-Instruction;
;
end;
:: deftheorem defines Fib_macro SFMASTR1:def 5 :
for
N,
result being
Int-Location holds
Fib_macro N,
result = ((((((2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := N) ';' (SubFrom result,result)) ';' ((1 -stRWNotIn {N,result}) := (intloc 0))) ';' ((1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))) := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))))) ';' (Times (1 -stRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))),((AddTo result,(1 -stRWNotIn {N,result})) ';' (swap result,(1 -stRWNotIn {N,result}))))) ';' (N := (2 -ndRWNotIn (UsedIntLoc (swap result,(1 -stRWNotIn {N,result})))));
theorem :: SFMASTR1:24
:: Showing IDV graph ... (Click the Palm Tree again to close it) 