Total-order junctivity
EWD1138 · 1991–1995 · PDF · Source language: English. · Local OCR-derived source needs manual review.
Total-order junctivit y
Continuity -see [0],p.87- is a special case of total-order junctivity. A set $S^{\prime}$ of predicate transformers is totally ordered iff
$$ \langle \forall x, y: x \in S \land y \in S: [ x \Rightarrow y ] \lor [ x \Leftarrow y ] \rangle $$
and a predicate transformer is called "total-order junctive" iff it is junctive over totally ordered sets of predicates. We leave to the reader the proof of -see [0], p.84 -
$S$ is totally ordered $\equiv {S}^{ * }$ is totally ordered
and also of "any total-order junctive predicate transformer is monotonic". We now generalize Theorem (6.43) of [0] - see p.99- to
Theorem DisjunctiOn preserves total-order conjunctivity, i.e. let predicate transformer $f$ be given in terms of the total-order conjunctive predicate transformers $g$ and $h$ by
$$ [ f. x \equiv g. x \vee h. x ] \quad f o r a l l x; $$
then $p$ is total-order conjunctive.
Proof In this proof, $x$ and $y$ range over an arbitrary totally ordered set. Our proof obligation is then to show
$$ [ f. \langle \forall x:: x \rangle \equiv \langle \forall x:: f. x \rangle ] $$
To this end we observe
$$ \begin{array}{l} f. \langle \forall x: x \rangle \ = {\mathrm {d e f . o f} f \mathrm {a n d r e n a m i n g a d u m m y} } \ g. \langle \forall x: x \rangle \sim h. \langle \forall y: y \rangle \ = {g a n d h t o t a l - o r d e r c o n j u n c t i v e } \ \langle \forall x: g. x \rangle \vee \langle \forall y: h. y \rangle \ = {\text {d i s t r i b u t e} \vee \text {o v e r} \forall ; \text {u n n e s t i n g} } \ \langle \forall x, y: g. x \vee h. y \rangle \ = {\mathrm {r a n g e i s t o t a l l y o r d e r e d} } \ \langle \forall x, y: [ x \Rightarrow y ]: g. x \vee h. y \rangle . \ \langle \forall x, y: [ x \Leftarrow y ]: g. x \vee h. y \rangle \ = {\mathrm {n e s t i n g} } \ \langle \forall x: \langle \forall y: [ x \Rightarrow y ]: g. x \vee h. y \rangle \rangle \land \ \langle \forall y: \langle \forall x: [ x \Leftarrow y ]: g. x \vee h. y \rangle \rangle \ = {h m o n o t o n i c; g m o n o t o n i c } \ \langle \forall x: g. x \vee h. x \rangle \wedge \langle \forall y: g. y \vee h. y \rangle \ = {\mathrm {d e f} _ {p} o f f } \ \langle \forall x: f. x \rangle \ \end{array} $$
(End of Proof.)
The analog of Theorem (5.116) of [0] -see
With $f$ monotonic in both arguments and
$$ [ \langle \forall x, y: f. x. y \rangle \equiv \langle \forall x: f. x. x \rangle ] \quad , $$
which we could have appealed to in the above proof. All this is more general, cleaner
and simpler than in [0]. For the sake of com- pleteness (and having just started a new page) we prove the last theorem by observing
$$ \begin{array}{l} \langle \forall x, y: f. x. y \rangle \ = {\mathrm {r a n g e} _ {n} ^ {1} \mathrm {t o t a l l y o r d e r e d} } \ \langle \forall x, y: [ x \Rightarrow y ]: f. x. y \rangle \land \langle \forall x, y: [ x \Leftarrow y ]: f. x. y \rangle \ = {\mathrm {n e s t i n g} } \ \langle \forall x: \langle \forall y: [ x \Rightarrow y ]: f. x. y \rangle \rangle \land \langle \forall y: \langle \forall x: [ x \Leftarrow y ]: f. x. y \rangle \rangle \ = {f _ {\mathrm {m o n o t o n i c}} \mathrm {i n} \mathrm {b o t h a r g u m e n t s} } \ \langle \forall x: p. x. x \rangle , \land \langle \forall y: p. y. y \rangle \ = {\mathrm {p r e d . c a l c .} } \ \langle \forall x: f. x. x \rangle \ \end{array} $$
All this has been triggered by a theorem in the thesis of Ernie Cohen.
Austin, 16 October 1992
prof. dr. Edsger W. Dijkstra
Department of Computer Sciences
The University of Texas at Austin
Austin, TX 78712 - 1188
USA
[0] Edsger W. Dýkstra and Carel S. Scholten, Predicate Calculus and Program Semantics, Springer-Verlag, New York - Berlin-Heidelberg, 1990