:: SCMFSA8B  semantic presentation
set c1 = the Instruction-Locations of SCM+FSA ;
set c2 = Int-Locations  \/ FinSeq-Locations ;
Lemma1: 
for b1 being  Instruction-Location of SCM+FSA   holds  goto b1 <>  halt SCM+FSA 
 
by SCMFSA_2:47, SCMFSA_2:124;
Lemma2: 
for b1 being   Int-Location 
 for b2 being  Instruction-Location of SCM+FSA   holds b1 =0_goto b2 <>  halt SCM+FSA 
 
by SCMFSA_2:48, SCMFSA_2:124;
Lemma3: 
for b1 being   Int-Location 
 for b2 being  Instruction-Location of SCM+FSA   holds b1 >0_goto b2 <>  halt SCM+FSA 
 
by SCMFSA_2:49, SCMFSA_2:124;
Lemma4: 
for b1, b2 being  Macro-Instruction holds   ProgramPart (Relocated b2,(card b1)) c= b1 ';' b2
 
theorem Th1: :: SCMFSA8B:1
theorem Th2: :: SCMFSA8B:2
theorem Th3: :: SCMFSA8B:3
theorem Th4: :: SCMFSA8B:4
theorem Th5: :: SCMFSA8B:5
theorem Th6: :: SCMFSA8B:6
theorem Th7: :: SCMFSA8B:7
theorem Th8: :: SCMFSA8B:8
theorem Th9: :: SCMFSA8B:9
theorem Th10: :: SCMFSA8B:10
theorem Th11: :: SCMFSA8B:11
theorem Th12: :: SCMFSA8B:12
theorem Th13: :: SCMFSA8B:13
:: deftheorem Def1   defines if=0 SCMFSA8B:def 1 : 
:: deftheorem Def2   defines if>0 SCMFSA8B:def 2 : 
definition
let c3 be    
Int-Location ;
let c4, 
c5 be   
Macro-Instruction;
func  if<0 c1,
c2,
c3 ->   Macro-Instruction equals :: SCMFSA8B:def 3
 if=0 a1,
a3,
(if>0 a1,a3,a2);
coherence 
 if=0 c3,c5,(if>0 c3,c5,c4) is   Macro-Instruction
 ;
 
end;
 
:: deftheorem Def3   defines if<0 SCMFSA8B:def 3 : 
Lemma18: 
for b1 being   Int-Location 
 for b2, b3 being  Macro-Instruction holds 
 (  insloc 0 in  dom (if=0 b1,b2,b3) &  insloc 1 in  dom (if=0 b1,b2,b3) &  insloc 0 in  dom (if>0 b1,b2,b3) &  insloc 1 in  dom (if>0 b1,b2,b3) )
 
Lemma19: 
for b1 being   Int-Location 
 for b2, b3 being  Macro-Instruction holds 
 ( (if=0 b1,b2,b3) . (insloc 0) = b1 =0_goto (insloc ((card b3) + 3)) & (if=0 b1,b2,b3) . (insloc 1) =  goto (insloc 2) & (if>0 b1,b2,b3) . (insloc 0) = b1 >0_goto (insloc ((card b3) + 3)) & (if>0 b1,b2,b3) . (insloc 1) =  goto (insloc 2) )
 
theorem Th14: :: SCMFSA8B:14
theorem Th15: :: SCMFSA8B:15
theorem Th16: :: SCMFSA8B:16
theorem Th17: :: SCMFSA8B:17
theorem Th18: :: SCMFSA8B:18
theorem Th19: :: SCMFSA8B:19
theorem Th20: :: SCMFSA8B:20
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if=0 b4,
b2,
b3 is 
parahalting & ( 
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 Th21: :: SCMFSA8B:21
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting 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 Th22: :: SCMFSA8B:22
theorem Th23: :: SCMFSA8B:23
theorem Th24: :: SCMFSA8B:24
theorem Th25: :: SCMFSA8B:25
theorem Th26: :: SCMFSA8B:26
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if>0 b4,
b2,
b3 is 
parahalting & ( 
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 Th27: :: SCMFSA8B:27
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting 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 Th28: :: SCMFSA8B:28
theorem Th29: :: SCMFSA8B:29
theorem Th30: :: SCMFSA8B:30
theorem Th31: :: SCMFSA8B:31
theorem Th32: :: SCMFSA8B:32
theorem Th33: :: SCMFSA8B:33
theorem Th34: :: SCMFSA8B:34
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting Macro-Instruction for 
b4 being 
read-write  Int-Location  holds 
 (  
if<0 b4,
b2,
b3 is 
parahalting & ( 
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))) ) )
definition
let c3, 
c4 be    
Int-Location ;
let c5, 
c6 be   
Macro-Instruction;
func  if=0 c1,
c2,
c3,
c4 ->   Macro-Instruction equals :: SCMFSA8B:def 4
(SubFrom a1,a2) ';' (if=0 a1,a3,a4);
coherence 
(SubFrom c3,c4) ';' (if=0 c3,c5,c6) is   Macro-Instruction
 ;
