Would all constructivists actually say so? I'd think there could be some who think that

disjoint :: (s, t : Set a) -> x : a -> Either (Not (elem x s)) (Not (elem x t))

in which case being disjoint is a stronger property than just not overlapping. But of course,
none of this is really relevant to Haskell.


On Dec 19, 2017 6:46 PM, "Andreas Abel" <abela@chalmers.se> wrote:
I am thinking along the lines of Tikhon.

Sets "overlap" is a rather uncommon term.  [If we were all constructivists, the situation would be different.  Constructively, "overlap" is certainly the primitive notion, and "disjoint" only its negation.]

We can't introduce a positive term for everything.  For instance, we all use

  not . null

rather than having predicates like "isCons", "inhabited" etc.

On 19.12.2017 19:01, Tikhon Jelvis wrote:
In practice, I hear people talking about "disjoint" sets all the time—it comes up a lot more often than "overlapping" or "not overlapping". It might have a negative in the name semantically, but it's used as an atomic word in practice. (That is, when people say "disjoint" they're *thinking* "disjoint" as opposed to "not joint" or "not overlapping".)

I'm in favor of naming functions with common usage in mind, and I think "disjoint" is the word people use most often in this context.

On Tue, Dec 19, 2017 at 7:44 AM, Henning Thielemann <lemming@henning-thielemann.de <mailto:lemming@henning-thielemann.de>> wrote:


    On Tue, 19 Dec 2017, Víctor López Juan wrote:

        I'm thinking that `disjoint` is already a negation:
        (dis- (not) + joint (united)). When composing with `not`, the
        user gets
        a double negation `not (disjoint x y)`. There is a then a small
        mental
        effort required to go from "not disjoint" to "overlapping".

        If we are going to have only one of the two properties, I would
        rather
        have the positive one (`overlaps`) as primitive. Then `disjoint`
        would
        be written "not (overlaps x y)", which reads quite easily.
        (Or even "not (x `overlaps` y)").


    I also dislike double negation and think that 'disjoint' is one. I'd
    prefer to see both 'overlap' and 'disjoint'.
    _______________________________________________
    Libraries mailing list
    Libraries@haskell.org <mailto:Libraries@haskell.org>
    http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
    <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>




_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries



--
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel@gu.se
http://www.cse.chalmers.se/~abela/
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries