:: 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 ) ) ) )