let a be Int_position ; for l being Instruction-Location of SCMPDS
for k1, k2 being Integer holds NIC (a,k1 <=0_goto k2),l = {(Next l),(abs (k2 + l))}
let l be Instruction-Location of SCMPDS ; for k1, k2 being Integer holds NIC (a,k1 <=0_goto k2),l = {(Next l),(abs (k2 + l))}
let k1, k2 be Integer; NIC (a,k1 <=0_goto k2),l = {(Next l),(abs (k2 + l))}
consider s being State of ;
set i = a,k1 <=0_goto k2;
set t = abs (k2 + l);
reconsider I = a,k1 <=0_goto k2 as Element of ObjectKind l by AMI_1:def 14;
l in NAT
by AMI_1:def 4;
then reconsider il1 = l as Element of ObjectKind (IC SCMPDS ) by AMI_1:def 11;
set u = s +* ((IC SCMPDS ),l --> il1,I);
let x be set ; TARSKI:def 3 ( not x in {(Next l),(abs (k2 + l))} or x in NIC (a,k1 <=0_goto k2),l )
assume A8:
x in {(Next l),(abs (k2 + l))}
; x in NIC (a,k1 <=0_goto k2),l
per cases
( x = Next l or x = abs (k2 + l) )
by A8, TARSKI:def 2;
suppose A9:
x = Next l
;
x in NIC (a,k1 <=0_goto k2),lset u1 =
(s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1);
set u2 =
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1);
A10:
l <> a
by SCMPDS_2:53;
l <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),
k1
by SCMPDS_2:53;
then A11:
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . l =
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . l
by FUNCT_4:88
.=
(s +* ((IC SCMPDS ),l --> il1,I)) . l
by A10, FUNCT_4:88
.=
a,
k1 <=0_goto k2
by AMI_1:129
;
A12:
IC (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) =
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (IC SCMPDS )
by AMI_1:def 15
.=
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
(s +* ((IC SCMPDS ),l --> il1,I)) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
IC (s +* ((IC SCMPDS ),l --> il1,I))
by AMI_1:def 15
.=
il1
by AMI_1:129
;
A13:
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) = 1
by FUNCT_7:96;
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a),k1) > 0
proof
per cases
( a = DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1 or a <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1 )
;
suppose
a = DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),
k1
;
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a),k1) > 0 hence
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a),k1) > 0
by A13, FUNCT_7:96;
verum end; suppose
a <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),
k1
;
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a),k1) > 0 then
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a = ((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a
by FUNCT_4:88;
hence
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)) . a),k1) > 0
by FUNCT_7:96;
verum end; end;
end; then x =
(Exec (a,k1 <=0_goto k2),(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1))) . (IC SCMPDS )
by A9, A12, SCMPDS_2:68
.=
IC (Following (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 1)) . a),k1) .--> 1)))
by A11, A12, AMI_1:131
;
hence
x in NIC (a,k1 <=0_goto k2),
l
by A11, A12;
verum end; suppose A14:
x = abs (k2 + l)
;
x in NIC (a,k1 <=0_goto k2),lset u1 =
(s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 );
set u2 =
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 );
A15:
l <> a
by SCMPDS_2:53;
l <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),
k1
by SCMPDS_2:53;
then A16:
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . l =
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . l
by FUNCT_4:88
.=
(s +* ((IC SCMPDS ),l --> il1,I)) . l
by A15, FUNCT_4:88
.=
a,
k1 <=0_goto k2
by AMI_1:129
;
A17:
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) = 0
by FUNCT_7:96;
A18:
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a),k1) <= 0
proof
per cases
( a = DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1 or a <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1 )
;
suppose
a = DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),
k1
;
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a),k1) <= 0 hence
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a),k1) <= 0
by A17, FUNCT_7:96;
verum end; suppose
a <> DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),
k1
;
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a),k1) <= 0 then
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a = ((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a
by FUNCT_4:88;
hence
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (DataLoc ((((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . a),k1) <= 0
by FUNCT_7:96;
verum end; end;
end; A19:
IC (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) =
(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) . (IC SCMPDS )
by AMI_1:def 15
.=
((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
(s +* ((IC SCMPDS ),l --> il1,I)) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
IC (s +* ((IC SCMPDS ),l --> il1,I))
by AMI_1:def 15
.=
il1
by AMI_1:129
;
ex
m1 being
Element of
NAT st
(
m1 = IC (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )) &
ICplusConst (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )),
k2 = abs (m1 + k2) )
by SCMPDS_2:def 20;
then x =
(Exec (a,k1 <=0_goto k2),(((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 ))) . (IC SCMPDS )
by A14, A19, A18, SCMPDS_2:68
.=
IC (Following (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) +* ((DataLoc (((s +* ((IC SCMPDS ),l --> il1,I)) +* (a .--> 0 )) . a),k1) .--> 0 )))
by A16, A19, AMI_1:131
;
hence
x in NIC (a,k1 <=0_goto k2),
l
by A16, A19;
verum end; end;