thus
SCM R is homogeneous
( SCM R is with_explicit_jumps & SCM R is without_implicit_jumps )proof
let I,
J be
Instruction of
(SCM R);
AMISTD_2:def 4 ( not InsCode I = InsCode J or dom (AddressPart I) = dom (AddressPart J) )
assume A1:
InsCode I = InsCode J
;
dom (AddressPart I) = dom (AddressPart J)
A2:
(
J = [0 ,{} ] or ex
a,
b being
Data-Location of
R st
J = a := b or ex
a,
b being
Data-Location of
R st
J = AddTo a,
b or ex
a,
b being
Data-Location of
R st
J = SubFrom a,
b or ex
a,
b being
Data-Location of
R st
J = MultBy a,
b or ex
i1 being
Element of
NAT st
J = goto i1,
R or ex
a being
Data-Location of
R ex
i1 being
Element of
NAT st
J = a =0_goto i1 or ex
a being
Data-Location of
R ex
r being
Element of
R st
J = a := r )
by SCMRING2:8;
end;
A25:
SCM-Data-Loc <> NAT
by AMI_2:12;
thus
SCM R is with_explicit_jumps
SCM R is without_implicit_jumps proof
let I be
Instruction of
(SCM R);
AMISTD_2:def 8 I is with_explicit_jumps let f be
set ;
AMISTD_2:def 6 ( not f in JUMP I or ex b1 being set st
( b1 in dom (AddressPart I) & f = (AddressPart I) . b1 & (product" (AddressParts (InsCode I))) . b1 = NAT ) )
assume A26:
f in JUMP I
;
ex b1 being set st
( b1 in dom (AddressPart I) & f = (AddressPart I) . b1 & (product" (AddressParts (InsCode I))) . b1 = NAT )
per cases
( I = [0 ,{} ] or ex a, b being Data-Location of R st I = a := b or ex a, b being Data-Location of R st I = AddTo a,b or ex a, b being Data-Location of R st I = SubFrom a,b or ex a, b being Data-Location of R st I = MultBy a,b or ex i1 being Element of NAT st I = goto i1,R or ex a being Data-Location of R ex i1 being Element of NAT st I = a =0_goto i1 or ex a being Data-Location of R ex r being Element of R st I = a := r )
by SCMRING2:8;
suppose A28:
ex
i1 being
Element of
NAT st
I = goto i1,
R
;
ex b1 being set st
( b1 in dom (AddressPart I) & f = (AddressPart I) . b1 & (product" (AddressParts (InsCode I))) . b1 = NAT )take
1
;
( 1 in dom (AddressPart I) & f = (AddressPart I) . 1 & (product" (AddressParts (InsCode I))) . 1 = NAT )consider i1 being
Element of
NAT such that A29:
I = goto i1,
R
by A28;
A30:
AddressPart (goto i1,R) = <*i1*>
by MCART_1:def 2;
dom <*i1*> = Seg 1
by FINSEQ_1:def 8;
hence
1
in dom (AddressPart I)
by A29, A30, FINSEQ_1:4, TARSKI:def 1;
( f = (AddressPart I) . 1 & (product" (AddressParts (InsCode I))) . 1 = NAT )
JUMP (goto i1,R) = {i1}
by Th60;
then
f = i1
by A26, A29, TARSKI:def 1;
hence
(
f = (AddressPart I) . 1 &
(product" (AddressParts (InsCode I))) . 1
= NAT )
by A29, A30, Th50, FINSEQ_1:def 8;
verum end; suppose A31:
ex
a being
Data-Location of
R ex
i1 being
Element of
NAT st
I = a =0_goto i1
;
ex b1 being set st
( b1 in dom (AddressPart I) & f = (AddressPart I) . b1 & (product" (AddressParts (InsCode I))) . b1 = NAT )take
1
;
( 1 in dom (AddressPart I) & f = (AddressPart I) . 1 & (product" (AddressParts (InsCode I))) . 1 = NAT )consider a being
Data-Location of
R,
i1 being
Element of
NAT such that A32:
I = a =0_goto i1
by A31;
A33:
AddressPart (a =0_goto i1) = <*i1,a*>
by MCART_1:def 2;
dom <*i1,a*> = Seg 2
by FINSEQ_3:29;
hence
1
in dom (AddressPart I)
by A32, A33, FINSEQ_1:4, TARSKI:def 2;
( f = (AddressPart I) . 1 & (product" (AddressParts (InsCode I))) . 1 = NAT )
JUMP (a =0_goto i1) = {i1}
by Th63;
then
f = i1
by A26, A32, TARSKI:def 1;
hence
(
f = (AddressPart I) . 1 &
(product" (AddressParts (InsCode I))) . 1
= NAT )
by A32, A33, Th51, FINSEQ_1:61;
verum end; end;
end;
let I be Instruction of (SCM R); AMISTD_2:def 9 I is without_implicit_jumps
let f be set ; AMISTD_2:def 7 ( for b1 being set holds
( not b1 in dom (AddressPart I) or not f = (AddressPart I) . b1 or not (product" (AddressParts (InsCode I))) . b1 = NAT ) or f in JUMP I )
given k being set such that A34:
k in dom (AddressPart I)
and
A35:
f = (AddressPart I) . k
and
A36:
(product" (AddressParts (InsCode I))) . k = NAT
; f in JUMP I
per cases
( I = [0 ,{} ] or ex a, b being Data-Location of R st I = a := b or ex a, b being Data-Location of R st I = AddTo a,b or ex a, b being Data-Location of R st I = SubFrom a,b or ex a, b being Data-Location of R st I = MultBy a,b or ex i1 being Element of NAT st I = goto i1,R or ex a being Data-Location of R ex i1 being Element of NAT st I = a =0_goto i1 or ex a being Data-Location of R ex r being Element of R st I = a := r )
by SCMRING2:8;
suppose
ex
a being
Data-Location of
R ex
i1 being
Element of
NAT st
I = a =0_goto i1
;
f in JUMP Ithen consider a being
Data-Location of
R,
i1 being
Element of
NAT such that A44:
I = a =0_goto i1
;
A45:
AddressPart I = <*i1,a*>
by A44, MCART_1:def 2;
then
(
k = 1 or
k = 2 )
by A34, Lm2;
then A46:
f = i1
by A35, A36, A44, A45, Th4, Th52, FINSEQ_1:61;
JUMP I = {i1}
by A44, Th63;
hence
f in JUMP I
by A46, TARSKI:def 1;
verum end; suppose
ex
a being
Data-Location of
R ex
r being
Element of
R st
I = a := r
;
f in JUMP Ithen consider a being
Data-Location of
R,
r being
Element of
R such that A47:
I = a := r
;
k in dom <*a,r*>
by A34, A47, MCART_1:def 2;
then A48:
(
k = 1 or
k = 2 )
by Lm2;
(product" (AddressParts (InsCode I))) . 2
= the
carrier of
R
by A47, Th49;
hence
f in JUMP I
by A36, A25, A47, A48, Th48, SCMRING1:def 2;
verum end; end;