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