let a be Int_position ; for l being Element of NAT
for k1, k2 being Integer holds NIC (a,k1 <>0_goto k2),l = {(succ l),(abs (k2 + l))}
let l be Element of NAT ; for k1, k2 being Integer holds NIC (a,k1 <>0_goto k2),l = {(succ l),(abs (k2 + l))}
let k1, k2 be Integer; NIC (a,k1 <>0_goto k2),l = {(succ l),(abs (k2 + l))}
consider s being State of SCMPDS ;
set i = a,k1 <>0_goto k2;
set t = abs (k2 + l);
reconsider I = a,k1 <>0_goto k2 as Element of the Object-Kind of SCMPDS . l by AMI_1:def 14;
reconsider n = l as Element of NAT ;
reconsider il1 = l as Element of ObjectKind (IC SCMPDS ) by AMI_1:def 11;
X:
((IC SCMPDS ) .--> il1) +* (l .--> (a,k1 <>0_goto k2)) is the Object-Kind of SCMPDS -compatible PartState of SCMPDS
;
(IC SCMPDS ),l --> il1,I = ((IC SCMPDS ) .--> il1) +* (l .--> I)
by FUNCT_4:def 4;
then reconsider u = s +* ((IC SCMPDS ),l --> il1,(a,k1 <>0_goto k2)) as Element of product the Object-Kind of SCMPDS by X, PBOOLE:155;
hereby TARSKI:def 3,
XBOOLE_0:def 10 {(succ l),(abs (k2 + l))} c= NIC (a,k1 <>0_goto k2),l
let x be
set ;
( x in NIC (a,k1 <>0_goto k2),l implies b1 in {(succ l),(abs (k2 + l))} )assume
x in NIC (a,k1 <>0_goto k2),
l
;
b1 in {(succ l),(abs (k2 + l))}then consider s being
Element of
product the
Object-Kind of
SCMPDS such that A2:
x = IC (Following (ProgramPart s),s)
and A3:
IC s = l
and A4:
(ProgramPart s) /. l = a,
k1 <>0_goto k2
;
A5:
ex
m1 being
Element of
NAT st
(
m1 = IC s &
ICplusConst s,
k2 = abs (m1 + k2) )
by SCMPDS_2:def 20;
Y:
(ProgramPart s) /. (IC s) = s . (IC s)
by AMI_1:150;
per cases
( s . (DataLoc (s . a),k1) <> 0 or s . (DataLoc (s . a),k1) = 0 )
;
suppose A6:
s . (DataLoc (s . a),k1) <> 0
;
b1 in {(succ l),(abs (k2 + l))}x =
(Exec (a,k1 <>0_goto k2),s) . (IC SCMPDS )
by A2, A3, A4, AMI_1:131, Y
.=
abs (k2 + l)
by A3, A5, A6, SCMPDS_2:67
;
hence
x in {(succ l),(abs (k2 + l))}
by TARSKI:def 2;
verum end; end;
end;
let x be set ; TARSKI:def 3 ( not x in {(succ l),(abs (k2 + l))} or x in NIC (a,k1 <>0_goto k2),l )
assume A8:
x in {(succ l),(abs (k2 + l))}
; x in NIC (a,k1 <>0_goto k2),l
per cases
( x = succ l or x = abs (k2 + l) )
by A8, TARSKI:def 2;
suppose A9:
x = succ l
;
x in NIC (a,k1 <>0_goto k2),lset u1 =
u +* (a .--> 0 );
reconsider u2 =
(u +* (a .--> 0 )) +* ((DataLoc ((u +* (a .--> 0 )) . a),k1) .--> 0 ) as
Element of
product the
Object-Kind of
SCMPDS by PBOOLE:155;
A10:
l <> a
by SCMPDS_2:53;
l <> DataLoc ((u +* (a .--> 0 )) . a),
k1
by SCMPDS_2:53;
then A11:
u2 . l =
(u +* (a .--> 0 )) . l
by FUNCT_4:88
.=
u . n
by A10, FUNCT_4:88
.=
a,
k1 <>0_goto k2
by AMI_1:129
;
A12:
IC u2 =
u2 . (IC SCMPDS )
by AMI_1:def 15
.=
(u +* (a .--> 0 )) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
u . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
IC u
by AMI_1:def 15
.=
n
by AMI_1:129
;
A13:
u2 . (DataLoc ((u +* (a .--> 0 )) . a),k1) = 0
by FUNCT_7:96;
X:
(ProgramPart u2) /. (IC u2) = u2 . (IC u2)
by AMI_1:150;
u2 . (DataLoc (u2 . a),k1) = 0
then x =
(Exec (a,k1 <>0_goto k2),u2) . (IC SCMPDS )
by A9, A12, SCMPDS_2:67
.=
IC (Following (ProgramPart u2),u2)
by A11, A12, AMI_1:131
;
hence
x in NIC (a,k1 <>0_goto k2),
l
by A11, A12, X;
verum end; suppose A14:
x = abs (k2 + l)
;
x in NIC (a,k1 <>0_goto k2),lset u1 =
u +* (a .--> 1);
reconsider u2 =
(u +* (a .--> 1)) +* ((DataLoc ((u +* (a .--> 1)) . a),k1) .--> 1) as
Element of
product the
Object-Kind of
SCMPDS by PBOOLE:155;
A15:
l <> a
by SCMPDS_2:53;
l <> DataLoc ((u +* (a .--> 1)) . a),
k1
by SCMPDS_2:53;
then A16:
u2 . l =
(u +* (a .--> 1)) . l
by FUNCT_4:88
.=
u . n
by A15, FUNCT_4:88
.=
a,
k1 <>0_goto k2
by AMI_1:129
;
A17:
u2 . (DataLoc ((u +* (a .--> 1)) . a),k1) = 1
by FUNCT_7:96;
A18:
u2 . (DataLoc (u2 . a),k1) <> 0
A19:
IC u2 =
u2 . (IC SCMPDS )
by AMI_1:def 15
.=
(u +* (a .--> 1)) . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
u . (IC SCMPDS )
by FUNCT_4:88, SCMPDS_2:52
.=
IC u
by AMI_1:def 15
.=
n
by AMI_1:129
;
X:
(ProgramPart u2) /. (IC u2) = u2 . (IC u2)
by AMI_1:150;
ex
m1 being
Element of
NAT st
(
m1 = IC u2 &
ICplusConst u2,
k2 = abs (m1 + k2) )
by SCMPDS_2:def 20;
then x =
(Exec (a,k1 <>0_goto k2),u2) . (IC SCMPDS )
by A14, A19, A18, SCMPDS_2:67
.=
IC (Following (ProgramPart u2),u2)
by A16, A19, AMI_1:131
;
hence
x in NIC (a,k1 <>0_goto k2),
l
by A16, A19, X;
verum end; end;