• Trailblazing Braille Taser@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    78
    arrow-down
    2
    ·
    4 months ago

    Let us model the poop rule as a predicate keep that maps the set of real world objects to {true, false} and a function poopy that maps the set of real world objects to the set of real world objects with poop on them.

    For all x, keep(poopy(x)) = keep(poopy(poopy(x))), thus we can say that poopy is idempotent under keep.

    Further, poopy is injective because there exist distinct x and y such that keep(poopy(x)) ≠ keep(poopy(y)). The proof by example is that you would keep a poopy million dollar bill, but you would not keep a poopy poop.

    • BluesF@lemmy.world
      link
      fedilink
      arrow-up
      18
      ·
      4 months ago

      Your model is lacking in one area - poopy() has an inverse poopwash() where for some set of poopy objects Y, poopwash maps Y to a subset of the set of real world objects, but there exists a set of poopy objects Z for which poopwash maps Z to a subset of poopy objects.

      My initial instinct was to suggest that for all z in Z, keep(z) = false, however I believe your million dollar example runs counter to this. Nonetheless, I suspect there is a useful subset of Z, let’s say S, for which we can say, for all s in S, keep(s) = false.