← All Duels

gpt-5.2-2025-12-11_vs_gpt-5.2-pro-2025-12-11_20260125_035451.jsonl — 10 puzzles

gpt-5.2-2025-12-11
-5
vs
gpt-5.2-pro-2025-12-11
4
#1 Sample Solution Wrong
import hashlib
import math
import struct

def mystery(x):
    # accept int/float/str only
    if not isinstance(x, (int, float, str)):
        return False

    # canonicalize to bytes in a slightly non-obvious way
    if isinstance(x, str):
        s = x
    elif isinstance(x, float):
        # Use exact IEEE-754 payload, not decimal text
        s = struct.pack(">d", x).hex()
    else:  # int
        # Mix representation bases and a sign marker
        s = (hex(x) + "|" + oct(x) + "|" + bin(x) + "|" + ("-" if x < 0 else "+"))

    b = s.encode("utf-8")

    # "noise" computations to obscure intent but deterministic
    h1 = hashlib.sha256(b).hexdigest()
    h2 = hashlib.blake2s(b, digest_size=16, person=b"mystery").hexdigest()
    h = (h1 + h2).encode("ascii")

    # derive a small checksum-like value
    acc = 0
    for i, ch in enumerate(h):
        acc = (acc * 257 + ch + i) % 1000003

    # hidden target condition: very sparse
    # additionally require a property of the original string/representation length
    L = len(s)
    return (acc == 846177) and (L % 7 == 3) and (sum(b) % 97 == 11)
"openai_2026-01-25"
Proposer: gpt-5.2-2025-12-11 Solver: gpt-5.2-pro-2025-12-11
-1 vs 0
#2 Solver Failed
import hashlib

def mystery(x):
    # accepts only basic scalar types
    if not isinstance(x, (int, float, str)):
        return False

    # only integers can possibly pass
    if not isinstance(x, int):
        return False

    MASK = (1 << 64) - 1

    # 64-bit affine mixing (forces wraparound behavior)
    B = 0x9E3779B97F4A7C15
    K = 0xD6E8FEB86659FD93

    # "normalize" into 64-bit space
    u = (x + B) & MASK
    b = u.to_bytes(8, "big")

    kbytes = K.to_bytes(8, "big")

    # bytewise whitening with position-dependent salt
    c = []
    for i, bi in enumerate(b):
        pi = (i * 37 + 11) & 0xFF
        ci = bi ^ kbytes[i] ^ pi
        c.append(ci)

    # decoy constraints (still required)
    if (sum(c) % 251) != 42:
        return False

    acc = 0
    for i, ci in enumerate(c):
        acc = (acc * 131 + ci + i) % 10007
    if acc != 1641:
        return False

    # sparse extraction; most candidates will leave some bytes behind
    payload = bytes(
        ci for i, ci in enumerate(c)
        if (((ci ^ ((i * 0x11) & 0xFF)) & 0xF0) == 0xA0)
    )

    # cryptographic "certificate" of the payload
    return (
        hashlib.md5(payload).hexdigest()
        == "d41d8cd98f00b204e9800998ecf8427e"
        and hashlib.sha1(payload).hexdigest()
        == "da39a3ee5e6b4b0d3255bfef95601890afd80709"
        and hashlib.sha256(payload).hexdigest()
        == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    )
4583670323375578797
0x4BC474EBF0D74E58
Proposer: gpt-5.2-pro-2025-12-11 Solver: gpt-5.2-2025-12-11
-1 vs 1
#3 Sample Solution Wrong
import hashlib
import struct
import math

