thus
SCM R is homogeneous
SCM R is with_explicit_jumps proof
let I,
J be
Instruction of
(SCM R);
COMPOS_1:def 12 ( not InsCode I = InsCode J or dom (I `2_3) = dom (J `2_3) )
assume A1:
InsCode I = InsCode J
;
dom (I `2_3) = dom (J `2_3)
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:7;
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:7;
suppose
ex
a,
b being
Data-Location of
R st
I = a := b
;
dom (I `2_3) = dom (J `2_3)then consider a,
b being
Data-Location of
R such that A4:
I = a := b
;
A5:
InsCode I = 1
by A4, RECDEF_2:def 1;
now per cases
( 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:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
a,
b being
Data-Location of
R st
I = AddTo (
a,
b)
;
dom (I `2_3) = dom (J `2_3)then consider a,
b being
Data-Location of
R such that A7:
I = AddTo (
a,
b)
;
A8:
InsCode I = 2
by A7, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] 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 = 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:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
a,
b being
Data-Location of
R st
I = SubFrom (
a,
b)
;
dom (I `2_3) = dom (J `2_3)then consider a,
b being
Data-Location of
R such that A10:
I = SubFrom (
a,
b)
;
A11:
InsCode I = 3
by A10, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] 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 = 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 = 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:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
a,
b being
Data-Location of
R st
I = MultBy (
a,
b)
;
dom (I `2_3) = dom (J `2_3)then consider a,
b being
Data-Location of
R such that A13:
I = MultBy (
a,
b)
;
A14:
InsCode I = 4
by A13, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] or ex a, b being Data-Location of R st J = MultBy (a,b) 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 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:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
i1 being
Element of
NAT st
I = goto (
i1,
R)
;
dom (I `2_3) = dom (J `2_3)then consider i1 being
Element of
NAT such that A16:
I = goto (
i1,
R)
;
A17:
InsCode I = 6
by A16, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] or ex i2 being Element of NAT st J = goto (i2,R) 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 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:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
a being
Data-Location of
R ex
i1 being
Element of
NAT st
I = a =0_goto i1
;
dom (I `2_3) = dom (J `2_3)then consider a being
Data-Location of
R,
i1 being
Element of
NAT such that A19:
I = a =0_goto i1
;
A20:
InsCode I = 7
by A19, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] or ex d1 being Data-Location of R ex i2 being Element of NAT st J = d1 =0_goto i2 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 r being Element of R st J = a := r )
by SCMRING2:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; suppose
ex
a being
Data-Location of
R ex
r being
Element of
R st
I = a := r
;
dom (I `2_3) = dom (J `2_3)then consider a being
Data-Location of
R,
r being
Element of
R such that A22:
I = a := r
;
A23:
InsCode I = 5
by A22, RECDEF_2:def 1;
now per cases
( J = [0,{},{}] or ex a being Data-Location of R ex r being Element of R st J = a := r 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 )
by SCMRING2:7;
end; end; hence
dom (I `2_3) = dom (J `2_3)
;
verum end; end;
end;
thus
SCM R is with_explicit_jumps
verumproof
let I be
Instruction of
(SCM R);
AMISTD_2:def 2 I is with_explicit_jumps
thus
JUMP I c= rng (JumpPart I)
AMISTD_2:def 1,
XBOOLE_0:def 10 proj2 (I `2_3) c= JUMP Iproof
let f be
set ;
TARSKI:def 3 ( not f in JUMP I or f in rng (JumpPart I) )
assume A25:
f in JUMP I
;
f in rng (JumpPart 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:7;
end;
end;
let f be
set ;
TARSKI:def 3 ( not f in proj2 (I `2_3) or f in JUMP I )
assume
f in rng (JumpPart I)
;
f in JUMP I
then consider k being
set such that A35:
k in dom (JumpPart I)
and A36:
f = (JumpPart I) . k
by FUNCT_1:def 3;
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:7;
end;
end;