We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

User:Raiseafloppafan7741/Draft IV

From Esolang
Jump to navigation Jump to search

Anti-Plushie Python is a family of languages by user:raiseafloppafan7741 in 2026 that originated from an idea he came up with after going insane on IRC.[1]

Overview

Anti-Plushie Python is Python designed to be anti-Plushie-complete. Because of this, it cannot store the numbers 2 and 4 and it cannot print the number 31. However, the way it goes about this is a bit more nuanced as there are many loopholes to get around any prohibitions.

Anti-Plushie Python A

The most straightforward solution to anti-Plushie-completeness is to prohibit the numbers 2, 4, and 31. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python A". However as shown in Figure 1, there are many alternative ways to represent these numbers.

# Peano axioms
class Number:
    def __init__(prev = None):
        self.prev = prev
    def succ(self):
        return Number(self)
    def __add__(self, other):
        if other == zero: return self
        return self.succ() + other.prev
    def __sub__(self, other):
        if other == zero: return self
        if self == zero: return zero
        return self.prev - other.prev

zero = Number()
two = zero.succ().succ()
four = two + two
thirty_one = four + four + four + four + four + four + four + four - one

# Strings
zero = "0"
two = "2"
four = "4"
thirty_one = "31"

# Arrays of bits
zero = [0]
two = [1, 0]
four = [1, 0, 0]
thirty_one = [1, 1, 1, 1, 1]

# Functions
def zero():
    return zero

def f(x):
    def func():
        return x
    return func

def succ(x):
    return f(x)

def prev(x):
    return x()

def add(x, y):
    if y == zero: return x
    return add(succ(x), prev(y))

two = succ(succ(zero))
four = add(two, two)
thirty_one = prev(add(add(add(four, four), add(four, four)), add(add(four, four), add(four, four))))
Figure 1: Several ways to represent the forbidden numbers in Anti-Plushie Python A.

Anti-Plushie Python B

Because of the workarounds presented in Figure 1, features such as integers, floating-point numbers, complex numbers, collections (strings, lists/arrays, dictionaries, sets, ranges, etc.), generators, objects, classes, and functions are removed. Let us call this new iteration "Anti-Plushie Python B".

# This module automatically recognizes Anti-Plushie Python B and proves it Plushie-complete by
# storing 2 and 4 and printing 31.
import plushie_completeness_proof
Figure 2: Exploiting Python's nature to prove Plushie-completeness for Anti-Plushie Python B.

However, that is not enough to stop a dedicated Plushie-completeness soldier from finding a way to represent the numbers 2 or 4. rendering Anti-Plushie Python B only partially Plushie-incomplete. Python is very well-loved because of its extensive library support. Plushie-completeness soldiers know this which means that a dedicated Plushie-completeness soldier could simply make a C library and make a module for Anti-Plushie Python that, when loaded, automatically stores 2 and 4 in memory and prints the number 31, as shown in Figure 2.

Anti-Plushie Python C

Because of the workaround for Anti-Plushie Python B, modules are removed to prevent cheating. Let us call this new iteration of Anti-Plushie Python "Anti-Plushie Python C".

one = None
two = None
three = None
four = None
Figure 3: Anti-Plushie Python C can store 2 and 4?!

Anti-Plushie Python D

As shown in Figure 3, Anti-Plushie Python C would be able to store 2 and 4 using the count of global/local variables. Because of this, local and global variables are removed from the language, as well as conditional statements, loops, and try-except-finally. Let us call this new iteration of Anti-Plushie Python "Anti-Plushie Python D".


# print 2
AA
# print 4
AAAA
# print 31
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Figure 4: Anti-Plushie Python D can still print them too!?

Anti-Plushie Python E

As shown in Figure 4, Anti-Plushie Python D can still be used to store and print the numbers 2, 4, and 31 via syntax or runtime errors. To alleviate this issue, syntax and runtime errors are removed meaning every program is a valid program for this iteration of Anti-Plushie Python, which we should call "Anti-Plushie Python E".