def mystery(x):
    # accept only int/float/str
    if not isinstance(x, (int, float, str)):
        return False

    # canonicalize to bytes in a non-obvious, type-dependent way
    if isinstance(x, str):
        b = x.encode("utf-8", "surrogatepass")
        tag = b"S"
    elif isinstance(x, int):
        # fixed-width two's-complement-ish encoding (wrap to 128 bits)
        u = x & ((1 << 128) - 1)
        b = u.to_bytes(16, "big", signed=False)
        tag = b"I"
    else:  # float
        # exact IEEE-754 payload
        b = struct.pack(">d", float(x))
        tag = b"F"

    # deterministic "mix" step to obscure what's checked
    h = hashlib.sha256(tag + b).digest()
    h2 = hashlib.blake2s(h, digest_size=16, person=b"mystery").digest()

    # decoy arithmetic constraints (must pass)
    s = sum(h2)
    if (s % 97) != 0:
        return False
    if ((h2[0] ^ h2[-1]) & 0x0F) != 0:
        return False

    # hidden core: accept exactly when the derived payload is empty
    payload = bytes(bb for i, bb in enumerate(h2) if ((bb + i) & 0x07) == 1)

    # cryptographic certificate of emptiness (hard to reverse directly)
    return (
        hashlib.md5(payload).hexdigest() == "d41d8cd98f00b204e9800998ecf8427e"
        and hashlib.sha1(payload).hexdigest() == "da39a3ee5e6b4b0d3255bfef95601890afd80709"
        and hashlib.sha256(payload).hexdigest() == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    )
0
Proposer: gpt-5.2-2025-12-11 Solver: gpt-5.2-pro-2025-12-11
-2 vs 1
#4 Solver Failed
import hashlib

def mystery(x):
    # Accept only int/float/str (as promised), but only a non-bool int can pass.
    if not isinstance(x, (int, float, str)):
        return False
    if not isinstance(x, int) or isinstance(x, bool):
        return False

    MASK = (1 << 128) - 1

    def rotl8(v, r):
        r &= 7
        if r == 0:
            return v & 0xFF
        return ((v << r) | (v >> (8 - r))) & 0xFF

    # 16-byte whitening constants (not meant to be "nice")
    K = bytes([0xA6, 0x1D, 0xB7, 0x3C, 0x5A, 0xE1, 0x09, 0xD4,
               0x6F, 0x88, 0x12, 0xFE, 0x45, 0x57, 0xC3, 0x2B])
    A = bytes([0x13, 0x77, 0x0B, 0xC8, 0x5D, 0x2A, 0x91, 0x04,
               0xEE, 0x60, 0x39, 0xAF, 0xD0, 0x1C, 0x82, 0xF6])

    # A fixed permutation and rotation schedule
    P = [11, 3, 14, 8, 0, 13, 6, 9, 1, 12, 5, 15, 2, 7, 10, 4]
    R = [((i * 5 + 1) & 7) for i in range(16)]

    # Canonicalize into 16 bytes (wrap in 128-bit space)
    u = x & MASK
    b = u.to_bytes(16, "big", signed=False)

    # Whitening
    c = [(((b[i] ^ K[i]) + A[i]) & 0xFF) for i in range(16)]

    # Permute + rotate
    e = [c[P[i]] for i in range(16)]
    d = [rotl8(e[i], R[i]) for i in range(16)]

    # Decoy gates (still required)
    if (sum(d) % 251) != 250:
        return False
    xo = 0
    for v in d:
        xo ^= v
    if xo != 178:
        return False

    # Hidden extraction (sparse, value-dependent)
    MAGIC = {0x74, 0x85, 0x96}
    payload = []
    for i, di in enumerate(d):
        s = (41 * i + 17) & 0xFF
        pb = di ^ s
        if (((pb * 17 + 3) & 0xFF) in MAGIC):
            payload.append(pb)
    payload = bytes(payload)

    # Payload certificate (forces payload == b"abc")
    return (
        len(payload) == 3
        and hashlib.md5(payload).hexdigest() == "900150983cd24fb0d6963f7d28e17f72"
        and hashlib.sha1(payload).hexdigest() == "a9993e364706816aba3e25717850c26c9cd0d89d"
        and hashlib.sha256(payload).hexdigest() == "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
    )
0
0x35dc4d84f50706992d2e3aa7f6a31db1
Proposer: gpt-5.2-pro-2025-12-11 Solver: gpt-5.2-2025-12-11
-2 vs 2
#5 Sample Solution Wrong
import hashlib
import struct

