:: SCM_HALT  semantic presentation
:: deftheorem Def1   defines InitClosed SCM_HALT:def 1 : 
:: deftheorem Def2   defines InitHalting SCM_HALT:def 2 : 
:: deftheorem Def3   defines keepInt0_1 SCM_HALT:def 3 : 
theorem Th1: :: SCM_HALT:1
theorem Th2: :: SCM_HALT:2
set c1 = ((intloc 0) .--> 1) +* (Start-At (insloc 0));
theorem Th3: :: SCM_HALT:3
theorem Th4: :: SCM_HALT:4
theorem Th5: :: SCM_HALT:5
theorem Th6: :: SCM_HALT:6
theorem Th7: :: SCM_HALT:7
theorem Th8: :: SCM_HALT:8
theorem Th9: :: SCM_HALT:9
theorem Th10: :: SCM_HALT:10
theorem Th11: :: SCM_HALT:11
theorem Th12: :: SCM_HALT:12
theorem Th13: :: SCM_HALT:13
theorem Th14: :: SCM_HALT:14
theorem Th15: :: SCM_HALT:15
theorem Th16: :: SCM_HALT:16
canceled; 
theorem Th17: :: SCM_HALT:17
theorem Th18: :: SCM_HALT:18
theorem Th19: :: SCM_HALT:19
theorem Th20: :: SCM_HALT:20
theorem Th21: :: SCM_HALT:21
theorem Th22: :: SCM_HALT:22
theorem Th23: :: SCM_HALT:23
theorem Th24: :: SCM_HALT:24
theorem Th25: :: SCM_HALT:25
theorem Th26: :: SCM_HALT:26
theorem Th27: :: SCM_HALT:27
theorem Th28: :: SCM_HALT:28
theorem Th29: :: SCM_HALT:29
theorem Th30: :: SCM_HALT:30
theorem Th31: :: SCM_HALT:31
theorem Th32: :: SCM_HALT:32
theorem Th33: :: SCM_HALT:33
theorem Th34: :: SCM_HALT:34
:: deftheorem Def4   defines is_closed_onInit SCM_HALT:def 4 : 
:: deftheorem Def5   defines is_halting_onInit SCM_HALT:def 5 : 
theorem Th35: :: SCM_HALT:35
theorem Th36: :: SCM_HALT:36
theorem Th37: :: SCM_HALT:37
theorem Th38: :: SCM_HALT:38
theorem Th39: :: SCM_HALT:39
theorem Th40: :: SCM_HALT:40
theorem Th41: :: SCM_HALT:41
theorem Th42: :: SCM_HALT:42
theorem Th43: :: SCM_HALT:43
theorem Th44: :: SCM_HALT:44
theorem Th45: :: SCM_HALT:45
theorem Th46: :: SCM_HALT:46
theorem Th47: :: SCM_HALT:47
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
InitHalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if=0 b4,
b2,
b3 is 
InitHalting & ( 
b1 . b4 = 0 implies  
IExec (if=0 b4,b2,b3),
b1 = (IExec b2,b1) +* (Start-At (insloc (((card b2) + (card b3)) + 3))) ) & ( 
b1 . b4 <> 0 implies  
IExec (if=0 b4,b2,b3),
b1 = (IExec b3,b1) +* (Start-At (insloc (((card b2) + (card b3)) + 3))) ) )
theorem Th48: :: SCM_HALT:48
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
InitHalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
IC (IExec (if=0 b4,b2,b3),b1) =  insloc (((card b2) + (card b3)) + 3) & ( 
b1 . b4 = 0 implies ( ( for 
b5 being   
Int-Location  holds  
(IExec (if=0 b4,b2,b3),b1) . b5 = (IExec b2,b1) . b5 ) & ( for 
b5 being   
FinSeq-Location  holds  
(IExec (if=0 b4,b2,b3),b1) . b5 = (IExec b2,b1) . b5 ) ) ) & ( 
b1 . b4 <> 0 implies ( ( for 
b5 being   
Int-Location  holds  
(IExec (if=0 b4,b2,b3),b1) . b5 = (IExec b3,b1) . b5 ) & ( for 
b5 being   
FinSeq-Location  holds  
(IExec (if=0 b4,b2,b3),b1) . b5 = (IExec b3,b1) . b5 ) ) ) )
theorem Th49: :: SCM_HALT:49
theorem Th50: :: SCM_HALT:50
theorem Th51: :: SCM_HALT:51
theorem Th52: :: SCM_HALT:52
theorem Th53: :: SCM_HALT:53
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
InitHalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if>0 b4,
b2,
b3 is 
InitHalting & ( 
b1 . b4 > 0 implies  
IExec (if>0 b4,b2,b3),
b1 = (IExec b2,b1) +* (Start-At (insloc (((card b2) + (card b3)) + 3))) ) & ( 
b1 . b4 <= 0 implies  
IExec (if>0 b4,b2,b3),
b1 = (IExec b3,b1) +* (Start-At (insloc (((card b2) + (card b3)) + 3))) ) )
theorem Th54: :: SCM_HALT:54
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
InitHalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
IC (IExec (if>0 b4,b2,b3),b1) =  insloc (((card b2) + (card b3)) + 3) & ( 
b1 . b4 > 0 implies ( ( for 
b5 being   
Int-Location  holds  
(IExec (if>0 b4,b2,b3),b1) . b5 = (IExec b2,b1) . b5 ) & ( for 
b5 being   
FinSeq-Location  holds  
(IExec (if>0 b4,b2,b3),b1) . b5 = (IExec b2,b1) . b5 ) ) ) & ( 
b1 . b4 <= 0 implies ( ( for 
b5 being   
Int-Location  holds  
(IExec (if>0 b4,b2,b3),b1) . b5 = (IExec b3,b1) . b5 ) & ( for 
b5 being   
FinSeq-Location  holds  
(IExec (if>0 b4,b2,b3),b1) . b5 = (IExec b3,b1) . b5 ) ) ) )
theorem Th55: :: SCM_HALT:55
theorem Th56: :: SCM_HALT:56
theorem Th57: :: SCM_HALT:57
theorem Th58: :: SCM_HALT:58
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
InitHalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if<0 b4,
b2,
b3 is 
InitHalting & ( 
b1 . b4 < 0 implies  
IExec (if<0 b4,b2,b3),
b1 = (IExec b2,b1) +* (Start-At (insloc ((((card b2) + (card b3)) + (card b3)) + 7))) ) & ( 
b1 . b4 >= 0 implies  
IExec (if<0 b4,b2,b3),
b1 = (IExec b3,b1) +* (Start-At (insloc ((((card b2) + (card b3)) + (card b3)) + 7))) ) )
registration
let c2, 
c3 be  
InitHalting Macro-Instruction;
let c4 be  
read-write  Int-Location ;
cluster  if=0 a3,
a1,
a2 -> non 
empty InitClosed InitHalting ;
correctness 
coherence 
 if=0 c4,c2,c3 is InitHalting;
