Based on appendix D in
The Way of Z.
Links to more Z examples.
This page looks best when this and this X are
about the same size: X. See these viewing tips.
The Z mathematical tool-kit is a collection of types and operators
somewhat like a standard library of types and functions in a
programming language.
The definitions in the tool-kit build up all the Z operators from
a few fundamental constructs in logic and set theory.
The tool-kit uses generic definitions very heavily: X, Y, and Z
stand for any type, S and T are sets of any type, and Q and R
are binary relations between any two types. The toolkit also makes
extensive use of patterns in abbreviation definitions, for example it
defines the binary relation symbol by X Y == (X Y).
In a few places I've used English paraphrases for predicates, where
the formal definition uses constructs or concepts not defined here.
These selections from the tool-kit are based on the
Reference Manual,
which defines additional types and operators.
Sets
Pairs and binary relations I
Pairs and binary relations II
Pairs and binary relations III
Numbers and arithmetic
Functions
Sequences
Other Z pages
Glossary
| - | Empty set: a set that has no elements |
x S | - | Non-membership: x is not an element of S |
S T | - | Subset: all elements of S belong to T |
S T | - | Proper subset: S is a subset of T and S is not equal to T |
S T | - | Union: the set of elements in either S or T |
S T | - | Intersection: the set of elements in both S and T |
S \ T | - | Set difference: the set of elements in S that are not in T |
Definitions
[X] == { x: X | false } |
|
| [X] |
|
|
|
|
|
|
|
|
|
|
| _ _ : X X |
| _ _, _ _ : X X |
| _ _ , _ _, _ \ _: X X X |
|
|
|
|
|
| x: X; S, T: X |
| |
| x S (x X) |
| |
| (S T ( x: X x S x T)) |
| |
| (S T S T S T) |
| |
| S T = { x: X | x S X T } |
| |
| S T = { x: X | x S X T } |
| |
| S \ T = { x: X | x S X T } |
| |
|
|
Glossary
(x,y) | - | The pair x,y |
x y | - | Maplet: x maps to y, same as (x,y) |
first p | - | First element of pair p |
second p | - | Second element of pair p |
id X | - | Identity relation |
X Y | - | Binary relation |
dom R | - | Domain: the set of first elements of all pairs in R |
ran R | - | Range: the set of second elements of all pairs in R |
Definitions
X Y == (X Y) |
|
id X == { x: X x x } |
|
| [X,Y] |
|
|
|
|
|
|
|
|
|
|
| first: X Y X |
| second: X Y Y |
| _ _ : X Y X Y |
| dom: (X Y) X |
| ran: (X Y) Y |
|
|
|
|
|
| x: X; y: Y; R: X Y |
| |
| first(x,y) = x |
| |
| second(x,y) = y |
| |
| x y = (x,y) |
| |
| dom R = { x: X; y: Y | x R y x } |
| |
| ran R = { x: X; y: Y | x R y y } |
| |
|
|
Glossary
S R | - | Domain restriction: the pairs in R whose first element is in S |
R T | - | Range restriction: the pairs in R whose second element is in T |
S R | - | Domain antirestriction: the pairs in R whose first element is not in S |
R T | - | Range antirestriction: the pairs in R whose second element is not in T |
R ~ | - | Relational inverse: the pairs in R, |
| | but with first and second elements exchanged |
R S | - | Relational image: the second elements of pairs |
| | in R whose first element is in S. |
R Q | - | Overriding: all pairs in R or Q, |
| | except pairs in R whose first element is also in Q. |
R + | - | Transitive closure of R |
Definitions
|
| [X,Y] |
|
|
|
|
|
|
|
|
|
|
| _ _, _ _ : X (X Y) X Y |
| _ _, _ _ : (X Y) Y X Y |
| _ ~ : (X Y) (Y X) |
| _ _ : (X Y) X Y |
| _ _ : (X Y) (X Y) (X Y) |
| _ + : (X X) (X X) |
|
|
|
|
|
| x: X; y: Y; S: X; T: Y; Q, R: X Y |
| |
| S R = { x: X; y: Y | x S x R y x y } |
| |
| S R = { x: X; y: Y | x S x R y x y } |
| |
| R T = { x: X; y: Y | x R y y T x y } |
| |
| R T = { x: X; y: Y | x R y y T x y } |
| |
| R ~ = { x: X; y: Y | x R y y x } |
| |
| R S = { x: X; y: Y | x S x R y y } |
| |
| Q R = ((dom R) Q) R |
| |
| ... predicate for _ + omitted ... |
| |
|
|
Glossary
Q R | - | Relational composition: Q composed with R |
R Q | - | Backward relational composition, same as Q R |
Definitions
|
| [X,Y,Z] |
|
|
|
|
|
|
|
|
|
|
| _ _ : (X Y) (Y Z) (X Z) |
| _ _ : (Y Z) (X Y) (X Z) |
|
|
|
|
|
| Q: X Y; R: Y Z |
| Q R = R Q = { x: X; y: Y; z: Z | x Q y y R z x z } |
|
|
Glossary
| - | The set of integers |
| - | The set of natural numbers, starting with zero |
1 | - | The set of strictly positive numbers, starting with one |
+,-,* | - | Arithmetic operators: addition, subtraction, multiplication |
div,mod | - | Arithmetic operators: integer division and remainder (modulus) |
<, | - | Comparison: less than, less than or equal |
>, | - | Comparison: greater than, greater than or equal |
i .. j | - | Number range: the set of numbers starting with i up through j |
min S | - | Mininum: the smallest element in S, if any |
max S | - | Maximum: the largest element in S, if any |
# S | - | Size: the number of elements in S |
1 | - | Non-empty sets |
| - | Finite sets |
Definitions
[] |
|
== { n: | n 0 } |
|
1 == \ { 0 } |
|
1 X == { S: X | S } |
|
X == { S: X | ... S is finite ... } |
|
| _ + _, _ - _, _* _ : |
| _ div _, _ mod _ : ( \ { 0 }) |
| _ - : |
| _ < _, _ _, _ _, _ > _ : |
| _ .. _ : |
| #: X |
| min, max: 1 |
|
|
|
|
|
| a,b: a .. b = { i: | a i b } |
| |
| ... predicates for other operators omitted ... |
|
Glossary
X Y | - | Partial function: some members of X are paired with a member of Y |
X Y | - | Total function: every member of X is paired with a member of Y |
X Y | - | Partial injection: some members of X are paired with different members of Y |
X Y | - | Total injection: every member of X is paired with a different member of Y |
X Y | - | Bijection: every member of X is paired with a different member of Y, |
| | covering all Y's |
Definitions
X Y == { f: X Y | Each member of X appears no more than once. } |
|
X Y == { f: X Y | dom f = X } |
|
X Y == { f: X Y | Each member of X is paired with a different member of Y. } |
|
X Y == (X Y) (X Y) |
|
X Y == ... definition omitted ... |
Glossary
seq X | - | Sequence: the set of all sequences of X's |
seq1 X | - | Non-empty sequence: the set of all sequences of X's |
| | with at least one element |
iseq X | - | Injective sequence: the set of all sequences of X's |
| | where each element of X appears only once |
s t | - | Concatenation: sequence s with sequence t appended |
head s | - | Head: the first element of sequence s |
last s | - | Last: the last element of sequence s |
front s | - | Front: all but the last element of sequence s |
tail s | - | Tail: all but the first element of sequence s |
s in t | - | Segment relation: the sequence s appears in sequence t |
Definitions
seq X == { f: X | dom f = 1 .. # f } |
|
seq1 X == { f: seq X | # f > 0 } |
|
iseq X == seq X ( X) |
|
| [X] |
|
|
|
|
|
|
|
|
|
|
| head, last : seq1 X X |
| tail, front : seq1 X seq X |
| _ _ : seq X seq X seq X |
| _ in _ : seq X seq X |
|
|
|
|
|
| s: seq1 X; u,v: seq X |
| |
| head(s) = s(1) |
| |
| last(s) = s(# s) |
| |
| u v = u { i: dom v i + #u v(i) } |
| |
| u in v ( s,t: seq X s u t = v) |
| |
| ... predicates for other operators omitted ... |
| |
|
|
Z examples in web pages.
Z2HTML tool for translating
LaTeX documents with Z markup to HTML web pages.
Z home page
with FAQ and links to publications, tools, and meetings.
Back to top
Jonathan Jacky /
Department of Radiation Oncology
Box 356043
University of Washington /
Seattle, Washington 98195-6043 / USA
Tel (206) 598-4117 / Fax (206) 598-6218
E-mail: jon@u.washington.edu