thus
SCM is homogeneous
( SCM is with_explicit_jumps & SCM is without_implicit_jumps )proof
let I,
J be
Instruction of
SCM ;
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 st
J = a := b or ex
a,
b being
Data-Location st
J = AddTo a,
b or ex
a,
b being
Data-Location st
J = SubFrom a,
b or ex
a,
b being
Data-Location st
J = MultBy a,
b or ex
a,
b being
Data-Location st
J = Divide a,
b or ex
k being
natural number st
J = SCM-goto k or ex
a being
Data-Location ex
k being
natural number st
J = a =0_goto k or ex
a being
Data-Location ex
k being
natural number st
J = a >0_goto k )
by AMI_3:69;
per cases
( I = [0 ,{} ] or ex a, b being Data-Location st I = a := b or ex a, b being Data-Location st I = AddTo a,b or ex a, b being Data-Location st I = SubFrom a,b or ex a, b being Data-Location st I = MultBy a,b or ex a, b being Data-Location st I = Divide a,b or ex k being natural number st I = SCM-goto k or ex a being Data-Location ex k being natural number st I = a =0_goto k or ex a being Data-Location ex k being natural number st I = a >0_goto k )
by AMI_3:69;
suppose
ex
a,
b being
Data-Location st
I = a := b
;
dom (AddressPart I) = dom (AddressPart J)then consider a,
b being
Data-Location such that A3:
I = a := b
;
A4:
InsCode I = 1
by A3, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a,
b being
Data-Location st
I = AddTo a,
b
;
dom (AddressPart I) = dom (AddressPart J)then consider a,
b being
Data-Location such that A6:
I = AddTo a,
b
;
A7:
InsCode I = 2
by A6, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a,
b being
Data-Location st
I = SubFrom a,
b
;
dom (AddressPart I) = dom (AddressPart J)then consider a,
b being
Data-Location such that A9:
I = SubFrom a,
b
;
A10:
InsCode I = 3
by A9, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a,
b being
Data-Location st
I = MultBy a,
b
;
dom (AddressPart I) = dom (AddressPart J)then consider a,
b being
Data-Location such that A12:
I = MultBy a,
b
;
A13:
InsCode I = 4
by A12, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a,
b being
Data-Location st
I = Divide a,
b
;
dom (AddressPart I) = dom (AddressPart J)then consider a,
b being
Data-Location such that A15:
I = Divide a,
b
;
A16:
InsCode I = 5
by A15, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex a, b being Data-Location st J = Divide a,b or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
k being
natural number st
I = SCM-goto k
;
dom (AddressPart I) = dom (AddressPart J)then consider k being
natural number such that A18:
I = SCM-goto k
;
A19:
InsCode I = 6
by A18, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex k being natural number st J = SCM-goto k or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex a being Data-Location ex k being natural number st J = a =0_goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a being
Data-Location ex
k being
natural number st
I = a =0_goto k
;
dom (AddressPart I) = dom (AddressPart J)then consider a being
Data-Location ,
k being
natural number such that A21:
I = a =0_goto k
;
A22:
InsCode I = 7
by A21, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex d1 being Data-Location ex k being natural number st J = d1 =0_goto k or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a >0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; suppose
ex
a being
Data-Location ex
k being
natural number st
I = a >0_goto k
;
dom (AddressPart I) = dom (AddressPart J)then consider a being
Data-Location ,
k being
natural number such that A24:
I = a >0_goto k
;
A25:
InsCode I = 8
by A24, MCART_1:7;
now per cases
( J = [0 ,{} ] or ex d1 being Data-Location ex k being natural number st J = d1 >0_goto k or ex a, b being Data-Location st J = a := b or ex a, b being Data-Location st J = AddTo a,b or ex a, b being Data-Location st J = SubFrom a,b or ex a, b being Data-Location st J = MultBy a,b or ex a, b being Data-Location st J = Divide a,b or ex k being natural number st J = SCM-goto k or ex a being Data-Location ex k being natural number st J = a =0_goto k )
by AMI_3:69;
end; end; hence
dom (AddressPart I) = dom (AddressPart J)
;
verum end; end;
end;
thus
SCM is with_explicit_jumps
SCM is without_implicit_jumps proof
let I be
Instruction of
SCM ;
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 A27:
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 st I = a := b or ex a, b being Data-Location st I = AddTo a,b or ex a, b being Data-Location st I = SubFrom a,b or ex a, b being Data-Location st I = MultBy a,b or ex a, b being Data-Location st I = Divide a,b or ex k being natural number st I = SCM-goto k or ex a being Data-Location ex k1 being natural number st I = a =0_goto k1 or ex a being Data-Location ex k1 being natural number st I = a >0_goto k1 )
by AMI_3:69;
suppose A31:
ex
a being
Data-Location ex
k1 being
natural number st
I = a =0_goto k1
;
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 ,
k1 being
natural number such that A32:
I = a =0_goto k1
by A31;
A33:
AddressPart (a =0_goto k1) = <*k1,a*>
by MCART_1:def 2;
dom <*k1,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 k1) = {k1}
by Th49;
then
f = k1
by A27, A32, TARSKI:def 1;
hence
(
f = (AddressPart I) . 1 &
(product" (AddressParts (InsCode I))) . 1
= NAT )
by A32, A33, Th36, FINSEQ_1:61;
verum end; suppose A34:
ex
a being
Data-Location ex
k1 being
natural number st
I = a >0_goto k1
;
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 ,
k1 being
natural number such that A35:
I = a >0_goto k1
by A34;
A36:
AddressPart (a >0_goto k1) = <*k1,a*>
by MCART_1:def 2;
dom <*k1,a*> = Seg 2
by FINSEQ_3:29;
hence
1
in dom (AddressPart I)
by A35, A36, FINSEQ_1:4, TARSKI:def 2;
( f = (AddressPart I) . 1 & (product" (AddressParts (InsCode I))) . 1 = NAT )
JUMP (a >0_goto k1) = {k1}
by Th51;
then
f = k1
by A27, A35, TARSKI:def 1;
hence
(
f = (AddressPart I) . 1 &
(product" (AddressParts (InsCode I))) . 1
= NAT )
by A35, A36, Th38, FINSEQ_1:61;
verum end; end;
end;
let I be Instruction of SCM ; 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 A37:
k in dom (AddressPart I)
and
A38:
f = (AddressPart I) . k
and
A39:
(product" (AddressParts (InsCode I))) . k = NAT
; f in JUMP I
per cases
( I = [0 ,{} ] or ex a, b being Data-Location st I = a := b or ex a, b being Data-Location st I = AddTo a,b or ex a, b being Data-Location st I = SubFrom a,b or ex a, b being Data-Location st I = MultBy a,b or ex a, b being Data-Location st I = Divide a,b or ex k being natural number st I = SCM-goto k or ex a being Data-Location ex k being natural number st I = a =0_goto k or ex a being Data-Location ex k1 being natural number st I = a >0_goto k1 )
by AMI_3:69;
suppose
ex
a being
Data-Location ex
k being
natural number st
I = a =0_goto k
;
f in JUMP Ithen consider a being
Data-Location ,
k1 being
natural number such that A48:
I = a =0_goto k1
;
A49:
AddressPart I = <*k1,a*>
by A48, MCART_1:def 2;
then
(
k = 1 or
k = 2 )
by A37, Lm2;
then A50:
f = k1
by A38, A39, A48, A49, Th2, Th37, FINSEQ_1:61;
JUMP I = {k1}
by A48, Th49;
hence
f in JUMP I
by A50, TARSKI:def 1;
verum end; suppose
ex
a being
Data-Location ex
k1 being
natural number st
I = a >0_goto k1
;
f in JUMP Ithen consider a being
Data-Location ,
k1 being
natural number such that A51:
I = a >0_goto k1
;
A52:
AddressPart I = <*k1,a*>
by A51, MCART_1:def 2;
then
(
k = 1 or
k = 2 )
by A37, Lm2;
then A53:
f = k1
by A38, A39, A51, A52, Th2, Th39, FINSEQ_1:61;
JUMP I = {k1}
by A51, Th51;
hence
f in JUMP I
by A53, TARSKI:def 1;
verum end; end;