:: SF_MASTR semantic presentation
theorem Th1: :: SF_MASTR:1
theorem Th2: :: SF_MASTR:2
theorem Th3: :: SF_MASTR:3
canceled;
theorem Th4: :: SF_MASTR:4
canceled;
theorem Th5: :: SF_MASTR:5
theorem Th6: :: SF_MASTR:6
theorem Th7: :: SF_MASTR:7
theorem Th8: :: SF_MASTR:8
theorem Th9: :: SF_MASTR:9
theorem Th10: :: SF_MASTR:10
theorem Th11: :: SF_MASTR:11
theorem Th12: :: SF_MASTR:12
theorem Th13: :: SF_MASTR:13
theorem Th14: :: SF_MASTR:14
theorem Th15: :: SF_MASTR:15
theorem Th16: :: SF_MASTR:16
definition
let c1 be
Instruction of
SCM+FSA ;
func UsedIntLoc c1 -> Element of
Fin Int-Locations means :
Def1:
:: SF_MASTR:def 1
ex
b1,
b2 being
Int-Location st
( (
a1 = b1 := b2 or
a1 = AddTo b1,
b2 or
a1 = SubFrom b1,
b2 or
a1 = MultBy b1,
b2 or
a1 = Divide b1,
b2 ) &
a2 = {b1,b2} )
if InsCode a1 in {1,2,3,4,5}ex
b1 being
Int-Location ex
b2 being
Instruction-Location of
SCM+FSA st
( (
a1 = b1 =0_goto b2 or
a1 = b1 >0_goto b2 ) &
a2 = {b1} )
if (
InsCode a1 = 7 or
InsCode a1 = 8 )
ex
b1,
b2 being
Int-Location ex
b3 being
FinSeq-Location st
( (
a1 = b2 := b3,
b1 or
a1 = b3,
b1 := b2 ) &
a2 = {b1,b2} )
if (
InsCode a1 = 9 or
InsCode a1 = 10 )
ex
b1 being
Int-Location ex
b2 being
FinSeq-Location st
( (
a1 = b1 :=len b2 or
a1 = b2 :=<0,...,0> b1 ) &
a2 = {b1} )
if (
InsCode a1 = 11 or
InsCode a1 = 12 )
otherwise a2 = {} ;
existence
( ( InsCode c1 in {1,2,3,4,5} implies ex b1 being Element of Fin Int-Locations ex b2, b3 being Int-Location st
( ( c1 = b2 := b3 or c1 = AddTo b2,b3 or c1 = SubFrom b2,b3 or c1 = MultBy b2,b3 or c1 = Divide b2,b3 ) & b1 = {b2,b3} ) ) & ( ( InsCode c1 = 7 or InsCode c1 = 8 ) implies ex b1 being Element of Fin Int-Locations ex b2 being Int-Location ex b3 being Instruction-Location of SCM+FSA st
( ( c1 = b2 =0_goto b3 or c1 = b2 >0_goto b3 ) & b1 = {b2} ) ) & ( ( InsCode c1 = 9 or InsCode c1 = 10 ) implies ex b1 being Element of Fin Int-Locations ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b2,b3} ) ) & ( ( InsCode c1 = 11 or InsCode c1 = 12 ) implies ex b1 being Element of Fin Int-Locations ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b2} ) ) & ( InsCode c1 in {1,2,3,4,5} or InsCode c1 = 7 or InsCode c1 = 8 or InsCode c1 = 9 or InsCode c1 = 10 or InsCode c1 = 11 or InsCode c1 = 12 or ex b1 being Element of Fin Int-Locations st b1 = {} ) )
uniqueness
for b1, b2 being Element of Fin Int-Locations holds
( ( InsCode c1 in {1,2,3,4,5} & ex b3, b4 being Int-Location st
( ( c1 = b3 := b4 or c1 = AddTo b3,b4 or c1 = SubFrom b3,b4 or c1 = MultBy b3,b4 or c1 = Divide b3,b4 ) & b1 = {b3,b4} ) & ex b3, b4 being Int-Location st
( ( c1 = b3 := b4 or c1 = AddTo b3,b4 or c1 = SubFrom b3,b4 or c1 = MultBy b3,b4 or c1 = Divide b3,b4 ) & b2 = {b3,b4} ) implies b1 = b2 ) & ( ( InsCode c1 = 7 or InsCode c1 = 8 ) & ex b3 being Int-Location ex b4 being Instruction-Location of SCM+FSA st
( ( c1 = b3 =0_goto b4 or c1 = b3 >0_goto b4 ) & b1 = {b3} ) & ex b3 being Int-Location ex b4 being Instruction-Location of SCM+FSA st
( ( c1 = b3 =0_goto b4 or c1 = b3 >0_goto b4 ) & b2 = {b3} ) implies b1 = b2 ) & ( ( InsCode c1 = 9 or InsCode c1 = 10 ) & ex b3, b4 being Int-Location ex b5 being FinSeq-Location st
( ( c1 = b4 := b5,b3 or c1 = b5,b3 := b4 ) & b1 = {b3,b4} ) & ex b3, b4 being Int-Location ex b5 being FinSeq-Location st
( ( c1 = b4 := b5,b3 or c1 = b5,b3 := b4 ) & b2 = {b3,b4} ) implies b1 = b2 ) & ( ( InsCode c1 = 11 or InsCode c1 = 12 ) & ex b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 :=len b4 or c1 = b4 :=<0,...,0> b3 ) & b1 = {b3} ) & ex b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 :=len b4 or c1 = b4 :=<0,...,0> b3 ) & b2 = {b3} ) implies b1 = b2 ) & ( InsCode c1 in {1,2,3,4,5} or InsCode c1 = 7 or InsCode c1 = 8 or InsCode c1 = 9 or InsCode c1 = 10 or InsCode c1 = 11 or InsCode c1 = 12 or not b1 = {} or not b2 = {} or b1 = b2 ) )
consistency
for b1 being Element of Fin Int-Locations holds
( ( InsCode c1 in {1,2,3,4,5} & ( InsCode c1 = 7 or InsCode c1 = 8 ) implies ( ex b2, b3 being Int-Location st
( ( c1 = b2 := b3 or c1 = AddTo b2,b3 or c1 = SubFrom b2,b3 or c1 = MultBy b2,b3 or c1 = Divide b2,b3 ) & b1 = {b2,b3} ) iff ex b2 being Int-Location ex b3 being Instruction-Location of SCM+FSA st
( ( c1 = b2 =0_goto b3 or c1 = b2 >0_goto b3 ) & b1 = {b2} ) ) ) & ( InsCode c1 in {1,2,3,4,5} & ( InsCode c1 = 9 or InsCode c1 = 10 ) implies ( ex b2, b3 being Int-Location st
( ( c1 = b2 := b3 or c1 = AddTo b2,b3 or c1 = SubFrom b2,b3 or c1 = MultBy b2,b3 or c1 = Divide b2,b3 ) & b1 = {b2,b3} ) iff ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b2,b3} ) ) ) & ( InsCode c1 in {1,2,3,4,5} & ( InsCode c1 = 11 or InsCode c1 = 12 ) implies ( ex b2, b3 being Int-Location st
( ( c1 = b2 := b3 or c1 = AddTo b2,b3 or c1 = SubFrom b2,b3 or c1 = MultBy b2,b3 or c1 = Divide b2,b3 ) & b1 = {b2,b3} ) iff ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b2} ) ) ) & ( ( InsCode c1 = 7 or InsCode c1 = 8 ) & ( InsCode c1 = 9 or InsCode c1 = 10 ) implies ( ex b2 being Int-Location ex b3 being Instruction-Location of SCM+FSA st
( ( c1 = b2 =0_goto b3 or c1 = b2 >0_goto b3 ) & b1 = {b2} ) iff ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b2,b3} ) ) ) & ( ( InsCode c1 = 7 or InsCode c1 = 8 ) & ( InsCode c1 = 11 or InsCode c1 = 12 ) implies ( ex b2 being Int-Location ex b3 being Instruction-Location of SCM+FSA st
( ( c1 = b2 =0_goto b3 or c1 = b2 >0_goto b3 ) & b1 = {b2} ) iff ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b2} ) ) ) & ( ( InsCode c1 = 9 or InsCode c1 = 10 ) & ( InsCode c1 = 11 or InsCode c1 = 12 ) implies ( ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b2,b3} ) iff ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b2} ) ) ) )
by ENUMSET1:def 3;
end;
:: deftheorem Def1 defines UsedIntLoc SF_MASTR:def 1 :
for
b1 being
Instruction of
SCM+FSA for
b2 being
Element of
Fin Int-Locations holds
( (
InsCode b1 in {1,2,3,4,5} implies (
b2 = UsedIntLoc b1 iff ex
b3,
b4 being
Int-Location st
( (
b1 = b3 := b4 or
b1 = AddTo b3,
b4 or
b1 = SubFrom b3,
b4 or
b1 = MultBy b3,
b4 or
b1 = Divide b3,
b4 ) &
b2 = {b3,b4} ) ) ) & ( (
InsCode b1 = 7 or
InsCode b1 = 8 ) implies (
b2 = UsedIntLoc b1 iff ex
b3 being
Int-Location ex
b4 being
Instruction-Location of
SCM+FSA st
( (
b1 = b3 =0_goto b4 or
b1 = b3 >0_goto b4 ) &
b2 = {b3} ) ) ) & ( (
InsCode b1 = 9 or
InsCode b1 = 10 ) implies (
b2 = UsedIntLoc b1 iff ex
b3,
b4 being
Int-Location ex
b5 being
FinSeq-Location st
( (
b1 = b4 := b5,
b3 or
b1 = b5,
b3 := b4 ) &
b2 = {b3,b4} ) ) ) & ( (
InsCode b1 = 11 or
InsCode b1 = 12 ) implies (
b2 = UsedIntLoc b1 iff ex
b3 being
Int-Location ex
b4 being
FinSeq-Location st
( (
b1 = b3 :=len b4 or
b1 = b4 :=<0,...,0> b3 ) &
b2 = {b3} ) ) ) & (
InsCode b1 in {1,2,3,4,5} or
InsCode b1 = 7 or
InsCode b1 = 8 or
InsCode b1 = 9 or
InsCode b1 = 10 or
InsCode b1 = 11 or
InsCode b1 = 12 or (
b2 = UsedIntLoc b1 iff
b2 = {} ) ) );
theorem Th17: :: SF_MASTR:17
theorem Th18: :: SF_MASTR:18
theorem Th19: :: SF_MASTR:19
theorem Th20: :: SF_MASTR:20
theorem Th21: :: SF_MASTR:21
theorem Th22: :: SF_MASTR:22
:: deftheorem Def2 defines UsedIntLoc SF_MASTR:def 2 :
theorem Th23: :: SF_MASTR:23
theorem Th24: :: SF_MASTR:24
theorem Th25: :: SF_MASTR:25
theorem Th26: :: SF_MASTR:26
theorem Th27: :: SF_MASTR:27
theorem Th28: :: SF_MASTR:28
theorem Th29: :: SF_MASTR:29
theorem Th30: :: SF_MASTR:30
theorem Th31: :: SF_MASTR:31
theorem Th32: :: SF_MASTR:32
theorem Th33: :: SF_MASTR:33
theorem Th34: :: SF_MASTR:34
theorem Th35: :: SF_MASTR:35
definition
let c1 be
Instruction of
SCM+FSA ;
func UsedInt*Loc c1 -> Element of
Fin FinSeq-Locations means :
Def3:
:: SF_MASTR:def 3
ex
b1,
b2 being
Int-Location ex
b3 being
FinSeq-Location st
( (
a1 = b2 := b3,
b1 or
a1 = b3,
b1 := b2 ) &
a2 = {b3} )
if (
InsCode a1 = 9 or
InsCode a1 = 10 )
ex
b1 being
Int-Location ex
b2 being
FinSeq-Location st
( (
a1 = b1 :=len b2 or
a1 = b2 :=<0,...,0> b1 ) &
a2 = {b2} )
if (
InsCode a1 = 11 or
InsCode a1 = 12 )
otherwise a2 = {} ;
existence
( ( ( InsCode c1 = 9 or InsCode c1 = 10 ) implies ex b1 being Element of Fin FinSeq-Locations ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b4} ) ) & ( ( InsCode c1 = 11 or InsCode c1 = 12 ) implies ex b1 being Element of Fin FinSeq-Locations ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b3} ) ) & ( InsCode c1 = 9 or InsCode c1 = 10 or InsCode c1 = 11 or InsCode c1 = 12 or ex b1 being Element of Fin FinSeq-Locations st b1 = {} ) )
uniqueness
for b1, b2 being Element of Fin FinSeq-Locations holds
( ( ( InsCode c1 = 9 or InsCode c1 = 10 ) & ex b3, b4 being Int-Location ex b5 being FinSeq-Location st
( ( c1 = b4 := b5,b3 or c1 = b5,b3 := b4 ) & b1 = {b5} ) & ex b3, b4 being Int-Location ex b5 being FinSeq-Location st
( ( c1 = b4 := b5,b3 or c1 = b5,b3 := b4 ) & b2 = {b5} ) implies b1 = b2 ) & ( ( InsCode c1 = 11 or InsCode c1 = 12 ) & ex b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 :=len b4 or c1 = b4 :=<0,...,0> b3 ) & b1 = {b4} ) & ex b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 :=len b4 or c1 = b4 :=<0,...,0> b3 ) & b2 = {b4} ) implies b1 = b2 ) & ( InsCode c1 = 9 or InsCode c1 = 10 or InsCode c1 = 11 or InsCode c1 = 12 or not b1 = {} or not b2 = {} or b1 = b2 ) )
consistency
for b1 being Element of Fin FinSeq-Locations st ( InsCode c1 = 9 or InsCode c1 = 10 ) & ( InsCode c1 = 11 or InsCode c1 = 12 ) holds
( ex b2, b3 being Int-Location ex b4 being FinSeq-Location st
( ( c1 = b3 := b4,b2 or c1 = b4,b2 := b3 ) & b1 = {b4} ) iff ex b2 being Int-Location ex b3 being FinSeq-Location st
( ( c1 = b2 :=len b3 or c1 = b3 :=<0,...,0> b2 ) & b1 = {b3} ) )
;
end;
:: deftheorem Def3 defines UsedInt*Loc SF_MASTR:def 3 :
theorem Th36: :: SF_MASTR:36
theorem Th37: :: SF_MASTR:37
theorem Th38: :: SF_MASTR:38
:: deftheorem Def4 defines UsedInt*Loc SF_MASTR:def 4 :
theorem Th39: :: SF_MASTR:39
theorem Th40: :: SF_MASTR:40
theorem Th41: :: SF_MASTR:41
theorem Th42: :: SF_MASTR:42
theorem Th43: :: SF_MASTR:43
theorem Th44: :: SF_MASTR:44
theorem Th45: :: SF_MASTR:45
theorem Th46: :: SF_MASTR:46
theorem Th47: :: SF_MASTR:47
theorem Th48: :: SF_MASTR:48
theorem Th49: :: SF_MASTR:49
theorem Th50: :: SF_MASTR:50
theorem Th51: :: SF_MASTR:51
:: deftheorem Def5 defines read-only SF_MASTR:def 5 :
:: deftheorem Def6 defines FirstNotIn SF_MASTR:def 6 :
theorem Th52: :: SF_MASTR:52
theorem Th53: :: SF_MASTR:53
:: deftheorem Def7 defines FirstNotUsed SF_MASTR:def 7 :
theorem Th54: :: SF_MASTR:54
theorem Th55: :: SF_MASTR:55
theorem Th56: :: SF_MASTR:56
theorem Th57: :: SF_MASTR:57
theorem Th58: :: SF_MASTR:58
:: deftheorem Def8 defines First*NotIn SF_MASTR:def 8 :
theorem Th59: :: SF_MASTR:59
theorem Th60: :: SF_MASTR:60
:: deftheorem Def9 defines First*NotUsed SF_MASTR:def 9 :
theorem Th61: :: SF_MASTR:61
theorem Th62: :: SF_MASTR:62
theorem Th63: :: SF_MASTR:63
theorem Th64: :: SF_MASTR:64
theorem Th65: :: SF_MASTR:65
theorem Th66: :: SF_MASTR:66
theorem Th67: :: SF_MASTR:67
theorem Th68: :: SF_MASTR:68
theorem Th69: :: SF_MASTR:69
theorem Th70: :: SF_MASTR:70
theorem Th71: :: SF_MASTR:71
theorem Th72: :: SF_MASTR:72
theorem Th73: :: SF_MASTR:73