func  if>0 c1,
c2,
c3,
c4 ->   Macro-Instruction equals :: SCMFSA8B:def 5
(SubFrom a1,a2) ';' (if>0 a1,a3,a4);
coherence 
(SubFrom c3,c4) ';' (if>0 c3,c5,c6) is   Macro-Instruction
 ;
 
end;
 
:: deftheorem Def4   defines if=0 SCMFSA8B:def 4 : 
:: deftheorem Def5   defines if>0 SCMFSA8B:def 5 : 
registration
let c3, 
c4 be  
parahalting Macro-Instruction;
let c5, 
c6 be  
read-write  Int-Location ;
cluster  if=0 a3,
a4,
a1,
a2 -> parahalting ;
correctness 
coherence 
 if=0 c5,c6,c3,c4 is parahalting;
;
cluster  if>0 a3,
a4,
a1,
a2 -> parahalting ;
correctness 
coherence 
 if>0 c5,c6,c3,c4 is parahalting;
;
 
end;
 
theorem Th35: :: SCMFSA8B:35
theorem Th36: :: SCMFSA8B:36
theorem Th37: :: SCMFSA8B:37
theorem Th38: :: SCMFSA8B:38
theorem Th39: :: SCMFSA8B:39
theorem Th40: :: SCMFSA8B:40
theorem Th41: :: SCMFSA8B:41
theorem Th42: :: SCMFSA8B:42
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting Macro-Instruction for 
b4, 
b5 being 
read-write  Int-Location   st 
b2 does_not_refer b4 & 
b3 does_not_refer b4 holds 
(  
IC (IExec (if=0 b4,b5,b2,b3),b1) =  insloc (((card b2) + (card b3)) + 5) & ( 
b1 . b4 = b1 . b5 implies ( ( for 
b6 being   
Int-Location   st 
b4 <> b6 holds 
(IExec (if=0 b4,b5,b2,b3),b1) . b6 = (IExec b2,b1) . b6 ) & ( for 
b6 being   
FinSeq-Location  holds  
(IExec (if=0 b4,b5,b2,b3),b1) . b6 = (IExec b2,b1) . b6 ) ) ) & ( 
b1 . b4 <> b1 . b5 implies ( ( for 
b6 being   
Int-Location   st 
b4 <> b6 holds 
(IExec (if=0 b4,b5,b2,b3),b1) . b6 = (IExec b3,b1) . b6 ) & ( for 
b6 being   
FinSeq-Location  holds  
(IExec (if=0 b4,b5,b2,b3),b1) . b6 = (IExec b3,b1) . b6 ) ) ) )
theorem Th43: :: SCMFSA8B:43
for 
b1 being  
State of 
SCM+FSA  for 
b2, 
b3 being 
parahalting Macro-Instruction for 
b4, 
b5 being 
read-write  Int-Location   st 
b2 does_not_refer b4 & 
b3 does_not_refer b4 holds 
(  
IC (IExec (if>0 b4,b5,b2,b3),b1) =  insloc (((card b2) + (card b3)) + 5) & ( 
b1 . b4 > b1 . b5 implies ( ( for 
b6 being   
Int-Location   st 
b4 <> b6 holds 
(IExec (if>0 b4,b5,b2,b3),b1) . b6 = (IExec b2,b1) . b6 ) & ( for 
b6 being   
FinSeq-Location  holds  
(IExec (if>0 b4,b5,b2,b3),b1) . b6 = (IExec b2,b1) . b6 ) ) ) & ( 
b1 . b4 <= b1 . b5 implies ( ( for 
b6 being   
Int-Location   st 
b4 <> b6 holds 
(IExec (if>0 b4,b5,b2,b3),b1) . b6 = (IExec b3,b1) . b6 ) & ( for 
b6 being   
FinSeq-Location  holds  
(IExec (if>0 b4,b5,b2,b3),b1) . b6 = (IExec b3,b1) . b6 ) ) ) )