• WraithGear@lemmy.world
    link
    fedilink
    English
    arrow-up
    52
    ·
    4 hours ago

    again that’s two loops and a successful exit.

    1. do opposite of 2.
    2. complete 3.
    3. ignore 1

    Start loop 2

    1. -ignored-
    2. do not complete 3.
    3. -not completed-

    all wishes fulfilled, genie.exe concludes

      • thebestaquaman@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        2 hours ago

        You could argue that there is though, since the genie will grant three wishes. In that case, it operates like

        granted_wishes = 0
        while granted_wishes < 3:
            wish = receive_wish()
            granted = grant_wish(wish)  # True if wish is granted, false otherwise (invalid wish etc)
            if granted:
                granted_wishes = 0
        

        So we get

        1. Do opposite of next -> granted_wishes = 1
        2. Complete 3 -> granted_wishes = 2
        3. Enter time loop (recurse)

        -inner loop-

        1. Do opposite of next (ignored due to outer loop) -> granted_wishes = 0
        2. Ignore 3 -> granted_wishes = 1
        3. Ignore 1 -> enter time loop (recurse)

        -inner loop 2-

        1. Do opposite of next (ignored due to outer loop) -> granted_wishes = 0
        2. Ignore 3 -> granted_wishes = 1
        3. Ignore 1 -> enter time loop (recurse)

        … etc.

        We get an infinite time-loop recursion, because we never reach the third guess in the inner loops.

    • greyscaleA
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 hours ago

      I think that it is more that they need to be conditionally applied simultaneously, but are contradictory conditions that cannot be met.

    • samus12345@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      33
      ·
      4 hours ago

      Imprisoning a powerful being in an oil lamp that can be released simply by someone rubbing it is a pretty shitty setup!

      • wolframhydroxide@sh.itjust.works
        link
        fedilink
        arrow-up
        6
        ·
        2 hours ago

        I really like my friend’s justification in his fantasy worldbuilding, which explains it to my satisfaction:

        When attempting to seal things of mundane power, mundane objects are sufficient, such as handcuffs and chains. When you try to seal something magically, that extra power needed to seal such a powerful entity has tradeoffs: the more magically unbreakable and irresistible you want the seal to be, the more fragile the conditions holding it must also be. Want to seal all the evils of the world, even for a short time? Well, looks like you’re going to need to store them in a top-heavy, ceramic jar with a tiny bottom, like Pandora’s Pithos. Trapping a genie? It’ll be much easier if you lay the trap with conditions for release, like someone rubbing it three times. Want to bind a violent spirit? Bind it to a fragile mirror, and make it so that she is freed if anyone stares into the mirror and says her name thrice, or if the mirror shatters.

        This explains a lot of the folkloric sealing rituals in mythology.

        • samus12345@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          4
          ·
          2 hours ago

          Why don’t they ever put the items with the evil beings sealed in them in a heavy container with padding, then drop it into the middle of the ocean? It’s like they want them to be unsealed later for story purposes or something!

      • brsrklf@jlai.lu
        link
        fedilink
        arrow-up
        10
        ·
        3 hours ago

        Decades of JRPG have taught me those seals on ancient evils are almost always made breakable by a dumb kid that has no idea what he’s doing.

      • qualia@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 hour ago

        Agreed, but that was the only way we could do it. Sorta like a loophole the genie didn’t expect becuz it’s so dumb.

  • cattywampas@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    3 hours ago

    Genie: “I’m a thinking being not a computer, these wishes don’t make sense so I’m not granting them.”

  • Sergio@piefed.social
    link
    fedilink
    English
    arrow-up
    36
    arrow-down
    1
    ·
    6 hours ago

    I don’t get it…

    • “Do the opposite of my next wish”, you have two wishes left, ok will do
    • “Don’t fulfil my third wish,” you have one wish left, ok I will do the opposite and WILL fulfil your third wish.
    • “Ignore my first wish” you have no wishes left, ok I don’t remember anything about your first wish.

    It basically boils down to “do nothing”, right?

    • iamthetot@piefed.ca
      link
      fedilink
      English
      arrow-up
      23
      ·
      5 hours ago

      To fulfill the third wish, the genie must ignore the first wish made. The first wish was to do the opposite of the second, so to fulfill the third wish, the genie must now ignore that command, and do not the opposite not the actual second wish. The second wish, now primed to be fulfilled in earnest, not opposite, was to not fulfill the third. But fulfilling the third is how we got into this situation in the first place, so if it’s not fulfilled anymore, we shouldn’t be in the state we’re in.

      • UnderpantsWeevil@lemmy.world
        link
        fedilink
        English
        arrow-up
        27
        ·
        5 hours ago

        To fulfill the third wish, the genie must ignore the first wish made.

        These were executed in serial, so the effects have already been committed. Ignoring the first wish at the end had no material effect, because it’s already been executed “flipping the second wish”.

        These commands would need to be actively looping before you encountered a runtime error. But the genie isn’t re-evaluating the wish stack after each wish.

        • iamthetot@piefed.ca
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 hours ago

          I mean, we are talking about a magical genie that can alter the fabric of reality to grant wishes. I trust you can suspend disbelief that the genie cannot change the past to effect those changes.

        • [object Object]@lemmy.ca
          link
          fedilink
          arrow-up
          7
          ·
          4 hours ago

          Yeah the wording on “ignore” is not the same as “undo all effects of” or “rollback my first wish”

          Even so, I think it’s still just a no-op at the cost of 3 wishes.

    • TheTechnician27@lemmy.worldM
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      3 hours ago

      It basically boils down to “do nothing”, right?

      Sort of due to a flaw in the syntax; it (almost) boils down to an infinite loop (we’ll fix the syntax to specify “I wish for you to” and use the wish flags ‘!’ = opposite, ‘~’ = ignore/skip (we’ll assume this exhausts a wish still even though it shouldn’t since it doesn’t matter anyway), and for clarity, we’ll make ‘+’ mean no flags/execute normally; all 3 wishes are ‘+’ at the start of the first loop):

      • “I wish for you to do the opposite of my next wish.” (flag set to do !wish2)
      • “I wish for you not to fulfill my third wish.” (flag set for +wish3)
      • “I wish for you to [have ignored] my first wish.” (now ~wish1 was set before you made wish 2; notably, this needs to be retroactive for the loop to start, so the syntax in the OP is wrong).

      Now +wish2 was set. But then the flag for ~wish3 was set. But then +wish1 was set (i.e. it was never ignored; this is flawed, however, but author’s logic). Now !wish2 was set. Now ~wish3 was set. Etc.

      Every even loop (0-indexed) will be (+, !, +) while every odd one will be (~, +, ~).

      That said, a flaw in this logic is that it should actually stop after Loop 1, since wish3 is no longer an active wish; the genie doesn’t have to go back and change anything. You need the wish to be active, not ignored, to break the genie into an infinite loop.

      “I wish for you to do the opposite of my first wish.” as wish3 should break 'em.

      • Sergio@piefed.social
        link
        fedilink
        English
        arrow-up
        3
        ·
        5 hours ago

        [have ignored] … notably, this needs to be retroactive for the loop to start, so the syntax in the OP is wrong

        oooh, that makes sense, if you change the wording like that…

    • cholesterol@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      5 hours ago

      If the wishes are prioritized from more to less recent, yeah. -which I guess is the trope’s tradition. But it’s an attempt at a self-referential paradox akin to the liars’ paradox (this statement is false). I think a shorter, but more valid version, would be ‘don’t fulfil this wish’.

  • Maroon@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    5 hours ago

    IMHO, I feel people here have the Disney idea of a genie rather than the true Middle Eastern idea of a djin.

    Djins grant wishes more like the MonkeyPaw. It can horribly backfire. The protagonist is basically using logic to neutralize anything bad the djin can potentially do to him.

    • samus12345@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 hours ago

      How djinns grant wishes varies wildly in stories. Some are actively malicious, some try to grant the wish along the spirit of the wish, some are strictly literal with no actual malice intended. If the djinn is imprisoned and forced to grant wishes it does makes sense that they would “Monkey’s Paw” them if they’re able.

    • Wirlocke@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      3
      ·
      4 hours ago

      I’d argue the Monkey’s Paw is a bad example because I don’t think the Monkey’s Paw is actively malicious like a djinn.

      I think Monkey’s Paw just works off of path of least resistance. What’s the fastest way to randomly get rich? Workplace accident causing life insurance payout. What’s the least effort way to revive the dead? Just make the corpse start moving again. What’s the easiest way to give a shambling corpse peace? Undo the last wish.

      I feel like a Djinn wouldn’t let you undo the reviving wish. They’d probably just put them in a coma so your son is now in a half dead comatose state forever.

      • samus12345@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 hours ago

        The Monkey’s Paw seems “programmed” maliciously to grant the wish using a method that produces other results undesirable to the wisher rather than there being any active malice on the Paw’s part.

    • makeshiftreaper@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 hours ago

      Yeah, even stories of “benevolent” djinn who want to help still backfire and those are the minority. Most are tricksters who want to fuck with you, so giving them some sort of logic loop is more likely that they break logic/causality than you’ll have them blue screen of death and poof away in a cloud of smoke

    • Sergio@piefed.social
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 hours ago

      I feel people here have the Disney idea of a genie rather than the true Middle Eastern idea of a djin.

      oooh that makes sense… I had a friend in cybersecurity who was always using the term “evil genie” to characterize how attackers would take any system you developed, and look for a way to use it against you.

  • borth@sh.itjust.works
    link
    fedilink
    arrow-up
    14
    ·
    6 hours ago

    Well, the first wish can be ignored without being “undone”, so nothing should have happened.

  • Sundray@lemmus.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    5 hours ago

    I feel like this would just result in the genie pinching the bridge of his nose and manifesting an aspirin.

  • kryptonianCodeMonkey@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    3 hours ago

    Is the joke that this would result in an infinite loop? Cuz it absolutely does not do that.

    First pass of wishes

    1. do the opposite of wish 2.
    2. “don’t do wish 3”, reinterpreted due to wish one to “do wish 3”.
    3. ignore wish 1.

    Wish three make him go back to wish one to reinterprete, so it is now understood as:

    1. [ignored]
    2. dont do wish 3 (understood as is now)
    3. [doesn’t matter, we’re not doing it, per wish 2]

    The execution of wish 3 removes wish 1, and wish 2 removes wish 3. OP would probably argue that if wish 3 doesn’t execute on the second loop then wish 1 can’t be ignored, and so it goes back to the original interpretation and gets stuck in a loop, but that is a bad take. The manner of interpretation is sequential, even if recursion is implemented. It doesn’t (can’t) get reinterpreted as a whole. The moment you’re told not to do the next step, you’re done. So you just wished for no wishes. Good job, you fooled yourself. Go take an algorithms class.

    Furthermore, pretty sure any sensible genie would say “sorry, all wishes are final” or "I’m a genie. I’m literally incapable of ignoring your wishes. That or, “you’re attempting to create an infinite loop in logic that I couldn’t possibly execute on because it creates a paradox. But literally nothing in you’re wishes does anything but effect other wishes, having absolutely no noticeable external effect on the world so… done. Enjoy your weird self-satisfaction over having the ability to reshape all of reality on your personal whim and still achieving literally no effect on the universe. Your mother was right about you. Go fuck yourself.”

  • UnderpantsWeevil@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    5 hours ago

    Me, presented with a nice man who just offered to do three favors no-strings-attached: “How can I fuck with this guy?”