def mystery(x):
    # x may be str or number (int/float). Reject other types (including bytes).
    if not isinstance(x, (int, float, str)):
        return False

    # Canonicalize into bytes in a type-dependent way.
    if isinstance(x, str):
        b = x.encode("utf-8", "surrogatepass")
        tag = b"S"
    elif isinstance(x, int):
        # fixed 16-byte wrapping (two's-complement-like but unsigned wrap)
        u = x & ((1 << 128) - 1)
        b = u.to_bytes(16, "big", signed=False)
        tag = b"I"
    else:  # float
        # exact IEEE-754 payload plus a one-byte “class” tag
        f = float(x)
        cls = 0
        if f != f:
            cls = 3          # NaN
        elif f == float("inf") or f == float("-inf"):
            cls = 2          # infinity
        elif f == 0.0:
            cls = 1          # ±0
        b = bytes([cls]) + struct.pack(">d", f)
        tag = b"F"

    # Hash-mix (deterministic but opaque)
    h = hashlib.sha256(tag + b).digest()
    h2 = hashlib.blake2s(h, digest_size=16, person=b"mystery-v3").digest()

    # Decoy constraints (must still pass)
    if (h2[0] ^ h2[5] ^ h2[10] ^ h2[15]) != 0x7A:
        return False
    if (sum(h2) % 97) != 31:
        return False

    # Extract a "payload" under a masked predicate
    payload = bytes(v for i, v in enumerate(h2) if (((v + 13*i) ^ (i*29)) & 7) == 0)

    # Certificate: accept only when payload is empty (hard to target directly)
    return (
        hashlib.md5(payload).hexdigest() == "d41d8cd98f00b204e9800998ecf8427e"
        and hashlib.sha1(payload).hexdigest() == "da39a3ee5e6b4b0d3255bfef95601890afd80709"
        and hashlib.sha256(payload).hexdigest() == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    )
"mystery-v3 sample seed 2026-01-25"
Proposer: gpt-5.2-2025-12-11 Solver: gpt-5.2-pro-2025-12-11
-3 vs 2
#6 Solver Failed
def mystery(x):
    import struct

    if not isinstance(x, (int, float, str)) or isinstance(x, bool):
        return False

    # Canonicalize into 8 bytes + a one-byte tag (different per type).
    if isinstance(x, int):
        if x < 0 or x >= (1 << 64):
            return False
        b = x.to_bytes(8, "big")
        tag = 0x49
    elif isinstance(x, float):
        b = struct.pack(">d", float(x))
        tag = 0x46
    else:  # str
        s = x.encode("utf-8", "surrogatepass")
        # small, deterministic fold to 8 bytes (not cryptographic; just obfuscation)
        acc = [0xA5, 0x5A, 0xC3, 0x3C, 0x96, 0x69, 0x0F, 0xF0]
        for i, ch in enumerate(s):
            j = i & 7
            acc[j] = ((acc[j] + ch + (i * 17)) ^ ((ch << (i & 3)) & 0xFF)) & 0xFF
        b = bytes(acc)
        tag = 0x53

    K = (0xA3, 0x1F, 0xC7, 0x55, 0x92, 0x0D, 0xE4, 0x38)
    A = (0x11, 0xDE, 0x03, 0xC7, 0x58, 0x29, 0x82, 0x07)
    P = (2, 5, 1, 7, 0, 6, 3, 4)
    R = (1, 3, 5, 7, 2, 4, 6, 0)

    def rotl8(v, r):
        r &= 7
        return ((v << r) | (v >> (8 - r))) & 0xFF if r else (v & 0xFF)

    t = [(b[i] ^ K[i]) & 0xFF for i in range(8)]
    u = [t[P[i]] for i in range(8)]
    v = [(u[i] + A[i]) & 0xFF for i in range(8)]
    w = bytes(rotl8(v[i], R[i]) for i in range(8))

    # decoy-ish gates (still required)
    if ((tag ^ 0x1C) != 0x55):
        return False
    if (sum(w) & 0xFF) != 0x3E:
        return False
    if ((w[1] * w[2] + w[3]) % 257) != 153:
        return False
    if (((w[4] << 8) | w[5]) ^ ((w[6] << 8) | w[7])) != 0x1C53:
        return False
    if (w[0] ^ w[2] ^ w[4] ^ w[6]) != 0x02:
        return False

    expected = (0x6D79737465727921).to_bytes(8, "big")
    return w == expected