by Th47;
cluster  if>0 a3,
a1,
a2 -> non 
empty InitClosed InitHalting ;
correctness 
coherence 
 if>0 c4,c2,c3 is InitHalting;
by Th53;
cluster  if<0 a3,
a1,
a2 -> non 
empty InitClosed InitHalting ;
correctness 
coherence 
 if<0 c4,c2,c3 is InitHalting;
by Th58;
 
end;
 
theorem Th59: :: SCM_HALT:59
theorem Th60: :: SCM_HALT:60
theorem Th61: :: SCM_HALT:61
theorem Th62: :: SCM_HALT:62
set c2 = the Instruction-Locations of SCM+FSA ;
set c3 = Int-Locations  \/ FinSeq-Locations ;
theorem Th63: :: SCM_HALT:63
theorem Th64: :: SCM_HALT:64
theorem Th65: :: SCM_HALT:65
theorem Th66: :: SCM_HALT:66
theorem Th67: :: SCM_HALT:67
theorem Th68: :: SCM_HALT:68
theorem Th69: :: SCM_HALT:69
theorem Th70: :: SCM_HALT:70
theorem Th71: :: SCM_HALT:71
theorem Th72: :: SCM_HALT:72
theorem Th73: :: SCM_HALT:73
theorem Th74: :: SCM_HALT:74
theorem Th75: :: SCM_HALT:75
theorem Th76: :: SCM_HALT:76
theorem Th77: :: SCM_HALT:77
for 
b1 being  
State of 
SCM+FSA  for 
b2 being 
good InitHalting Macro-Instruction for 
b3 being 
read-write  Int-Location   st 
b2 does_not_destroy b3 & 
b1 . b3 > 0 holds 
ex 
b4 being  
State of 
SCM+FSA ex 
b5 being  
Nat st 
( 
b4 = b1 +* (Initialized (loop (if=0 b3,(Goto (insloc 2)),(b2 ';' (SubFrom b3,(intloc 0)))))) & 
b5 = (LifeSpan (b1 +* (Initialized (if=0 b3,(Goto (insloc 2)),(b2 ';' (SubFrom b3,(intloc 0))))))) + 1 & 
((Computation b4) . b5) . b3 = (b1 . b3) - 1 & 
((Computation b4) . b5) . (intloc 0) = 1 & ( for 
b6 being 
read-write  Int-Location   st 
b6 <> b3 holds 
((Computation b4) . b5) . b6 = (IExec b2,b1) . b6 ) & ( for 
b6 being   
FinSeq-Location  holds  
((Computation b4) . b5) . b6 = (IExec b2,b1) . b6 ) &  
IC ((Computation b4) . b5) =  insloc 0 & ( for 
b6 being  
Nat  st 
b6 <= b5 holds  
IC ((Computation b4) . b6) in  dom (loop (if=0 b3,(Goto (insloc 2)),(b2 ';' (SubFrom b3,(intloc 0))))) ) )
theorem Th78: :: SCM_HALT:78
Lemma71: 
for b1 being   Int-Location 
 for b2 being  Instruction-Location of SCM+FSA 
 for b3 being  Instruction of SCM+FSA   st ( b3 = b1 =0_goto b2 or b3 =  goto b2 ) holds 
b3 <>  halt SCM+FSA 
 
by SCMFSA_2:47, SCMFSA_2:48, SCMFSA_2:124;
theorem Th79: :: SCM_HALT:79
theorem Th80: :: SCM_HALT:80
theorem Th81: :: SCM_HALT:81
theorem Th82: :: SCM_HALT:82
theorem Th83: :: SCM_HALT:83
:: deftheorem Def6   defines good SCM_HALT:def 6 :