CADiZ

Reference manual / Z-related commands / Proof rule commands / disjointness


The disjointness command is applicable to two names in a goal, where both names refer to elements or injections of a free type. It makes the disjointness constraint implied by the free type between the elements and injections available as an antecedent in the sub-goal.

Given the general form of a free type,

f1 ::= h1,1 ... h1,m1 | g1,1 \ldata e1,1 \rdata ... g1,n \ldata e1,n \rdata
& ... &
fr ::= hr,1 ... hr,mr | gr,1 \ldata er,1 \rdata ... gr,nr \ldata er,nr \rdata

the disjointness constraint for two elements is

\lnot hi,j = hi,k

the disjointness constraint for an element and an injection is

\forall u : ei,k @ \lnot hi,j = gi,k u

the disjointness constraint for an injection and an element is

\forall u : ei,k @ \lnot gi,k u = hi,j

and the disjointness constraint for two injections is

\forall u : ei,j; v : ei,k @ \lnot gi,j u = gi,k v

Tactic example

"disjointness" e1 e2

This example applies the disjointness command to expressions e1 and e2.


IT 19-Feb-1999