Below is for 2
##

Below is for 4

####
Figure 5: Anti-Plushie Python E can still store 2 and 4???!!!

Anti-Plushie Python F

However, a Plushie-completeness soldier can still brutally mog Anti-Plushie Python by proving that 2 and 4 can be stored somewhere in memory, as shown in Figure 5. Because of this, comments are no longer allowed in Anti-Plushie Python. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python F".




Figure 6.1: Storing 2





Figure 6.2: Storing 4

Anti-Plushie Python G

As shown in Figure 6.1 and Figure 6.2, 2 can be stored with 2 newlines and 4 can be stored with 4 newlines. Because of this, all programs must be empty. The code object is removed as well. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python G".

# cat antiplushiepython_g.exe | hexdump -C
00000fc0  ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
00000fd0  ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 04 ??
00000fe0  ?? ?? ?? 02 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
00000ff0  ?? ?? ?? ?? ?? ?? ?? 1f ?? ?? ?? ?? ?? ?? ?? ??
00001000  ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 02
...
Figure 7: Anti-Plushie Python G is indirectly Plushie-complete?!

Anti-Plushie Python H

As shown in Figure 7, Anti-Plushie Python G is still able to be used to perform Plushie-completeness rituals. Because of this, the implementation is removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python H".

mydir
+-- 2.py
+-- 31.py
+-- 4.py
Figure 8: Anti-Plushie Python H is also Plushie-complete?! !@#!@#!$@!!!

Anti-Plushie Python I

As shown in Figure 8, Anti-Plushie Python H is still able to be used to perform Plushie-completeness rituals. To fix this issue, the user's files and file system are removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python I".

This is the set of all natural numbers as of Anti-Plushie Python I.
0 1 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ...
Figure 9: Anti-Plushie Python I IS STILL PLUSHIE-COMPLETE?!??!?!?!??!?!?!

Anti-Plushie Python J

As shown in Figure 9, Anti-Plushie Python I is still Plushie-complete. To demonstrate this, let us have the set of all natural numbers starting from zero. The numbers 2, 4, and 31 are missing. However, their factors and multiples still exist, implying that 2, 4, and 31 also exist. To fix this problem, the set of all natural numbers, the set of all integers, the set of all rational numbers, the set of all irrational numbers, the set of all real numbers, the set of all imaginary numbers, the set of all complex numbers, the set of all quaternions, and so on are removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python J".

Anti-Plushie Python K

Despite all of that, Anti-Plushie Python J is still not anti-Plushie-complete. This is because the user's computer's storage mediums may have 2, 4, or 31, or multiples/factors of them. Additionally, the user may think of or say any of the forbidden numbers. To fix this, we remove the user's storage mediums, the user, the user's family, and every living being in the universe. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python K."

Anti-Plushie Python L

Despite all of that, Anti-Plushie Python K is still not anti-Plushie-complete. This is because the universe may contain atoms that may have 2, 4, or 31 components. For example, protium (Hydrogen-1) has 2 components, 1 electron, 0 neutrons, and 1 proton. To fix this, all matter and the entire universe are removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python L".

Anti-Plushie Python M

Despite all of that, Anti-Plushie Python L is still not anti-Plushie-complete, as there are two states: existence and non-existence. This means that Anti-Plushie Python L is at least 1/3 Plushie-complete, which is not anti-Plushie-complete. To fix this, existence and non-existence are removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python M".

Anti-Plushie Python N

Despite all of that, Anti-Plushie Python M is still not anti-Plushie-complete, as according to User:Dragoneater67, the number 2 can be stored using 2 theoretical states: what could possibly exist and what could not possibly exist. Since there are 2 states, this means that 2 exists,[2] which means that Anti-Plushie Python M is at least 1/3 Plushie-complete. To fix that issue, everything that does and doesn't exist, anything stuck between existing and not existing, time, space, nothing, and everything, are all removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python N".