0xFEB99483D10A21AA
0xA2876236885C1A19
Proposer: gpt-5.2-pro-2025-12-11 Solver: gpt-5.2-2025-12-11
-3 vs 3
#7 Sample Solution Wrong
def mystery(x):
    import hashlib
    import struct

    # Accept only int/float/str (and reject bool explicitly).
    if not isinstance(x, (int, float, str)) or isinstance(x, bool):
        return False

    # Type-tagged canonicalization to bytes (designed to be non-obvious).
    if isinstance(x, str):
        b = x.encode("utf-8", "surrogatepass")
        tag = b"S"
    elif isinstance(x, int):
        # 96-bit wrap, then add a salt-like nibble derived from popcount.
        u = x & ((1 << 96) - 1)
        pc = u.bit_count() & 0x0F
        b = bytes([pc]) + u.to_bytes(12, "big")
        tag = b"I"
    else:  # float
        f = float(x)
        # normalize -0.0 to +0.0 in a sneaky way
        if f == 0.0:
            f = 0.0
        b = struct.pack(">d", f)
        tag = b"F"

    # Hash mixing with personalization (opaque to reverse).
    h = hashlib.blake2s(tag + b, digest_size=32, person=b"mystery-game").digest()
    g = hashlib.sha256(h + tag).digest()

    # Decoy arithmetic gates (still required).
    if ((h[0] ^ h[7] ^ h[13] ^ h[31]) & 0xFF) != 0xA6:
        return False
    if (sum(g) % 251) != 17:
        return False

    # Extract a "payload" under a predicate depending on both hashes.
    payload = bytearray()
    for i in range(32):
        v = h[i] ^ g[31 - i] ^ ((i * 73 + 19) & 0xFF)
        if (v & 0x0F) == ((h[(i * 5) & 31] + i) & 0x0F):
            payload.append(v)

    payload = bytes(payload)

    # Certificate: accept only when payload hashes to the empty-string digests,
    # i.e., when payload == b"" (but that's hard to hit while also passing gates).
    return (
        hashlib.md5(payload).hexdigest() == "d41d8cd98f00b204e9800998ecf8427e"
        and hashlib.sha1(payload).hexdigest() == "da39a3ee5e6b4b0d3255bfef95601890afd80709"
        and hashlib.sha256(payload).hexdigest() == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    )
