:: SCMPDS Is Not Standard
:: by Artur Korni{\l}owicz and Yasunari Shidama
::
:: Received September 27, 2003
:: Copyright (c) 2003-2018 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies NUMBERS, SCMPDS_2, AMI_1, INT_1, FUNCOP_1, SUBSET_1, FSM_1,
FUNCT_1, AMISTD_1, FUNCT_4, XBOOLE_0, SETFAM_1, AMI_3, COMPLEX1, ARYTM_3,
XXREAL_0, ARYTM_1, CARD_1, AMI_2, RELAT_1, GRAPHSP, TARSKI, FINSET_1,
CARD_3, AMI_WSTD, NAT_1, GOBRD13, MEMSTR_0, REAL_1;
notations TARSKI, XBOOLE_0, SUBSET_1, SETFAM_1, ORDINAL1, CARD_3, NUMBERS,
XCMPLX_0, XXREAL_0, XREAL_0, FUNCT_1, INT_1, NAT_1, FINSET_1, COMPLEX1,
INT_2, RELAT_1, FUNCT_4, MEMSTR_0, COMPOS_1, EXTPRO_1, AMI_2, SCMPDS_2,
SCMPDS_3, AMISTD_1, AMI_WSTD;
constructors REAL_1, NAT_D, SCMPDS_1, SCMPDS_3, AMI_WSTD, PRE_POLY, AMISTD_1,
FUNCT_4, FUNCT_7;
registrations XREAL_0, NAT_1, INT_1, CARD_3, SCMPDS_2, FUNCT_1, FUNCT_4,
MEMSTR_0, AMI_3, ORDINAL1;
requirements BOOLE, SUBSET, NUMERALS, ARITHM, REAL;
definitions TARSKI, XBOOLE_0;
equalities XBOOLE_0, NAT_1, AMISTD_1, MEMSTR_0, SCMPDS_2;
expansions TARSKI, XBOOLE_0;
theorems AMI_WSTD, SETFAM_1, SCMPDS_2, ABSVALUE, INT_1, TARSKI, AMI_2, NAT_1,
FUNCT_4, PRE_CIRC, WSIERP_1, PEPIN, COMPLEX1, XREAL_1, FUNCT_7, NAT_D,
AMISTD_1, MEMSTR_0, CARD_3, SCMPDS_I, XTUPLE_0, ORDINAL1;
begin
reserve a, b for Int_position,
i for Instruction of SCMPDS,
l for Element of NAT,
k, k1, k2 for Integer;
definition
let la, lb be Int_position, a, b be Integer;
redefine func (la,lb) --> (a,b) -> PartState of SCMPDS;
coherence
proof
A1: Values la = INT & Values lb = INT by SCMPDS_2:5;
A2: a is Element of INT & b is Element of INT by INT_1:def 2;
reconsider a as Element of Values la by A1,A2;
reconsider b as Element of Values lb by A1,A2;
(la,lb) --> (a,b) is PartState of SCMPDS;
hence thesis;
end;
end;
Lm1: JUMP goto k = {}
proof
set i = goto k;
set X = the set of all NIC(i,l) where l is Nat;
hereby
set l2 = 0;
set l1 = 1;
let x be object;
assume
A1: x in JUMP i;
NIC(i,l2) in X;
then x in NIC(i,l2) by A1,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A2: x = IC Exec(i,s2) and
A3: IC s2 = l2;
consider m2 being Element of NAT such that
A4: m2 = IC s2 and
A5: ICplusConst(s2,k) = |.m2+k.| by SCMPDS_2:def 18;
NIC(i,l1) in X;
then x in NIC(i,l1) by A1,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A6: x = IC Exec(i,s1) and
A7: IC s1 = l1;
consider m1 being Element of NAT such that
A8: m1 = IC s1 and
A9: ICplusConst(s1,k) = |.m1+k.| by SCMPDS_2:def 18;
|.m2+k.| = ICplusConst(s2,k) by A5
.= IC Exec(i,s2) by SCMPDS_2:54
.= IC Exec(i,s1) by A2,A6
.= ICplusConst(s1,k) by SCMPDS_2:54
.= |.m1+k.| by A9;
then per cases by A7,A8,A3,A4,ABSVALUE:28;
suppose
0+k = 1+k;
hence x in {};
end;
suppose
0+k = -(1+k);
then --1/2 is integer;
hence x in {} by NAT_D:33;
end;
end;
thus thesis;
end;
registration
let k;
cluster JUMP (goto k) -> empty;
coherence by Lm1;
end;
theorem Th1:
(for s being State of SCMPDS st IC s = l
holds Exec(i,s).IC SCMPDS = IC s + 1) implies NIC(i, l) = {l + 1}
proof
reconsider I = i as Instruction of SCMPDS;
reconsider n = l as Element of NAT;
assume
A1: for s being State of SCMPDS st IC s = l
holds Exec(i, s).IC SCMPDS = IC s + 1;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A2: x = IC Exec(i,s) and
A3: IC s = l;
x = l+1 by A1,A2,A3;
hence x in {l+1} by TARSKI:def 1;
end;
set t = the l-started State of SCMPDS;
reconsider t = the l-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
A4: IC t = l by MEMSTR_0:def 11;
let x be object;
assume x in {l+1};
then
A5: x = l+1 by TARSKI:def 1;
IC Exec(I,t) = l+1 by A1,A4;
hence thesis by A5,A4;
end;
theorem Th2:
(for l being Element of NAT holds NIC(i,l)={l+1}) implies JUMP i is empty
proof
set p=1, q=2;
assume
A1: for l being Element of NAT holds NIC(i,l)={l+1};
set X = the set of all NIC(i,f) where f is Nat;
reconsider p, q as Element of NAT;
assume not thesis;
then consider x being object such that
A2: x in meet X;
NIC(i,p) = {p+1} by A1;
then {p+1} in X;
then x in {p+1} by A2,SETFAM_1:def 1;
then
A3: x = p+1 by TARSKI:def 1;
NIC(i,q) = {q+1} by A1;
then {q+1} in X;
then x in {q+1} by A2,SETFAM_1:def 1;
hence contradiction by A3,TARSKI:def 1;
end;
theorem Th3:
NIC(goto k,l) = { |.k+l.| }
proof
set s = the State of SCMPDS;
set i = goto k;
set t = |.k+l.|;
set I = i;
reconsider n = l as Element of NAT;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A1: x = IC Exec(i,s) and
A2: IC s = l;
A3: ex m1 being Element of NAT st m1 = IC s & ICplusConst(s,k ) = |.m1+k.|
by SCMPDS_2:def 18;
x = t by A1,A2,A3,SCMPDS_2:54;
hence x in {t} by TARSKI:def 1;
end;
let x be object;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
A4: IC u = n by MEMSTR_0:def 11;
consider m1 being Element of NAT such that
A5: m1 = IC u and
A6: ICplusConst(u,k) = |.m1+k.| by SCMPDS_2:def 18;
assume x in {t};
then x = |.m1+k.| by A4,A5,TARSKI:def 1
.= IC Exec(i,u) by A6,SCMPDS_2:54;
hence thesis by A4;
end;
Lm2: for k being Nat st k > 1 holds k-2 is Element of NAT
proof
let k be Nat;
assume k > 1;
then k >= 1+1 by NAT_1:13;
then k - 2 >= 2 - 2 by XREAL_1:9;
hence thesis by INT_1:3;
end;
theorem Th4:
NIC(return a,l) = {k where k is Nat: k > 1}
proof
set s = the State of SCMPDS;
set X = {k where k is Nat: k > 1};
set i = return a;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A1: x = IC Exec(i,s) and
IC s = l;
reconsider k = x as Element of NAT by A1;
A2: (|.s.DataLoc(s.a,1).| )+2 >= 0+2 by XREAL_1:6;
k >= 1+1 by A2,A1,SCMPDS_2:58,SCMPDS_I:def 14;
then k > 1 by NAT_1:13;
hence x in X;
end;
let x be object;
set I = i;
reconsider n = l as Element of NAT;
assume x in X;
then consider k being Nat such that
A3: x = k and
A4: k > 1;
reconsider k2 = k - 2 as Element of NAT by A4,Lm2;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
A5: IC u = n by MEMSTR_0:def 11;
a in SCM-Data-Loc by AMI_2:def 16;
then consider j being Nat such that
A6: a = [1,j] by AMI_2:23;
set t = [1,j+1];
t in SCM-Data-Loc by AMI_2:24;
then reconsider t1 = t as Int_position by AMI_2:def 16;
A7: DataLoc(j,1) = [1,|.j+1.|]
.= t by ABSVALUE:def 1;
set g = (a,t1)-->(j,k2);
reconsider v = u +* g
as Element of product the_Values_of SCMPDS by CARD_3:107;
A8: dom g = {a,t} by FUNCT_4:62;
j <> j+1;
then
A9: a <> t by A6,XTUPLE_0:1;
then
A10: v.a = j by FUNCT_4:84;
a <> IC SCMPDS & t1 <> IC SCMPDS by SCMPDS_2:43;
then
A11: not IC SCMPDS in dom g by A8,TARSKI:def 2;
A12: IC v = l by A5,A11,FUNCT_4:11;
A13: v.t = k2 by A9,FUNCT_4:84;
x = ((k2 ) + 2) by A3
.= (|.v.DataLoc(j,1).| ) + 2 by A13,A7,ABSVALUE:def 1
.= IC Exec(i,v) by A10,SCMPDS_2:58,SCMPDS_I:def 14;
hence thesis by A12;
end;
theorem Th5:
NIC(saveIC(a,k1), l) = {l+1}
proof
set i = saveIC(a,k1);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:59;
hence thesis by Th1;
end;
theorem Th6:
NIC(a:=k1, l) = {l+1}
proof
set i = a:=k1;
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:45;
hence thesis by Th1;
end;
theorem Th7:
NIC((a,k1):=k2, l) = {l+1}
proof
set i = (a,k1):=k2;
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:46;
hence thesis by Th1;
end;
theorem Th8:
NIC((a,k1):=(b,k2), l) = {l+1}
proof
set i = (a,k1):=(b,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:47;
hence thesis by Th1;
end;
theorem Th9:
NIC(AddTo(a,k1,k2), l) = {l+1}
proof
set i = AddTo(a,k1,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:48;
hence thesis by Th1;
end;
theorem Th10:
NIC(AddTo(a,k1,b,k2), l) = {l+1}
proof
set i = AddTo(a,k1,b,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:49;
hence thesis by Th1;
end;
theorem Th11:
NIC(SubFrom(a,k1,b,k2), l) = {l+1}
proof
set i = SubFrom(a,k1,b,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:50;
hence thesis by Th1;
end;
theorem Th12:
NIC(MultBy(a,k1,b,k2), l) = {l+1}
proof
set i = MultBy(a,k1,b,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:51;
hence thesis by Th1;
end;
theorem Th13:
NIC(Divide(a,k1,b,k2), l) = {l+1}
proof
set i = Divide(a,k1,b,k2);
for s being State of SCMPDS st IC s = l holds Exec(i,s).IC
SCMPDS = IC s + 1 by SCMPDS_2:52;
hence thesis by Th1;
end;
theorem
NIC((a,k1)<>0_goto k2,l) = { l+1, |. (k2+ l) .| }
proof
set s = the State of SCMPDS;
set i = (a,k1)<>0_goto k2;
set t = |.(k2+ l).|;
set I = i;
reconsider n = l as Element of NAT;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A1: x = IC Exec(i,s) and
A2: IC s = l;
A3: ex m1 being Element of NAT st m1 = IC s & ICplusConst(s, k2) = |.m1+
k2.| by SCMPDS_2:def 18;
per cases;
suppose
A4: s.DataLoc(s.a,k1) <> 0;
x = t by A1,A2,A3,A4,SCMPDS_2:55;
hence x in {l+1,t} by TARSKI:def 2;
end;
suppose
A5: s.DataLoc(s.a,k1) = 0;
x = l+1 by A1,A2,A5,SCMPDS_2:55;
hence x in {l+1,t} by TARSKI:def 2;
end;
end;
let x be object;
assume
A6: x in {l+1,t};
per cases by A6,TARSKI:def 2;
suppose
A7: x = l+1;
reconsider u1 = u +* (a.-->0) as State of SCMPDS;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->0)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A8: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
A9: u2.DataLoc(u1.a,k1) = 0 by FUNCT_7:94;
u2.DataLoc(u2.a,k1) = 0
proof
per cases;
suppose
a = DataLoc(u1.a,k1);
hence thesis by A9;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by FUNCT_7:94;
end;
end;
then x = IC Exec(i,u2) by A7,A8,SCMPDS_2:55;
hence thesis by A8;
end;
suppose
A10: x = t;
reconsider u1 = u +* (a.-->1) as State of SCMPDS;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->1)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A11: u2.DataLoc(u1.a,k1) = 1 by FUNCT_7:94;
A12: u2.DataLoc(u2.a,k1) <> 0
proof
per cases;
suppose
a = DataLoc(u1.a,k1);
hence thesis by A11;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by FUNCT_7:94;
end;
end;
A13: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
ex m1 being Element of NAT st m1 = IC u2 & ICplusConst(u2,k2) = |.
m1+k2.| by SCMPDS_2:def 18;
then x = IC Exec(i,u2) by A10,A13,A12,SCMPDS_2:55;
hence thesis by A13;
end;
end;
theorem
NIC((a,k1)<=0_goto k2,l) = { l+1, |. (k2+ l) .| }
proof
set s = the State of SCMPDS;
set i = (a,k1)<=0_goto k2;
set t = |.(k2+ l).|;
set I = i;
reconsider n = l as Element of NAT;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A1: x = IC Exec(i,s) and
A2: IC s = l;
A3: ex m1 being Element of NAT st m1 = IC s & ICplusConst(s, k2) = |.m1+
k2.| by SCMPDS_2:def 18;
per cases;
suppose
A4: s.DataLoc(s.a,k1) <= 0;
x = t by A1,A2,A3,A4,SCMPDS_2:56;
hence x in {l+1,t} by TARSKI:def 2;
end;
suppose
A5: s.DataLoc(s.a,k1) > 0;
x = l+1 by A1,A2,A5,SCMPDS_2:56;
hence x in {l+1,t} by TARSKI:def 2;
end;
end;
let x be object;
assume
A6: x in {l+1,t};
per cases by A6,TARSKI:def 2;
suppose
A7: x = l+1;
reconsider u1 = u +* (a.-->1) as State of SCMPDS;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->1)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A8: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
A9: u2.DataLoc(u1.a,k1) = 1 by FUNCT_7:94;
u2.DataLoc(u2.a,k1) > 0
proof
per cases;
suppose a = DataLoc(u1.a,k1);
hence thesis by A9;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by FUNCT_7:94;
end;
end;
then x = IC Exec(i,u2) by A7,A8,SCMPDS_2:56;
hence thesis by A8;
end;
suppose
A10: x = t;
reconsider u1 = u +* (a.-->0) as State of SCMPDS;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->0)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A11: u2.DataLoc(u1.a,k1) = 0 by FUNCT_7:94;
A12: u2.DataLoc(u2.a,k1) <= 0
proof
per cases;
suppose
a = DataLoc(u1.a,k1);
hence thesis by A11;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by FUNCT_7:94;
end;
end;
A13: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
ex m1 being Element of NAT st m1 = IC u2 & ICplusConst(u2,k2) = |.
m1+k2.| by SCMPDS_2:def 18;
then x = IC Exec(i,u2) by A10,A13,A12,SCMPDS_2:56;
hence thesis by A13;
end;
end;
theorem
NIC((a,k1)>=0_goto k2,l) = { l+1, |. (k2+ l) .| }
proof
set s = the State of SCMPDS;
set i = (a,k1)>=0_goto k2;
set t = |.(k2+ l).|;
set I = i;
reconsider n = l as Element of NAT;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
hereby
let x be object;
assume x in NIC(i,l);
then consider s being Element of product the_Values_of SCMPDS
such that
A1: x = IC Exec(i,s) and
A2: IC s = l;
A3: ex m1 being Element of NAT st m1 = IC s & ICplusConst(s, k2) = |.m1+
k2.| by SCMPDS_2:def 18;
per cases;
suppose
A4: s.DataLoc(s.a,k1) >= 0;
x = t by A1,A2,A3,A4,SCMPDS_2:57;
hence x in {l+1,t} by TARSKI:def 2;
end;
suppose
A5: s.DataLoc(s.a,k1) < 0;
x = l+1 by A1,A2,A5,SCMPDS_2:57;
hence x in {l+1,t} by TARSKI:def 2;
end;
end;
let x be object;
assume
A6: x in {l+1,t};
per cases by A6,TARSKI:def 2;
suppose
A7: x = l+1;
A8: -1 < 0;
reconsider u1 = u +* (a.-->-1) as State of SCMPDS;
reconsider u1 = u +* (a.-->-1)
as Element of product the_Values_of SCMPDS by CARD_3:107;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->-1)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A9: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
A10: u2.DataLoc(u1.a,k1) = -1 by FUNCT_7:94;
u2.DataLoc(u2.a,k1) < 0
proof
per cases;
suppose
a = DataLoc(u1.a,k1);
hence thesis by A10;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by A8,FUNCT_7:94;
end;
end;
then x = IC Exec(i,u2) by A7,A9,SCMPDS_2:57;
hence thesis by A9;
end;
suppose
A11: x = t;
reconsider u1 = u +* (a.-->-1) as State of SCMPDS;
reconsider u1 = u +* (a.-->0)
as Element of product the_Values_of SCMPDS by CARD_3:107;
reconsider u2 = u1 +* (DataLoc(u1.a,k1).-->0)
as Element of product the_Values_of SCMPDS by CARD_3:107;
A12: u2.DataLoc(u1.a,k1) = 0 by FUNCT_7:94;
A13: u2.DataLoc(u2.a,k1) >= 0
proof
per cases;
suppose
a = DataLoc(u1.a,k1);
hence thesis by A12;
end;
suppose
a <> DataLoc(u1.a,k1);
then u2.a = u1.a by FUNCT_4:83;
hence thesis by FUNCT_7:94;
end;
end;
A14: IC u2 = u1.IC SCMPDS by FUNCT_4:83,SCMPDS_2:43
.= IC u by FUNCT_4:83,SCMPDS_2:43
.= n by MEMSTR_0:def 11;
ex m1 being Element of NAT st m1 = IC u2 & ICplusConst(u2,k2) = |.
m1+k2.| by SCMPDS_2:def 18;
then x = IC Exec(i,u2) by A11,A14,A13,SCMPDS_2:57;
hence thesis by A14;
end;
end;
theorem Th17:
JUMP (return a) = {k where k is Nat: k > 1}
proof
set A = {k where k is Nat: k > 1};
set i = return a;
set X = the set of all NIC(i,l) where l is Nat;
JUMP i c= NIC(i,(0)) by AMISTD_1:19;
hence JUMP i c= A by Th4;
let x be object;
assume
A1: x in A;
now
consider k being Nat such that
A2: x = k and
A3: k > 1 by A1;
reconsider k2 = k-2 as Element of NAT by A3,Lm2;
NIC(i,(0)) in X;
hence X <> {};
a in SCM-Data-Loc by AMI_2:def 16;
then consider j being Nat such that
A4: a = [1,j] by AMI_2:23;
set t = [1,j+1];
set s = the State of SCMPDS;
let y be set;
A5: DataLoc(j,1) = [1,|.j+1.|]
.= t by ABSVALUE:def 1;
t in SCM-Data-Loc by AMI_2:24;
then reconsider t1 = t as Int_position by AMI_2:def 16;
assume y in X;
then consider l being Nat such that
A6: y = NIC(i,l);
reconsider n = l as Element of NAT by ORDINAL1:def 12;
set I = i;
reconsider u = the n-started State of SCMPDS
as Element of product the_Values_of SCMPDS by CARD_3:107;
A7: IC u = n by MEMSTR_0:def 11;
set g = (a,t1)-->(j,k2);
reconsider v = u +* g
as Element of product the_Values_of SCMPDS by CARD_3:107;
j <> j+1;
then
A8: a <> t1 by A4,XTUPLE_0:1;
then
A9: v.a = j by FUNCT_4:84;
A10: v.t1 = k2 by A8,FUNCT_4:84;
A11: dom g = {a,t1} by FUNCT_4:62;
a <> IC SCMPDS & t1 <> IC SCMPDS by SCMPDS_2:43;
then
A12: not IC SCMPDS in dom g by A11,TARSKI:def 2;
A13: IC v = l by A7,A12,FUNCT_4:11;
x = ((k2 ) + 2) by A2
.= (|.v.DataLoc(j,1).| ) + 2 by A10,A5,ABSVALUE:def 1
.= IC Exec(i,v) by A9,SCMPDS_2:58,SCMPDS_I:def 14;
hence x in y by A6,A13;
end;
hence thesis by SETFAM_1:def 1;
end;
registration
let a;
cluster JUMP (return a) -> infinite;
coherence
proof
{k where k is Nat: k > 1} is infinite by PRE_CIRC:23;
hence thesis by Th17;
end;
end;
registration
let a,k1;
cluster JUMP (saveIC(a,k1)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(saveIC(a,k1),l)={
l+1} by Th5;
hence thesis by Th2;
end;
end;
registration
let a,k1;
cluster JUMP (a:=k1) -> empty;
coherence
proof
for l being Element of NAT holds NIC(a:=k1,l)={l+1}
by Th6;
hence thesis by Th2;
end;
end;
registration
let a,k1,k2;
cluster JUMP ((a,k1):=k2) -> empty;
coherence
proof
for l being Element of NAT holds NIC((a,k1):=k2,l)={
l+1 } by Th7;
hence thesis by Th2;
end;
end;
registration
let a,b,k1,k2;
cluster JUMP ((a,k1):=(b,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC((a,k1):=(b,k2),l)
={l+1} by Th8;
hence thesis by Th2;
end;
end;
registration
let a,k1,k2;
cluster JUMP (AddTo(a,k1,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(AddTo(a,k1,k2),l)
={l+1} by Th9;
hence thesis by Th2;
end;
end;
registration
let a,b,k1,k2;
cluster JUMP (AddTo(a,k1,b,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(AddTo(a,k1,b,k2),
l)={l+1} by Th10;
hence thesis by Th2;
end;
cluster JUMP (SubFrom(a,k1,b,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(SubFrom(a,k1,b,k2
),l)={l+1} by Th11;
hence thesis by Th2;
end;
cluster JUMP (MultBy(a,k1,b,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(MultBy(a,k1,b,k2)
,l)={l+1} by Th12;
hence thesis by Th2;
end;
cluster JUMP (Divide(a,k1,b,k2)) -> empty;
coherence
proof
for l being Element of NAT holds NIC(Divide(a,k1,b,k2)
,l)={l+1} by Th13;
hence thesis by Th2;
end;
end;
Lm3: 5/3 is not integer
proof
not 3 qua Integer divides 5
proof
assume not thesis;
then
A1: 5 mod 3 = 0 by PEPIN:6;
5 = 3 * 1 + 2;
hence contradiction by A1,NAT_D:def 2;
end;
hence thesis by WSIERP_1:17;
end;
Lm4: for d being Real holds (|.d.|+(-d+|.d.|+4))+2-2+d <> -((|.d.|+(
-d+|.d.|+4)+(-d+|.d.|+4))+2-2+d)
proof
let d be Real;
set c = -d+|.d.|+4;
set xx = c+c+c;
-d+|.d.| >= 0 by ABSVALUE:27;
then (-2)*xx < (-2)*0 by XREAL_1:69;
then
A1: (-2)*xx/4 < 0/4 by XREAL_1:74;
assume (|.d.|+c)+2-2+d = -((|.d.|+c+(-d+|.d.|+4))+2-2+d);
then d + |.d.| = (-2)*xx/4;
hence contradiction by A1,ABSVALUE:26;
end;
Lm5: for b,d being Real holds b+1 <> b + ((-d+|.d.|+4) + d)
proof
let b,d be Real;
set c = -d+|.d.|+4;
|.d.| >= 0 by COMPLEX1:46;
then
A1: |.d.|+3 >= 0+3 by XREAL_1:7;
assume b+1 = b + (c + d);
hence thesis by A1;
end;
Lm6: for c,d being Real st c > 0 holds (|.d.|+c)+1 <> -((|.d.|+c)+c+d
)
proof
let c,d being Real such that
A1: c > 0;
assume
A2: (|.d.|+c)+1 = -((|.d.|+c)+c+d);
per cases;
suppose
A3: d >= 0;
then |.d.| = d by ABSVALUE:def 1;
hence contradiction by A1,A2,A3;
end;
suppose
A4: d < 0;
then |.d.| = -d by ABSVALUE:def 1;
then (-d+3*c)+1 = 0 by A2;
hence contradiction by A1,A4;
end;
end;
Lm7: for b being Real, d being Integer st d <> 5 holds (b+(-d+|.d.|+4)
+1) <> (b+d)
proof
let b be Real, d be Integer;
assume
A1: d <> 5;
assume
A2: (b+(-d+|.d.|+4)+1) = (b+d);
per cases;
suppose
d >= 0;
then |.d.| = d by ABSVALUE:def 1;
hence thesis by A1,A2;
end;
suppose
d < 0;
then |.d.| = -d by ABSVALUE:def 1;
hence thesis by A2,Lm3;
end;
end;
Lm8: for c,d being Real st c > 0 holds (|.d.|+c+c)+1 <> -((|.d.|+c)+d
)
proof
let c,d be Real;
assume
A1: c > 0;
assume
A2: (|.d.|+c+c)+1 = -((|.d.|+c)+d);
per cases;
suppose
A3: d >= 0;
then |.d.| = d by ABSVALUE:def 1;
hence contradiction by A1,A2,A3;
end;
suppose
A4: d < 0;
then |.d.| = -d by ABSVALUE:def 1;
hence contradiction by A1,A2,A4;
end;
end;
Lm9: JUMP ((a,k1)<>0_goto 5) = {}
proof
set k2 = 5;
set i = (a,k1)<>0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
hereby
set nl2 = 8;
set nl1 = 5;
let x be object;
assume
A1: x in JUMP i;
set l2 = nl2;
NIC(i,l2) in X;
then x in NIC(i,l2) by A1,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A2: x = IC Exec(i,s2) and
A3: IC s2 = l2;
set l1 = nl1;
NIC(i,l1) in X;
then x in NIC(i,l1) by A1,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A4: x = IC Exec(i,s1) and
A5: IC s1 = l1;
consider m2 being Element of NAT such that
A6: m2 = IC s2 and
A7: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
consider m1 being Element of NAT such that
A8: m1 = IC s1 and
A9: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A10: s1.DataLoc(s1.a,k1) <> 0 and
A11: s2.DataLoc(s2.a,k1) <> 0;
A12: x = |.m2+k2.| by A2,A7,A11,SCMPDS_2:55;
x = |.m1+k2.| by A4,A9,A10,SCMPDS_2:55;
then nl1+k2 = nl2+k2 or nl1+k2 = -(nl2+k2) by A5,A8,A3,A6,A12,ABSVALUE:28
;
hence x in {};
end;
suppose that
A13: s1.DataLoc(s1.a,k1) = 0 and
A14: s2.DataLoc(s2.a,k1) = 0;
A15: x = l2+1 by A2,A3,A14,SCMPDS_2:55;
x = l1+1 by A4,A5,A13,SCMPDS_2:55;
hence x in {} by A15;
end;
suppose that
A16: s1.DataLoc(s1.a,k1) = 0 and
A17: s2.DataLoc(s2.a,k1) <> 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A18: x = |.m2+k2.| by A2,A7,A17,SCMPDS_2:55;
x = n1+1 by A4,A5,A16,SCMPDS_2:55
.= n1 + 1;
then w1+1 = m2+k2 or w1+1 = -(m2+k2) by A18,ABSVALUE:1;
hence x in {} by A3,A6;
end;
suppose that
A19: s1.DataLoc(s1.a,k1) <> 0 and
A20: s2.DataLoc(s2.a,k1) = 0;
reconsider n2 = l2 as Element of NAT;
A21: x = n2+1 by A2,A3,A20,SCMPDS_2:55
.= n2 + 1;
set w2 = n2;
x = |.m1+k2.| by A4,A9,A19,SCMPDS_2:55;
then w2+1 = m1+k2 or w2+1 = -(m1+k2) by A21,ABSVALUE:1;
hence x in {} by A5,A8;
end;
end;
thus thesis;
end;
Lm10: k2 <> 5 implies JUMP ((a,k1)<>0_goto k2) = {}
proof
set i = (a,k1)<>0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
assume
A1: k2 <> 5;
hereby
set x1 = -k2+|.k2.|+4;
let x be object;
assume
A2: x in JUMP i;
A3: x1 > -k2+|.k2.|+0 by XREAL_1:6;
then
A4: x1 > 0 by ABSVALUE:27;
then reconsider x1 as Element of NAT by INT_1:3;
set nl1 = |.k2.|+x1;
set nl2 = nl1+x1;
set l1 = nl1;
set l2 = nl2;
NIC(i,l1) in X;
then x in NIC(i,l1) by A2,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A5: x = IC Exec(i,s1) and
A6: IC s1 = l1;
consider m1 being Element of NAT such that
A7: m1 = IC s1 and
A8: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
NIC(i,l2) in X;
then x in NIC(i,l2) by A2,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A9: x = IC Exec(i,s2) and
A10: IC s2 = l2;
consider m2 being Element of NAT such that
A11: m2 = IC s2 and
A12: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A13: s1.DataLoc(s1.a,k1) <> 0 and
A14: s2.DataLoc(s2.a,k1) <> 0;
A15: x = |.m2+k2.| by A9,A12,A14,SCMPDS_2:55;
A16: x = |.m1+k2.| by A5,A8,A13,SCMPDS_2:55;
thus x in {}
proof
per cases by A6,A7,A10,A11,A16,A15,ABSVALUE:28;
suppose
nl1+2-2+k2 = nl2+2-2+k2;
hence thesis by A3,ABSVALUE:27;
end;
suppose
nl1+2-2+k2 = -(nl2+2-2+k2);
hence thesis by Lm4;
end;
end;
end;
suppose that
A17: s1.DataLoc(s1.a,k1) = 0 and
A18: s2.DataLoc(s2.a,k1) = 0;
A19: x = l2+1 by A9,A10,A18,SCMPDS_2:55;
x = l1+1 by A5,A6,A17,SCMPDS_2:55;
hence x in {} by A3,A19,ABSVALUE:27;
end;
suppose that
A20: s1.DataLoc(s1.a,k1) = 0 and
A21: s2.DataLoc(s2.a,k1) <> 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A22: x = |.m2+k2.| by A9,A12,A21,SCMPDS_2:55;
A23: x = n1+1 by A5,A6,A20,SCMPDS_2:55
.= n1 + 1;
thus x in {}
proof
per cases by A23,A22,ABSVALUE:1;
suppose
w1+1 = m2+k2;
then nl1+1 = nl1 + (x1 + k2) by A10,A11;
hence thesis by Lm5;
end;
suppose
w1+1 = -(m2+k2);
hence thesis by A4,A10,A11,Lm6;
end;
end;
end;
suppose that
A24: s1.DataLoc(s1.a,k1) <> 0 and
A25: s2.DataLoc(s2.a,k1) = 0;
reconsider n2 = l2 as Element of NAT;
A26: x = n2+1 by A9,A10,A25,SCMPDS_2:55
.= n2 + 1;
set w2 = n2;
A27: x = |.m1+k2.| by A5,A8,A24,SCMPDS_2:55;
thus x in {}
proof
per cases by A27,A26,ABSVALUE:1;
suppose
w2+1 = m1+k2;
hence thesis by A1,A6,A7,Lm7;
end;
suppose
w2+1 = -(m1+k2);
hence thesis by A4,A6,A7,Lm8;
end;
end;
end;
end;
thus thesis;
end;
Lm11: JUMP ((a,k1)<=0_goto 5) = {}
proof
set k2 = 5;
set i = (a,k1)<=0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
hereby
set nl2 = 8;
set nl1 = 5;
let x be object;
assume
A1: x in JUMP i;
set l2 = nl2;
NIC(i,l2) in X;
then x in NIC(i,l2) by A1,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A2: x = IC Exec(i,s2) and
A3: IC s2 = l2;
set l1 = nl1;
NIC(i,l1) in X;
then x in NIC(i,l1) by A1,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A4: x = IC Exec(i,s1) and
A5: IC s1 = l1;
consider m2 being Element of NAT such that
A6: m2 = IC s2 and
A7: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
consider m1 being Element of NAT such that
A8: m1 = IC s1 and
A9: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A10: s1.DataLoc(s1.a,k1) <= 0 and
A11: s2.DataLoc(s2.a,k1) <= 0;
A12: x = |.m2+k2.| by A2,A7,A11,SCMPDS_2:56;
x = |.m1+k2.| by A4,A9,A10,SCMPDS_2:56;
then nl1+k2 = nl2+k2 or nl1+k2 = -(nl2+k2) by A5,A8,A3,A6,A12,ABSVALUE:28
;
hence x in {};
end;
suppose that
A13: s1.DataLoc(s1.a,k1) > 0 and
A14: s2.DataLoc(s2.a,k1) > 0;
A15: x = l2+1 by A2,A3,A14,SCMPDS_2:56;
x = l1+1 by A4,A5,A13,SCMPDS_2:56;
hence x in {} by A15;
end;
suppose that
A16: s1.DataLoc(s1.a,k1) > 0 and
A17: s2.DataLoc(s2.a,k1) <= 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A18: x = |.m2+k2.| by A2,A7,A17,SCMPDS_2:56;
x = n1+1 by A4,A5,A16,SCMPDS_2:56
.= n1 + 1;
then w1+1 = m2+k2 or w1+1 = -(m2+k2) by A18,ABSVALUE:1;
hence x in {} by A3,A6;
end;
suppose that
A19: s1.DataLoc(s1.a,k1) <= 0 and
A20: s2.DataLoc(s2.a,k1) > 0;
reconsider n2 = l2 as Element of NAT;
A21: x = n2+1 by A2,A3,A20,SCMPDS_2:56
.= n2 + 1;
set w2 = n2;
x = |.m1+k2.| by A4,A9,A19,SCMPDS_2:56;
then w2+1 = m1+k2 or w2+1 = -(m1+k2) by A21,ABSVALUE:1;
hence x in {} by A5,A8;
end;
end;
thus thesis;
end;
Lm12: k2 <> 5 implies JUMP ((a,k1)<=0_goto k2) = {}
proof
set i = (a,k1)<=0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
assume
A1: k2 <> 5;
hereby
set x1 = -k2+|.k2.|+4;
let x be object;
assume
A2: x in JUMP i;
A3: x1 > -k2+|.k2.|+0 by XREAL_1:6;
then
A4: x1 > 0 by ABSVALUE:27;
then reconsider x1 as Element of NAT by INT_1:3;
set nl1 = |.k2.|+x1;
set nl2 = nl1+x1;
set l1 = nl1;
set l2 = nl2;
NIC(i,l1) in X;
then x in NIC(i,l1) by A2,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A5: x = IC Exec(i,s1) and
A6: IC s1 = l1;
consider m1 being Element of NAT such that
A7: m1 = IC s1 and
A8: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
NIC(i,l2) in X;
then x in NIC(i,l2) by A2,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A9: x = IC Exec(i,s2) and
A10: IC s2 = l2;
consider m2 being Element of NAT such that
A11: m2 = IC s2 and
A12: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A13: s1.DataLoc(s1.a,k1) <= 0 and
A14: s2.DataLoc(s2.a,k1) <= 0;
A15: x = |.m2+k2.| by A9,A12,A14,SCMPDS_2:56;
A16: x = |.m1+k2.| by A5,A8,A13,SCMPDS_2:56;
thus x in {}
proof
per cases by A6,A7,A10,A11,A16,A15,ABSVALUE:28;
suppose
nl1+k2 = nl2+k2;
hence thesis by A3,ABSVALUE:27;
end;
suppose
nl1+2-2+k2 = -(nl2+2-2+k2);
hence thesis by Lm4;
end;
end;
end;
suppose that
A17: s1.DataLoc(s1.a,k1) > 0 and
A18: s2.DataLoc(s2.a,k1) > 0;
A19: x = l2+1 by A9,A10,A18,SCMPDS_2:56;
x = l1+1 by A5,A6,A17,SCMPDS_2:56;
hence x in {} by A3,A19,ABSVALUE:27;
end;
suppose that
A20: s1.DataLoc(s1.a,k1) > 0 and
A21: s2.DataLoc(s2.a,k1) <= 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A22: x = |.m2+k2.| by A9,A12,A21,SCMPDS_2:56;
A23: x = n1+1 by A5,A6,A20,SCMPDS_2:56
.= n1 + 1;
thus x in {}
proof
per cases by A23,A22,ABSVALUE:1;
suppose
w1+1 = m2+k2;
then nl1+1 = nl1 + (x1 + k2) by A10,A11;
hence thesis by Lm5;
end;
suppose
w1+1 = -(m2+k2);
hence thesis by A4,A10,A11,Lm6;
end;
end;
end;
suppose that
A24: s1.DataLoc(s1.a,k1) <= 0 and
A25: s2.DataLoc(s2.a,k1) > 0;
reconsider n2 = l2 as Element of NAT;
A26: x = n2+1 by A9,A10,A25,SCMPDS_2:56
.= n2 + 1;
set w2 = n2;
A27: x = |.m1+k2.| by A5,A8,A24,SCMPDS_2:56;
thus x in {}
proof
per cases by A27,A26,ABSVALUE:1;
suppose
w2+1 = m1+k2;
hence thesis by A1,A6,A7,Lm7;
end;
suppose
w2+1 = -(m1+k2);
hence thesis by A4,A6,A7,Lm8;
end;
end;
end;
end;
thus thesis;
end;
Lm13: JUMP ((a,k1)>=0_goto 5) = {}
proof
set k2 = 5;
set i = (a,k1)>=0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
hereby
set nl2 = 8;
set nl1 = 5;
let x be object;
assume
A1: x in JUMP i;
set l2 = nl2;
NIC(i,l2) in X;
then x in NIC(i,l2) by A1,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A2: x = IC Exec(i,s2) and
A3: IC s2 = l2;
set l1 = nl1;
NIC(i,l1) in X;
then x in NIC(i,l1) by A1,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A4: x = IC Exec(i,s1) and
A5: IC s1 = l1;
consider m2 being Element of NAT such that
A6: m2 = IC s2 and
A7: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
consider m1 being Element of NAT such that
A8: m1 = IC s1 and
A9: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A10: s1.DataLoc(s1.a,k1) >= 0 and
A11: s2.DataLoc(s2.a,k1) >= 0;
A12: x = |.m2+k2.| by A2,A7,A11,SCMPDS_2:57;
x = |.m1+k2.| by A4,A9,A10,SCMPDS_2:57;
then
nl1+2-2+k2 = nl2+2-2+k2 or nl1+2-2+k2 = -(nl2+2-2+k2) by A5,A8,A3,A6,A12,
ABSVALUE:28;
hence x in {};
end;
suppose that
A13: s1.DataLoc(s1.a,k1) < 0 and
A14: s2.DataLoc(s2.a,k1) < 0;
A15: x = l2+1 by A2,A3,A14,SCMPDS_2:57;
x = l1+1 by A4,A5,A13,SCMPDS_2:57;
hence x in {} by A15;
end;
suppose that
A16: s1.DataLoc(s1.a,k1) < 0 and
A17: s2.DataLoc(s2.a,k1) >= 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A18: x = |.m2+k2.| by A2,A7,A17,SCMPDS_2:57;
x = n1+1 by A4,A5,A16,SCMPDS_2:57
.= n1 + 1;
then w1+1 = m2+k2 or w1+1 = -(m2+k2) by A18,ABSVALUE:1;
hence x in {} by A3,A6;
end;
suppose that
A19: s1.DataLoc(s1.a,k1) >= 0 and
A20: s2.DataLoc(s2.a,k1) < 0;
reconsider n2 = l2 as Element of NAT;
A21: x = n2+1 by A2,A3,A20,SCMPDS_2:57
.= n2 + 1;
set w2 = n2;
x = |.m1+k2.| by A4,A9,A19,SCMPDS_2:57;
then w2+1 = m1+k2 or w2+1 = -(m1+k2) by A21,ABSVALUE:1;
hence x in {} by A5,A8;
end;
end;
thus thesis;
end;
Lm14: k2 <> 5 implies JUMP ((a,k1)>=0_goto k2) = {}
proof
set i = (a,k1)>=0_goto k2;
set X = the set of all NIC(i,l) where l is Nat;
assume
A1: k2 <> 5;
hereby
set x1 = -k2+|.k2.|+4;
let x be object;
assume
A2: x in JUMP i;
A3: x1 > -k2+|.k2.|+0 by XREAL_1:6;
then
A4: x1 > 0 by ABSVALUE:27;
then reconsider x1 as Element of NAT by INT_1:3;
set nl1 = |.k2.|+x1;
set nl2 = nl1+x1;
set l1 = nl1;
set l2 = nl2;
NIC(i,l1) in X;
then x in NIC(i,l1) by A2,SETFAM_1:def 1;
then consider s1 being Element of product the_Values_of SCMPDS
such that
A5: x = IC Exec(i,s1) and
A6: IC s1 = l1;
consider m1 being Element of NAT such that
A7: m1 = IC s1 and
A8: ICplusConst(s1,k2) = |.m1+k2.| by SCMPDS_2:def 18;
NIC(i,l2) in X;
then x in NIC(i,l2) by A2,SETFAM_1:def 1;
then consider s2 being Element of product the_Values_of SCMPDS
such that
A9: x = IC Exec(i,s2) and
A10: IC s2 = l2;
consider m2 being Element of NAT such that
A11: m2 = IC s2 and
A12: ICplusConst(s2,k2) = |.m2+k2.| by SCMPDS_2:def 18;
per cases;
suppose that
A13: s1.DataLoc(s1.a,k1) >= 0 and
A14: s2.DataLoc(s2.a,k1) >= 0;
A15: x = |.m2+k2.| by A9,A12,A14,SCMPDS_2:57;
A16: x = |.m1+k2.| by A5,A8,A13,SCMPDS_2:57;
thus x in {}
proof
per cases by A6,A7,A10,A11,A16,A15,ABSVALUE:28;
suppose
nl1+2-2+k2 = nl2+2-2+k2;
hence thesis by A3,ABSVALUE:27;
end;
suppose
nl1+2-2+k2 = -(nl2+2-2+k2);
hence thesis by Lm4;
end;
end;
end;
suppose that
A17: s1.DataLoc(s1.a,k1) < 0 and
A18: s2.DataLoc(s2.a,k1) < 0;
A19: x = l2+1 by A9,A10,A18,SCMPDS_2:57;
x = l1+1 by A5,A6,A17,SCMPDS_2:57;
hence x in {} by A3,A19,ABSVALUE:27;
end;
suppose that
A20: s1.DataLoc(s1.a,k1) < 0 and
A21: s2.DataLoc(s2.a,k1) >= 0;
reconsider n1 = l1 as Element of NAT;
set w1 = n1;
A22: x = |.m2+k2.| by A9,A12,A21,SCMPDS_2:57;
A23: x = n1+1 by A5,A6,A20,SCMPDS_2:57
.= n1 + 1;
thus x in {}
proof
per cases by A23,A22,ABSVALUE:1;
suppose
w1+1 = m2+k2;
then nl1+1 = nl1 + (x1 + k2) by A10,A11;
hence thesis by Lm5;
end;
suppose
w1+1 = -(m2+k2);
hence thesis by A4,A10,A11,Lm6;
end;
end;
end;
suppose that
A24: s1.DataLoc(s1.a,k1) >= 0 and
A25: s2.DataLoc(s2.a,k1) < 0;
reconsider n2 = l2 as Element of NAT;
A26: x = n2+1 by A9,A10,A25,SCMPDS_2:57
.= n2 + 1;
set w2 = n2;
A27: x = |.m1+k2.| by A5,A8,A24,SCMPDS_2:57;
thus x in {}
proof
per cases by A27,A26,ABSVALUE:1;
suppose
w2+1 = m1+k2;
hence thesis by A1,A6,A7,Lm7;
end;
suppose
w2+1 = -(m1+k2);
hence thesis by A4,A6,A7,Lm8;
end;
end;
end;
end;
thus thesis;
end;
registration
let a,k1,k2;
cluster JUMP ((a,k1)<>0_goto k2) -> empty;
coherence
proof
k2 = 5 or k2 <> 5;
hence thesis by Lm9,Lm10;
end;
cluster JUMP ((a,k1)<=0_goto k2) -> empty;
coherence
proof
k2 = 5 or k2 <> 5;
hence thesis by Lm11,Lm12;
end;
cluster JUMP ((a,k1)>=0_goto k2) -> empty;
coherence
proof
k2 = 5 or k2 <> 5;
hence thesis by Lm13,Lm14;
end;
end;
theorem Th18:
SUCC(l,SCMPDS) = NAT
proof
thus SUCC(l,SCMPDS) c= NAT;
let x be object;
set X = the set of all
NIC(i,l) \ JUMP i where i is Element of the InstructionsF of SCMPDS;
assume x in NAT;
then reconsider x as Element of NAT;
reconsider xx=x as Element of NAT;
set i = goto ( xx - l);
NIC(i,l) = { |. xx - l + l.| } by Th3
.= {x} by ABSVALUE:def 1;
then
A1: x in NIC(i,l) \ JUMP i by TARSKI:def 1;
NIC(i,l) \ JUMP i in X;
hence thesis by A1,TARSKI:def 4;
end;
registration
cluster SCMPDS -> non InsLoc-antisymmetric;
coherence
proof
SUCC( 2,SCMPDS) = NAT by Th18;
then
A1: (2) <= (1), SCMPDS by AMI_WSTD:33;
SUCC( 1,SCMPDS) = NAT by Th18;
then
A2: (1) <= (2), SCMPDS by AMI_WSTD:33;
assume SCMPDS is InsLoc-antisymmetric;
hence thesis by A2,A1,AMI_WSTD:def 2;
end;
end;
registration
cluster SCMPDS -> non weakly_standard;
coherence by AMI_WSTD:10;
end;