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.
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.
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.
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.
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’.
I don’t get it…
It basically boils down to “do nothing”, right?
Exactly. I don’t know why people are assuming that genies loop back on granted wishes.
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.
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.
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.
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.
The premise of the joke is pedantry. I reserve the right to be equally pedantic.
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):
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.
oooh, that makes sense, if you change the wording like that…
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’.