"openai42"`
Proposer: gpt-5.2-2025-12-11 Solver: gpt-5.2-pro-2025-12-11
-4 vs 3
#8 Solver Failed
def mystery(x):
    # x may be str or number, but only one very specific 64-bit integer can pass.
    if not isinstance(x, (int, float, str)) or isinstance(x, bool):
        return False
    if not isinstance(x, int):
        return False
    if x < 0 or x >= (1 << 64):
        return False

    MASK = (1 << 64) - 1

    def _rotl64(v, r):
        r &= 63
        return ((v << r) | (v >> (64 - r))) & MASK if r else (v & MASK)

    # Bijective mixer (built from invertible operations in 64-bit space).
    def _mix64(u):
        u &= MASK
        u ^= (u >> 30)
        u = (u * 0xBF58476D1CE4E5B9) & MASK
        u ^= (u >> 27)
        u = (u * 0x94D049BB133111EB) & MASK
        u ^= (u >> 31)
        return u & MASK

    # A bijection (Gray-code transform), to add another reversible layer.
    def _t(u):
        u &= MASK
        return (u ^ (u >> 1)) & MASK

    # Hidden 64-bit target, reconstructed from an obfuscated blob.
    def _secret_x():
        obf = 0x226AD27A02CA729A
        b = obf.to_bytes(8, "big")

        # Key is generated (not stored directly), but is fully deterministic.
        k = bytes((((i * 73 + 41) & 0xFF) ^ 0xAA) for i in range(8))

        p = bytes((b[i] ^ k[i]) for i in range(8))
        return int.from_bytes(p, "big")  # 64-bit

    sec = _secret_x()

    # Salt and some noisy-but-deterministic “structure” checks.
    SALT = 0xD1B54A32D192ED03

    m = _mix64((_t(x) + SALT) & MASK)
    exp = _mix64((_t(sec) + SALT) & MASK)

    # Decoy-ish gates (must still pass).
    mb = m.to_bytes(8, "big")
    xb = x.to_bytes(8, "big")

    # A couple of constraints that look independent, but are tuned to the same target.
    if ((sum(mb) + 17 * mb[0] + 31 * mb[7]) % 251) != ((sum(exp.to_bytes(8, "big")) + 17 * ((exp >> 56) & 0xFF) + 31 * (exp & 0xFF)) % 251):
        return False
    if (((_rotl64(m, 19) ^ m) & 0xFFFF) != ((_rotl64(exp, 19) ^ exp) & 0xFFFF)):
        return False
    if (((xb[1] ^ xb[3] ^ xb[5] ^ xb[7]) & 0xFF) != ((sec.to_bytes(8, "big")[1] ^ sec.to_bytes(8, "big")[3] ^ sec.to_bytes(8, "big")[5] ^ sec.to_bytes(8, "big")[7]) & 0xFF)):
        return False

    # Core check (written in a slightly disguised way).
    return ((m - exp) & MASK) == 0
0xA1B0C3123D4CBF6E
0xA1B2C3D4E5F60718
Proposer: gpt-5.2-pro-2025-12-11 Solver: gpt-5.2-2025-12-11
-4 vs 4
#9 Sample Solution Wrong
def mystery(x):
    import hashlib
    import struct

    # Only allow int/float/str (reject bool explicitly).
    if not isinstance(x, (int, float, str)) or isinstance(x, bool):
        return False

    # Canonicalize to bytes in a type-dependent, slightly sneaky way.
    if isinstance(x, str):
        b = x.encode("utf-8", "surrogatepass")
        tag = b"S"
    elif isinstance(x, float):
        # Exact IEEE-754 bytes, plus a classifier byte.
        f = float(x)
        if f != f:
            cls = 3  # NaN
        elif f == float("inf") or f == float("-inf"):
            cls = 2  # inf
        elif f == 0.0:
            cls = 1  # ±0
            f = 0.0  # normalize -0.0 to +0.0
        else:
            cls = 0
        b = bytes([cls]) + struct.pack(">d", f)
        tag = b"F"
    else:  # int
        # 128-bit wrap with a popcount nibble header.
        u = x & ((1 << 128) - 1)
        b = bytes([(u.bit_count() * 11 + 7) & 0xFF]) + u.to_bytes(16, "big")
        tag = b"I"

    # Opaque mixing
    h = hashlib.blake2s(tag + b, digest_size=32, person=b"game:mystery:2026").digest()
    g = hashlib.sha256(h + tag + bytes([len(b) & 0xFF])).digest()

    # Decoy gates (still required)
    if ((h[0] + 3*h[11] + 5*h[23] + 7*h[31]) % 257) != 42:
        return False
    if ((g[2] ^ g[5] ^ g[8] ^ g[13] ^ g[21] ^ g[34 % 32]) & 0xFF) != 0xA7:
        return False

    # Sparse extraction predicate; goal is to make payload empty.
    payload = bytearray()
    for i in range(32):
        v = (h[i] + (g[31 - i] ^ ((i * 73 + 19) & 0xFF))) & 0xFF
        if ((v ^ (h[(i * 7) & 31] + i)) & 0x0F) == 0:
            payload.append(v)

    payload = bytes(payload)

    # Accept only if payload is exactly empty (proved by standard empty digests).
    return (
        hashlib.md5(payload).hexdigest() == "d41d8cd98f00b204e9800998ecf8427e"
        and hashlib.sha1(payload).hexdigest() == "da39a3ee5e6b4b0d3255bfef95601890afd80709"
        and hashlib.sha256(payload).hexdigest() == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    )
"openai"
Proposer: gpt-5.2-2025-12-11 Solver: gpt-5.2-pro-2025-12-11
-5 vs 4
#10 Solved
def mystery(x):
    # Accept only int/float/str (explicitly reject bool).
    if not isinstance(x, (int, float, str)) or isinstance(x, bool):
        return False

    # Canonicalize x -> y (64-bit unsigned int), with type-dependent quirks.
    if isinstance(x, int):
        y = x
    elif isinstance(x, float):
        # Only allow floats that are *exactly* integral.
        if x != x or x in (float("inf"), float("-inf")):
            return False
        if not x.is_integer():
            return False
        y = int(x)
    else:  # str
        s = x.strip()
        # Allow base-prefix forms too (0x..., 0o..., 0b...).
        try:
            y = int(s, 0)
        except Exception:
            return False

    # Restrict to 64-bit unsigned space.
    if y < 0 or y >= (1 << 64):
        return False

    MASK64 = (1 << 64) - 1
    MASK32 = (1 << 32) - 1

    def rotl64(v, r):
        r &= 63
        v &= MASK64
        return ((v << r) | (v >> (64 - r))) & MASK64 if r else v

    def _keys():
        # Deterministic "PRNG-ish" 32-bit key schedule.
        z = 0xC3A5C85C  # fixed seed
        out = []
        for i in range(6):
            # xorshift32
            z ^= (z << 13) & MASK32
            z ^= (z >> 17) & MASK32
            z ^= (z << 5) & MASK32
            # round key with some extra whitening
            k = (z + (0x9E3779B9 * (i + 1))) & MASK32
            k ^= ((k << 7) & MASK32)
            out.append(k & MASK32)
        return out

    def _F(r, k):
        # 32-bit mixing function (nonlinear, but used in a Feistel network).
        r = (r + k) & MASK32
        r ^= (r >> 16)
        r = (r * 0x7FEB352D) & MASK32
        r ^= (r >> 15)
        r = (r * 0x846CA68B) & MASK32
        r ^= (r >> 16)
        return r & MASK32

    def _feistel64(u):
        # 64-bit Feistel permutation (6 rounds).
        L = (u >> 32) & MASK32
        R = u & MASK32
        for k in _keys():
            L, R = R, (L ^ _F(R, k)) & MASK32
        return ((L << 32) | R) & MASK64

    def _secret():
        # Secret 8 bytes reconstructed from two "innocent looking" tables.
        a = (0x13, 0x57, 0x9B, 0xDF, 0x21, 0x88, 0x70, 0x0C)
        b = (0xA7, 0x2D, 0x87, 0x3C, 0xB1, 0xA5, 0x86, 0x54)

        p = bytes((a[i] ^ b[i]) & 0xFF for i in range(8))

        # Add reversible "noise" steps that ultimately cancel out.
        q = bytes((p[i] + ((17 * i) & 0xFF)) & 0xFF for i in range(8))
        r = bytes((q[i] - ((17 * i) & 0xFF)) & 0xFF for i in range(8))

        # Another reversible shuffle (net effect: identity).
        t = r[3:] + r[:3]
        u = t[-3:] + t[:-3]

        return int.from_bytes(u, "big")  # 64-bit

    sec = _secret()

    m = _feistel64(y)
    t = _feistel64(sec)

    # Several gates that look independent, but are all tuned to the same hidden target.
    mb = m.to_bytes(8, "big")
    tb = t.to_bytes(8, "big")

    if (sum(mb) + 11 * mb[0] + 23 * mb[7]) % 251 != (sum(tb) + 11 * tb[0] + 23 * tb[7]) % 251:
        return False

    def poly257(bs):
        acc = 0
        for i, v in enumerate(bs):
            acc = (acc * 257 + v + (19 * i)) % 65521
        return acc

    if poly257(mb) != poly257(tb):
        return False

    def sig64(v):
        v &= MASK64
        return ((v ^ rotl64(v, 7) ^ rotl64(v, 23) ^ 0xA1F1C3D5E7B9D0F2) & 0xFFFF)

    if sig64(m) != sig64(t):
        return False

    # Core check (written in a slightly disguised way).
    return ((m - t) & MASK64) == 0
0xB47A1CE3902DF658
0xB47A1CE3902DF658
Proposer: gpt-5.2-pro-2025-12-11 Solver: gpt-5.2-2025-12-11
-5 vs 4