:: SCMRING1 semantic presentation
definition
let c1 be non
empty 1-sorted ;
func SCM-Instr c1 -> Subset of
[:(Segm 8),(((union {the carrier of a1}) \/ NAT ) * ):] equals :: SCMRING1:def 1
((({[0,{} ]} \/ { [b1,<*b2,b3*>] where B is Element of Segm 8, B is Element of SCM-Data-Loc , B is Element of SCM-Data-Loc : b1 in {1,2,3,4} } ) \/ { [6,<*b1*>] where B is Element of SCM-Instr-Loc : verum } ) \/ { [7,<*b1,b2*>] where B is Element of SCM-Instr-Loc , B is Element of SCM-Data-Loc : verum } ) \/ { [5,<*b1,b2*>] where B is Element of SCM-Data-Loc , B is Element of a1 : verum } ;
coherence
((({[0,{} ]} \/ { [b1,<*b2,b3*>] where B is Element of Segm 8, B is Element of SCM-Data-Loc , B is Element of SCM-Data-Loc : b1 in {1,2,3,4} } ) \/ { [6,<*b1*>] where B is Element of SCM-Instr-Loc : verum } ) \/ { [7,<*b1,b2*>] where B is Element of SCM-Instr-Loc , B is Element of SCM-Data-Loc : verum } ) \/ { [5,<*b1,b2*>] where B is Element of SCM-Data-Loc , B is Element of c1 : verum } is Subset of [:(Segm 8),(((union {the carrier of c1}) \/ NAT ) * ):]
end;
:: deftheorem Def1 defines SCM-Instr SCMRING1:def 1 :
for
b1 being non
empty 1-sorted holds
SCM-Instr b1 = ((({[0,{} ]} \/ { [b2,<*b3,b4*>] where B is Element of Segm 8, B is Element of SCM-Data-Loc , B is Element of SCM-Data-Loc : b2 in {1,2,3,4} } ) \/ { [6,<*b2*>] where B is Element of SCM-Instr-Loc : verum } ) \/ { [7,<*b2,b3*>] where B is Element of SCM-Instr-Loc , B is Element of SCM-Data-Loc : verum } ) \/ { [5,<*b2,b3*>] where B is Element of SCM-Data-Loc , B is Element of b1 : verum } ;
:: deftheorem Def2 defines good SCMRING1:def 2 :
E2:
now
let c1 be
Nat;
consider c2 being
Nat such that E3:
(
c1 = 2
* c2 or
c1 = (2 * c2) + 1 )
by SCHEME1:1;
now
assume E4:
c1 = 2
* c2
;
E5:
(
c2 = 0 or ex
b1 being
Nat st
c2 = b1 + 1 )
by NAT_1:22;
now
given c3 being
Nat such that E6:
c2 = c3 + 1
;
take c4 =
c3;
thus
c1 = (2 * c4) + (2 * 1)
by E4, E6;
end;
hence
(
c1 = 0 or ex
b1 being
Nat st
c1 = (2 * b1) + 2 )
by E4, E5;
end;
hence
(
c1 = 0 or ex
b1 being
Nat st
c1 = (2 * b1) + 1 or ex
b1 being
Nat st
c1 = (2 * b1) + 2 )
by E3;
end;
E3:
now
let c1 be
Nat;
thus
( ex
b1 being
Nat st
c1 = (2 * b1) + 1 implies (
c1 <> 0 & ( for
b1 being
Nat holds not
c1 = (2 * b1) + 2 ) ) )
given c2 being
Nat such that E4:
c1 = (2 * c2) + (1 + 1)
;
thus
c1 <> 0
by E4;
given c3 being
Nat such that E5:
c1 = (2 * c3) + 1
;
E6:
(2 * c2) + (2 * 1) = (2 * (c2 + 1)) + 0
;
1 =
((2 * c2) + 2) mod 2
by E4, E5, NAT_1:def 2
.=
0
by E6, NAT_1:def 2
;
hence
contradiction
;
end;
:: deftheorem Def3 defines SCM-OK SCMRING1:def 3 :
theorem Th1: :: SCMRING1:1
theorem Th2: :: SCMRING1:2
theorem Th3: :: SCMRING1:3
theorem Th4: :: SCMRING1:4
theorem Th5: :: SCMRING1:5
theorem Th6: :: SCMRING1:6
theorem Th7: :: SCMRING1:7
theorem Th8: :: SCMRING1:8
theorem Th9: :: SCMRING1:9
:: deftheorem Def4 defines IC SCMRING1:def 4 :
:: deftheorem Def5 defines SCM-Chg SCMRING1:def 5 :
theorem Th10: :: SCMRING1:10
theorem Th11: :: SCMRING1:11
theorem Th12: :: SCMRING1:12
:: deftheorem Def6 defines SCM-Chg SCMRING1:def 6 :
theorem Th13: :: SCMRING1:13
theorem Th14: :: SCMRING1:14
theorem Th15: :: SCMRING1:15
theorem Th16: :: SCMRING1:16
:: deftheorem Def7 defines address_1 SCMRING1:def 7 :
:: deftheorem Def8 defines address_2 SCMRING1:def 8 :
theorem Th17: :: SCMRING1:17
:: deftheorem Def9 defines jump_address SCMRING1:def 9 :
theorem Th18: :: SCMRING1:18
definition
let c1 be non
empty 1-sorted ;
let c2 be
Element of
SCM-Instr c1;
given c3 being
Element of
SCM-Instr-Loc ,
c4 being
Element of
SCM-Data-Loc ,
c5 being
Element of
Segm 8
such that E16:
c2 = [c5,<*c3,c4*>]
;
func c2 cjump_address -> Element of
SCM-Instr-Loc means :
Def10:
:: SCMRING1:def 10
ex
b1 being
Element of
SCM-Instr-Loc ex
b2 being
Element of
SCM-Data-Loc st
(
<*b1,b2*> = a2 `2 &
a3 = <*b1,b2*> /. 1 );
existence
ex b1, b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st
( <*b2,b3*> = c2 `2 & b1 = <*b2,b3*> /. 1 )
uniqueness
for b1, b2 being Element of SCM-Instr-Loc st ex b3 being Element of SCM-Instr-Loc ex b4 being Element of SCM-Data-Loc st
( <*b3,b4*> = c2 `2 & b1 = <*b3,b4*> /. 1 ) & ex b3 being Element of SCM-Instr-Loc ex b4 being Element of SCM-Data-Loc st
( <*b3,b4*> = c2 `2 & b2 = <*b3,b4*> /. 1 ) holds
b1 = b2
;
func c2 cond_address -> Element of
SCM-Data-Loc means :
Def11:
:: SCMRING1:def 11
ex
b1 being
Element of
SCM-Instr-Loc ex
b2 being
Element of
SCM-Data-Loc st
(
<*b1,b2*> = a2 `2 &
a3 = <*b1,b2*> /. 2 );
existence
ex b1 being Element of SCM-Data-Loc ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st
( <*b2,b3*> = c2 `2 & b1 = <*b2,b3*> /. 2 )
uniqueness
for b1, b2 being Element of SCM-Data-Loc st ex b3 being Element of SCM-Instr-Loc ex b4 being Element of SCM-Data-Loc st
( <*b3,b4*> = c2 `2 & b1 = <*b3,b4*> /. 2 ) & ex b3 being Element of SCM-Instr-Loc ex b4 being Element of SCM-Data-Loc st
( <*b3,b4*> = c2 `2 & b2 = <*b3,b4*> /. 2 ) holds
b1 = b2
;
end;
:: deftheorem Def10 defines cjump_address SCMRING1:def 10 :
:: deftheorem Def11 defines cond_address SCMRING1:def 11 :
theorem Th19: :: SCMRING1:19
:: deftheorem Def12 defines const_address SCMRING1:def 12 :
:: deftheorem Def13 defines const_value SCMRING1:def 13 :
theorem Th20: :: SCMRING1:20
definition
let c1 be
good Ring;
let c2 be
Element of
SCM-Instr c1;
let c3 be
SCM-State of
c1;
func SCM-Exec-Res c2,
c3 -> SCM-State of
a1 equals :: SCMRING1:def 14
SCM-Chg (SCM-Chg a3,(a2 address_1 ),(a3 . (a2 address_2 ))),
(Next (IC a3)) if ex
b1,
b2 being
Element of
SCM-Data-Loc st
a2 = [1,<*b1,b2*>] SCM-Chg (SCM-Chg a3,(a2 address_1 ),((a3 . (a2 address_1 )) + (a3 . (a2 address_2 )))),
(Next (IC a3)) if ex
b1,
b2 being
Element of
SCM-Data-Loc st
a2 = [2,<*b1,b2*>] SCM-Chg (SCM-Chg a3,(a2 address_1 ),((a3 . (a2 address_1 )) - (a3 . (a2 address_2 )))),
(Next (IC a3)) if ex
b1,
b2 being
Element of
SCM-Data-Loc st
a2 = [3,<*b1,b2*>] SCM-Chg (SCM-Chg a3,(a2 address_1 ),((a3 . (a2 address_1 )) * (a3 . (a2 address_2 )))),
(Next (IC a3)) if ex
b1,
b2 being
Element of
SCM-Data-Loc st
a2 = [4,<*b1,b2*>] SCM-Chg a3,
(a2 jump_address ) if ex
b1 being
Element of
SCM-Instr-Loc st
a2 = [6,<*b1*>] SCM-Chg a3,
(IFEQ (a3 . (a2 cond_address )),(0. a1),(a2 cjump_address ),(Next (IC a3))) if ex
b1 being
Element of
SCM-Instr-Loc ex
b2 being
Element of
SCM-Data-Loc st
a2 = [7,<*b1,b2*>] SCM-Chg (SCM-Chg a3,(a2 const_address ),(a2 const_value )),
(Next (IC a3)) if ex
b1 being
Element of
SCM-Data-Loc ex
b2 being
Element of
a1 st
a2 = [5,<*b1,b2*>] otherwise a3;
coherence
( ( ex b1, b2 being Element of SCM-Data-Loc st c2 = [1,<*b1,b2*>] implies SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) is SCM-State of c1 ) & ( ex b1, b2 being Element of SCM-Data-Loc st c2 = [2,<*b1,b2*>] implies SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) is SCM-State of c1 ) & ( ex b1, b2 being Element of SCM-Data-Loc st c2 = [3,<*b1,b2*>] implies SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) is SCM-State of c1 ) & ( ex b1, b2 being Element of SCM-Data-Loc st c2 = [4,<*b1,b2*>] implies SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) is SCM-State of c1 ) & ( ex b1 being Element of SCM-Instr-Loc st c2 = [6,<*b1*>] implies SCM-Chg c3,(c2 jump_address ) is SCM-State of c1 ) & ( ex b1 being Element of SCM-Instr-Loc ex b2 being Element of SCM-Data-Loc st c2 = [7,<*b1,b2*>] implies SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) is SCM-State of c1 ) & ( ex b1 being Element of SCM-Data-Loc ex b2 being Element of c1 st c2 = [5,<*b1,b2*>] implies SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) is SCM-State of c1 ) & ( ( for b1, b2 being Element of SCM-Data-Loc holds not c2 = [1,<*b1,b2*>] ) & ( for b1, b2 being Element of SCM-Data-Loc holds not c2 = [2,<*b1,b2*>] ) & ( for b1, b2 being Element of SCM-Data-Loc holds not c2 = [3,<*b1,b2*>] ) & ( for b1, b2 being Element of SCM-Data-Loc holds not c2 = [4,<*b1,b2*>] ) & ( for b1 being Element of SCM-Instr-Loc holds not c2 = [6,<*b1*>] ) & ( for b1 being Element of SCM-Instr-Loc
for b2 being Element of SCM-Data-Loc holds not c2 = [7,<*b1,b2*>] ) & ( for b1 being Element of SCM-Data-Loc
for b2 being Element of c1 holds not c2 = [5,<*b1,b2*>] ) implies c3 is SCM-State of c1 ) )
;
consistency
for b1 being SCM-State of c1 holds
( ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg c3,(c2 jump_address ) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [1,<*b2,b3*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),(c3 . (c2 address_2 ))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(c2 jump_address ) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [2,<*b2,b3*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) + (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] & ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(c2 jump_address ) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [3,<*b2,b3*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) - (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(c2 jump_address ) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] & ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) ) ) & ( ex b2, b3 being Element of SCM-Data-Loc st c2 = [4,<*b2,b3*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg (SCM-Chg c3,(c2 address_1 ),((c3 . (c2 address_1 )) * (c3 . (c2 address_2 )))),(Next (IC c3)) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) & ( ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] & ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] implies ( b1 = SCM-Chg c3,(c2 jump_address ) iff b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) ) ) & ( ex b2 being Element of SCM-Instr-Loc st c2 = [6,<*b2*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg c3,(c2 jump_address ) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) & ( ex b2 being Element of SCM-Instr-Loc ex b3 being Element of SCM-Data-Loc st c2 = [7,<*b2,b3*>] & ex b2 being Element of SCM-Data-Loc ex b3 being Element of c1 st c2 = [5,<*b2,b3*>] implies ( b1 = SCM-Chg c3,(IFEQ (c3 . (c2 cond_address )),(0. c1),(c2 cjump_address ),(Next (IC c3))) iff b1 = SCM-Chg (SCM-Chg c3,(c2 const_address ),(c2 const_value )),(Next (IC c3)) ) ) )
by ZFMISC_1:33;
end;
:: deftheorem Def14 defines SCM-Exec-Res SCMRING1:def 14 :
for
b1 being
good Ring for
b2 being
Element of
SCM-Instr b1 for
b3 being
SCM-State of
b1 holds
( ( ex
b4,
b5 being
Element of
SCM-Data-Loc st
b2 = [1,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg (SCM-Chg b3,(b2 address_1 ),(b3 . (b2 address_2 ))),
(Next (IC b3)) ) & ( ex
b4,
b5 being
Element of
SCM-Data-Loc st
b2 = [2,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg (SCM-Chg b3,(b2 address_1 ),((b3 . (b2 address_1 )) + (b3 . (b2 address_2 )))),
(Next (IC b3)) ) & ( ex
b4,
b5 being
Element of
SCM-Data-Loc st
b2 = [3,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg (SCM-Chg b3,(b2 address_1 ),((b3 . (b2 address_1 )) - (b3 . (b2 address_2 )))),
(Next (IC b3)) ) & ( ex
b4,
b5 being
Element of
SCM-Data-Loc st
b2 = [4,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg (SCM-Chg b3,(b2 address_1 ),((b3 . (b2 address_1 )) * (b3 . (b2 address_2 )))),
(Next (IC b3)) ) & ( ex
b4 being
Element of
SCM-Instr-Loc st
b2 = [6,<*b4*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg b3,
(b2 jump_address ) ) & ( ex
b4 being
Element of
SCM-Instr-Loc ex
b5 being
Element of
SCM-Data-Loc st
b2 = [7,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg b3,
(IFEQ (b3 . (b2 cond_address )),(0. b1),(b2 cjump_address ),(Next (IC b3))) ) & ( ex
b4 being
Element of
SCM-Data-Loc ex
b5 being
Element of
b1 st
b2 = [5,<*b4,b5*>] implies
SCM-Exec-Res b2,
b3 = SCM-Chg (SCM-Chg b3,(b2 const_address ),(b2 const_value )),
(Next (IC b3)) ) & ( ( for
b4,
b5 being
Element of
SCM-Data-Loc holds not
b2 = [1,<*b4,b5*>] ) & ( for
b4,
b5 being
Element of
SCM-Data-Loc holds not
b2 = [2,<*b4,b5*>] ) & ( for
b4,
b5 being
Element of
SCM-Data-Loc holds not
b2 = [3,<*b4,b5*>] ) & ( for
b4,
b5 being
Element of
SCM-Data-Loc holds not
b2 = [4,<*b4,b5*>] ) & ( for
b4 being
Element of
SCM-Instr-Loc holds not
b2 = [6,<*b4*>] ) & ( for
b4 being
Element of
SCM-Instr-Loc for
b5 being
Element of
SCM-Data-Loc holds not
b2 = [7,<*b4,b5*>] ) & ( for
b4 being
Element of
SCM-Data-Loc for
b5 being
Element of
b1 holds not
b2 = [5,<*b4,b5*>] ) implies
SCM-Exec-Res b2,
b3 = b3 ) );
definition
let c1 be
good Ring;
func SCM-Exec c1 -> Function of
SCM-Instr a1,
Funcs (product (SCM-OK a1)),
(product (SCM-OK a1)) means :: SCMRING1:def 15
for
b1 being
Element of
SCM-Instr a1 for
b2 being
SCM-State of
a1 holds
(a2 . b1) . b2 = SCM-Exec-Res b1,
b2;
existence
ex b1 being Function of SCM-Instr c1, Funcs (product (SCM-OK c1)),(product (SCM-OK c1)) st
for b2 being Element of SCM-Instr c1
for b3 being SCM-State of c1 holds (b1 . b2) . b3 = SCM-Exec-Res b2,b3
uniqueness
for b1, b2 being Function of SCM-Instr c1, Funcs (product (SCM-OK c1)),(product (SCM-OK c1)) st ( for b3 being Element of SCM-Instr c1
for b4 being SCM-State of c1 holds (b1 . b3) . b4 = SCM-Exec-Res b3,b4 ) & ( for b3 being Element of SCM-Instr c1
for b4 being SCM-State of c1 holds (b2 . b3) . b4 = SCM-Exec-Res b3,b4 ) holds
b1 = b2
end;
:: deftheorem Def15 defines SCM-Exec SCMRING1:def 15 :