:: SCMFSA_1 semantic presentation
:: deftheorem Def1 defines SCM+FSA-Data-Loc SCMFSA_1:def 1 :
:: deftheorem Def2 defines SCM+FSA-Data*-Loc SCMFSA_1:def 2 :
:: deftheorem Def3 defines SCM+FSA-Instr-Loc SCMFSA_1:def 3 :
definition
func SCM+FSA-Instr -> Subset of
[:(Segm 13),(((union {INT ,(INT * )}) \/ INT ) * ):] equals :: SCMFSA_1:def 4
(SCM-Instr \/ { [b1,<*b2,b4,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {9,10} } ) \/ { [b1,<*b2,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {11,12} } ;
coherence
(SCM-Instr \/ { [b1,<*b2,b4,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {9,10} } ) \/ { [b1,<*b2,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {11,12} } is Subset of [:(Segm 13),(((union {INT ,(INT * )}) \/ INT ) * ):]
end;
:: deftheorem Def4 defines SCM+FSA-Instr SCMFSA_1:def 4 :
SCM+FSA-Instr = (SCM-Instr \/ { [b1,<*b2,b4,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {9,10} } ) \/ { [b1,<*b2,b3*>] where B is Element of Segm 13, B is Element of SCM+FSA-Data-Loc , B is Element of SCM+FSA-Data*-Loc : b1 in {11,12} } ;
theorem Th1: :: SCMFSA_1:1
canceled;
theorem Th2: :: SCMFSA_1:2
:: deftheorem Def5 defines InsCode SCMFSA_1:def 5 :
theorem Th3: :: SCMFSA_1:3
theorem Th4: :: SCMFSA_1:4
:: deftheorem Def6 defines SCM+FSA-OK SCMFSA_1:def 6 :
Lemma3:
dom ((SCM-Instr .--> SCM+FSA-Instr ) * (SCM-OK | SCM-Instr-Loc )) c= SCM-Instr-Loc
Lemma4:
rng (SCM-OK | SCM-Instr-Loc ) c= {SCM-Instr }
Lemma5:
SCM-Instr-Loc c= dom ((SCM-Instr .--> SCM+FSA-Instr ) * (SCM-OK | SCM-Instr-Loc ))
theorem Th5: :: SCMFSA_1:5
canceled;
theorem Th6: :: SCMFSA_1:6
theorem Th7: :: SCMFSA_1:7
theorem Th8: :: SCMFSA_1:8
theorem Th9: :: SCMFSA_1:9
theorem Th10: :: SCMFSA_1:10
theorem Th11: :: SCMFSA_1:11
theorem Th12: :: SCMFSA_1:12
theorem Th13: :: SCMFSA_1:13
theorem Th14: :: SCMFSA_1:14
theorem Th15: :: SCMFSA_1:15
theorem Th16: :: SCMFSA_1:16
theorem Th17: :: SCMFSA_1:17
theorem Th18: :: SCMFSA_1:18
theorem Th19: :: SCMFSA_1:19
:: deftheorem Def7 defines SCM+FSA-Chg SCMFSA_1:def 7 :
:: deftheorem Def8 defines SCM+FSA-Chg SCMFSA_1:def 8 :
:: deftheorem Def9 defines SCM+FSA-Chg SCMFSA_1:def 9 :
definition
let c1 be
Element of
SCM+FSA-Instr ;
given c2 being
Element of
SCM+FSA-Data-Loc ,
c3 being
Element of
SCM+FSA-Data*-Loc ,
c4 being
Element of
SCM+FSA-Data-Loc ,
c5 being
Element of
Segm 13
such that E14:
c1 = [c5,<*c2,c3,c4*>]
;
func c1 int_addr1 -> Element of
SCM+FSA-Data-Loc means :: SCMFSA_1:def 10
ex
b1 being
Element of
SCM+FSA-Data-Loc ex
b2 being
Element of
SCM+FSA-Data*-Loc ex
b3 being
Element of
SCM+FSA-Data-Loc st
(
<*b1,b2,b3*> = a1 `2 &
a2 = b1 );
existence
ex b1, b2 being Element of SCM+FSA-Data-Loc ex b3 being Element of SCM+FSA-Data*-Loc ex b4 being Element of SCM+FSA-Data-Loc st
( <*b2,b3,b4*> = c1 `2 & b1 = b2 )
uniqueness
for b1, b2 being Element of SCM+FSA-Data-Loc st ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b1 = b3 ) & ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b2 = b3 ) holds
b1 = b2
func c1 int_addr2 -> Element of
SCM+FSA-Data-Loc means :: SCMFSA_1:def 11
ex
b1 being
Element of
SCM+FSA-Data-Loc ex
b2 being
Element of
SCM+FSA-Data*-Loc ex
b3 being
Element of
SCM+FSA-Data-Loc st
(
<*b1,b2,b3*> = a1 `2 &
a2 = b3 );
existence
ex b1, b2 being Element of SCM+FSA-Data-Loc ex b3 being Element of SCM+FSA-Data*-Loc ex b4 being Element of SCM+FSA-Data-Loc st
( <*b2,b3,b4*> = c1 `2 & b1 = b4 )
correctness
uniqueness
for b1, b2 being Element of SCM+FSA-Data-Loc st ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b1 = b5 ) & ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b2 = b5 ) holds
b1 = b2;
func c1 coll_addr1 -> Element of
SCM+FSA-Data*-Loc means :: SCMFSA_1:def 12
ex
b1 being
Element of
SCM+FSA-Data-Loc ex
b2 being
Element of
SCM+FSA-Data*-Loc ex
b3 being
Element of
SCM+FSA-Data-Loc st
(
<*b1,b2,b3*> = a1 `2 &
a2 = b2 );
existence
ex b1 being Element of SCM+FSA-Data*-Loc ex b2 being Element of SCM+FSA-Data-Loc ex b3 being Element of SCM+FSA-Data*-Loc ex b4 being Element of SCM+FSA-Data-Loc st
( <*b2,b3,b4*> = c1 `2 & b1 = b3 )
correctness
uniqueness
for b1, b2 being Element of SCM+FSA-Data*-Loc st ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b1 = b4 ) & ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc ex b5 being Element of SCM+FSA-Data-Loc st
( <*b3,b4,b5*> = c1 `2 & b2 = b4 ) holds
b1 = b2;
end;
:: deftheorem Def10 defines int_addr1 SCMFSA_1:def 10 :
:: deftheorem Def11 defines int_addr2 SCMFSA_1:def 11 :
:: deftheorem Def12 defines coll_addr1 SCMFSA_1:def 12 :
definition
let c1 be
Element of
SCM+FSA-Instr ;
given c2 being
Element of
SCM+FSA-Data-Loc ,
c3 being
Element of
SCM+FSA-Data*-Loc ,
c4 being
Element of
Segm 13
such that E14:
c1 = [c4,<*c2,c3*>]
;
func c1 int_addr3 -> Element of
SCM+FSA-Data-Loc means :: SCMFSA_1:def 13
ex
b1 being
Element of
SCM+FSA-Data-Loc ex
b2 being
Element of
SCM+FSA-Data*-Loc st
(
<*b1,b2*> = a1 `2 &
a2 = b1 );
existence
ex b1, b2 being Element of SCM+FSA-Data-Loc ex b3 being Element of SCM+FSA-Data*-Loc st
( <*b2,b3*> = c1 `2 & b1 = b2 )
uniqueness
for b1, b2 being Element of SCM+FSA-Data-Loc st ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc st
( <*b3,b4*> = c1 `2 & b1 = b3 ) & ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc st
( <*b3,b4*> = c1 `2 & b2 = b3 ) holds
b1 = b2
func c1 coll_addr2 -> Element of
SCM+FSA-Data*-Loc means :: SCMFSA_1:def 14
ex
b1 being
Element of
SCM+FSA-Data-Loc ex
b2 being
Element of
SCM+FSA-Data*-Loc st
(
<*b1,b2*> = a1 `2 &
a2 = b2 );
existence
ex b1 being Element of SCM+FSA-Data*-Loc ex b2 being Element of SCM+FSA-Data-Loc ex b3 being Element of SCM+FSA-Data*-Loc st
( <*b2,b3*> = c1 `2 & b1 = b3 )
correctness
uniqueness
for b1, b2 being Element of SCM+FSA-Data*-Loc st ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc st
( <*b3,b4*> = c1 `2 & b1 = b4 ) & ex b3 being Element of SCM+FSA-Data-Loc ex b4 being Element of SCM+FSA-Data*-Loc st
( <*b3,b4*> = c1 `2 & b2 = b4 ) holds
b1 = b2;
end;
:: deftheorem Def13 defines int_addr3 SCMFSA_1:def 13 :
:: deftheorem Def14 defines coll_addr2 SCMFSA_1:def 14 :
:: deftheorem Def15 defines Next SCMFSA_1:def 15 :
:: deftheorem Def16 defines IC SCMFSA_1:def 16 :
definition
let c1 be
Element of
SCM+FSA-Instr ;
let c2 be
SCM+FSA-State;
func SCM+FSA-Exec-Res c1,
c2 -> SCM+FSA-State means :: SCMFSA_1:def 17
ex
b1 being
Element of
SCM-Instr ex
b2 being
SCM-State st
(
a1 = b1 &
b2 = (a2 | NAT ) +* (SCM-Instr-Loc --> b1) &
a3 = (a2 +* (SCM-Exec-Res b1,b2)) +* (a2 | SCM+FSA-Instr-Loc ) )
if InsCode a1 <= 8
ex
b1 being
Integerex
b2 being
Nat st
(
b2 = abs (a2 . (a1 int_addr2 )) &
b1 = (a2 . (a1 coll_addr1 )) /. b2 &
a3 = SCM+FSA-Chg (SCM+FSA-Chg a2,(a1 int_addr1 ),b1),
(Next (IC a2)) )
if InsCode a1 = 9
ex
b1 being
FinSequence of
INT ex
b2 being
Nat st
(
b2 = abs (a2 . (a1 int_addr2 )) &
b1 = (a2 . (a1 coll_addr1 )) +* b2,
(a2 . (a1 int_addr1 )) &
a3 = SCM+FSA-Chg (SCM+FSA-Chg a2,(a1 coll_addr1 ),b1),
(Next (IC a2)) )
if InsCode a1 = 10
a3 = SCM+FSA-Chg (SCM+FSA-Chg a2,(a1 int_addr3 ),(len (a2 . (a1 coll_addr2 )))),
(Next (IC a2)) if InsCode a1 = 11
ex
b1 being
FinSequence of
INT ex
b2 being
Nat st
(
b2 = abs (a2 . (a1 int_addr3 )) &
b1 = b2 |-> 0 &
a3 = SCM+FSA-Chg (SCM+FSA-Chg a2,(a1 coll_addr2 ),b1),
(Next (IC a2)) )
if InsCode a1 = 12
otherwise a3 = a2;
existence
( ( InsCode c1 <= 8 implies ex b1 being SCM+FSA-Stateex b2 being Element of SCM-Instr ex b3 being SCM-State st
( c1 = b2 & b3 = (c2 | NAT ) +* (SCM-Instr-Loc --> b2) & b1 = (c2 +* (SCM-Exec-Res b2,b3)) +* (c2 | SCM+FSA-Instr-Loc ) ) ) & ( InsCode c1 = 9 implies ex b1 being SCM+FSA-Stateex b2 being Integerex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) /. b3 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b2),(Next (IC c2)) ) ) & ( InsCode c1 = 10 implies ex b1 being SCM+FSA-Stateex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) +* b3,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b2),(Next (IC c2)) ) ) & ( InsCode c1 = 11 implies ex b1 being SCM+FSA-State st b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) ) & ( InsCode c1 = 12 implies ex b1 being SCM+FSA-Stateex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr3 )) & b2 = b3 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b2),(Next (IC c2)) ) ) & ( not InsCode c1 <= 8 & not InsCode c1 = 9 & not InsCode c1 = 10 & not InsCode c1 = 11 & not InsCode c1 = 12 implies ex b1 being SCM+FSA-State st b1 = c2 ) )
uniqueness
for b1, b2 being SCM+FSA-State holds
( ( InsCode c1 <= 8 & ex b3 being Element of SCM-Instr ex b4 being SCM-State st
( c1 = b3 & b4 = (c2 | NAT ) +* (SCM-Instr-Loc --> b3) & b1 = (c2 +* (SCM-Exec-Res b3,b4)) +* (c2 | SCM+FSA-Instr-Loc ) ) & ex b3 being Element of SCM-Instr ex b4 being SCM-State st
( c1 = b3 & b4 = (c2 | NAT ) +* (SCM-Instr-Loc --> b3) & b2 = (c2 +* (SCM-Exec-Res b3,b4)) +* (c2 | SCM+FSA-Instr-Loc ) ) implies b1 = b2 ) & ( InsCode c1 = 9 & ex b3 being Integerex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr2 )) & b3 = (c2 . (c1 coll_addr1 )) /. b4 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b3),(Next (IC c2)) ) & ex b3 being Integerex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr2 )) & b3 = (c2 . (c1 coll_addr1 )) /. b4 & b2 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b3),(Next (IC c2)) ) implies b1 = b2 ) & ( InsCode c1 = 10 & ex b3 being FinSequence of INT ex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr2 )) & b3 = (c2 . (c1 coll_addr1 )) +* b4,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b3),(Next (IC c2)) ) & ex b3 being FinSequence of INT ex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr2 )) & b3 = (c2 . (c1 coll_addr1 )) +* b4,(c2 . (c1 int_addr1 )) & b2 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b3),(Next (IC c2)) ) implies b1 = b2 ) & ( InsCode c1 = 11 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) & b2 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) implies b1 = b2 ) & ( InsCode c1 = 12 & ex b3 being FinSequence of INT ex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr3 )) & b3 = b4 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b3),(Next (IC c2)) ) & ex b3 being FinSequence of INT ex b4 being Nat st
( b4 = abs (c2 . (c1 int_addr3 )) & b3 = b4 |-> 0 & b2 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b3),(Next (IC c2)) ) implies b1 = b2 ) & ( not InsCode c1 <= 8 & not InsCode c1 = 9 & not InsCode c1 = 10 & not InsCode c1 = 11 & not InsCode c1 = 12 & b1 = c2 & b2 = c2 implies b1 = b2 ) )
;
consistency
for b1 being SCM+FSA-State holds
( ( InsCode c1 <= 8 & InsCode c1 = 9 implies ( ex b2 being Element of SCM-Instr ex b3 being SCM-State st
( c1 = b2 & b3 = (c2 | NAT ) +* (SCM-Instr-Loc --> b2) & b1 = (c2 +* (SCM-Exec-Res b2,b3)) +* (c2 | SCM+FSA-Instr-Loc ) ) iff ex b2 being Integerex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) /. b3 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 <= 8 & InsCode c1 = 10 implies ( ex b2 being Element of SCM-Instr ex b3 being SCM-State st
( c1 = b2 & b3 = (c2 | NAT ) +* (SCM-Instr-Loc --> b2) & b1 = (c2 +* (SCM-Exec-Res b2,b3)) +* (c2 | SCM+FSA-Instr-Loc ) ) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) +* b3,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 <= 8 & InsCode c1 = 11 implies ( ex b2 being Element of SCM-Instr ex b3 being SCM-State st
( c1 = b2 & b3 = (c2 | NAT ) +* (SCM-Instr-Loc --> b2) & b1 = (c2 +* (SCM-Exec-Res b2,b3)) +* (c2 | SCM+FSA-Instr-Loc ) ) iff b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) ) ) & ( InsCode c1 <= 8 & InsCode c1 = 12 implies ( ex b2 being Element of SCM-Instr ex b3 being SCM-State st
( c1 = b2 & b3 = (c2 | NAT ) +* (SCM-Instr-Loc --> b2) & b1 = (c2 +* (SCM-Exec-Res b2,b3)) +* (c2 | SCM+FSA-Instr-Loc ) ) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr3 )) & b2 = b3 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 = 9 & InsCode c1 = 10 implies ( ex b2 being Integerex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) /. b3 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b2),(Next (IC c2)) ) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) +* b3,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 = 9 & InsCode c1 = 11 implies ( ex b2 being Integerex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) /. b3 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b2),(Next (IC c2)) ) iff b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) ) ) & ( InsCode c1 = 9 & InsCode c1 = 12 implies ( ex b2 being Integerex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) /. b3 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr1 ),b2),(Next (IC c2)) ) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr3 )) & b2 = b3 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 = 10 & InsCode c1 = 11 implies ( ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) +* b3,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b2),(Next (IC c2)) ) iff b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) ) ) & ( InsCode c1 = 10 & InsCode c1 = 12 implies ( ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr2 )) & b2 = (c2 . (c1 coll_addr1 )) +* b3,(c2 . (c1 int_addr1 )) & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr1 ),b2),(Next (IC c2)) ) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr3 )) & b2 = b3 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b2),(Next (IC c2)) ) ) ) & ( InsCode c1 = 11 & InsCode c1 = 12 implies ( b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 int_addr3 ),(len (c2 . (c1 coll_addr2 )))),(Next (IC c2)) iff ex b2 being FinSequence of INT ex b3 being Nat st
( b3 = abs (c2 . (c1 int_addr3 )) & b2 = b3 |-> 0 & b1 = SCM+FSA-Chg (SCM+FSA-Chg c2,(c1 coll_addr2 ),b2),(Next (IC c2)) ) ) ) )
;
end;
:: deftheorem Def17 defines SCM+FSA-Exec-Res SCMFSA_1:def 17 :
for
b1 being
Element of
SCM+FSA-Instr for
b2,
b3 being
SCM+FSA-State holds
( (
InsCode b1 <= 8 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff ex
b4 being
Element of
SCM-Instr ex
b5 being
SCM-State st
(
b1 = b4 &
b5 = (b2 | NAT ) +* (SCM-Instr-Loc --> b4) &
b3 = (b2 +* (SCM-Exec-Res b4,b5)) +* (b2 | SCM+FSA-Instr-Loc ) ) ) ) & (
InsCode b1 = 9 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff ex
b4 being
Integerex
b5 being
Nat st
(
b5 = abs (b2 . (b1 int_addr2 )) &
b4 = (b2 . (b1 coll_addr1 )) /. b5 &
b3 = SCM+FSA-Chg (SCM+FSA-Chg b2,(b1 int_addr1 ),b4),
(Next (IC b2)) ) ) ) & (
InsCode b1 = 10 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff ex
b4 being
FinSequence of
INT ex
b5 being
Nat st
(
b5 = abs (b2 . (b1 int_addr2 )) &
b4 = (b2 . (b1 coll_addr1 )) +* b5,
(b2 . (b1 int_addr1 )) &
b3 = SCM+FSA-Chg (SCM+FSA-Chg b2,(b1 coll_addr1 ),b4),
(Next (IC b2)) ) ) ) & (
InsCode b1 = 11 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff
b3 = SCM+FSA-Chg (SCM+FSA-Chg b2,(b1 int_addr3 ),(len (b2 . (b1 coll_addr2 )))),
(Next (IC b2)) ) ) & (
InsCode b1 = 12 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff ex
b4 being
FinSequence of
INT ex
b5 being
Nat st
(
b5 = abs (b2 . (b1 int_addr3 )) &
b4 = b5 |-> 0 &
b3 = SCM+FSA-Chg (SCM+FSA-Chg b2,(b1 coll_addr2 ),b4),
(Next (IC b2)) ) ) ) & ( not
InsCode b1 <= 8 & not
InsCode b1 = 9 & not
InsCode b1 = 10 & not
InsCode b1 = 11 & not
InsCode b1 = 12 implies (
b3 = SCM+FSA-Exec-Res b1,
b2 iff
b3 = b2 ) ) );
definition
func SCM+FSA-Exec -> Function of
SCM+FSA-Instr ,
Funcs (product SCM+FSA-OK ),
(product SCM+FSA-OK ) means :: SCMFSA_1:def 18
for
b1 being
Element of
SCM+FSA-Instr for
b2 being
SCM+FSA-State holds
(a1 . b1) . b2 = SCM+FSA-Exec-Res b1,
b2;
existence
ex b1 being Function of SCM+FSA-Instr , Funcs (product SCM+FSA-OK ),(product SCM+FSA-OK ) st
for b2 being Element of SCM+FSA-Instr
for b3 being SCM+FSA-State holds (b1 . b2) . b3 = SCM+FSA-Exec-Res b2,b3
uniqueness
for b1, b2 being Function of SCM+FSA-Instr , Funcs (product SCM+FSA-OK ),(product SCM+FSA-OK ) st ( for b3 being Element of SCM+FSA-Instr
for b4 being SCM+FSA-State holds (b1 . b3) . b4 = SCM+FSA-Exec-Res b3,b4 ) & ( for b3 being Element of SCM+FSA-Instr
for b4 being SCM+FSA-State holds (b2 . b3) . b4 = SCM+FSA-Exec-Res b3,b4 ) holds
b1 = b2
end;
:: deftheorem Def18 defines SCM+FSA-Exec SCMFSA_1:def 18 :
theorem Th20: :: SCMFSA_1:20
theorem Th21: :: SCMFSA_1:21
theorem Th22: :: SCMFSA_1:22
theorem Th23: :: SCMFSA_1:23
theorem Th24: :: SCMFSA_1:24
theorem Th25: :: SCMFSA_1:25
theorem Th26: :: SCMFSA_1:26
theorem Th27: :: SCMFSA_1:27
theorem Th28: :: SCMFSA_1:28
theorem Th29: :: SCMFSA_1:29
theorem Th30: :: SCMFSA_1:30
theorem Th31: :: SCMFSA_1:31
theorem Th32: :: SCMFSA_1:32