Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: "Disjoint" relation



Arnold Neumaier wrote:
Nate Hayes wrote:
Michel Hack wrote:
I agree with Arnold that the "Disjoint" relation deserves to be a
primitive.  Interestingly, Motion 21 also requires synthesizing it
out of two of the "overlapping" states.

Arnolds "observation" that
   disjoint(A,B) = ( A \prec B ) or ( B \prec A )    (*)
requires twice as much computational effort than a "primitive" disjoint operation is pure misinformation.

Please provide the pure information that substantiaties your
present claim.

How are you going to evaluate your expression as efficiently as evaluating directly
    disjoint(A,B) = (A.sup<B.inf) or (B.sup<A.inf)
?

Because by Motion 13.04, A.sup < B.inf is the definition (and implementation) of A \prec B and B.sup < A.inf is the definition (and implementation) of B \prec A. An optimizing compiler will therefore automatically generate the inlined code:
   disjoint(A,B) = (A.sup<B.inf) or (B.sup<A.inf)
There is no need for a special "primitive" disjoint operation... or if there is, it should be defined in terms of the "preceeding" relation as given in Motion 13.04, anyways.

Nate