Journal of Formalized Mathematics
Volume 15, 2003
University of Bialystok
Copyright (c) 2003
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Artur Kornilowicz,
and
- Yasunari Shidama
- Received September 27, 2003
- MML identifier: SCMPDS_9
- [
Mizar article,
MML identifier index
]
environ
vocabulary BOOLE, SETFAM_1, FUNCT_1, ARYTM, ORDINAL2, FUNCT_4, FINSEQ_1,
FINSEQ_4, RELAT_1, CAT_1, AMISTD_2, REALSET1, FINSET_1, ARYTM_3, ARYTM_1,
ABSVALUE, INT_1, NAT_1, FUNCOP_1, TARSKI, AMI_1, AMI_2, AMI_3, AMISTD_1,
SCMPDS_2, SCMPDS_3, GOBOARD5, SQUARE_1;
notation TARSKI, XBOOLE_0, SUBSET_1, SETFAM_1, ORDINAL2, ORDINAL1, NUMBERS,
XCMPLX_0, XREAL_0, FUNCT_1, ABSVALUE, INT_1, NAT_1, CQC_LANG, FINSET_1,
REALSET1, STRUCT_0, GROUP_1, RELAT_1, FUNCT_4, FINSEQ_1, FINSEQ_4,
PRE_CIRC, AMI_1, AMI_2, AMI_3, AMI_5, SCMPDS_2, SCMPDS_3, AMISTD_1,
AMISTD_2;
constructors NAT_1, SCMPDS_1, SCMPDS_3, AMISTD_2, AMI_5, FINSEQ_4, REALSET1,
PRE_CIRC;
clusters ARYTM_3, FRAENKEL, INT_1, RELSET_1, AMI_1, SCMPDS_2, XREAL_0,
GOBOARD1, FUNCT_4, AMISTD_2, CQC_LANG, SCMRING1, FINSET_1, MEMBERED,
ORDINAL2;
requirements BOOLE, SUBSET, NUMERALS, ARITHM, REAL;
begin :: Preliminaries
reserve r, s for real number;
theorem :: SCMPDS_9:1
0 <= r + abs(r);
theorem :: SCMPDS_9:2
0 <= -r + abs(r);
theorem :: SCMPDS_9:3
abs(r) = abs(s) implies r = s or r = -s;
theorem :: SCMPDS_9:4
for i, j being natural number st i < j & i <> 0 holds
i/j is not integer;
theorem :: SCMPDS_9:5
{2*k where k is Nat: k > 1} is infinite;
theorem :: SCMPDS_9:6
for f being Function, a,b,c being set st a <> c holds
(f +* (a.-->b)).c = f.c;
theorem :: SCMPDS_9:7
for f being Function, a,b,c,d being set st a <> b holds
(f +* ((a,b)-->(c,d))) .a = c &
(f +* ((a,b)-->(c,d))) .b = d;
begin :: SCMPDS
reserve a, b for Int_position,
i for Instruction of SCMPDS,
l for Instruction-Location of SCMPDS,
k, k1, k2 for Integer,
n for Nat;
definition
let la, lb be Int_position,
a, b be Integer;
redefine func (la,lb) --> (a,b) -> FinPartState of SCMPDS;
end;
definition
cluster SCMPDS -> with-non-trivial-Instruction-Locations;
end;
definition
let l be Instruction-Location of SCMPDS;
func locnum l -> natural number means
:: SCMPDS_9:def 1
il.it = l;
end;
definition
let l be Instruction-Location of SCMPDS;
redefine func locnum l -> Nat;
end;
theorem :: SCMPDS_9:8
l = 2*locnum l + 2;
theorem :: SCMPDS_9:9
for l1, l2 being Instruction-Location of SCMPDS st l1 <> l2 holds
locnum l1 <> locnum l2;
theorem :: SCMPDS_9:10
for l1, l2 being Instruction-Location of SCMPDS st l1 <> l2 holds
Next l1 <> Next l2;
theorem :: SCMPDS_9:11
for N being with_non-empty_elements set,
S being IC-Ins-separated definite (non empty non void AMI-Struct over N),
i being Instruction of S,
l being Instruction-Location of S holds
JUMP(i) c= NIC(i,l);
theorem :: SCMPDS_9:12
(for s being State of SCMPDS st IC s = l & s.l = i
holds Exec(i,s).IC SCMPDS = Next IC s)
implies
NIC(i, l) = {Next l};
theorem :: SCMPDS_9:13
(for l being Instruction-Location of SCMPDS holds NIC(i,l)={Next l})
implies JUMP i is empty;
theorem :: SCMPDS_9:14
NIC(goto k,l) = { 2*abs(k+locnum l) + 2 };
theorem :: SCMPDS_9:15
NIC(return a,l) = {2*k where k is Nat: k > 1};
theorem :: SCMPDS_9:16
NIC(saveIC(a,k1), l) = {Next l};
theorem :: SCMPDS_9:17
NIC(a:=k1, l) = {Next l};
theorem :: SCMPDS_9:18
NIC((a,k1):=k2, l) = {Next l};
theorem :: SCMPDS_9:19
NIC((a,k1):=(b,k2), l) = {Next l};
theorem :: SCMPDS_9:20
NIC(AddTo(a,k1,k2), l) = {Next l};
theorem :: SCMPDS_9:21
NIC(AddTo(a,k1,b,k2), l) = {Next l};
theorem :: SCMPDS_9:22
NIC(SubFrom(a,k1,b,k2), l) = {Next l};
theorem :: SCMPDS_9:23
NIC(MultBy(a,k1,b,k2), l) = {Next l};
theorem :: SCMPDS_9:24
NIC(Divide(a,k1,b,k2), l) = {Next l};
theorem :: SCMPDS_9:25
NIC((a,k1)<>0_goto k2,l) = { Next l, abs( 2*(k2+locnum l) ) + 2 };
theorem :: SCMPDS_9:26
NIC((a,k1)<=0_goto k2,l) = { Next l, abs( 2*(k2+locnum l) ) + 2 };
theorem :: SCMPDS_9:27
NIC((a,k1)>=0_goto k2,l) = { Next l, abs( 2*(k2+locnum l) ) + 2 };
definition
let k;
cluster JUMP (goto k) -> empty;
end;
theorem :: SCMPDS_9:28
JUMP (return a) = {2*k where k is Nat: k > 1};
definition
let a;
cluster JUMP (return a) -> infinite;
end;
definition
let a,k1;
cluster JUMP (saveIC(a,k1)) -> empty;
end;
definition
let a,k1;
cluster JUMP (a:=k1) -> empty;
end;
definition
let a,k1,k2;
cluster JUMP ((a,k1):=k2) -> empty;
end;
definition
let a,b,k1,k2;
cluster JUMP ((a,k1):=(b,k2)) -> empty;
end;
definition
let a,k1,k2;
cluster JUMP (AddTo(a,k1,k2)) -> empty;
end;
definition
let a,b,k1,k2;
cluster JUMP (AddTo(a,k1,b,k2)) -> empty;
cluster JUMP (SubFrom(a,k1,b,k2)) -> empty;
cluster JUMP (MultBy(a,k1,b,k2)) -> empty;
cluster JUMP (Divide(a,k1,b,k2)) -> empty;
end;
definition
let a,k1,k2;
cluster JUMP ((a,k1)<>0_goto k2) -> empty;
cluster JUMP ((a,k1)<=0_goto k2) -> empty;
cluster JUMP ((a,k1)>=0_goto k2) -> empty;
end;
theorem :: SCMPDS_9:29
SUCC(l) = the Instruction-Locations of SCMPDS;
theorem :: SCMPDS_9:30
for N being with_non-empty_elements set,
S being IC-Ins-separated definite (non empty non void AMI-Struct over N),
l1, l2 being Instruction-Location of S
st SUCC(l1) = the Instruction-Locations of S
holds l1 <= l2;
definition
cluster SCMPDS -> non InsLoc-antisymmetric;
end;
definition
cluster SCMPDS -> non standard;
end;
Back to top