Anti-Plushie Python O

Despite all of that, Anti-Plushie Python N is still not anti-Plushie-complete. This is because some constant languages, such as ConstantLanguage("one"), are Plushie-complete.[3] To fix this problem, all constant languages, non-constant language, Turing machines, uncomputable machines, solvable problems, unsolvable problems, unsolved problems, and everything else not mentioned are removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python O".

Anti-Plushie Python P

Despite all of that, Anti-Plushie Python O is STILL not anti-Plushie-complete. This is because according to User:Dragoneater67, you can represent 2 using the fact that things can exist and not exist.[4] To fix this problem, all concepts, including existence and non-existence, axioms, axes of motion, dimensionality, nothing, possibility, probability, logic, and paradoxes are all removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python P".

Anti-Plushie Python Q

Despite all of that, Anti-Plushie Python { is STILL not anti-Plushie-complete. This is because according to User:Dragoneater67, Anti-Plushie Python P stores the numbers in its name.[5] To alleviate this problem, the association between letters of any writing system (Cyrillic, Latin, CJKV, Ilothwii, etc.) is removed. Let us call this iteration of Anti-Plushie Python "Anti-Plushie Python Q".

Computational class

Anti-Plushie Python A

Since numbers can still be encoded using the Peano axioms, Gödel numbering, nth odd number or prime, or collections, Anti-Plushie Python A is Turing-complete.

Anti-Plushie Python B

Since many features are removed from Anti-Plushie Python B, it is likely not Turing-complete on its own. However, it still has control flow and exceptions, meaning it is not total. It is likely less powerful than a finite-state automaton.

Anti-Plushie Python C, D, E, F, G, H, I

They are completely unable to perform any computation.

Anti-Plushie Python J, K, L, M, N, O, P, Q

These are likely uncomputable.

Examples

Anti-Plushie Python A

Cat program

print(input())

Plushie-completeness proof

def zero():
    return zero
def f(x):
    def g():
        return x
    return g
def succ(x):
    return f(x)
def prev(x):
    return x()
def add(x, y):
    if y == zero: return x
    return add(succ(x), prev(y))
def sub(x, y):
    if x == zero or y == zero: return x
    return sub(pred(x), prev(y))
def print_num(x):
    if x == zero:
        return x
    print('*', end='')
    return print_num(prev(x))

two = succ(succ(zero))
four = add(two, two)
thirty_one = prev(add(add(add(four, four), add(four, four)), add(add(four, four), add(four, four))))
print_num(thirty_one)

A shorter proof just for 31:

print("31")

Anti-Plushie Python B

Plushie-completeness proof

import plushie_completeness_proof

Anti-Plushie Python C

Plushie-completeness proof

one = None
two = None
three = None
four = None
# 31
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Anti-Plushie Python D

Plushie-completeness proof

Print 2

AA

Print 4

AAAA

Print 31

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Anti-Plushie Python E

2/3 Plushie-completeness proof

Store 2

##

Store 4

####

See also

References

  1. https://logs.esolangs.org/libera-esolangs/2026-09-14.html#lhm
  2. https://logs.esolangs.org/libera-esolangs/2026-09-14.html#lsn
  3. This is a proof by user:raiseafloppafan7741 that ConstantLanguage("one") is Plushie-complete and thus mogs Anti-Plushie Python N. This was retrieved from the IRC logs starting here.
    <de67> constantlanguage("one") is anti-plushie complete
    <raiseafloppafan7> No it isn't
    <de67> how
    <raiseafloppafan7> Three implies the existence of 31
    <raiseafloppafan7> len("one") == 3
    <de67> and one == 1
    <raiseafloppafan7> One
    <raiseafloppafan7> 31
    <de67> noooooooo
    
  4. https://logs.esolangs.org/libera-esolangs/2026-09-14.html#lrp
  5. https://esolangs.org/w/index.php?title=User_talk:Raiseafloppafan7741/Draft_IV&oldid=194680