this post was submitted on 29 Aug 2024
774 points (99.0% liked)

196

16449 readers
2194 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] 0x0@lemmy.dbzer0.com 76 points 2 months ago (2 children)

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 18 points 2 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.